diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a7c72791acb..b80cd8bd883 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2011-09-19 Paul Brook + + gcc/ + * config/arm/predicates.md (shift_amount_operand): Check constant + shift count is in range. + (const_shift_operand): Remove. + 2011-09-18 Eric Botcazou Iain Sandoe diff --git a/gcc/config/arm/predicates.md b/gcc/config/arm/predicates.md index c7d6206b138..df8990ea648 100644 --- a/gcc/config/arm/predicates.md +++ b/gcc/config/arm/predicates.md @@ -132,7 +132,8 @@ (define_predicate "shift_amount_operand" (ior (and (match_test "TARGET_ARM") (match_operand 0 "s_register_operand")) - (match_operand 0 "const_int_operand"))) + (and (match_code "const_int") + (match_test "((unsigned HOST_WIDE_INT) INTVAL (op)) < 32")))) (define_predicate "arm_add_operand" (ior (match_operand 0 "arm_rhs_operand") @@ -344,12 +345,6 @@ (and (match_code "reg,subreg,mem") (match_operand 0 "nonimmediate_soft_df_operand")))) -(define_predicate "const_shift_operand" - (and (match_code "const_int") - (ior (match_operand 0 "power_of_two_operand") - (match_test "((unsigned HOST_WIDE_INT) INTVAL (op)) < 32")))) - - (define_special_predicate "load_multiple_operation" (match_code "parallel") {