diff options
author | Kaz Kojima <kkojima@gcc.gnu.org> | 2004-05-10 23:25:13 +0000 |
---|---|---|
committer | Kaz Kojima <kkojima@gcc.gnu.org> | 2004-05-10 23:25:13 +0000 |
commit | 726d4cb79ca4a963491a2faeb74641e6ae716b74 (patch) | |
tree | aeb2d5e436b16aa338bd7429b2513cc5e20811c8 /gcc/expr.h | |
parent | 0c196bf9d84c1d3b638bb4cd5f9e088b861afa08 (diff) | |
download | gcc-726d4cb79ca4a963491a2faeb74641e6ae716b74.zip gcc-726d4cb79ca4a963491a2faeb74641e6ae716b74.tar.gz gcc-726d4cb79ca4a963491a2faeb74641e6ae716b74.tar.bz2 |
re PR target/15130 ([3.3/3.4][sh4-linux] miscompilation with -O2)
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.
From-SVN: r81683
Diffstat (limited to 'gcc/expr.h')
0 files changed, 0 insertions, 0 deletions