aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>1999-06-27 22:23:36 -0600
committerJeff Law <law@gcc.gnu.org>1999-06-27 22:23:36 -0600
commit9839cd625197ee045786870e35036d14e5b92056 (patch)
tree7519e00a9c604ddd0520c6ddd4ac101ce43fe761 /gcc
parent9f81f5231bda79b16bb8b72bc59467c2cc81a289 (diff)
downloadgcc-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.h16
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)) \