aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2006-04-20 07:04:00 +0000
committerAlan Modra <amodra@gcc.gnu.org>2006-04-20 16:34:00 +0930
commit9a74f8ee3d11e3448de7aaea916ee6fa24f5451e (patch)
tree5f5dc92b144c1672597187723718935335ac3eec /gcc
parent904b6a0eefb5a84e02dcf8a18437f0d115fc5527 (diff)
downloadgcc-9a74f8ee3d11e3448de7aaea916ee6fa24f5451e.zip
gcc-9a74f8ee3d11e3448de7aaea916ee6fa24f5451e.tar.gz
gcc-9a74f8ee3d11e3448de7aaea916ee6fa24f5451e.tar.bz2
rs6000.c (rs6000_gimplify_va_arg): Consume all fp regs if the last fp arg doesn't fit in regs.
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all fp regs if the last fp arg doesn't fit in regs. From-SVN: r113111
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/rs6000.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 023894b..978e128 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2006-04-20 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
+ fp regs if the last fp arg doesn't fit in regs.
+
2006-04-20 Kaz Kojima <kkojima@gcc.gnu.org>
PR target/27182
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 0c004a9..7e18f6d 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -5960,7 +5960,7 @@ rs6000_gimplify_va_arg (tree valist, tree type, tree *pre_p, tree *post_p)
t = build1 (LABEL_EXPR, void_type_node, lab_false);
append_to_statement_list (t, pre_p);
- if (n_reg > 2)
+ if ((n_reg == 2 && reg != gpr) || n_reg > 2)
{
/* Ensure that we don't find any more args in regs.
Alignment has taken care of the n_reg == 2 case. */