diff options
author | Thomas Preud'homme <thomas.preudhomme@foss.arm.com> | 2016-01-28 11:26:09 +0100 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2016-01-28 11:26:37 +0100 |
commit | 69f4c4029183fb26d2fcae00790881620c1978a3 (patch) | |
tree | 87f94f7e721f1f8b83117a9ffb1e007fc969f729 /newlib/libc/sys/arm/crt0.S | |
parent | 0b42ea79606c46f730e4f2427cc8244f85bdac98 (diff) | |
download | cygnal-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.S | 12 |
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 |