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