re PR bootstrap/90418 (powerpc-darwin9 bootstrap fails after r271013)
authorDavid Edelsohn <dje.gcc@gmail.com>
Mon, 13 May 2019 15:19:50 +0000 (15:19 +0000)
committerDavid Edelsohn <dje@gcc.gnu.org>
Mon, 13 May 2019 15:19:50 +0000 (11:19 -0400)
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

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index 65771fbd5b6274a410328d655915682edfdd450b..f53d5b3c405d138d50e4e9428b61c16ff84a9942 100644 (file)
@@ -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
index 933356d5382c4ca200f7bca385daed1c95d6f1cd..b886f58540492efdde2f10384b983fd2cba4a2a2 100644 (file)
@@ -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));