summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/arm/bits/arm_bx.h
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2015-04-24 19:57:28 -0500
committerWaldemar Brodkorb <wbx@openadk.org>2015-04-24 19:57:28 -0500
commit928ab832caa67c0c1a44e3a8e1483b0ed33cda50 (patch)
tree6e3df2d0437f834971fe28bdf519a2c8da694fc1 /libc/sysdeps/linux/arm/bits/arm_bx.h
parent74c69da52ad5029cd2fc2d3d41d581022ed0a7aa (diff)
parentf1f98784e65ce9621a570af50998b1940e7fb81d (diff)
merge uClibc changes
Diffstat (limited to 'libc/sysdeps/linux/arm/bits/arm_bx.h')
-rw-r--r--libc/sysdeps/linux/arm/bits/arm_bx.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/libc/sysdeps/linux/arm/bits/arm_bx.h b/libc/sysdeps/linux/arm/bits/arm_bx.h
index 321490e55..2c290896d 100644
--- a/libc/sysdeps/linux/arm/bits/arm_bx.h
+++ b/libc/sysdeps/linux/arm/bits/arm_bx.h
@@ -24,11 +24,17 @@
#endif /* features.h not yet included */
#if defined(__USE_BX__)
-# if ( defined (__ARM_ARCH_2__) || defined (__ARM_ARCH_3__) \
- || defined (__ARM_ARCH_3M__) || defined (__ARM_ARCH_4__) \
- )
+# if (__ARM_ARCH <= 4 && !defined __ARM_ARCH_4T__)
# error Use of BX was requested, but is not available on the target processor.
# endif /* ARCH level */
#endif /* __USE_BX__ */
+#if defined(__USE_BX__) && (__ARM_ARCH > 4 || (__ARM_ARCH == 4 && defined __ARM_ARCH_4T__))
+# define BX(reg) bx reg
+# define BXC(cond, reg) bx##cond reg
+#else
+# define BX(reg) mov pc, reg
+# define BXC(cond, reg) mov##cond pc, reg
+#endif
+
#endif /* _ARM_BX_H */