diff options
author | Thomas Preud'homme <thomas.preudhomme@foss.arm.com> | 2016-01-28 13:26:09 +0300 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2016-01-28 13:26:37 +0300 |
commit | 69f4c4029183fb26d2fcae00790881620c1978a3 (patch) | |
tree | 87f94f7e721f1f8b83117a9ffb1e007fc969f729 /newlib/libc/machine | |
parent | 0b42ea79606c46f730e4f2427cc8244f85bdac98 (diff) |
Make macro checks ARMv8-M baseline proof
libgloss:
* arm/Makefile.in: Add newlib/libc/machine/arm to the include path if
newlib is present.
* arm/arm.h: Include acle-compat.h.
(THUMB_V7_V6M): Rename to ...
(PREFER_THUMB): This. Use ACLE macros __ARM_ARCH_ISA_ARM instead of
__ARM_ARCH_6M__ to decide whether to define it.
(THUMB1_ONLY): Define for Thumb-1 only targets.
(THUMB_V7M_V6M): Rename to ...
(THUMB_VXM): This. Defined based on __ARM_ARCH_ISA_ARM, excluding
ARMv7.
* arm/crt0.S: Use THUMB1_ONLY rather than __ARM_ARCH_6M__,
!__ARM_ARCH_ISA_ARM rather than THUMB_V7M_V6M for fp enabling, and
PREFER_THUMB rather than THUMB_V7_V6M. Rename other occurences of
THUMB_V7M_V6M to THUMB_VXM.
* arm/linux-crt0.c: Likewise.
* arm/redboot-crt0.S: Likewise.
* arm/swi.h: Likewise.
* arm/trap.S: Likewise.
newlib:
* libc/machine/arm/memcpy-stub.c: Use ACLE macros __ARM_ARCH_ISA_THUMB
and __ARM_ARCH_ISA_ARM to check for Thumb-2 only targets rather than
__ARM_ARCH and __ARM_ARCH_PROFILE.
* libc/machine/arm/memcpy.S: Likewise.
* libc/machine/arm/setjmp.S: Likewise for Thumb-1 only target and
include acle-compat.h.
* libc/machine/arm/strcmp.S: Likewise for Thumb-1 and Thumb-2 only
target and include acle-compat.h.
* libc/sys/arm/arm.h: Include acle-compat.h.
(THUMB_V7_V6M): Rename to ...
(PREFER_THUMB): This. Use ACLE macro __ARM_ARCH_ISA_ARM instead of
__ARM_ARCH_6M__ to decide whether to define it.
(THUMB1_ONLY): Define for Thumb-1 only targets.
(THUMB_V7M_V6M): Rename to ...
(THUMB_VXM): This. Defined based on __ARM_ARCH_ISA_ARM, excluding
ARMv7.
* libc/sys/arm/crt0.S: Use PREFER_THUMB rather than THUMB_V7_V6M and
rename THUMB_V7M_V6M into THUMB_VXM.
* libc/sys/arm/swi.h: Likewise.
Diffstat (limited to 'newlib/libc/machine')
-rw-r--r-- | newlib/libc/machine/arm/memcpy-stub.c | 2 | ||||
-rw-r--r-- | newlib/libc/machine/arm/memcpy.S | 2 | ||||
-rw-r--r-- | newlib/libc/machine/arm/setjmp.S | 6 | ||||
-rw-r--r-- | newlib/libc/machine/arm/strcmp.S | 5 |
4 files changed, 9 insertions, 6 deletions
diff --git a/newlib/libc/machine/arm/memcpy-stub.c b/newlib/libc/machine/arm/memcpy-stub.c index 52a0f91bd..6cd0e3b1d 100644 --- a/newlib/libc/machine/arm/memcpy-stub.c +++ b/newlib/libc/machine/arm/memcpy-stub.c @@ -34,7 +34,7 @@ #elif (__ARM_ARCH >= 7 && __ARM_ARCH_PROFILE == 'A' \ && defined (__ARM_FEATURE_UNALIGNED)) /* Defined in memcpy.S. */ -#elif __ARM_ARCH >= 7 && __ARM_ARCH_PROFILE == 'M' +#elif __ARM_ARCH_ISA_THUMB == 2 && !__ARM_ARCH_ISA_ARM /* Defined in memcpy.S. */ #else # include "../../string/memcpy.c" diff --git a/newlib/libc/machine/arm/memcpy.S b/newlib/libc/machine/arm/memcpy.S index d9d5810a7..77bd2a606 100644 --- a/newlib/libc/machine/arm/memcpy.S +++ b/newlib/libc/machine/arm/memcpy.S @@ -38,7 +38,7 @@ && defined (__ARM_FEATURE_UNALIGNED)) #include "memcpy-armv7a.S" -#elif __ARM_ARCH >= 7 && __ARM_ARCH_PROFILE == 'M' +#elif __ARM_ARCH_ISA_THUMB == 2 && !__ARM_ARCH_ISA_ARM #include "memcpy-armv7m.S" #else diff --git a/newlib/libc/machine/arm/setjmp.S b/newlib/libc/machine/arm/setjmp.S index a65fbabb9..1ba711d5e 100644 --- a/newlib/libc/machine/arm/setjmp.S +++ b/newlib/libc/machine/arm/setjmp.S @@ -2,6 +2,8 @@ Nick Clifton, Cygnus Solutions, 13 June 1997. */ +#include "acle-compat.h" + /* ANSI concatenation macros. */ #define CONCAT(a, b) CONCAT2(a, b) #define CONCAT2(a, b) a##b @@ -55,8 +57,8 @@ For Thumb-2 do everything in Thumb mode. */ -#if defined(__ARM_ARCH_6M__) -/* ARMv6-M has to be implemented in Thumb mode. */ +#if __ARM_ARCH_ISA_THUMB == 1 && !__ARM_ARCH_ISA_ARM +/* ARMv6-M-like has to be implemented in Thumb mode. */ .thumb .thumb_func diff --git a/newlib/libc/machine/arm/strcmp.S b/newlib/libc/machine/arm/strcmp.S index 7b4d7fc90..3af9b6dbd 100644 --- a/newlib/libc/machine/arm/strcmp.S +++ b/newlib/libc/machine/arm/strcmp.S @@ -29,6 +29,7 @@ /* Wrapper for the various implementations of strcmp. */ #include "arm_asm.h" +#include "acle-compat.h" #ifdef __ARM_BIG_ENDIAN #define S2LO lsl @@ -61,7 +62,7 @@ .endm #if defined (__OPTIMIZE_SIZE__) || defined (PREFER_SIZE_OVER_SPEED) \ - || (__ARM_ARCH == 6 && __ARM_ARCH_PROFILE == 'M') + || (__ARM_ARCH_ISA_THUMB == 1 && !__ARM_ARCH_ISA_ARM) # if defined (__thumb__) && !defined (__thumb2__) /* Thumb1 only variant. If size is preferred, use strcmp-armv4t.S. @@ -78,7 +79,7 @@ # include "strcmp-arm-tiny.S" # endif -#elif __ARM_ARCH >= 7 +#elif __ARM_ARCH_ISA_THUMB == 2 # ifdef __ARM_FEATURE_SIMD32 # include "strcmp-armv7.S" |