From: Georg-Johann Lay Date: Fri, 10 Jun 2011 11:06:36 +0000 (+0000) Subject: avr.c (avr_function_arg_advance): Fix thinko about when a value is actually passed... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3f5ea9dc58907a2d3898ac666572c103d46aa917;p=gcc.git avr.c (avr_function_arg_advance): Fix thinko about when a value is actually passed in regs. * config/avr/avr.c (avr_function_arg_advance): Fix thinko about when a value is actually passed in regs. From-SVN: r174898 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8fb1ad988ac..0c18e056a75 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-06-10 Georg-Johann Lay + + * config/avr/avr.c (avr_function_arg_advance): Fix thinko about + when a value is actually passed in regs. + 2011-06-10 Eric Botcazou Laurent Rougé diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index 5a565b0857f..aadfd244b68 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -1784,7 +1784,8 @@ avr_function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode, a function must not pass arguments in call-saved regs in order to get tail-called. */ - if (cum->regno >= 0 + if (cum->regno >= 8 + && cum->nregs >= 0 && !call_used_regs[cum->regno]) { /* FIXME: We ship info on failing tail-call in struct machine_function. @@ -1800,7 +1801,8 @@ avr_function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode, user has fixed a GPR needed to pass an argument, an (implicit) function call would clobber that fixed register. See PR45099 for an example. */ - if (cum->regno >= 0) + if (cum->regno >= 8 + && cum->nregs >= 0) { int regno;