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.
This commit is contained in:
committed by
Corinna Vinschen
parent
0b42ea7960
commit
69f4c40291
@@ -14,7 +14,7 @@
|
||||
.text
|
||||
.syntax unified
|
||||
/* Setup the assembly entry point. */
|
||||
#ifdef THUMB_V7_V6M
|
||||
#ifdef PREFER_THUMB
|
||||
.macro FUNC_START name
|
||||
.global \name
|
||||
.thumb_func
|
||||
@@ -31,13 +31,13 @@
|
||||
FUNC_START SYM_NAME(_start)
|
||||
/* Unnecessary to set fp for v6-m/v7-m, which don't support
|
||||
ARM state. */
|
||||
#ifndef THUMB_V7M_V6M
|
||||
#if __ARM_ARCH_ISA_ARM
|
||||
mov fp, #0 /* Null frame pointer. */
|
||||
#endif
|
||||
movs r7, #0 /* Null frame pointer for Thumb. */
|
||||
|
||||
/* Enable interrupts for gdb debugging. */
|
||||
#ifdef THUMB_V7_V6M
|
||||
#ifdef PREFER_THUMB
|
||||
cpsie if
|
||||
#else
|
||||
mrs r0, cpsr
|
||||
@@ -66,7 +66,7 @@
|
||||
/* Nothing to left to clear. */
|
||||
#endif
|
||||
|
||||
#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. */
|
||||
|
Reference in New Issue
Block a user