(call_internal*): Use hard register 19 (r3) in clobber
instead of match_scratch. From-SVN: r3604
This commit is contained in:
parent
e770968be5
commit
b6744f97de
@ -2154,14 +2154,19 @@
|
|||||||
;; We need a call saved register allocated for the match_scratch, so we use
|
;; We need a call saved register allocated for the match_scratch, so we use
|
||||||
;; 'l' because all local registers are call saved.
|
;; 'l' because all local registers are call saved.
|
||||||
|
|
||||||
|
;; ??? I would prefer to use a match_scratch here, but match_scratch allocated
|
||||||
|
;; registers can't be used for spills. In a function with lots of calls,
|
||||||
|
;; local-alloc may allocate all local registers to a match_scratch, leaving
|
||||||
|
;; no local registers available for spills.
|
||||||
|
|
||||||
(define_insn "call_internal"
|
(define_insn "call_internal"
|
||||||
[(call (match_operand:SI 0 "general_operand" "g")
|
[(call (match_operand:SI 0 "general_operand" "g")
|
||||||
(match_operand:SI 1 "immediate_operand" "i"))
|
(match_operand:SI 1 "immediate_operand" "i"))
|
||||||
(use (match_operand:SI 2 "address_operand" "p"))
|
(use (match_operand:SI 2 "address_operand" "p"))
|
||||||
(clobber (match_scratch:SI 3 "=&l"))]
|
(clobber (reg:SI 19))]
|
||||||
""
|
""
|
||||||
"* return i960_output_call_insn (operands[0], operands[1], operands[2],
|
"* return i960_output_call_insn (operands[0], operands[1], operands[2],
|
||||||
operands[3], insn);"
|
insn);"
|
||||||
[(set_attr "type" "call")])
|
[(set_attr "type" "call")])
|
||||||
|
|
||||||
(define_expand "call_value"
|
(define_expand "call_value"
|
||||||
@ -2184,10 +2189,10 @@
|
|||||||
(call (match_operand:SI 1 "general_operand" "g")
|
(call (match_operand:SI 1 "general_operand" "g")
|
||||||
(match_operand:SI 2 "immediate_operand" "i")))
|
(match_operand:SI 2 "immediate_operand" "i")))
|
||||||
(use (match_operand:SI 3 "address_operand" "p"))
|
(use (match_operand:SI 3 "address_operand" "p"))
|
||||||
(clobber (match_scratch:SI 4 "=&l"))]
|
(clobber (reg:SI 19))]
|
||||||
""
|
""
|
||||||
"* return i960_output_call_insn (operands[1], operands[2], operands[3],
|
"* return i960_output_call_insn (operands[1], operands[2], operands[3],
|
||||||
operands[4], insn);"
|
insn);"
|
||||||
[(set_attr "type" "call")])
|
[(set_attr "type" "call")])
|
||||||
|
|
||||||
(define_insn "return"
|
(define_insn "return"
|
||||||
|
Loading…
Reference in New Issue
Block a user