summaryrefslogtreecommitdiffstats
path: root/newlib/libc/sys/arm/crt0.S
diff options
context:
space:
mode:
authorThomas Preud'homme <thomas.preudhomme@foss.arm.com>2016-01-28 11:26:09 +0100
committerCorinna Vinschen <corinna@vinschen.de>2016-01-28 11:26:37 +0100
commit69f4c4029183fb26d2fcae00790881620c1978a3 (patch)
tree87f94f7e721f1f8b83117a9ffb1e007fc969f729 /newlib/libc/sys/arm/crt0.S
parent0b42ea79606c46f730e4f2427cc8244f85bdac98 (diff)
downloadcygnal-69f4c4029183fb26d2fcae00790881620c1978a3.tar.gz
cygnal-69f4c4029183fb26d2fcae00790881620c1978a3.tar.bz2
cygnal-69f4c4029183fb26d2fcae00790881620c1978a3.zip
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/sys/arm/crt0.S')
-rw-r--r--newlib/libc/sys/arm/crt0.S12
1 files changed, 6 insertions, 6 deletions
diff --git a/newlib/libc/sys/arm/crt0.S b/newlib/libc/sys/arm/crt0.S
index b56072fcb..64d425900 100644
--- a/newlib/libc/sys/arm/crt0.S
+++ b/newlib/libc/sys/arm/crt0.S
@@ -44,7 +44,7 @@
/* .text is used instead of .section .text so it works with arm-aout too. */
.text
.syntax unified
-#ifdef THUMB_V7_V6M
+#ifdef PREFER_THUMB
.thumb
.macro FUNC_START name
.global \name
@@ -99,7 +99,7 @@
/* Issue Angel SWI to read stack info. */
movs r0, #AngelSWI_Reason_HeapInfo
adr r1, .LC0 /* Point at ptr to 4 words to receive data. */
-#ifdef THUMB_V7M_V6M
+#ifdef THUMB_VXM
bkpt AngelSWI
#elif defined(__thumb2__)
/* We are in thumb mode for startup on armv7 architectures. */
@@ -176,7 +176,7 @@
have somehow missed it below (in which case it gets the same
value as FIQ - not ideal, but better than nothing). */
mov sp, r3
-#ifdef THUMB_V7_V6M
+#ifdef PREFER_THUMB
/* XXX Fill in stack assignments for interrupt modes. */
#else
mrs r2, CPSR
@@ -239,7 +239,7 @@
subs a3, a3, a1 /* Third arg: length of block. */
-#if defined(__thumb__) && !defined(THUMB_V7_V6M)
+#if __thumb__ && !defined(PREFER_THUMB)
/* Enter Thumb mode... */
add a4, pc, #1 /* Get the address of the Thumb block. */
bx a4 /* Go there and start Thumb decoding. */
@@ -278,7 +278,7 @@ __change_mode:
#else
movs r0, #AngelSWI_Reason_GetCmdLine
adr r1, .LC30 /* Space for command line. */
-#ifdef THUMB_V7M_V6M
+#ifdef THUMB_VXM
bkpt AngelSWI
#else
AngelSWIAsm AngelSWI
@@ -404,7 +404,7 @@ __change_mode:
bl FUNCTION (exit) /* Should not return. */
-#if defined(__thumb__) && !defined(THUMB_V7_V6M)
+#if __thumb__ && !defined(PREFER_THUMB)
/* Come out of Thumb mode. This code should be redundant. */
mov a4, pc
bx a4