https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104362

--- Comment #3 from Uroš Bizjak <ubizjak at gmail dot com> ---
diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
index ad5a5caa413..a61a5390127 100644
--- a/gcc/config/i386/i386.cc
+++ b/gcc/config/i386/i386.cc
@@ -7403,6 +7403,10 @@ find_drap_reg (void)
          || crtl->tail_call_emit)
        return DI_REG;

+      if (crtl->calls_eh_return
+         && REGNO (EH_RETURN_STACKADJ_RTX) == CX_REG)
+       return DI_REG;
+
       /* Reuse static chain register if it isn't used for parameter
          passing.  */
       if (ix86_function_regparm (TREE_TYPE (decl), decl) <= 2)

Reply via email to