------- 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