Commit 79438502 by Jim Wilson

(mips_const_double_ok): Accept VOIDmode not DImode.

(mips_move_1word): Accept VOIDmode CONST_DOUBLE.

From-SVN: r8526
parent 84ef8e1d
...@@ -478,7 +478,7 @@ mips_const_double_ok (op, mode) ...@@ -478,7 +478,7 @@ mips_const_double_ok (op, mode)
if (GET_CODE (op) != CONST_DOUBLE) if (GET_CODE (op) != CONST_DOUBLE)
return FALSE; return FALSE;
if (mode == DImode) if (mode == VOIDmode)
return TRUE; return TRUE;
if (mode != SFmode && mode != DFmode) if (mode != SFmode && mode != DFmode)
...@@ -1016,8 +1016,18 @@ mips_move_1word (operands, insn, unsignedp) ...@@ -1016,8 +1016,18 @@ mips_move_1word (operands, insn, unsignedp)
} }
} }
else if (code1 == CONST_INT) else if (code1 == CONST_INT
|| (code1 == CONST_DOUBLE
&& GET_MODE (op1) == VOIDmode))
{ {
if (code1 == CONST_DOUBLE)
{
/* This can happen when storing constants into long long
bitfields. Just store the least significant word of
the value. */
operands[1] = op1 = GEN_INT (CONST_DOUBLE_LOW (op1));
}
if (INTVAL (op1) == 0) if (INTVAL (op1) == 0)
{ {
if (GP_REG_P (regno0)) if (GP_REG_P (regno0))
......
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