diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2013-09-09 13:07:02 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2013-09-09 13:07:02 +0000 |
commit | 69a59f0fa9b65198e4c1f87265105d396a598ea5 (patch) | |
tree | a5201ad7e75918350ccb6467b3fc9ff8b667c680 /gcc/expmed.c | |
parent | 2f1cd2ebd65eae6d87332c0bcd5d0e840c886cf3 (diff) | |
download | gcc-69a59f0fa9b65198e4c1f87265105d396a598ea5.zip gcc-69a59f0fa9b65198e4c1f87265105d396a598ea5.tar.gz gcc-69a59f0fa9b65198e4c1f87265105d396a598ea5.tar.bz2 |
gcc/
* combine.c (simplify_set, expand_field_assignment, extract_left_shift)
(force_to_mode, simplify_shift_const_1, simplify_comparison):
Use gen_int_mode with the mode of the associated simplify_* call.
* explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
* expmed.c (expand_shift_1): Likewise.
* function.c (instantiate_virtual_regs_in_insn): Likewise.
* loop-iv.c (iv_number_of_iterations): Likewise.
* loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
* simplify-rtx.c (simplify_binary_operation_1): Likewise.
From-SVN: r202393
Diffstat (limited to 'gcc/expmed.c')
-rw-r--r-- | gcc/expmed.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/gcc/expmed.c b/gcc/expmed.c index f0a4837..747231f 100644 --- a/gcc/expmed.c +++ b/gcc/expmed.c @@ -2214,11 +2214,10 @@ expand_shift_1 (enum tree_code code, enum machine_mode mode, rtx shifted, other_amount = simplify_gen_unary (NEG, GET_MODE (op1), op1, GET_MODE (op1)); + HOST_WIDE_INT mask = GET_MODE_PRECISION (mode) - 1; other_amount - = simplify_gen_binary (AND, GET_MODE (op1), - other_amount, - GEN_INT (GET_MODE_PRECISION (mode) - - 1)); + = simplify_gen_binary (AND, GET_MODE (op1), other_amount, + gen_int_mode (mask, GET_MODE (op1))); } shifted = force_reg (mode, shifted); |