Inline assembler GNU
От: кубик  
Дата: 20.11.20 09:27
Оценка:
с утра Питон, с пробелами и табуляцией, щас inline GNU assembler. Может не все его видели:

        movl    4*n(%%esi,%%edx,4), %%eax        \n\
        movq    %%mm1, %%mm0                \n\
        pxor    (%%edi,%%eax,8), %%mm0            \n\


Клавиша % может очень быстро сломаться.
Re: Inline assembler GNU
От: CreatorCray  
Дата: 20.11.20 09:31
Оценка: +4
Здравствуйте, кубик, Вы писали:

Меня их совершенно идиотский синтаксис всегда бесил.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re: Inline assembler GNU
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 20.11.20 09:33
Оценка: 1 (1) +3 :)
Здравствуйте, кубик, Вы писали:

К>с утра Питон, с пробелами и табуляцией, щас inline GNU assembler. Может не все его видели:


К>
К>        movl    4*n(%%esi,%%edx,4), %%eax        \n\
К>        movq    %%mm1, %%mm0                \n\
К>        pxor    (%%edi,%%eax,8), %%mm0            \n\
К>


К>Клавиша % может очень быстро сломаться.


Тебе лавры Shmj или RussianFellow покоя не дают? Вбросить и убежать?

По-нормальному в этом ассемблере используются констрейнты типа %0 или %[src2]. Фиксированный регистр это хоть местами и нужно (потому что у команд x86 самые тупые проектировщики, какие только могут быть), но для большинства нафиг не рекомендуется, потому что ограничивает возможности компилятора по распределению регистров (а то, что он трудолюбивее и настырнее тебя в этом, можешь не сомневаться). Твоя задача как кодера — дать ассемблеру максимальную свободу в распределении регистров, и если ты фиксируешься на %mm1 — ты сам себе буратин.

Возможно, ты после никчемного ассемблера MSVC с его фиксированными регистрами пытаешься перейти на GCCʼшный подход, ну так надо было вначале хотя бы родную документацию почитать...
The God is real, unless declared integer.
Re[2]: Inline assembler GNU
От: кубик  
Дата: 20.11.20 10:27
Оценка:
netch80,

Спасибо за проф. ответ. Nasm например сделал красиво. Если я куда то буду переходить то на nasm.
Если б это было %mm0 то еще боле менее, но это %%mm0!

btw, Это ж священные войны, а в войнах бывает разная тактика. Убегать надо не потому что страшно, а потому что есть работа.
Re[3]: Inline assembler GNU
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 20.11.20 11:23
Оценка:
Здравствуйте, кубик, Вы писали:

К>netch80,


К>Спасибо за проф. ответ. Nasm например сделал красиво. Если я куда то буду переходить то на nasm.


А что они сделали-то? Я видел код на nasm, но меня интересует именно что тут думают по теме макр (а такие конструкции для ассемблера это именно что макры, хоть и в ограниченном виде).
Если ты вспоминаешь, что они не требуют обязательного префикса перед регистрами... ну тут, конечно, решение такого же уровня, как требовать писать @if, @int в языке типа C, но как гарантия избавления от конфликтов это надёжно работает. Тут все вопросы к AT&T.

К>Если б это было %mm0 то еще боле менее, но это %%mm0!


Мне пофиг. Писать так приходится очень редко и клавиатуру не испортишь

К>btw, Это ж священные войны, а в войнах бывает разная тактика. Убегать надо не потому что страшно, а потому что есть работа.


Ну вот я в перерыве и зашёл сюда
The God is real, unless declared integer.
Re: Inline assembler GNU
От: Michael7 Россия  
Дата: 20.11.20 17:00
Оценка: 3 (1)
Здравствуйте, кубик, Вы писали:

К>Клавиша % может очень быстро сломаться.


Используй опцию gcc -masm=intel
Re: Inline assembler GNU
От: Dym On Россия  
Дата: 22.11.20 11:05
Оценка:
Здравствуйте, кубик, Вы писали:

К>с утра Питон, с пробелами и табуляцией, щас inline GNU assembler. Может не все его видели:

Коллега, да у вас просто день открытий Здесь-то что не так?
Счастье — это Glück!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.