Bitove polia a optimalizacia kody Was: STM32F051K6U7 ma USART2 ?

Milan B. milan na bastl.sk
Pondělí Březen 16 11:54:58 CET 2015


On 3/16/2015 11:03 AM, Jan Waclawek wrote:
>> No, tak stacilo pozriet do dokumentacie... treti operand je "any
>> constant that can be produced by shifting an 8-bit value left by any
>> number of bits within a 32-bit word"
> Neviem aku dokumentaciu ste pozerali, lebo toto nie je celkom pravda;
> presnejsie, tych moznosti je o nieco malo viac, menovite formy:
>
> int main(void) {
> __asm(
>    "orr r3, r3, #0xab00ab00" "\n\t"
>    "orr r3, r3, #0x00ab00ab" "\n\t"
>    "orr r3, r3, #0xabababab" "\n\t"
> );
> }

Samozrejme som ich videl, len som zmienil iba tu jednu relevantnu 
moznost. Citovanie celej dokumentacie by asi nebolo ucelne.

>
> Konstanty (immediate operandy) su kanonicky problem vsetkych procesorov s
> instrukcnym slovom mensim aj rovnym (aj len malo vacsim) nez je datove
> slovo. Riesenia su vsetky "plytvajuce": bud natiahnut konstantu do
> registra "na viackrat" (to je ciste v rukach programatora), natahovat
> konstanty do registra nepriamo (to je vacsinovo pouzite riesenie u RISC),
> mat viacslovne instrukcie (to sa prieci principu RISC) a mat instrukcie
> ktore vedia robit aritmetiku s nepriamymi operandami (aj toto sa prieci
> principu RISC).
>
> U toho Thumbu je to vdaka vyraznemu rozdielu sirky slov (16/32, aj ked cas
> instrukcii je dvoj-pol-slovna, ale to tu situaciu aj tak nezachrani) dost
> vypukle, takze k dispozicii je len jeden byte dat a par bitov naviac na to
> "riadenie" (rotacie atd.), a podla vsetkeho autori robili co mohli. To
> pouzitie barrel shiftu a "byte-to-word-expandera" je pomerne prirodzene,
> kedze obvody pre toto tam uz z inych dovodov aj tak su (barrel shift je
> tam od zaciatku a je nasledok prvotneho rozhodnutia mat nasobicku v jadre).

Racionalne vysvetlenie sa da najst na cokolvek, aj toto vase beriem. 
Urcite robili co mohli, ale menej je niekedy viac. Lenze to je na inu 
temu. Vrsenie "features" - len preto ze sa to da - nie je vzdy ten 
najlepsi sposob.

Ale toto nebola tema tohoto vlakna, to bolo len take povzdychnutie. Ako 
odchovanec PDP-11, liznuty VAXom a oblukom sa vrativsi k MSP430 mam o 
elegantnom a prehladnom instrukcnom subore trochu inu predstavu.

-m-

> wek
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list



Další informace o konferenci Hw-list