aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/sh/sh-protos.h
diff options
context:
space:
mode:
authorKaz Kojima <kkojima@gcc.gnu.org>2004-05-10 23:25:13 +0000
committerKaz Kojima <kkojima@gcc.gnu.org>2004-05-10 23:25:13 +0000
commit726d4cb79ca4a963491a2faeb74641e6ae716b74 (patch)
treeaeb2d5e436b16aa338bd7429b2513cc5e20811c8 /gcc/config/sh/sh-protos.h
parent0c196bf9d84c1d3b638bb4cd5f9e088b861afa08 (diff)
downloadgcc-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/config/sh/sh-protos.h')
-rw-r--r--gcc/config/sh/sh-protos.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/config/sh/sh-protos.h b/gcc/config/sh/sh-protos.h
index 082d794..7abdac4 100644
--- a/gcc/config/sh/sh-protos.h
+++ b/gcc/config/sh/sh-protos.h
@@ -109,7 +109,7 @@ extern int sh_handle_pragma (int (*)(void), void (*)(int), const char *);
extern struct rtx_def *get_fpscr_rtx (void);
extern int sh_media_register_for_return (void);
extern void sh_expand_prologue (void);
-extern void sh_expand_epilogue (void);
+extern void sh_expand_epilogue (bool);
extern int sh_need_epilogue (void);
extern void sh_set_return_address (rtx, rtx);
extern int initial_elimination_offset (int, int);