diff options
author | kkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-05-10 23:25:13 +0000 |
---|---|---|
committer | kkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-05-10 23:25:13 +0000 |
commit | 66209063d5a209edc41e992b25efa3061b4b26e6 (patch) | |
tree | aeb2d5e436b16aa338bd7429b2513cc5e20811c8 /gcc/config/sh/sh.md | |
parent | 5c0dc02c159cc44067e3e9f8fc8d5770ec81ba7b (diff) | |
download | gcc-66209063d5a209edc41e992b25efa3061b4b26e6.tar.gz |
PR target/15130
* config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
* config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
into account. Compute the correct number of general registers
for the return value. Generate a special push/pop sequence when
failing to get a temporary register for non SHmedia epilogue.
(sh_expand_epilogue): Add an argument to show whether it's for
sibcall or not. Set the 3rd argument of output_stack_adjust to
-1 if needed.
(sh_need_epilogue): Call sh_expand_epilogue with 0.
* config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
with 1.
(epilogue): Call sh_expand_epilogue with 0.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@81683 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/sh/sh.md')
-rw-r--r-- | gcc/config/sh/sh.md | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index a31e8b125c1..d3b4c9466ed 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -6467,7 +6467,7 @@ "" " { - sh_expand_epilogue (); + sh_expand_epilogue (1); if (TARGET_SHCOMPACT) { rtx insn, set; @@ -7348,7 +7348,7 @@ mov.l\\t1f,r0\\n\\ "" " { - sh_expand_epilogue (); + sh_expand_epilogue (0); emit_jump_insn (gen_return ()); DONE; }") |