summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-08 05:53:38 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-08 05:53:38 +0000
commitde741d2c73f507ee1443103ecb6d0a2311179029 (patch)
tree1d0e259478437bf773eb1f9078e49ffbddc490f1
parent8f7e7fa16ffad41f31df642629cf6ada709777ae (diff)
downloadppe42-gcc-de741d2c73f507ee1443103ecb6d0a2311179029.tar.gz
ppe42-gcc-de741d2c73f507ee1443103ecb6d0a2311179029.zip
* config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
passing arguments the containers for which are registers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84266 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/i386.c8
2 files changed, 9 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c58997ae008..7519fac6998 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-07-06 Jan Beulich <jbeulich@novell.com>
+
+ * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for
+ passing arguments the containers for which are registers.
+
2004-07-08 Alexandre Oliva <aoliva@redhat.com>
Introduce H8SX support.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index bf836c2af8e..b51586f7151 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -3240,7 +3240,7 @@ ix86_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p)
if (container)
{
int needed_intregs, needed_sseregs;
- int need_temp;
+ bool need_temp;
tree int_addr, sse_addr;
lab_false = create_artificial_label ();
@@ -3249,9 +3249,9 @@ ix86_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p)
examine_argument (TYPE_MODE (type), type, 0,
&needed_intregs, &needed_sseregs);
-
- need_temp = ((needed_intregs && TYPE_ALIGN (type) > 64)
- || TYPE_ALIGN (type) > 128);
+ need_temp = (!REG_P (container)
+ && ((needed_intregs && TYPE_ALIGN (type) > 64)
+ || TYPE_ALIGN (type) > 128));
/* In case we are passing structure, verify that it is consecutive block
on the register save area. If not we need to do moves. */
OpenPOWER on IntegriCloud