avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avr-gcc-list] GCC 3.0 thread


From: Denis Chertykov
Subject: Re: [avr-gcc-list] GCC 3.0 thread
Date: Thu Jan 18 10:14:04 2001

address@hidden (J Wunsch) writes:

> Denis Chertykov <address@hidden> wrote:
> 
> > Current avr-as understands `__tmp_reg__ = 0' and
> > (for example) `mov __tmp_reg__, r29'.
> 
> Ah, ok.  I guess this also solves the problem that the old avr-gcc
> produced invalid code for something like:
> 
> int r24;
> 
> void main(void) { r24 = 13; }

Yes.

> >> (Actually, there was a bug in my report, regarding the number of
> >> parameters to REGISTER_MOVE_COST() ...
> 
> > Show me a code examples and GCC version.
> 
> gcc-core-20010101.tar.gz:
> 
> gcc-20010101/gcc/config/avr/avr.h (and all the other MD files)
> contains:
> 
> #define REGISTER_MOVE_COST(MODE, FROM, TO) ((FROM) == STACK_REG ? 6 \
>                                             : (TO) == STACK_REG ? 12 \
>                                             : 2)
> 
> gcc-20010101/gcc/regclass.c (and other files) use:
> 
>   for (i = 0; i < N_REG_CLASSES; i++)
>     for (j = 0; j < N_REG_CLASSES; j++)
>       {
>         int cost = i == j ? 2 : REGISTER_MOVE_COST (i, j);
>                                                     ^^^^ only 2 params

You have a buggy snapshort. (gcc-20010101 was buggy)

Fragment from gcc/ChangeLog

2001-01-01  Alexandre Oliva  <address@hidden>

        * tm.texi (REGISTER_MOVE_COST): Add a mode argument.
        * reload.c (REGISTER_MOVE_COST): Likewise.  Adjust all callers.
        * reload1.c (REGISTER_MOVE_COST): Likewise.
        * regclass.c (REGISTER_MOVE_COST): Likewise.
        (move_cost, may_move_in_cost, may_move_out_cost): Add mode
        dimension.  Adjust all users.
        (init_reg_sets_1): Iterate on all modes.
        * config/1750a/1750a.h (REGISTER_MOVE_COST): Adjust.
        * config/a29k/a29k.h (REGISTER_MOVE_COST): Adjust.
        * config/alpha/alpha.h (REGISTER_MOVE_COST): Adjust.
        * config/arc/arc.h (REGISTER_MOVE_COST): Adjust.
        * config/arm/arm.h (REGISTER_MOVE_COST): Adjust.
        * config/avr/avr.h (REGISTER_MOVE_COST): Adjust.
        * config/c4x/c4x.h (REGISTER_MOVE_COST): Adjust.
        * config/d30v/d30v.h (REGISTER_MOVE_COST): Adjust.
        * config/dsp16xx/dsp16xx.h (REGISTER_MOVE_COST): Adjust.
        * config/h8300/h8300.h (REGISTER_MOVE_COST): Adjust.
        * config/i386/i386.h (REGISTER_MOVE_COST): Adjust.
        * config/ia64/ia64.h (REGISTER_MOVE_COST): Adjust.
        * config/m32r/m32r.h (REGISTER_MOVE_COST): Adjust.
        * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Adjust.
        * config/m68k/m68k.h (REGISTER_MOVE_COST): Adjust.
        * config/mcore/mcore.h (REGISTER_MOVE_COST): Adjust.
        * config/mips/mips.h (REGISTER_MOVE_COST): Adjust.
        * config/mn10200/mn10200.h (REGISTER_MOVE_COST): Adjust.
        * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Adjust.
        * config/ns32k/ns32k.h (REGISTER_MOVE_COST): Adjust.
        * config/pa/pa.h (REGISTER_MOVE_COST): Adjust.
        * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Adjust.
        * config/pj/pj.h (REGISTER_MOVE_COST): Adjust.
        * config/romp/romp.h (REGISTER_MOVE_COST): Adjust.
        * config/rs6000/rs6000.h (REGISTER_MOVE_COST): Adjust.
        * config/sh/sh.h (REGISTER_MOVE_COST): Adjust.
        * config/sparc/sparc.h (REGISTER_MOVE_COST): Adjust.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]