aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1993-03-02 13:08:43 -0800
committerJim Wilson <wilson@gcc.gnu.org>1993-03-02 13:08:43 -0800
commit4893584c6cca1f77531b40bca12b0a5c46281e95 (patch)
treefc4b0b530bb9240bd63eae5fd37a4648fd7e5094
parent51ec2375642c91567b231ddb9e06f61e33734a89 (diff)
downloadgcc-4893584c6cca1f77531b40bca12b0a5c46281e95.zip
gcc-4893584c6cca1f77531b40bca12b0a5c46281e95.tar.gz
gcc-4893584c6cca1f77531b40bca12b0a5c46281e95.tar.bz2
(flush_register_windows, goto_handler_and_restore):
Give names to these patterns so they are easier to use. From-SVN: r3607
-rw-r--r--gcc/config/sparc/sparc.md10
1 files changed, 4 insertions, 6 deletions
diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md
index 88cadbf..5f8afeb 100644
--- a/gcc/config/sparc/sparc.md
+++ b/gcc/config/sparc/sparc.md
@@ -2756,8 +2756,7 @@
"
{
/* Trap instruction to flush all the registers window. */
- emit_insn (gen_rtx (UNSPEC_VOLATILE, VOIDmode,
- gen_rtvec (1, const0_rtx), 0));
+ emit_insn (gen_flush_register_windows ());
/* Load the fp value for the containing fn into %fp.
This is needed because operands[2] refers to %fp.
Virtual register instantiation fails if the virtual %fp isn't set from a
@@ -2782,19 +2781,18 @@
emit_insn (gen_rtx (USE, VOIDmode, static_chain_rtx));
emit_insn (gen_rtx (USE, VOIDmode, gen_rtx (REG, SImode, 8)));
/* Return, restoring reg window and jumping to goto handler. */
- emit_insn (gen_rtx (UNSPEC_VOLATILE, VOIDmode,
- gen_rtvec (1, const0_rtx), 1));
+ emit_insn (gen_goto_handler_and_restore ());
DONE;
}")
;; Special trap insn to flush register windows.
-(define_insn ""
+(define_insn "flush_register_windows"
[(unspec_volatile [(const_int 0)] 0)]
""
"ta 3"
[(set_attr "type" "misc")])
-(define_insn ""
+(define_insn "goto_handler_and_restore"
[(unspec_volatile [(const_int 0)] 1)]
""
"jmp %%o0+0\;restore"