This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/35657] TDmode isn't aligned at 128bit when passing to a function
- From: "hjl dot tools at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 25 Mar 2008 00:42:12 -0000
- Subject: [Bug target/35657] TDmode isn't aligned at 128bit when passing to a function
- References: <bug-35657-682@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #3 from hjl dot tools at gmail dot com 2008-03-25 00:42 -------
This patch will align DFP to its natural boundary.
Index: gcc/config/i386/i386.c
===================================================================
--- gcc/config/i386/i386.c (revision 1917)
+++ gcc/config/i386/i386.c (working copy)
@@ -4609,7 +4609,8 @@ ix86_function_arg_boundary (enum machine
align = GET_MODE_ALIGNMENT (mode);
if (align < PARM_BOUNDARY)
align = PARM_BOUNDARY;
- if (!TARGET_64BIT)
+ /* Decimal floating point is aligned to its natural boundary. */
+ if (!TARGET_64BIT && !VALID_DFP_MODE_P (mode))
{
/* i386 ABI defines all arguments to be 4 byte aligned. We have to
make an exception for SSE modes since these require 128bit
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35657