Commit eb4e8003 by Richard Kenner

(input_operand): Allow "easy" FP constants.

From-SVN: r5241
parent 87935f60
...@@ -405,14 +405,21 @@ input_operand (op, mode) ...@@ -405,14 +405,21 @@ input_operand (op, mode)
register rtx op; register rtx op;
enum machine_mode mode; enum machine_mode mode;
{ {
/* Memory is always valid. */
if (memory_operand (op, mode)) if (memory_operand (op, mode))
return 1; return 1;
/* For floating-point or multi-word mode, only register or memory /* For floating-point, easy constants are valid. */
is valid. */ if (GET_MODE_CLASS (mode) == MODE_FLOAT
&& CONSTANT_P (op)
&& easy_fp_constant (op, mode))
return 1;
/* For floating-point or multi-word mode, the only remaining valid type
is a register. */
if (GET_MODE_CLASS (mode) == MODE_FLOAT if (GET_MODE_CLASS (mode) == MODE_FLOAT
|| GET_MODE_SIZE (mode) > UNITS_PER_WORD) || GET_MODE_SIZE (mode) > UNITS_PER_WORD)
return gpc_reg_operand (op, mode); return register_operand (op, mode);
/* The only cases left are integral modes one word or smaller (we /* The only cases left are integral modes one word or smaller (we
do not get called for MODE_CC values). These can be in any do not get called for MODE_CC values). These can be in any
......
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