OSDN Git Service

2008-03-27 H.J. Lu <hongjiu.lu@intel.com>
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 27 Mar 2008 18:52:18 +0000 (18:52 +0000)
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 27 Mar 2008 18:52:18 +0000 (18:52 +0000)
PR target/35657
* config/i386/i386.c (ix86_function_arg_boundary): Align
decimal floating point to its natural boundary.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@133649 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 529c230..5c80fc9 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 3dfb301..84a54d7 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