aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1996-11-12 15:46:05 -0800
committerJim Wilson <wilson@gcc.gnu.org>1996-11-12 15:46:05 -0800
commit71bc03306f3af0276168377592b039a6f2831f68 (patch)
treef911bc149f1f0344628bfc6b6cac4ba07b336cae
parentca8a7793bf14b4578df375988254cd2eb911ded0 (diff)
downloadgcc-71bc03306f3af0276168377592b039a6f2831f68.zip
gcc-71bc03306f3af0276168377592b039a6f2831f68.tar.gz
gcc-71bc03306f3af0276168377592b039a6f2831f68.tar.bz2
(emit_group_store): For REG case, call gen_lowpart if
modes are different. From-SVN: r13152
-rw-r--r--gcc/expr.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 60501a5..15e036b 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -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)
- target = x;
+ {
+ target = x;
+ if (GET_MODE (target) != GET_MODE (source_reg))
+ target = gen_lowpart (GET_MODE (source_reg), target);
+ }
else
abort ();