diff options
author | Richard Henderson <rth@cygnus.com> | 1999-06-27 22:23:36 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1999-06-27 22:23:36 -0600 |
commit | 9839cd625197ee045786870e35036d14e5b92056 (patch) | |
tree | 7519e00a9c604ddd0520c6ddd4ac101ce43fe761 /gcc | |
parent | 9f81f5231bda79b16bb8b72bc59467c2cc81a289 (diff) | |
download | gcc-9839cd625197ee045786870e35036d14e5b92056.zip gcc-9839cd625197ee045786870e35036d14e5b92056.tar.gz gcc-9839cd625197ee045786870e35036d14e5b92056.tar.bz2 |
m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles to memory.
P
* m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
to memory.
From-SVN: r27805
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/m68k/m68k.h | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h index 83af590..aed42c5 100644 --- a/gcc/config/m68k/m68k.h +++ b/gcc/config/m68k/m68k.h @@ -461,6 +461,8 @@ extern int target_flags; if (TEST_HARD_REG_BIT (x, i)) \ fixed_regs[i] = call_used_regs[i] = 1; \ } \ + if (flag_pic) \ + fixed_regs[PIC_OFFSET_TABLE_REGNUM] = 1 \ } #endif /* defined SUPPORT_SUN_FPA */ @@ -811,10 +813,7 @@ extern enum reg_class regno_reg_class[]; in some cases it is preferable to use a more restrictive class. On the 68000 series, use a data reg if possible when the value is a constant in the range where moveq could be used - and we ensure that QImodes are reloaded into data regs. - Also, if a floating constant needs reloading, put it in memory. - Don't do this for !G constants, since all patterns in the md file - expect them to be loaded into a register via fpmovecr. See above. */ + and we ensure that QImodes are reloaded into data regs. */ #define PREFERRED_RELOAD_CLASS(X,CLASS) \ ((GET_CODE (X) == CONST_INT \ @@ -823,11 +822,10 @@ extern enum reg_class regno_reg_class[]; ? DATA_REGS \ : (GET_MODE (X) == QImode && (CLASS) != ADDR_REGS) \ ? DATA_REGS \ - : (GET_CODE (X) == CONST_DOUBLE \ - && GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT) \ - ? (! CONST_DOUBLE_OK_FOR_LETTER_P (X, 'G') \ - && (CLASS == FP_REGS || CLASS == DATA_OR_FP_REGS) \ - ? FP_REGS : NO_REGS) \ + : (GET_CODE (X) == CONST_DOUBLE \ + && GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT) \ + ? (TARGET_68881 && (CLASS == FP_REGS || CLASS == DATA_OR_FP_REGS) \ + ? FP_REGS : NO_REGS) \ : (TARGET_PCREL \ && (GET_CODE (X) == SYMBOL_REF || GET_CODE (X) == CONST \ || GET_CODE (X) == LABEL_REF)) \ |