aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/pa/pa.h
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>2003-03-04 06:20:17 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2003-03-04 06:20:17 +0000
commit95f3f59efde3d3138d216aca9d00913cb4c1a002 (patch)
treee9ac290e5315d76e0df2d32ccb321c9164e8fd9a /gcc/config/pa/pa.h
parent9b23f09dc11c0a21ef0b4affb50a2c2fc7c69147 (diff)
downloadgcc-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.h15
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.