diff options
author | Roland McGrath <roland@hack.frob.com> | 2013-03-13 09:51:37 -0700 |
---|---|---|
committer | Roland McGrath <roland@hack.frob.com> | 2013-03-13 09:51:37 -0700 |
commit | ccffb2a2db302beb07493fca6b1365ff3c8135dc (patch) | |
tree | 3db3df8819c16779a647ca7dd814ba03b1642340 | |
parent | 9e1d4ac924d66f4cfbcca3e98bd1bd62a5d92d5f (diff) | |
download | glibc-ccffb2a2db302beb07493fca6b1365ff3c8135dc.tar.gz glibc-ccffb2a2db302beb07493fca6b1365ff3c8135dc.tar.xz glibc-ccffb2a2db302beb07493fca6b1365ff3c8135dc.zip |
ARM: Handle ARM_ALWAYS_BX in {add,sub}_n.S code.
-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) |