diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-11-05 14:25:31 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-11-05 14:25:31 -0500 |
commit | 9c05a5ad826fcfabba5ad86d311d3c5715fba75a (patch) | |
tree | 028c3d78f07c6b5c0ef6b04c5a50ca625b2e2ce8 /gcc | |
parent | db907e7b328c592615f5d553467938d120bba9c6 (diff) | |
download | gcc-9c05a5ad826fcfabba5ad86d311d3c5715fba75a.zip gcc-9c05a5ad826fcfabba5ad86d311d3c5715fba75a.tar.gz gcc-9c05a5ad826fcfabba5ad86d311d3c5715fba75a.tar.bz2 |
(PREFERRED_RELOAD_CLASS): FP constants rejected by 'G' are OK for
class FP_REGS.
From-SVN: r8395
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/m68k/m68k.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h index c7ce888..28a8ac3 100644 --- a/gcc/config/m68k/m68k.h +++ b/gcc/config/m68k/m68k.h @@ -677,8 +677,9 @@ extern enum reg_class regno_reg_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 - if possible. */ + 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. */ #define PREFERRED_RELOAD_CLASS(X,CLASS) \ ((GET_CODE (X) == CONST_INT \ @@ -689,7 +690,9 @@ extern enum reg_class regno_reg_class[]; ? DATA_REGS \ : (GET_CODE (X) == CONST_DOUBLE \ && GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT) \ - ? NO_REGS \ + ? (! CONST_DOUBLE_OK_FOR_LETTER_P (X, 'G') \ + && CLASS == FP_REGS \ + ? FP_REGS : NO_REGS) \ : (CLASS)) /* Return the maximum number of consecutive registers |