From: Kyrylo Tkachov Date: Tue, 11 Feb 2014 15:48:08 +0000 (+0000) Subject: [ARM] Adjust thumb2_movhi_insn pattern for -mrestrict-it. X-Git-Tag: releases/gcc-4.9.0~964 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7cb14cb8e60b629b531e5b81ea5f88637228c160;p=thirdparty%2Fgcc.git [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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e425b0268289..b8e3ef8d3641 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-02-11 Kyrylo Tkachov + + * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for + arm_restrict_it. + 2014-02-11 Renlin Li * 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 4f247f82bf47..d84938f304e3 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"