diff options
| author | dj <dj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-03-14 23:14:10 +0000 |
|---|---|---|
| committer | dj <dj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-03-14 23:14:10 +0000 |
| commit | cefc79bb0e7873e88cd0d8f73609c9c3290bdbef (patch) | |
| tree | 73cfce3b6d4bd981ae23a45cba37ce75f9c1ea56 | |
| parent | e3fe8c3bcb6ea95f8d5db4dfe124da9482f060d8 (diff) | |
| download | ppe42-gcc-cefc79bb0e7873e88cd0d8f73609c9c3290bdbef.tar.gz ppe42-gcc-cefc79bb0e7873e88cd0d8f73609c9c3290bdbef.zip | |
* config/i960/i960.c (i960_function_prologue): Compute size of
frame according to number of registers actually saved there.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40477 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | 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 <dj@redhat.com> + Vladimir Makarov <vmakarov@redhat.com> + + * config/i960/i960.c (i960_function_prologue): Compute size of + frame according to number of registers actually saved there. + 2001-03-14 Richard Henderson <rth@redhat.com> * 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 |

