diff options
Diffstat (limited to 'gcc/config/mips/mips.h')
-rw-r--r-- | gcc/config/mips/mips.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index 1ff81cbb2cd..e723dfc2a70 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -2043,10 +2043,15 @@ extern enum reg_class mips_char_to_class[]; : CLASS_UNITS (MODE, UNITS_PER_WORD)) /* If defined, gives a class of registers that cannot be used as the - operand of a SUBREG that changes the size of the object. */ + operand of a SUBREG that changes the mode of the object illegally. */ -#define CLASS_CANNOT_CHANGE_SIZE \ +#define CLASS_CANNOT_CHANGE_MODE \ (TARGET_FLOAT64 && ! TARGET_64BIT ? FP_REGS : NO_REGS) + +/* Defines illegal mode changes for CLASS_CANNOT_CHANGE_MODE. */ + +#define CLASS_CANNOT_CHANGE_MODE_P(FROM,TO) \ + (GET_MODE_SIZE (FROM) != GET_MODE_SIZE (TO)) /* Stack layout; function entry, exit and calling. */ |