OSDN Git Service

(emit_group_store): For REG case, call gen_lowpart if
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 12 Nov 1996 23:46:05 +0000 (23:46 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 12 Nov 1996 23:46:05 +0000 (23:46 +0000)
modes are different.

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

gcc/expr.c

index 60501a5..15e036b 100644 (file)
@@ -1846,7 +1846,11 @@ emit_group_store (x, y)
                                 plus_constant (XEXP (x, 0),
                                                INTVAL (XEXP (element, 1))));
       else if (XEXP (element, 1) == const0_rtx)
                                 plus_constant (XEXP (x, 0),
                                                INTVAL (XEXP (element, 1))));
       else if (XEXP (element, 1) == const0_rtx)
-       target = x;
+       {
+         target = x;
+         if (GET_MODE (target) != GET_MODE (source_reg))
+           target = gen_lowpart (GET_MODE (source_reg), target);
+       }
       else
        abort ();
 
       else
        abort ();