diff options
author | David Edelsohn <dje.gcc@gmail.com> | 2019-05-13 15:19:50 +0000 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2019-05-13 11:19:50 -0400 |
commit | 2a03d8cab78b0876fcc9580b5657efc3403ba6df (patch) | |
tree | 46be186614c26c28dde78faadb0f59c3067e9c99 /gcc | |
parent | 6221eb9d9df480a20831ff02e934c883d0d5ba0c (diff) | |
download | gcc-2a03d8cab78b0876fcc9580b5657efc3403ba6df.zip gcc-2a03d8cab78b0876fcc9580b5657efc3403ba6df.tar.gz gcc-2a03d8cab78b0876fcc9580b5657efc3403ba6df.tar.bz2 |
re PR bootstrap/90418 (powerpc-darwin9 bootstrap fails after r271013)
PR target/90418
* config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH
data registers in sibcall epilogues.
Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
From-SVN: r271130
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 65771fb..f53d5b3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2019-05-13 David Edelsohn <dje.gcc@gmail.com> + + PR target/90418 + * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH + data registers in sibcall epilogues. + Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues. + 2019-05-13 Uroš Bizjak <ubizjak@gmail.com> PR target/89221 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 933356d..b886f58 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -28423,7 +28423,7 @@ rs6000_emit_epilogue (int sibcall) restore_saved_lr (0, exit_func); /* Load exception handler data registers, if needed. */ - if (crtl->calls_eh_return) + if (!sibcall && crtl->calls_eh_return) { unsigned int i, regno; @@ -28614,7 +28614,7 @@ rs6000_emit_epilogue (int sibcall) RTX_FRAME_RELATED_P (insn) = 1; } - if (crtl->calls_eh_return) + if (!sibcall && crtl->calls_eh_return) { rtx sa = EH_RETURN_STACKADJ_RTX; emit_insn (gen_add3_insn (sp_reg_rtx, sp_reg_rtx, sa)); |