aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2014-02-11 15:48:08 +0000
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>2014-02-11 15:48:08 +0000
commit7cb14cb8e60b629b531e5b81ea5f88637228c160 (patch)
tree72257e7b47fa350ecfda49c1e99c401abe3c7f12 /gcc
parent6d3715b90d7c024028af78b512c6796d3369f705 (diff)
downloadgcc-7cb14cb8e60b629b531e5b81ea5f88637228c160.zip
gcc-7cb14cb8e60b629b531e5b81ea5f88637228c160.tar.gz
gcc-7cb14cb8e60b629b531e5b81ea5f88637228c160.tar.bz2
[ARM] Adjust thumb2_movhi_insn pattern for -mrestrict-it.
* config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for arm_restrict_it. From-SVN: r207692
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/arm/thumb2.md14
2 files changed, 14 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e425b02..b8e3ef8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/arm/thumb2.md b/gcc/config/arm/thumb2.md
index 4f247f8..d84938f 100644
--- a/gcc/config/arm/thumb2.md
+++ b/gcc/config/arm/thumb2.md
@@ -317,20 +317,24 @@
;; 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"