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
This commit is contained in:
Georg-Johann Lay 2011-06-10 11:06:36 +00:00 committed by Georg-Johann Lay
parent b11b09048d
commit 3f5ea9dc58
2 changed files with 9 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2011-06-10 Georg-Johann Lay <avr@gjlay.de>
* config/avr/avr.c (avr_function_arg_advance): Fix thinko about
when a value is actually passed in regs.
2011-06-10 Eric Botcazou <ebotcazou@adacore.com>
Laurent Rougé <laurent.rouge@menta.fr>

View File

@ -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;