Commit a75c63e0 by Christophe Lyon Committed by Christophe Lyon

[PR target/67591] ARM v8 Thumb IT blocks are deprecated

2017-09-15  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/67591
	* config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute.
	(*cmp_ior): Likewise.
	(*ior_scc_scc): Add alternative for enabled_for_depr_it attribute.
	(*ior_scc_scc_cmp): Likewise.
	(*and_scc_scc): Likewise.
	(*and_scc_scc_cmp): Likewise.

From-SVN: r252817
parent 0d803030
2017-09-15 Christophe Lyon <christophe.lyon@linaro.org>
PR target/67591
* config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute.
(*cmp_ior): Likewise.
(*ior_scc_scc): Add alternative for enabled_for_depr_it attribute.
(*ior_scc_scc_cmp): Likewise.
(*and_scc_scc): Likewise.
(*and_scc_scc_cmp): Likewise.
2017-09-15 Richard Sandiford <richard.sandiford@linaro.org> 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org>
Alan Hayard <alan.hayward@arm.com> Alan Hayard <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com> David Sherwood <david.sherwood@arm.com>
......
...@@ -9563,6 +9563,7 @@ ...@@ -9563,6 +9563,7 @@
[(set_attr "conds" "set") [(set_attr "conds" "set")
(set_attr "predicable" "no") (set_attr "predicable" "no")
(set_attr "arch" "t2,t2,t2,t2,t2,any,any,any,any") (set_attr "arch" "t2,t2,t2,t2,t2,any,any,any,any")
(set_attr "enabled_for_depr_it" "yes,no,no,no,no,no,no,no,no")
(set_attr_alternative "length" (set_attr_alternative "length"
[(const_int 6) [(const_int 6)
(const_int 8) (const_int 8)
...@@ -9645,6 +9646,7 @@ ...@@ -9645,6 +9646,7 @@
" "
[(set_attr "conds" "set") [(set_attr "conds" "set")
(set_attr "arch" "t2,t2,t2,t2,t2,any,any,any,any") (set_attr "arch" "t2,t2,t2,t2,t2,any,any,any,any")
(set_attr "enabled_for_depr_it" "yes,no,no,no,no,no,no,no,no")
(set_attr_alternative "length" (set_attr_alternative "length"
[(const_int 6) [(const_int 6)
(const_int 8) (const_int 8)
...@@ -9667,13 +9669,13 @@ ...@@ -9667,13 +9669,13 @@
) )
(define_insn_and_split "*ior_scc_scc" (define_insn_and_split "*ior_scc_scc"
[(set (match_operand:SI 0 "s_register_operand" "=Ts") [(set (match_operand:SI 0 "s_register_operand" "=Ts,Ts")
(ior:SI (match_operator:SI 3 "arm_comparison_operator" (ior:SI (match_operator:SI 3 "arm_comparison_operator"
[(match_operand:SI 1 "s_register_operand" "r") [(match_operand:SI 1 "s_register_operand" "l,r")
(match_operand:SI 2 "arm_add_operand" "rIL")]) (match_operand:SI 2 "arm_add_operand" "lPy,rIL")])
(match_operator:SI 6 "arm_comparison_operator" (match_operator:SI 6 "arm_comparison_operator"
[(match_operand:SI 4 "s_register_operand" "r") [(match_operand:SI 4 "s_register_operand" "l,r")
(match_operand:SI 5 "arm_add_operand" "rIL")]))) (match_operand:SI 5 "arm_add_operand" "lPy,rIL")])))
(clobber (reg:CC CC_REGNUM))] (clobber (reg:CC CC_REGNUM))]
"TARGET_32BIT "TARGET_32BIT
&& (arm_select_dominance_cc_mode (operands[3], operands[6], DOM_CC_X_OR_Y) && (arm_select_dominance_cc_mode (operands[3], operands[6], DOM_CC_X_OR_Y)
...@@ -9692,6 +9694,7 @@ ...@@ -9692,6 +9694,7 @@
DOM_CC_X_OR_Y), DOM_CC_X_OR_Y),
CC_REGNUM);" CC_REGNUM);"
[(set_attr "conds" "clob") [(set_attr "conds" "clob")
(set_attr "enabled_for_depr_it" "yes,no")
(set_attr "length" "16") (set_attr "length" "16")
(set_attr "type" "multiple")] (set_attr "type" "multiple")]
) )
...@@ -9701,13 +9704,13 @@ ...@@ -9701,13 +9704,13 @@
(define_insn_and_split "*ior_scc_scc_cmp" (define_insn_and_split "*ior_scc_scc_cmp"
[(set (match_operand 0 "dominant_cc_register" "") [(set (match_operand 0 "dominant_cc_register" "")
(compare (ior:SI (match_operator:SI 3 "arm_comparison_operator" (compare (ior:SI (match_operator:SI 3 "arm_comparison_operator"
[(match_operand:SI 1 "s_register_operand" "r") [(match_operand:SI 1 "s_register_operand" "l,r")
(match_operand:SI 2 "arm_add_operand" "rIL")]) (match_operand:SI 2 "arm_add_operand" "lPy,rIL")])
(match_operator:SI 6 "arm_comparison_operator" (match_operator:SI 6 "arm_comparison_operator"
[(match_operand:SI 4 "s_register_operand" "r") [(match_operand:SI 4 "s_register_operand" "l,r")
(match_operand:SI 5 "arm_add_operand" "rIL")])) (match_operand:SI 5 "arm_add_operand" "lPy,rIL")]))
(const_int 0))) (const_int 0)))
(set (match_operand:SI 7 "s_register_operand" "=Ts") (set (match_operand:SI 7 "s_register_operand" "=Ts,Ts")
(ior:SI (match_op_dup 3 [(match_dup 1) (match_dup 2)]) (ior:SI (match_op_dup 3 [(match_dup 1) (match_dup 2)])
(match_op_dup 6 [(match_dup 4) (match_dup 5)])))] (match_op_dup 6 [(match_dup 4) (match_dup 5)])))]
"TARGET_32BIT" "TARGET_32BIT"
...@@ -9722,18 +9725,19 @@ ...@@ -9722,18 +9725,19 @@
(set (match_dup 7) (ne:SI (match_dup 0) (const_int 0)))] (set (match_dup 7) (ne:SI (match_dup 0) (const_int 0)))]
"" ""
[(set_attr "conds" "set") [(set_attr "conds" "set")
(set_attr "enabled_for_depr_it" "yes,no")
(set_attr "length" "16") (set_attr "length" "16")
(set_attr "type" "multiple")] (set_attr "type" "multiple")]
) )
(define_insn_and_split "*and_scc_scc" (define_insn_and_split "*and_scc_scc"
[(set (match_operand:SI 0 "s_register_operand" "=Ts") [(set (match_operand:SI 0 "s_register_operand" "=Ts,Ts")
(and:SI (match_operator:SI 3 "arm_comparison_operator" (and:SI (match_operator:SI 3 "arm_comparison_operator"
[(match_operand:SI 1 "s_register_operand" "r") [(match_operand:SI 1 "s_register_operand" "l,r")
(match_operand:SI 2 "arm_add_operand" "rIL")]) (match_operand:SI 2 "arm_add_operand" "lPy,rIL")])
(match_operator:SI 6 "arm_comparison_operator" (match_operator:SI 6 "arm_comparison_operator"
[(match_operand:SI 4 "s_register_operand" "r") [(match_operand:SI 4 "s_register_operand" "l,r")
(match_operand:SI 5 "arm_add_operand" "rIL")]))) (match_operand:SI 5 "arm_add_operand" "lPy,rIL")])))
(clobber (reg:CC CC_REGNUM))] (clobber (reg:CC CC_REGNUM))]
"TARGET_32BIT "TARGET_32BIT
&& (arm_select_dominance_cc_mode (operands[3], operands[6], DOM_CC_X_AND_Y) && (arm_select_dominance_cc_mode (operands[3], operands[6], DOM_CC_X_AND_Y)
...@@ -9754,6 +9758,7 @@ ...@@ -9754,6 +9758,7 @@
DOM_CC_X_AND_Y), DOM_CC_X_AND_Y),
CC_REGNUM);" CC_REGNUM);"
[(set_attr "conds" "clob") [(set_attr "conds" "clob")
(set_attr "enabled_for_depr_it" "yes,no")
(set_attr "length" "16") (set_attr "length" "16")
(set_attr "type" "multiple")] (set_attr "type" "multiple")]
) )
...@@ -9763,13 +9768,13 @@ ...@@ -9763,13 +9768,13 @@
(define_insn_and_split "*and_scc_scc_cmp" (define_insn_and_split "*and_scc_scc_cmp"
[(set (match_operand 0 "dominant_cc_register" "") [(set (match_operand 0 "dominant_cc_register" "")
(compare (and:SI (match_operator:SI 3 "arm_comparison_operator" (compare (and:SI (match_operator:SI 3 "arm_comparison_operator"
[(match_operand:SI 1 "s_register_operand" "r") [(match_operand:SI 1 "s_register_operand" "l,r")
(match_operand:SI 2 "arm_add_operand" "rIL")]) (match_operand:SI 2 "arm_add_operand" "lPy,rIL")])
(match_operator:SI 6 "arm_comparison_operator" (match_operator:SI 6 "arm_comparison_operator"
[(match_operand:SI 4 "s_register_operand" "r") [(match_operand:SI 4 "s_register_operand" "l,r")
(match_operand:SI 5 "arm_add_operand" "rIL")])) (match_operand:SI 5 "arm_add_operand" "lPy,rIL")]))
(const_int 0))) (const_int 0)))
(set (match_operand:SI 7 "s_register_operand" "=Ts") (set (match_operand:SI 7 "s_register_operand" "=Ts,Ts")
(and:SI (match_op_dup 3 [(match_dup 1) (match_dup 2)]) (and:SI (match_op_dup 3 [(match_dup 1) (match_dup 2)])
(match_op_dup 6 [(match_dup 4) (match_dup 5)])))] (match_op_dup 6 [(match_dup 4) (match_dup 5)])))]
"TARGET_32BIT" "TARGET_32BIT"
...@@ -9784,6 +9789,7 @@ ...@@ -9784,6 +9789,7 @@
(set (match_dup 7) (ne:SI (match_dup 0) (const_int 0)))] (set (match_dup 7) (ne:SI (match_dup 0) (const_int 0)))]
"" ""
[(set_attr "conds" "set") [(set_attr "conds" "set")
(set_attr "enabled_for_depr_it" "yes,no")
(set_attr "length" "16") (set_attr "length" "16")
(set_attr "type" "multiple")] (set_attr "type" "multiple")]
) )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment