re PR target/35657 (Alignments of DFP types aren't consistent)
authorH.J. Lu <hongjiu.lu@intel.com>
Thu, 27 Mar 2008 18:52:18 +0000 (18:52 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Thu, 27 Mar 2008 18:52:18 +0000 (11:52 -0700)
2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>

PR target/35657
* config/i386/i386.c (ix86_function_arg_boundary): Align
decimal floating point to its natural boundary.

From-SVN: r133649

gcc/ChangeLog
gcc/config/i386/i386.c

index 529c23062a2ebb7f7f2dbfde69da39ff36e332cf..5c80fc941fcd9d227f39b964a0eaccb843660db0 100644 (file)
@@ -1,3 +1,9 @@
+2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/35657
+       * config/i386/i386.c (ix86_function_arg_boundary): Align
+       decimal floating point to its natural boundary.
+
 2008-03-27  Richard Guenther  <rguenther@suse.de>
 
        PR middle-end/35716
index 3dfb301962c49f9634d33dbb21cea4364ebba1b5..84a54d78bb039b000c13f76496493ecd00dae85f 100644 (file)
@@ -4577,7 +4577,8 @@ ix86_function_arg_boundary (enum machine_mode mode, tree type)
     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