diff options
author | Segher Boessenkool <segher@kernel.crashing.org> | 2019-05-18 00:10:29 +0200 |
---|---|---|
committer | Segher Boessenkool <segher@gcc.gnu.org> | 2019-05-18 00:10:29 +0200 |
commit | 47e4cba60667814309d271fc91cace5eea54fa5e (patch) | |
tree | 744a6bb123d1313c5474620caba317584e611601 /gcc/objc/objc-act.c | |
parent | d78ba51841e429173f7a9eaa20006c04ceced29c (diff) | |
download | gcc-47e4cba60667814309d271fc91cace5eea54fa5e.zip gcc-47e4cba60667814309d271fc91cace5eea54fa5e.tar.gz gcc-47e4cba60667814309d271fc91cace5eea54fa5e.tar.bz2 |
rs6000: Some rs6000_emit_epilogue improvements
This uses epilogue_type directly. It also changes some ints to bools,
declares variables later, and simplifies some code.
There is one actual change:
else if (info->push_p
&& DEFAULT_ABI != ABI_V4
- && !crtl->calls_eh_return)
+ && epilogue_type != EPILOGUE_TYPE_EH_RETURN)
{
/* Prevent reordering memory accesses against stack pointer restore. */
(different because calls_eh_return can be true for sibcalls). This is
a bugfix. The code was never exercised.
One place in the epilogue still uses crtl->calls_eh_return. If that
is changed the prologue has to have a corresponding change, and the
emit_prologue function does not have an epilogue_type parameter, so
bail on changing this for now. We might want to do this (saving the
CR fields to separate stack slots) always, not just for functions
calling eh_return, but that will require more investigation.
* config/rs6000/rs6000.c (restore_saved_cr): Change a boolean
argument to be type bool (was int before).
(rs6000_emit_epilogue): Simplify some code. Declare some variables
at first use. Use type bool for some variables. Fix a theoretical
eh_return bug for svr4.
From-SVN: r271361
Diffstat (limited to 'gcc/objc/objc-act.c')
0 files changed, 0 insertions, 0 deletions