aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-02-22 07:53:15 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1995-02-22 07:53:15 -0500
commit57e1b65caaf247d5ac9022ff20586c7d43a1931c (patch)
treec22de8ebefc9257403604d594da31bebe5323426
parent5a1a6efdc8d44a07d2099f63250740a90ac4356c (diff)
downloadgcc-57e1b65caaf247d5ac9022ff20586c7d43a1931c.zip
gcc-57e1b65caaf247d5ac9022ff20586c7d43a1931c.tar.gz
gcc-57e1b65caaf247d5ac9022ff20586c7d43a1931c.tar.bz2
(output_move_double): Let split_double extract any constant in op 1;
take size from op 0. From-SVN: r9029
-rw-r--r--gcc/config/i386/i386.c17
1 files changed, 2 insertions, 15 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 2921d9f..2182a91 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -419,7 +419,7 @@ output_move_double (operands)
rtx xops[2];
rtx addreg0 = 0, addreg1 = 0;
int dest_overlapped_low = 0;
- int size = GET_MODE_SIZE (GET_MODE (operands[1]));
+ int size = GET_MODE_SIZE (GET_MODE (operands[0]));
middlehalf[0] = 0;
middlehalf[1] = 0;
@@ -575,20 +575,7 @@ output_move_double (operands)
else if (optype1 == OFFSOP)
latehalf[1] = adj_offsettable_operand (operands[1], 4);
else if (optype1 == CNSTOP)
- {
- if (GET_CODE (operands[1]) == CONST_DOUBLE)
- split_double (operands[1], &operands[1], &latehalf[1]);
- else if (CONSTANT_P (operands[1]))
- {
- /* ??? jrv: Can this really happen? A DImode constant
- that isn't a CONST_DOUBLE? */
- if (GET_CODE (operands[1]) == CONST_INT
- && INTVAL (operands[1]) < 0)
- latehalf[1] = constm1_rtx;
- else
- latehalf[1] = const0_rtx;
- }
- }
+ split_double (operands[1], &operands[1], &latehalf[1]);
else
latehalf[1] = operands[1];
}