diff options
-rw-r--r-- | extra/Configs/Config.arm | 4 | ||||
-rw-r--r-- | libc/sysdeps/linux/arm/bits/arm_asm.h | 9 |
2 files changed, 11 insertions, 2 deletions
diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm index 4ab7da0d1..0bb2971a9 100644 --- a/extra/Configs/Config.arm +++ b/extra/Configs/Config.arm @@ -33,4 +33,6 @@ config COMPILE_IN_THUMB_MODE config USE_BX bool "Use BX in function return" help - Use BX instruction for THUMB aware architectures. + Say 'y' to use BX to return from functions on your thumb-aware + processor. Say 'y' if you need to use interworking. Say 'n' if not. + It is safe to say 'y' even if you're not doing interworking. diff --git a/libc/sysdeps/linux/arm/bits/arm_asm.h b/libc/sysdeps/linux/arm/bits/arm_asm.h index 1d87df6eb..921c9a3c9 100644 --- a/libc/sysdeps/linux/arm/bits/arm_asm.h +++ b/libc/sysdeps/linux/arm/bits/arm_asm.h @@ -24,5 +24,12 @@ #define THUMB1_ONLY 1 #endif -#endif /* _ARM_ASM_H */ +#if defined(__USE_BX__) +# if ( defined (__ARM_ARCH_2__) || defined (__ARM_ARCH_3__) \ + || defined (__ARM_ARCH_3M__) || defined (__ARM_ARCH_4__) \ + ) +# error Use of BX was requested, but is not available on the target processor. +# endif /* ARCH level */ +#endif /* __USE_BX__ */ +#endif /* _ARM_ASM_H */ |