Commit 86010a08 by Walter Lee Committed by Walter Lee

re PR target/78862 (tile*: ICE with -fstack-protetor-strong)

PR target/78862
* config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
after initial stackframe link reg save.
* config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.

From-SVN: r245159
parent d9327911
2017-02-03 Walter Lee <walt@tilera.com>
PR target/78862
* config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
after initial stackframe link reg save.
* config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
2017-02-03 Jakub Jelinek <jakub@redhat.com> 2017-02-03 Jakub Jelinek <jakub@redhat.com>
PR target/79354 PR target/79354
......
...@@ -3998,8 +3998,11 @@ tilegx_expand_prologue (void) ...@@ -3998,8 +3998,11 @@ tilegx_expand_prologue (void)
/* Save lr first in its special location because code after this /* Save lr first in its special location because code after this
might use the link register as a scratch register. */ might use the link register as a scratch register. */
if (df_regs_ever_live_p (TILEGX_LINK_REGNUM) || crtl->calls_eh_return) if (df_regs_ever_live_p (TILEGX_LINK_REGNUM) || crtl->calls_eh_return)
FRP (frame_emit_store (TILEGX_LINK_REGNUM, TILEGX_LINK_REGNUM, {
stack_pointer_rtx, stack_pointer_rtx, 0)); FRP (frame_emit_store (TILEGX_LINK_REGNUM, TILEGX_LINK_REGNUM,
stack_pointer_rtx, stack_pointer_rtx, 0));
emit_insn (gen_blockage ());
}
if (total_size == 0) if (total_size == 0)
{ {
......
...@@ -3533,8 +3533,11 @@ tilepro_expand_prologue (void) ...@@ -3533,8 +3533,11 @@ tilepro_expand_prologue (void)
/* Save lr first in its special location because code after this /* Save lr first in its special location because code after this
might use the link register as a scratch register. */ might use the link register as a scratch register. */
if (df_regs_ever_live_p (TILEPRO_LINK_REGNUM) || crtl->calls_eh_return) if (df_regs_ever_live_p (TILEPRO_LINK_REGNUM) || crtl->calls_eh_return)
FRP (frame_emit_store (TILEPRO_LINK_REGNUM, TILEPRO_LINK_REGNUM, {
stack_pointer_rtx, stack_pointer_rtx, 0)); FRP (frame_emit_store (TILEPRO_LINK_REGNUM, TILEPRO_LINK_REGNUM,
stack_pointer_rtx, stack_pointer_rtx, 0));
emit_insn (gen_blockage ());
}
if (total_size == 0) if (total_size == 0)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment