diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 2 |
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. */ |