]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[ARM] Adjust thumb2_movhi_insn pattern for -mrestrict-it.
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Tue, 11 Feb 2014 15:48:08 +0000 (15:48 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Tue, 11 Feb 2014 15:48:08 +0000 (15:48 +0000)
* config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
arm_restrict_it.

From-SVN: r207692

gcc/ChangeLog
gcc/config/arm/thumb2.md

index e425b02682895231a762fbbdb70b7b1427dfc2f4..b8e3ef8d364189172cad67cfa6702acf5ed99418 100644 (file)
@@ -1,3 +1,8 @@
+2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
+       arm_restrict_it.
+
 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
 
        * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
index 4f247f82bf4754eabc6498ed1176466d97cff1fa..d84938f304e32940dc1b44c98581e506a2fce01a 100644 (file)
 ;; Thumb-2 always has load/store halfword instructions, so we can avoid a lot
 ;; of the messiness associated with the ARM patterns.
 (define_insn "*thumb2_movhi_insn"
-  [(set (match_operand:HI 0 "nonimmediate_operand" "=r,r,m,r")
-       (match_operand:HI 1 "general_operand"      "rI,n,r,m"))]
+  [(set (match_operand:HI 0 "nonimmediate_operand" "=r,r,l,r,m,r")
+       (match_operand:HI 1 "general_operand"      "r,I,Py,n,r,m"))]
   "TARGET_THUMB2
   && (register_operand (operands[0], HImode)
      || register_operand (operands[1], HImode))"
   "@
+   mov%?\\t%0, %1\\t%@ movhi
+   mov%?\\t%0, %1\\t%@ movhi
    mov%?\\t%0, %1\\t%@ movhi
    movw%?\\t%0, %L1\\t%@ movhi
    str%(h%)\\t%1, %0\\t%@ movhi
    ldr%(h%)\\t%0, %1\\t%@ movhi"
-  [(set_attr "type" "mov_imm,mov_reg,store1,load1")
+  [(set_attr "type" "mov_reg,mov_imm,mov_imm,mov_reg,store1,load1")
    (set_attr "predicable" "yes")
-   (set_attr "pool_range" "*,*,*,4094")
-   (set_attr "neg_pool_range" "*,*,*,250")]
+   (set_attr "predicable_short_it" "yes,no,yes,no,no,no")
+   (set_attr "length" "2,4,2,4,4,4")
+   (set_attr "pool_range" "*,*,*,*,*,4094")
+   (set_attr "neg_pool_range" "*,*,*,*,*,250")]
 )
 
 (define_insn "*thumb2_storewb_pairsi"