diff options
author | David S. Miller <davem@davemloft.net> | 2017-06-12 19:30:45 +0000 |
---|---|---|
committer | David S. Miller <davem@gcc.gnu.org> | 2017-06-12 12:30:45 -0700 |
commit | 6d1ea02a6c3423a000c0d894b2ff673757042398 (patch) | |
tree | bef8cf067829fb3f544923af035849ade9907bd5 | |
parent | 20d5c8731f4bc1aa72ced6cf61016407b74109d5 (diff) | |
download | gcc-6d1ea02a6c3423a000c0d894b2ff673757042398.zip gcc-6d1ea02a6c3423a000c0d894b2ff673757042398.tar.gz gcc-6d1ea02a6c3423a000c0d894b2ff673757042398.tar.bz2 |
More refinements to fixing sparc's PR target/80968.
gcc/
PR target/80968
* config/sparc/sparc.md (return expander): Emit frame blockage if
function uses alloca.
From-SVN: r249134
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.md | 5 |
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cc5435d..9be291e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2017-06-12 David S. Miller <davem@davemloft.net> + + PR target/80968 + * config/sparc/sparc.md (return expander): Emit frame blockage if + function uses alloca. + 2017-06-12 Richard Sandiford <richard.sandiford@linaro.org> * combine.c (make_field_assignment): Check len rather than the mode diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md index 737bdb3..5c5096b 100644 --- a/gcc/config/sparc/sparc.md +++ b/gcc/config/sparc/sparc.md @@ -7098,7 +7098,10 @@ (define_expand "return" [(return)] "sparc_can_use_return_insn_p ()" - "") +{ + if (cfun->calls_alloca) + emit_insn (gen_frame_blockage ()); +}) (define_insn "*return_internal" [(return)] |