Commit 4893584c by Jim Wilson

(flush_register_windows, goto_handler_and_restore):

Give names to these patterns so they are easier to use.

From-SVN: r3607
parent 51ec2375
...@@ -2756,8 +2756,7 @@ ...@@ -2756,8 +2756,7 @@
" "
{ {
/* Trap instruction to flush all the registers window. */ /* Trap instruction to flush all the registers window. */
emit_insn (gen_rtx (UNSPEC_VOLATILE, VOIDmode, emit_insn (gen_flush_register_windows ());
gen_rtvec (1, const0_rtx), 0));
/* Load the fp value for the containing fn into %fp. /* Load the fp value for the containing fn into %fp.
This is needed because operands[2] refers to %fp. This is needed because operands[2] refers to %fp.
Virtual register instantiation fails if the virtual %fp isn't set from a Virtual register instantiation fails if the virtual %fp isn't set from a
...@@ -2782,19 +2781,18 @@ ...@@ -2782,19 +2781,18 @@
emit_insn (gen_rtx (USE, VOIDmode, static_chain_rtx)); emit_insn (gen_rtx (USE, VOIDmode, static_chain_rtx));
emit_insn (gen_rtx (USE, VOIDmode, gen_rtx (REG, SImode, 8))); emit_insn (gen_rtx (USE, VOIDmode, gen_rtx (REG, SImode, 8)));
/* Return, restoring reg window and jumping to goto handler. */ /* Return, restoring reg window and jumping to goto handler. */
emit_insn (gen_rtx (UNSPEC_VOLATILE, VOIDmode, emit_insn (gen_goto_handler_and_restore ());
gen_rtvec (1, const0_rtx), 1));
DONE; DONE;
}") }")
;; Special trap insn to flush register windows. ;; Special trap insn to flush register windows.
(define_insn "" (define_insn "flush_register_windows"
[(unspec_volatile [(const_int 0)] 0)] [(unspec_volatile [(const_int 0)] 0)]
"" ""
"ta 3" "ta 3"
[(set_attr "type" "misc")]) [(set_attr "type" "misc")])
(define_insn "" (define_insn "goto_handler_and_restore"
[(unspec_volatile [(const_int 0)] 1)] [(unspec_volatile [(const_int 0)] 1)]
"" ""
"jmp %%o0+0\;restore" "jmp %%o0+0\;restore"
......
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