From fca097e763795be1906e055f1ad50a8840fd82a5 Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Wed, 14 Mar 2001 18:14:10 -0500 Subject: [PATCH] i960.c (i960_function_prologue): Compute size of frame according to number of registers actually saved there. * config/i960/i960.c (i960_function_prologue): Compute size of frame according to number of registers actually saved there. Co-Authored-By: Vladimir Makarov From-SVN: r40477 --- gcc/ChangeLog | 6 ++++++ gcc/config/i960/i960.c | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e2878ac6bcd..c426cb6a140 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2001-03-14 DJ Delorie + Vladimir Makarov + + * config/i960/i960.c (i960_function_prologue): Compute size of + frame according to number of registers actually saved there. + 2001-03-14 Richard Henderson * expr.c (emit_move_insn_1): Fix else if around #endif. diff --git a/gcc/config/i960/i960.c b/gcc/config/i960/i960.c index 21753a207b2..1f885fe68b1 100644 --- a/gcc/config/i960/i960.c +++ b/gcc/config/i960/i960.c @@ -1474,7 +1474,7 @@ i960_function_prologue (file, size) lnw = i960_split_reg_group (l, lnw, g->length); } - actual_fsize = compute_frame_size (size); + actual_fsize = compute_frame_size (size) + 4 * n_remaining_saved_regs; #if 0 /* ??? The 1.2.1 compiler does this also. This is meant to round the frame size up to the nearest multiple of 16. I don't know whether this is @@ -1526,7 +1526,7 @@ i960_function_prologue (file, size) /* Take hardware register save area created by the call instruction into account, but store them before the argument block area. */ - lvar_size = actual_fsize - compute_frame_size (0) - n_saved_regs * 4; + lvar_size = actual_fsize - compute_frame_size (0) - n_remaining_saved_regs * 4; offset = STARTING_FRAME_OFFSET + lvar_size; /* Save registers on stack if needed. */ /* ??? Is it worth to use the same algorithm as one for saving -- 2.30.2