From c84555eb6dbd6d1ba4faccca6ccabde13f0c3ce6 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Thu, 27 Mar 2008 18:52:18 +0000 Subject: [PATCH] re PR target/35657 (Alignments of DFP types aren't consistent) 2008-03-27 H.J. Lu PR target/35657 * config/i386/i386.c (ix86_function_arg_boundary): Align decimal floating point to its natural boundary. From-SVN: r133649 --- gcc/ChangeLog | 6 ++++++ gcc/config/i386/i386.c | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 529c23062a2..5c80fc941fc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-03-27 H.J. Lu + + PR target/35657 + * config/i386/i386.c (ix86_function_arg_boundary): Align + decimal floating point to its natural boundary. + 2008-03-27 Richard Guenther PR middle-end/35716 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 3dfb301962c..84a54d78bb0 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -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 -- 2.30.2