Automaticke pretypovani u AVR-GCC

Milan B. milan@bastl.sk
Středa Červenec 22 21:47:46 CEST 2009


Ten priklad s parametrami som tiez vyskusal, vysledok bol rovnaky:
s optimalizaciu 8 bit
bez optimalizacie 16 bit

preto som napisal, za neverim ...

-m-

void fce(const U8 p, const U8 q)
{
   if ( 3==(3 & q) ) {
        i++;
}
}

prelozene ako:

fce:
/* prologue: function */
/* frame size = 0 */
    andi r22,lo8(3)     ;  8    andqi3/2    [length = 1]
    cpi r22,lo8(3)     ;  9    cmpqi/2    [length = 1]
    brne .L3     ;  10    branch    [length = 1]
    lds r24,i     ;  12    *movqi/4    [length = 2]
    subi r24,lo8(-(1))     ;  13    addqi3/2    [length = 1]
    sts i,r24     ;  14    *movqi/3    [length = 2]
.L3:
    ret     ;  29    return    [length = 1]




Miroslav Šinko wrote:
> Dňa 22.7.2009, Tomáš Halabala <tomas.halabala@iol.cz> napísal(a):
>   
>> Vidite a jsme u te "nalady". Pouzivam stejnou verzi prekladace a pripad
>> B je nekdy skompilovany ako 8-bitovy a nekdy ako 16-bitovy.
>>     
>
> To zas nie, ved som vam pisal, ze jeden priklad ste dali s externou
> statickou premennou a druhy s const parametrom funkcie. To su pre
> prekladac rozne veci, aj ked vam sa mozno javia "rovnako".
>
> miro
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>   




Další informace o konferenci Hw-list