diff options
-rw-r--r-- | ports/ChangeLog.arm | 6 | ||||
-rw-r--r-- | ports/sysdeps/unix/sysv/linux/arm/clone.S | 8 |
2 files changed, 7 insertions, 7 deletions
diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm index 4371b3c..51bb76b 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 44286a5..03fe9ab 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)) |