diff options
author | Richard Earnshaw <rearnsha@arm.com> | 2003-06-14 15:54:02 +0000 |
---|---|---|
committer | Richard Earnshaw <rearnsha@gcc.gnu.org> | 2003-06-14 15:54:02 +0000 |
commit | 75d2580c0cc46323711df161593281bceb50a99d (patch) | |
tree | 222da06efb090bffff370b9ef6adc124764db20c | |
parent | 3708da2ac564f6f5834fafa0c9d57227d356912e (diff) | |
download | gcc-75d2580c0cc46323711df161593281bceb50a99d.zip gcc-75d2580c0cc46323711df161593281bceb50a99d.tar.gz gcc-75d2580c0cc46323711df161593281bceb50a99d.tar.bz2 |
re PR target/11183 ([arm] ICE in change_address_1 (3.3) / subreg_hard_regno (3.4))
PR target/11183
* arm.h (CANNOT_CHANGE_MODE_CLASS): Define.
From-SVN: r67947
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/arm/arm.h | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fd2c294..4713756 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-06-14 Richard Earnshaw <rearnsha@arm.com> + + PR target/11183 + * arm.h (CANNOT_CHANGE_MODE_CLASS): Define. + 2003-06-14 Roger Sayle <roger@eyesopen.com> * opts.sh: Work around a mysterious feature in cygwin's gawk diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index cffdd3b..acec706 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -1146,6 +1146,12 @@ enum reg_class or could index an array. */ #define REGNO_REG_CLASS(REGNO) arm_regno_class (REGNO) +/* FPA registers can't do dubreg as all values are reformatted to internal + precision. */ +#define CANNOT_CHANGE_MODE_CLASS(FROM, TO, CLASS) \ + (GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO) \ + ? reg_classes_intersect_p (FPA_REGS, (CLASS)) : 0) + /* The class value for index registers, and the one for base regs. */ #define INDEX_REG_CLASS (TARGET_THUMB ? LO_REGS : GENERAL_REGS) #define BASE_REG_CLASS (TARGET_THUMB ? LO_REGS : GENERAL_REGS) |