diff options
Diffstat (limited to 'src/arch/arm/include')
-rw-r--r-- | src/arch/arm/include/arch/asm.h | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/arch/arm/include/arch/asm.h b/src/arch/arm/include/arch/asm.h index 5f3e55f135..a57ce4dafa 100644 --- a/src/arch/arm/include/arch/asm.h +++ b/src/arch/arm/include/arch/asm.h @@ -20,19 +20,20 @@ #ifndef __ARM_ASM_H #define __ARM_ASM_H -#if defined __arm__ -# define ARM(x...) x -# define THUMB(x...) -# define W(instr) instr -#elif defined __thumb__ +/* __arm__ is defined regardless of Thumb mode, so need to order this right */ +#if defined __thumb2__ # define ARM(x...) # define THUMB(x...) x # define W(instr) instr.w # if __COREBOOT_ARM_ARCH__ < 7 # error thumb mode has not been tested with ARM < v7! # endif +#elif defined __thumb__ +# error You are not compiling Thumb2, this won't work! #else -# error Not in ARM or thumb mode! +# define ARM(x...) x +# define THUMB(x...) +# define W(instr) instr #endif #define ALIGN .align 0 @@ -49,4 +50,10 @@ #define END(name) \ .size name, .-name +/* Everything should go into the text section by default. */ + .text + +/* Thumb code uses the (new) unified assembly syntax. */ +THUMB( .syntax unified ) + #endif /* __ARM_ASM_H */ |