Commit 0b93d3b6 by Ramana Radhakrishnan Committed by Ramana Radhakrishnan

Fix PR target/57731 PR target/57837

2013-07-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/19599
	PR target/57731
	PR target/57837
	* config/arm/arm.md ("*sibcall_value_insn): Replace use of
	Ss with US. Adjust output for v5 and v4t.
	(*sibcall_value_insn): Likewise and loosen predicate on
	operand0.
	* config/arm/constraints.md ("Ss"): Rename to US.

From-SVN: r201240
parent 67b1d004
2013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
PR target/19599
PR target/57731
PR target/57748
* config/arm/arm.md ("*sibcall_value_insn): Replace use of
Ss with US. Adjust output for v5 and v4t.
(*sibcall_value_insn): Likewise and loosen predicate on
operand0.
* config/arm/constraints.md ("Ss"): Rename to US.
2013-07-25 Terry Guo <terry.guo@arm.com>
* config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
......
......@@ -9619,7 +9619,7 @@
)
(define_insn "*sibcall_insn"
[(call (mem:SI (match_operand:SI 0 "call_insn_operand" "Cs,Ss"))
[(call (mem:SI (match_operand:SI 0 "call_insn_operand" "Cs, US"))
(match_operand 1 "" ""))
(return)
(use (match_operand 2 "" ""))]
......@@ -9630,7 +9630,7 @@
else
{
if (arm_arch5 || arm_arch4t)
return \" bx\\t%0\\t%@ indirect register sibling call\";
return \" bx%?\\t%0\\t%@ indirect register sibling call\";
else
return \"mov%?\\t%|pc, %0\\t%@ indirect register sibling call\";
}
......@@ -9639,8 +9639,8 @@
)
(define_insn "*sibcall_value_insn"
[(set (match_operand 0 "s_register_operand" "")
(call (mem:SI (match_operand:SI 1 "call_insn_operand" "Cs,Ss"))
[(set (match_operand 0 "" "")
(call (mem:SI (match_operand:SI 1 "call_insn_operand" "Cs,US"))
(match_operand 2 "" "")))
(return)
(use (match_operand 3 "" ""))]
......@@ -9651,7 +9651,7 @@
else
{
if (arm_arch5 || arm_arch4t)
return \"bx\\t%1\";
return \"bx%?\\t%1\";
else
return \"mov%?\\t%|pc, %1\\t@ indirect sibling call \";
}
......
......@@ -21,7 +21,7 @@
;; The following register constraints have been used:
;; - in ARM/Thumb-2 state: t, w, x, y, z
;; - in Thumb state: h, b
;; - in both states: l, c, k, q
;; - in both states: l, c, k, q, US
;; In ARM state, 'l' is an alias for 'r'
;; 'f' and 'v' were previously used for FPA and MAVERICK registers.
......@@ -417,6 +417,12 @@
0)
&& GET_CODE (XEXP (op, 0)) != POST_INC")))
(define_constraint "US"
"@internal
US is a symbol reference."
(match_code "symbol_ref")
)
;; We used to have constraint letters for S and R in ARM state, but
;; all uses of these now appear to have been removed.
......@@ -424,8 +430,3 @@
;; this wasn't really a valid memory constraint. Again, all uses of
;; this now seem to have been removed.
(define_constraint "Ss"
"@internal
Ss is a symbol reference."
(match_code "symbol_ref")
)
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