Commit 9c05a5ad by Richard Kenner

(PREFERRED_RELOAD_CLASS): FP constants rejected by 'G' are OK for

class FP_REGS.

From-SVN: r8395
parent db907e7b
...@@ -677,8 +677,9 @@ extern enum reg_class regno_reg_class[]; ...@@ -677,8 +677,9 @@ extern enum reg_class regno_reg_class[];
On the 68000 series, use a data reg if possible when the On the 68000 series, use a data reg if possible when the
value is a constant in the range where moveq could be used value is a constant in the range where moveq could be used
and we ensure that QImodes are reloaded into data regs. and we ensure that QImodes are reloaded into data regs.
Also, if a floating constant needs reloading, put it in memory Also, if a floating constant needs reloading, put it in memory.
if possible. */ 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) \ #define PREFERRED_RELOAD_CLASS(X,CLASS) \
((GET_CODE (X) == CONST_INT \ ((GET_CODE (X) == CONST_INT \
...@@ -689,7 +690,9 @@ extern enum reg_class regno_reg_class[]; ...@@ -689,7 +690,9 @@ extern enum reg_class regno_reg_class[];
? DATA_REGS \ ? DATA_REGS \
: (GET_CODE (X) == CONST_DOUBLE \ : (GET_CODE (X) == CONST_DOUBLE \
&& GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT) \ && 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)) : (CLASS))
/* Return the maximum number of consecutive registers /* Return the maximum number of consecutive registers
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment