diff options
author | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 1993-08-19 23:17:58 +0000 |
---|---|---|
committer | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 1993-08-19 23:17:58 +0000 |
commit | 6f20c838a16f45837863d8c2c779e7c26fa5849a (patch) | |
tree | bd41c60a70e270afeb4e9c5bbad9d5c31c44bfe3 /gcc/combine.c | |
parent | 6bb4be79bd5cc0f44efbca33a671ba76a7457ff1 (diff) | |
download | gcc-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.c | 6 |
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; |