The attatched patch reverts a part of the change in r221165 for
target/65249. It turned out that that change causes a wrong code
problem PR target/66780 which is worse than the ICE with 'R0_REGS'
spill failure for a specific program reported by PR65249.
I've committed it on trunk and reopened PR target/65249.  I'll
backport it to 4.9 later and to 5 when the branch reopens.

Regards,
        kaz
--
2015-07-07  Kaz Kojima  <kkoj...@gcc.gnu.org>

        PR target/66780
        * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
        change for target/65249.

diff --git a/config/sh/sh.md b/config/sh/sh.md
index 5c8d306..f0cb3cf 100644
--- a/config/sh/sh.md
+++ b/config/sh/sh.md
@@ -10751,12 +10751,6 @@ label:
                 "__stack_chk_guard") == 0)
     stack_chk_guard_p = true;
 
-  /* Use R0 to avoid long R0 liveness which stack-protector tends to
-     produce.  */
-  if (! sh_lra_flag
-      && stack_chk_guard_p && ! reload_in_progress && ! reload_completed)
-    operands[2] = gen_rtx_REG (Pmode, R0_REG);
-
   if (TARGET_SHMEDIA)
     {
       rtx reg = operands[2];

Reply via email to