diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-07-08 05:53:38 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-07-08 05:53:38 +0000 |
commit | de741d2c73f507ee1443103ecb6d0a2311179029 (patch) | |
tree | 1d0e259478437bf773eb1f9078e49ffbddc490f1 | |
parent | 8f7e7fa16ffad41f31df642629cf6ada709777ae (diff) | |
download | ppe42-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 8 |
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. */ |