aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@yorick.cygnus.com>1999-07-27 10:23:05 +0000
committerJason Merrill <jason@gcc.gnu.org>1999-07-27 06:23:05 -0400
commita5efcd6370a04e0fe8b7e64a36fd80f2cf22aef3 (patch)
tree72446ba3904c9193a882b47fd480893835e23205
parent3c56dbcfe29dc4053c0ec20f0dc43f76d039c97b (diff)
downloadgcc-a5efcd6370a04e0fe8b7e64a36fd80f2cf22aef3.zip
gcc-a5efcd6370a04e0fe8b7e64a36fd80f2cf22aef3.tar.gz
gcc-a5efcd6370a04e0fe8b7e64a36fd80f2cf22aef3.tar.bz2
expr.c (expand_expr, [...]): Get the mode from the tree for op1, not the rtl.
* expr.c (expand_expr, case PLUS_EXPR): Get the mode from the tree for op1, not the rtl. From-SVN: r28292
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/expr.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3046572..3d5b4d7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Tue Jul 27 03:15:33 1999 Jason Merrill <jason@yorick.cygnus.com>
+
+ * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
+ tree for op1, not the rtl.
+
Tue Jul 27 00:18:34 1999 Richard Henderson <rth@cygnus.com>
* m88k.c (m88k_builtin_saveregs): Break out the constructor code
diff --git a/gcc/expr.c b/gcc/expr.c
index e22c1df..e240961 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -4018,7 +4018,9 @@ store_constructor (exp, target, cleared)
int cleared;
{
tree type = TREE_TYPE (exp);
+#ifdef WORD_REGISTER_OPERATIONS
rtx exp_size = expr_size (exp);
+#endif
/* We know our target cannot conflict, since safe_from_p has been called. */
#if 0
@@ -6955,7 +6957,7 @@ expand_expr (exp, target, tmode, modifier)
constant_part
= immed_double_const (TREE_INT_CST_LOW (TREE_OPERAND (exp, 0)),
(HOST_WIDE_INT) 0,
- GET_MODE (op1));
+ TYPE_MODE (TREE_TYPE (TREE_OPERAND (exp, 1))));
op1 = plus_constant (op1, INTVAL (constant_part));
if (modifier != EXPAND_SUM && modifier != EXPAND_INITIALIZER)
op1 = force_operand (op1, target);