Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Preud'homme <thomas.preudhomme@foss.arm.com>2016-01-28 13:26:09 +0300
committerCorinna Vinschen <corinna@vinschen.de>2016-01-28 13:26:37 +0300
commit69f4c4029183fb26d2fcae00790881620c1978a3 (patch)
tree87f94f7e721f1f8b83117a9ffb1e007fc969f729 /newlib/libc/machine
parent0b42ea79606c46f730e4f2427cc8244f85bdac98 (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.c2
-rw-r--r--newlib/libc/machine/arm/memcpy.S2
-rw-r--r--newlib/libc/machine/arm/setjmp.S6
-rw-r--r--newlib/libc/machine/arm/strcmp.S5
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"