(call insns): Always reload gp after a full call.
Use current_file_function_operand to see when we can use BSR. From-SVN: r3458
This commit is contained in:
parent
130d2d725d
commit
4ba7b922dd
@ -2198,12 +2198,7 @@
|
||||
(use (match_operand:DI 1 "" ""))
|
||||
(clobber (reg:DI 26))]
|
||||
""
|
||||
"*
|
||||
{ if (alpha_gp_dead_after (insn))
|
||||
return \"jsr $26,($27),%1\";
|
||||
else
|
||||
return \"jsr $26,($27),%1\;ldgp $29,0($26)\";
|
||||
}"
|
||||
"jsr $26,($27),%1\;ldgp $29,0($26)"
|
||||
[(set_attr "type" "jsr")])
|
||||
|
||||
(define_insn ""
|
||||
@ -2213,31 +2208,26 @@
|
||||
(use (match_operand:DI 2 "" ""))
|
||||
(clobber (reg:DI 26))]
|
||||
""
|
||||
"*
|
||||
{ if (alpha_gp_dead_after (insn))
|
||||
return \"jsr $26,($27),%2\";
|
||||
else
|
||||
return \"jsr $26,($27),%2\;ldgp $29,0($26)\";
|
||||
}"
|
||||
"jsr $26,($27),%2\;ldgp $29,0($26)"
|
||||
[(set_attr "type" "jsr")])
|
||||
|
||||
(define_insn ""
|
||||
[(call (mem:DI (match_operand 1 "current_function_operand" "i"))
|
||||
[(call (mem:DI (match_operand 1 "current_file_function_operand" "i"))
|
||||
(match_operand 0 "" ""))
|
||||
(use (match_dup 1))
|
||||
(clobber (reg:DI 26))]
|
||||
""
|
||||
"bsr $26,%F1"
|
||||
"bsr $26,%1..ng"
|
||||
[(set_attr "type" "ibr")])
|
||||
|
||||
(define_insn ""
|
||||
[(set (match_operand 0 "register_operand" "=rf")
|
||||
(call (mem:DI (match_operand 1 "current_function_operand" "i"))
|
||||
(call (mem:DI (match_operand 1 "current_file_function_operand" "i"))
|
||||
(match_operand 2 "" "")))
|
||||
(use (match_dup 1))
|
||||
(clobber (reg:DI 26))]
|
||||
""
|
||||
"bsr $26,%F1"
|
||||
"bsr $26,%1..ng"
|
||||
[(set_attr "type" "ibr")])
|
||||
|
||||
(define_insn "jump"
|
||||
|
Loading…
Reference in New Issue
Block a user