Bitove polia a optimalizacia kody Was: STM32F051K6U7 ma USART2 ?

Josef Štengl ok1ced na nagano.cz
Neděle Březen 15 23:17:17 CET 2015


... kterážto je navíc omezena použitou sadou (tedy pro Thumb je to menší množství kombinací, i když pro většinu těchto 
případů existuje i 32 bit varianta Thumb).

No a troufám si prohlásit, že to nejspíš navrhoval člověk (tým) co se z technického omezení snažil vytřískat co nejvíc. 
Uvědomte si, že prvotní návrh ARMu byl čistý RISC. A když mají barrel shifter zakomponovaný přímo do vykonávání instrukce, 
tak proč ho nechat ležet ladem.

Je to trochu nechutné, ale svět není dokonalý :-). A zapisovat se to dá ručně v asm přímá hodnota, on si to překladač přebere.

Načítání konstanty z paměti nemusí vyjít na stejno, záleží na tom, kde se ta adresa nachází (jak rychlý je přístup). V 
případě FLASH by to mohlo vyjít poměrně draho (přednačítá se do 8 (16)byte z flash a ta se musí flushnout  (tedy 
vyprázdnit přečíst konstantu a pak znovu naplnit dalšími instrukcemi - což je důvod proč nerad dávám sekci .const do FLASH 
(pokud nemusím z důvodu nedostatku paměti RAM).

Takže ty dva orr za sebou jsou sice divné, ale mající svůj důvod.

Dne 15.3.2015 v 22:21 Jaroslav Buchta napsal(a):
> No tohle asi zrovna  bude dano architekturou ARMu, do registru jde dat primo jen omezena mnozina konstant dana pomerne
> slozitou kombinaci konstanty a posuvu.
> Druha moznost je nacist konstantu 32b z pameti adresovane relativne, takze to vyjde nastejno jako 2 instrukce.
>
> Dne 15. 3. 2015 v 22:13 Milan B. napsal(a):
>>
>>>
>>> Pohlad do vygenerovaneho kodu priniesol prekvapenie:
>>>  orr     r3, r3, #4096
>>>  orr     r3, r3, #1
>>>
>>
>> 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"... preboha, kto toto navrhoval?
>>
>> Tak ostanme len u toho, ze optimalizacia prace s bitovymi polami nie je nic moc.
>>
>> -m-
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
>
> ---
> This email has been checked for viruses by Avast antivirus software.
> http://www.avast.com
>
> _______________________________________________
> 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