aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-04-14 18:49:07 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-04-14 18:49:07 -0400
commitea8e4ec574c6e77c5efa450e34494872e3c93f8f (patch)
tree339002264ed68399f20d3cfee61768ffa5d06ac2
parent13aa593cd623101246e1d2382131a86b8638a562 (diff)
downloadgcc-ea8e4ec574c6e77c5efa450e34494872e3c93f8f.zip
gcc-ea8e4ec574c6e77c5efa450e34494872e3c93f8f.tar.gz
gcc-ea8e4ec574c6e77c5efa450e34494872e3c93f8f.tar.bz2
(output_prolog): Changed stack probe at function entry.
From-SVN: r9385
-rw-r--r--gcc/config/alpha/alpha.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index 83622c8..3de0175a 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -1383,19 +1383,15 @@ output_prolog (file, size)
if (frame_size > 4096)
{
int probed = 4096;
- int regnum = 2; /* $1 is static chain, so start with $2. */
- fprintf (file, "\tldq $%d,-%d($30)\n", regnum++, probed);
+ fprintf (file, "\tstq $31,-%d($30)\n", probed);
while (probed + 8192 < frame_size)
- fprintf (file, "\tldq $%d,-%d($30)\n", regnum++, probed += 8192);
+ fprintf (file, "\tstq $31,-%d($30)\n", probed += 8192);
/* We only have to do this probe if we aren't saving registers. */
if (sa_size == 0 && probed + 4096 < frame_size)
- fprintf (file, "\tldq $%d,-%d($30)\n", regnum++, probed += 4096);
-
- if (regnum > 9)
- abort ();
+ fprintf (file, "\tstq $31,-%d($30)\n", frame_size);
}
if (frame_size != 0)
@@ -1419,7 +1415,7 @@ output_prolog (file, size)
assemble_name (file, alpha_function_name);
fprintf (file, "..sc:\n");
- fprintf (file, "\tldq $6,-8192($4)\n");
+ fprintf (file, "\tstq $31,-8192($4)\n");
fprintf (file, "\tsubq $5,1,$5\n");
fprintf (file, "\tlda $4,-8192($4)\n");
@@ -1427,10 +1423,10 @@ output_prolog (file, size)
assemble_name (file, alpha_function_name);
fprintf (file, "..sc\n");
- fprintf (file, "\tlda $30,-%d($4)\n", leftover);
-
if (leftover > 4096 && sa_size == 0)
- fprintf (file, "\tldq $2,%d($30)\n", leftover - 4096);
+ fprintf (file, "\tstq $31,-%d($4)\n", leftover);
+
+ fprintf (file, "\tlda $30,-%d($4)\n", leftover);
}
/* Describe our frame. */