summaryrefslogtreecommitdiff
path: root/gcc/combine.c
diff options
context:
space:
mode:
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>1993-08-19 23:17:58 +0000
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>1993-08-19 23:17:58 +0000
commit6f20c838a16f45837863d8c2c779e7c26fa5849a (patch)
treebd41c60a70e270afeb4e9c5bbad9d5c31c44bfe3 /gcc/combine.c
parent6bb4be79bd5cc0f44efbca33a671ba76a7457ff1 (diff)
downloadgcc-6f20c838a16f45837863d8c2c779e7c26fa5849a.tar.gz
(simplify_shift_const, XOR case): When applying
distributive law, use shift_mode and GET_MODE (varop) instead of result_mode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@5189 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/combine.c')
-rw-r--r--gcc/combine.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index 6a39d876bf7..20694090c59 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -7600,12 +7600,12 @@ simplify_shift_const (x, code, result_mode, varop, count)
logical expression, make a new logical expression, and apply
the inverse distributive law. */
{
- rtx lhs = simplify_shift_const (NULL_RTX, code, result_mode,
+ rtx lhs = simplify_shift_const (NULL_RTX, code, shift_mode,
XEXP (varop, 0), count);
- rtx rhs = simplify_shift_const (NULL_RTX, code, result_mode,
+ rtx rhs = simplify_shift_const (NULL_RTX, code, shift_mode,
XEXP (varop, 1), count);
- varop = gen_binary (GET_CODE (varop), result_mode, lhs, rhs);
+ varop = gen_binary (GET_CODE (varop), GET_MODE (varop), lhs, rhs);
varop = apply_distributive_law (varop);
count = 0;