about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ports/ChangeLog.arm6
-rw-r--r--ports/sysdeps/unix/sysv/linux/arm/clone.S8
2 files changed, 7 insertions, 7 deletions
diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm
index 4371b3ccfb..51bb76b992 100644
--- a/ports/ChangeLog.arm
+++ b/ports/ChangeLog.arm
@@ -1,3 +1,9 @@
+2014-01-24  Will Newton  <will.newton@linaro.org>
+
+	[BZ #16499]
+	* sysdeps/unix/sysv/linux/arm/clone.S: Use BLX macro instead
+	of blx instruction directly.
+
 2014-01-14  Will Newton  <will.newton@linaro.org>
 
 	* sysdeps/arm/__longjmp.S: Don't apply pointer encryption
diff --git a/ports/sysdeps/unix/sysv/linux/arm/clone.S b/ports/sysdeps/unix/sysv/linux/arm/clone.S
index 44286a5cd0..03fe9ab728 100644
--- a/ports/sysdeps/unix/sysv/linux/arm/clone.S
+++ b/ports/sysdeps/unix/sysv/linux/arm/clone.S
@@ -88,14 +88,8 @@ PSEUDO_END (__clone)
 #endif
 	@ pick the function arg and call address off the stack and execute
 	ldr	r0, [sp, #4]
-#if defined(__ARM_ARCH_4T__) && defined(__THUMB_INTERWORK__)
 	ldr 	ip, [sp], #8
-	mov	lr, pc
-	bx      ip
-#else
-	ldr 	lr, [sp], #8
-	blx	lr
-#endif
+	BLX (ip)
 
 	@ and we are done, passing the return value through r0
 	b	PLTJMP(HIDDEN_JUMPTARGET(_exit))