summaryrefslogtreecommitdiff
path: root/gcc/config/sparc/sparc.h
diff options
context:
space:
mode:
authorgeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>2003-10-07 19:48:23 +0000
committergeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>2003-10-07 19:48:23 +0000
commit891a173212c96e32e56c79008c02e139679736f6 (patch)
treec53a7e4a83374635bd98d065b41f34892f94f167 /gcc/config/sparc/sparc.h
parentdee34495584f1e3455d75d34e0969aba822e9e77 (diff)
downloadgcc-891a173212c96e32e56c79008c02e139679736f6.tar.gz
2003-10-07 Geoffrey Keating <geoffk@apple.com>
* function.c (pad_to_arg_alignment): Take STACK_POINTER_OFFSET into account when aligning arguments. * calls.c (STACK_POINTER_OFFSET): Move default from here ... * defaults.h (STACK_POINTER_OFFSET): ... to here. * config/sparc/sparc.h (STACK_BOUNDARY): Add comment about how it's wrong when TARGET_ARCH64 && TARGET_STACK_BIAS. (SPARC_STACK_BOUNDARY_HACK): Define. * config/rs6000/rs6000.c (function_arg): On non-SVR4 systems, arrange for vector parameters to varargs functions to be passed in both memory and GPRs when appropriate. (rs6000_va_arg): Vector arguments passed in memory are 16-byte aligned. Index: testsuite/ChangeLog 2003-10-07 Geoffrey Keating <geoffk@apple.com> * gcc.dg/darwin-abi-2.c: New file. * gcc.c-torture/execute/va-arg-24.c: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72199 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/sparc/sparc.h')
-rw-r--r--gcc/config/sparc/sparc.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h
index 77de509d430..d2a37f3cd60 100644
--- a/gcc/config/sparc/sparc.h
+++ b/gcc/config/sparc/sparc.h
@@ -780,7 +780,13 @@ if (TARGET_ARCH64 \
#define PARM_BOUNDARY (TARGET_ARCH64 ? 64 : 32)
/* Boundary (in *bits*) on which stack pointer should be aligned. */
+/* FIXME, this is wrong when TARGET_ARCH64 and TARGET_STACK_BIAS, because
+ then sp+2047 is 128-bit aligned so sp is really only byte-aligned. */
#define STACK_BOUNDARY (TARGET_ARCH64 ? 128 : 64)
+/* Temporary hack until the FIXME above is fixed. This macro is used
+ only in pad_to_arg_alignment in function.c; see the comment there
+ for details about what it does. */
+#define SPARC_STACK_BOUNDARY_HACK (TARGET_ARCH64 && TARGET_STACK_BIAS)
/* ALIGN FRAMES on double word boundaries */