From d58c1a38e5c0ce489f788694a079433dc4b2be61 Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Wed, 6 Jul 2011 23:56:28 +0000 Subject: revert: simplify-rtx.c (simplify_const_binary_operation): Use the shift_truncation_mask hook instead of performing modulo by width. Revert: * simplify-rtx.c (simplify_const_binary_operation): Use the shift_truncation_mask hook instead of performing modulo by width. Compare against mode precision, not bitsize. * combine.c (combine_simplify_rtx, simplify_shift_const_1): Use shift_truncation_mask instead of constructing the value manually. From-SVN: r175949 --- gcc/simplify-rtx.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gcc/simplify-rtx.c') diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index 5a98b69..82b818b 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -3768,8 +3768,8 @@ simplify_const_binary_operation (enum rtx_code code, enum machine_mode mode, shift_truncation_mask, since the shift might not be part of an ashlM3, lshrM3 or ashrM3 instruction. */ if (SHIFT_COUNT_TRUNCATED) - arg1 &= targetm.shift_truncation_mask (mode); - else if (arg1 < 0 || arg1 >= GET_MODE_PRECISION (mode)) + arg1 = (unsigned HOST_WIDE_INT) arg1 % width; + else if (arg1 < 0 || arg1 >= GET_MODE_BITSIZE (mode)) return 0; val = (code == ASHIFT -- cgit v1.1