rs6000: New enum epilogue_type
authorSegher Boessenkool <segher@kernel.crashing.org>
Tue, 14 May 2019 17:33:10 +0000 (19:33 +0200)
committerSegher Boessenkool <segher@gcc.gnu.org>
Tue, 14 May 2019 17:33:10 +0000 (19:33 +0200)
commita3d59ce91088e9ea56ccbeab3f607d555f5b66e6
treef2454bd676a3e1cff8df42d1d3c3d006cd505f04
parentccd1242eecec3939e165ee5876bd8e4961654dae
rs6000: New enum epilogue_type

We currently call rs6000_emit_epilogue with a boolean parameter saying
if this is for a sibcall.  We also need to create epilogues for
eh_return.  This isn't yet indicated directly: instead, we get an
eh_return epilogue if crtl->calls_eh_return and this is not a sibcall.

This patch changes things so there is a three-way enum argument.

What is called "normal" now can still actually be "eh_return".  The
rs6000_emit_epilogue function still uses an "int sibcall" variable
internally.

* config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change
arguments.
* config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments.
* config/rs6000/rs6000.md (epilogue_type): New define_enum.
(sibcall_epilogue): Adjust.
(epilogue): Adjust.

From-SVN: r271184
gcc/ChangeLog
gcc/config/rs6000/rs6000-protos.h
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.md