diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1994-11-05 19:25:31 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1994-11-05 19:25:31 +0000 |
commit | 832db38ba61ebb742b29e9a2b3c51c0a55f236ea (patch) | |
tree | 028c3d78f07c6b5c0ef6b04c5a50ca625b2e2ce8 /gcc/config/m68k/m68k.h | |
parent | 148b08de94a869cd5b256a341ddfb2c1fb54a8b4 (diff) | |
download | gcc-832db38ba61ebb742b29e9a2b3c51c0a55f236ea.tar.gz |
(PREFERRED_RELOAD_CLASS): FP constants rejected by 'G' are OK for
class FP_REGS.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8395 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/m68k/m68k.h')
-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 c7ce888f1e3..28a8ac3f23a 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 |