This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][ARM] PR target/70014
- From: "Richard Earnshaw (lists)" <Richard dot Earnshaw at arm dot com>
- To: Michael Collison <michael dot collison at linaro dot org>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Cc: Richard Earnshaw <rearnsha at arm dot com>, kyrylo dot tkachov at arm dot com, Ramana Radhakrishnan <Ramana dot Radhakrishnan at arm dot com>
- Date: Tue, 1 Mar 2016 17:39:44 +0000
- Subject: Re: [PATCH][ARM] PR target/70014
- Authentication-results: sourceware.org; auth=none
- References: <56D5D254 dot 4050308 at linaro dot org>
On 01/03/16 17:33, Michael Collison wrote:
> This patches addresses PR 70014, where the predicates and operand do not
> match and could cause problems with the register allocator. Tested
> successfully on
>
> arm-none-linux-gnueabi
> arm-none-linux-gnuabihf
> armeb-none-linux-gnuabihf
> arm-none-eabi
>
> Okay for trunk?
>
> 2016-03-01 Michael Collison <michael.collison@linaro.org>
>
> PR target/70014
> * config/arm/arm.md (*subsi3_carryin_const): Change predicate
> for operand 1 to s_register_operand. Change predicate for operand
> 2 to arm_not_immediate_operand.
>
OK.
R.
>
> bugzilla-70014-upstream.patch
>
>
> diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
> index e67239d..47171b9 100644
> --- a/gcc/config/arm/arm.md
> +++ b/gcc/config/arm/arm.md
> @@ -883,8 +883,8 @@
>
> (define_insn "*subsi3_carryin_const"
> [(set (match_operand:SI 0 "s_register_operand" "=r")
> - (minus:SI (plus:SI (match_operand:SI 1 "reg_or_int_operand" "r")
> - (match_operand:SI 2 "arm_not_operand" "K"))
> + (minus:SI (plus:SI (match_operand:SI 1 "s_register_operand" "r")
> + (match_operand:SI 2 "arm_not_immediate_operand" "K"))
> (ltu:SI (reg:CC_C CC_REGNUM) (const_int 0))))]
> "TARGET_32BIT"
> "sbc\\t%0, %1, #%B2"
>