From 7617ec024b9a8a3c15d4927c71c9ca6045200e19 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Tue, 18 Oct 2005 01:26:29 +0200 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/config/sparc/sparc.c | 9 +-------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ef2f059539c..c606f83e383 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-10-17 Eric Botcazou + + * 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 PR target/23424 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) -- 2.30.2