diff options
author | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-10-17 23:26:29 +0000 |
---|---|---|
committer | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-10-17 23:26:29 +0000 |
commit | d302efa9e6314c7af3d79da26ab397d0fe919810 (patch) | |
tree | b5c11ff40ac03c1001fce5e8eb37feacb5474196 /gcc/config/sparc | |
parent | 5f959b7da319ae9245a76feb9749b7a6e222bb14 (diff) | |
download | gcc-d302efa9e6314c7af3d79da26ab397d0fe919810.tar.gz |
* config/sparc/sparc.c (function_arg_slotno): In 64-bit mode, align
the slot on an even boundary for any type with 16-byte alignment.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105524 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/sparc')
-rw-r--r-- | gcc/config/sparc/sparc.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 180aaa514a8..0b18efd6f28 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -4443,7 +4443,7 @@ function_arg_slotno (const struct sparc_args *cum, enum machine_mode mode, /* For SPARC64, objects requiring 16-byte alignment get it. */ if (TARGET_ARCH64 - && GET_MODE_ALIGNMENT (mode) >= 2 * BITS_PER_WORD + && (type ? TYPE_ALIGN (type) : GET_MODE_ALIGNMENT (mode)) >= 128 && (slotno & 1) != 0) slotno++, *ppadding = 1; @@ -4503,13 +4503,6 @@ function_arg_slotno (const struct sparc_args *cum, enum machine_mode mode, gcc_assert (mode == BLKmode); - /* For SPARC64, objects requiring 16-byte alignment get it. */ - if (TARGET_ARCH64 - && type - && TYPE_ALIGN (type) >= 2 * BITS_PER_WORD - && (slotno & 1) != 0) - slotno++, *ppadding = 1; - if (TARGET_ARCH32 || !type || (TREE_CODE (type) == UNION_TYPE)) { if (slotno >= SPARC_INT_ARG_MAX) |