arm/arm.c (output_move_double): Extract DFmode constants using

REAL_VALUE_TO_TARGET_DOUBLE.

From-SVN: r10720
This commit is contained in:
Richard Earnshaw 1995-12-14 22:21:54 +00:00
parent f92213c8c6
commit 226a50517f
1 changed files with 16 additions and 4 deletions

View File

@ -2900,10 +2900,22 @@ output_move_double (operands)
}
else if (code1 == CONST_DOUBLE)
{
otherops[1] = gen_rtx (CONST_INT, VOIDmode,
CONST_DOUBLE_HIGH (operands[1]));
operands[1] = gen_rtx (CONST_INT, VOIDmode,
CONST_DOUBLE_LOW (operands[1]));
if (GET_MODE (operands[1]) == DFmode)
{
long l[2];
union real_extract u;
bcopy ((char *) &CONST_DOUBLE_LOW (operands[1]), (char *) &u,
sizeof (u));
REAL_VALUE_TO_TARGET_DOUBLE (u.d, l);
otherops[1] = GEN_INT(l[1]);
operands[1] = GEN_INT(l[0]);
}
else
{
otherops[1] = GEN_INT (CONST_DOUBLE_HIGH (operands[1]));
operands[1] = GEN_INT (CONST_DOUBLE_LOW (operands[1]));
}
output_mov_immediate (operands, FALSE, "");
output_mov_immediate (otherops, FALSE, "");
}