diff options
author | Eric Botcazou <ebotcazou@libertysurf.fr> | 2005-10-18 01:26:29 +0200 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2005-10-17 23:26:29 +0000 |
commit | 7617ec024b9a8a3c15d4927c71c9ca6045200e19 (patch) | |
tree | b5c11ff40ac03c1001fce5e8eb37feacb5474196 | |
parent | 0ef8776d01a50a33031e4bbc3ee03349bf7de862 (diff) | |
download | gcc-7617ec024b9a8a3c15d4927c71c9ca6045200e19.zip gcc-7617ec024b9a8a3c15d4927c71c9ca6045200e19.tar.gz gcc-7617ec024b9a8a3c15d4927c71c9ca6045200e19.tar.bz2 |
sparc.c (function_arg_slotno): In 64-bit mode...
* 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.
From-SVN: r105524
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.c | 9 |
2 files changed, 6 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ef2f059..c606f83 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-10-17 Eric Botcazou <ebotcazou@libertysurf.fr> + + * 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. + 2005-10-17 Hans-Peter Nilsson <hp@axis.com> PR target/23424 diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 180aaa5..0b18efd 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) |