diff options
author | John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | 2003-03-04 06:20:17 +0000 |
---|---|---|
committer | John David Anglin <danglin@gcc.gnu.org> | 2003-03-04 06:20:17 +0000 |
commit | 95f3f59efde3d3138d216aca9d00913cb4c1a002 (patch) | |
tree | e9ac290e5315d76e0df2d32ccb321c9164e8fd9a /gcc/config/pa/pa.h | |
parent | 9b23f09dc11c0a21ef0b4affb50a2c2fc7c69147 (diff) | |
download | gcc-95f3f59efde3d3138d216aca9d00913cb4c1a002.zip gcc-95f3f59efde3d3138d216aca9d00913cb4c1a002.tar.gz gcc-95f3f59efde3d3138d216aca9d00913cb4c1a002.tar.bz2 |
function.c (STACK_ALIGNMENT_NEEDED): New macro.
* function.c (STACK_ALIGNMENT_NEEDED): New macro. Default to 1.
(assign_stack_local_1): Perform overall stack alignment only when
STACK_ALIGNMENT_NEEDED is non-zero.
* doc/tm.texi (STACK_ALIGNMENT_NEEDED): Document.
* pa.c (compute_frame_size): Rename fsize to size. Account for
alignment to a word boundary before general register save block. Only
account for double-word alignment before floating point register save
block if one or more are saved. Don't allocate space for %r3 when
frame pointer is needed.
(hppa_expand_prologue): Include alignment to word boundary in local
frame size.
* pa.h (STARTING_FRAME_OFFSET): Define to 8 on both 32 and 64-bit ports.
(STACK_ALIGNMENT_NEEDED): Define.
From-SVN: r63771
Diffstat (limited to 'gcc/config/pa/pa.h')
-rw-r--r-- | gcc/config/pa/pa.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index 0b055e9..ba533ff 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -676,10 +676,17 @@ extern struct rtx_def *hppa_pic_save_rtx PARAMS ((void)); /* Offset within stack frame to start allocating local variables at. If FRAME_GROWS_DOWNWARD, this is the offset to the END of the first local allocated. Otherwise, it is the offset to the BEGINNING - of the first local allocated. The start of the locals must lie on - a STACK_BOUNDARY or else the frame size of leaf functions will not - be zero. */ -#define STARTING_FRAME_OFFSET (TARGET_64BIT ? 16 : 8) + of the first local allocated. + + On the 32-bit ports, we reserve one slot for the previous frame + pointer and one fill slot. The fill slot is for compatibility + with HP compiled programs. On the 64-bit ports, we reserve one + slot for the previous frame pointer. */ +#define STARTING_FRAME_OFFSET 8 + +/* Define STACK_ALIGNMENT_NEEDED to zero to disable final alignment + of the stack. The default is to align it to STACK_BOUNDARY. */ +#define STACK_ALIGNMENT_NEEDED 0 /* If we generate an insn to push BYTES bytes, this says how many the stack pointer really advances by. |