diff mbox

[ARM] PR target/70014

Message ID 56D5D254.4050308@linaro.org
State New
Headers show

Commit Message

Michael Collison March 1, 2016, 5:33 p.m. UTC
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.

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

Comments

Richard Earnshaw (lists) March 1, 2016, 5:39 p.m. UTC | #1
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"

>
diff mbox

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