diff options
author | Jeff Law <law@gcc.gnu.org> | 1993-12-16 16:24:35 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1993-12-16 16:24:35 -0700 |
commit | 3bf35ccb68dca6d5d1b9da6f35327a12c66b3fd4 (patch) | |
tree | 20c7ba176d62dd01ddf9a9e591fdd2f3b716184b /gcc/config/pa | |
parent | ba0bfdacea4838d2b8d9c2f66d399837533de99d (diff) | |
download | gcc-3bf35ccb68dca6d5d1b9da6f35327a12c66b3fd4.zip gcc-3bf35ccb68dca6d5d1b9da6f35327a12c66b3fd4.tar.gz gcc-3bf35ccb68dca6d5d1b9da6f35327a12c66b3fd4.tar.bz2 |
pa.c (compute_frame_size): Remove implicit assumption that %r4 is the frame pointer.
* pa.c (compute_frame_size): Remove implicit assumption that
%r4 is the frame pointer.
From-SVN: r6247
Diffstat (limited to 'gcc/config/pa')
-rw-r--r-- | gcc/config/pa/pa.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index d31794e..6b677d9 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -1937,22 +1937,13 @@ compute_frame_size (size, fregs_live) we need to add this in because of STARTING_FRAME_OFFSET. */ fsize = size + (size || frame_pointer_needed ? 8 : 0); - /* fp is stored in a special place. */ - if (frame_pointer_needed) + for (i = 18; i >= 3; i--) { - for (i = 18; i >= 5; i--) - if (regs_ever_live[i]) - fsize += 4; - - if (regs_ever_live[3]) + /* fp is stored in a special place. */ + if (regs_ever_live[i] + && (i != FRAME_POINTER_REGNUM || !frame_pointer_needed)) fsize += 4; } - else - { - for (i = 18; i >= 3; i--) - if (regs_ever_live[i]) - fsize += 4; - } fsize = (fsize + 7) & ~7; if (!TARGET_SNAKE) |