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
Showing
Please
register
or
sign in
to comment