Re: [PATCH][ARM] PR target/70014

2016-03-01 Thread Richard Earnshaw (lists)
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  
> 
> 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"
> 



[PATCH][ARM] PR target/70014

2016-03-01 Thread Michael Collison
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  

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.

--
Michael Collison
Linaro Toolchain Working Group
michael.colli...@linaro.org

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"
-- 
1.9.1