diff options
Diffstat (limited to 'gcc/config/arm/arm.h')
| -rw-r--r-- | gcc/config/arm/arm.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index 6060275..85fea19 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -256,6 +256,10 @@ Unrecognized value in TARGET_CPU_DEFAULT. %{!mthumb-interwork:%{!mno-thumb-interwork:%(cpp_interwork_default)}} \ " +#ifndef CPP_PREDEFINES +#define CPP_PREDEFINES "" +#endif + #ifndef CC1_SPEC #define CC1_SPEC "" #endif @@ -1099,6 +1103,13 @@ enum reg_class #define INDEX_REG_CLASS (TARGET_THUMB ? LO_REGS : GENERAL_REGS) #define BASE_REG_CLASS (TARGET_THUMB ? BASE_REGS : GENERAL_REGS) +/* For the Thumb the high registers cannot be used as base + registers when addressing quanitities in QI or HI mode. */ +#define MODE_BASE_REG_CLASS(MODE) \ + (TARGET_ARM ? BASE_REGS : \ + (((MODE) == QImode || (MODE) == HImode || (MODE) == VOIDmode) \ + ? LO_REGS : BASE_REGS)) + /* When SMALL_REGISTER_CLASSES is nonzero, the compiler allows registers explicitly used in the rtl to be used as spill registers but prevents the compiler from extending the lifetime of these |
