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];