OSDN Git Service

(output_move_double): Let split_double extract any constant in op 1;
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 22 Feb 1995 12:53:15 +0000 (12:53 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 22 Feb 1995 12:53:15 +0000 (12:53 +0000)
take size from op 0.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9029 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/i386/i386.c

index 2921d9f..2182a91 100644 (file)
@@ -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];
     }