Компиляция С на АРМе

Programs, sources, embedded, demomaking, whatsoever related to subj :)

Postby TS-Labs » 02 Jul 2012, 02:11

Кто тут шарит в АРМах? Скажите, нафига компилер вставляет вот этот ноп:

103: __inline void AY_Tick_tone(int n) {
0x00000B60 F04F0C00 MOV r12,#0x00
0x00000B64 2E00 CMP r6,#0x00
0x00000B66 F34080FC BLE.W 0x00000D62
104: if (AY[n].ctr_tn0 < AY[n].TF0.h)
0x00000B6A BF00 NOP
0x00000B6C EB08108C ADD r0,r8,r12,LSL #6
0x00000B70 8983 LDRH r3,[r0,#0x0C]
0x00000B72 8884 LDRH r4,[r0,#0x04]
0x00000B74 42A3 CMP r3,r4

В дальнейшем переход в цикле происходит на адрес после НОПа:
0x00000D5C 45B4 CMP r12,r6
0x00000D5E F6FFAF05 BLT.W 0x00000B6C

Компилятор армовский 4.1.
Выставлена оптимизация О3, по скорости, межмодульная.
Проц STM32F407VGT6 (Cortex-M4F).

Мои предположения:
1. Херово оптимизирует. Глупый вариант, для статистики.
2. Что то связанное с выравниванием по адресам на 4. Но джампы работают и на адреса кратные 2.
3. Какая-то фича для внутреннего фетчера/бранч предиктора.
TS-Labs
 
Posts: 1150
Joined: 19 Apr 2010, 10:10
Location: Wildest West
Group: Registered users

Postby lvd » 02 Jul 2012, 02:34

Говно*ЦЦ же, компилит в говне*ЦЦо, чо тут думать, ы?

Кстати, что за "Компилятор армовский 4.1.", гугел не знает, зато...
1.png

И почему-то, готов согласиться...
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7262
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby DimkaM » 02 Jul 2012, 09:17

я за второй пункт первого варианта.
16bit или 8bit статика.
может даже 2х8бит, хотя незнаю 32бит процы наверно неумеют так.
N>"Идите нахуй" со своей политикой...
DimkaM
 
Posts: 1011
Joined: 24 Mar 2010, 12:42
Location: г.Щёлково М.О.
Group: Registered users

Postby lvd » 02 Jul 2012, 11:12

DimkaM wrote:я за второй пункт первого варианта.
16bit или 8bit статика.
может даже 2х8бит, хотя незнаю 32бит процы наверно неумеют так.

Нераспарсил ни всё вместе, ни каждое пердложение в отдельности.
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7262
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby DimkaM » 02 Jul 2012, 13:21

статичные переменные
N>"Идите нахуй" со своей политикой...
DimkaM
 
Posts: 1011
Joined: 24 Mar 2010, 12:42
Location: г.Щёлково М.О.
Group: Registered users

Postby TS-Labs » 02 Jul 2012, 13:24

lvd wrote:И почему-то, готов согласиться...

Ну типа родился новый мем. Спасибо за раскрутку.
Не знаю, как используя русский язык и образование прилагательных, назвать компилер скачанный с сцайта арм.ком.
Спасибо за точный и содержательный ответ, мой непиздабольный друг. Ответ твой совершенно точен и никому нахуй не нужен.
Датошит поцказал, что таки выбиратор из флэша заалайнен на адрес кратный 4 байтам.
TS-Labs
 
Posts: 1150
Joined: 19 Apr 2010, 10:10
Location: Wildest West
Group: Registered users


Return to Coding

Who is online

Users browsing this forum: No registered users and 18 guests

cron