diff options
Diffstat (limited to 'gcc/config/alpha')
-rw-r--r-- | gcc/config/alpha/alpha.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index ec53778ce18..a14b5d31e64 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -7546,16 +7546,15 @@ alpha_expand_prologue (void) { if (frame_size > 4096) { - int probed = 4096; + int probed; - do + for (probed = 4096; probed < frame_size; probed += 8192) emit_insn (gen_probe_stack (GEN_INT (TARGET_ABI_UNICOSMK ? -probed + 64 : -probed))); - while ((probed += 8192) < frame_size); /* We only have to do this probe if we aren't saving registers. */ - if (sa_size == 0 && probed + 4096 < frame_size) + if (sa_size == 0 && frame_size > probed - 4096) emit_insn (gen_probe_stack (GEN_INT (-frame_size))); } |