OSDN Git Service

(emit_group_load): Call operand_subword instead of creating
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Mar 1997 22:25:56 +0000 (22:25 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Mar 1997 22:25:56 +0000 (22:25 +0000)
an explicit SUBREG.

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

gcc/expr.c

index 5e5cb10..8797596 100644 (file)
@@ -1802,9 +1802,11 @@ emit_group_load (x, y)
             to allow for AIX with 4 DF arguments after a single SI arg.  The
             last DF argument will only load 1 word into the integer registers,
             but load a DF value into the float registers.  */
-         else if (GET_MODE_SIZE (GET_MODE (target_reg))
-                  <= GET_MODE_SIZE (GET_MODE (y)))
-           source = gen_rtx (SUBREG, GET_MODE (target_reg), y, 0);
+         else if ((GET_MODE_SIZE (GET_MODE (target_reg))
+                   <= GET_MODE_SIZE (GET_MODE (y)))
+                  && GET_MODE (target_reg) == word_mode)
+           /* This might be a const_double, so we can't just use SUBREG.  */
+           source = operand_subword (y, 0, 0, VOIDmode);
          else
            abort ();       
        }