diff options
Diffstat (limited to 'ports')
-rw-r--r-- | ports/ChangeLog.arm | 3 | ||||
-rw-r--r-- | ports/sysdeps/arm/add_n.S | 6 |
2 files changed, 9 insertions, 0 deletions
diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm index 72060bac34..71520a6344 100644 --- a/ports/ChangeLog.arm +++ b/ports/ChangeLog.arm @@ -1,5 +1,8 @@ 2013-03-13 Roland McGrath <roland@hack.frob.com> + * sysdeps/arm/add_n.S: Include <arm-features.h>. + [ARM_ALWAYS_BX]: Don't pop into pc. + * sysdeps/arm/arm-features.h: Add comment about ARM_ALWAYS_BX. * sysdeps/arm/memcpy.S: Include <arm-features.h>. [ARM_ALWAYS_BX]: Avoid pc as destination. diff --git a/ports/sysdeps/arm/add_n.S b/ports/sysdeps/arm/add_n.S index 119a9942d1..52927d997d 100644 --- a/ports/sysdeps/arm/add_n.S +++ b/ports/sysdeps/arm/add_n.S @@ -17,6 +17,7 @@ <http://www.gnu.org/licenses/>. */ #include <sysdep.h> +#include <arm-features.h> .syntax unified .text @@ -80,5 +81,10 @@ ENTRY (FUNC) 9: RETC /* copy carry out */ +#ifndef ARM_ALWAYS_BX pop { r4, r5, r6, r7, r8, r10, pc } +#else + pop { r4, r5, r6, r7, r8, r10, lr } + bx lr +#endif END (FUNC) |