]> gcc.gnu.org Git - gcc.git/blobdiff - gcc/config/arm/arm.md
[Arm] Add 16-bit thumb alternatives to iorsi3_compare0[_scratch]
[gcc.git] / gcc / config / arm / arm.md
index 50e1b908f59ccdf8b0d866d9f7b0f7f3050750ea..4ba246ceeee8ea991220c8527bceb101d0abdf42 100644 (file)
 
 (define_insn "*iorsi3_compare0"
   [(set (reg:CC_NOOV CC_REGNUM)
-       (compare:CC_NOOV (ior:SI (match_operand:SI 1 "s_register_operand" "%r,r")
-                                (match_operand:SI 2 "arm_rhs_operand" "I,r"))
-                        (const_int 0)))
-   (set (match_operand:SI 0 "s_register_operand" "=r,r")
+       (compare:CC_NOOV
+        (ior:SI (match_operand:SI 1 "s_register_operand" "%r,0,r")
+                (match_operand:SI 2 "arm_rhs_operand" "I,l,r"))
+        (const_int 0)))
+   (set (match_operand:SI 0 "s_register_operand" "=r,l,r")
        (ior:SI (match_dup 1) (match_dup 2)))]
   "TARGET_32BIT"
   "orrs%?\\t%0, %1, %2"
   [(set_attr "conds" "set")
-   (set_attr "type" "logics_imm,logics_reg")]
+   (set_attr "arch" "*,t2,*")
+   (set_attr "length" "4,2,4")
+   (set_attr "type" "logics_imm,logics_reg,logics_reg")]
 )
 
 (define_insn "*iorsi3_compare0_scratch"
   [(set (reg:CC_NOOV CC_REGNUM)
-       (compare:CC_NOOV (ior:SI (match_operand:SI 1 "s_register_operand" "%r,r")
-                                (match_operand:SI 2 "arm_rhs_operand" "I,r"))
-                        (const_int 0)))
-   (clobber (match_scratch:SI 0 "=r,r"))]
+       (compare:CC_NOOV
+        (ior:SI (match_operand:SI 1 "s_register_operand" "%r,0,r")
+                (match_operand:SI 2 "arm_rhs_operand" "I,l,r"))
+        (const_int 0)))
+   (clobber (match_scratch:SI 0 "=r,l,r"))]
   "TARGET_32BIT"
   "orrs%?\\t%0, %1, %2"
   [(set_attr "conds" "set")
-   (set_attr "type" "logics_imm,logics_reg")]
+   (set_attr "arch" "*,t2,*")
+   (set_attr "length" "4,2,4")
+   (set_attr "type" "logics_imm,logics_reg,logics_reg")]
 )
 
 (define_expand "xordi3"
This page took 0.036894 seconds and 5 git commands to generate.