Size: a a a

2019 October 03

I

Ioann_V in pro.asm
Доска, это что?
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Ioann_V
Ну, эта информация, она все таки не полностью стирает с лица Земли MulX против Imul, когда речь заходит именно о latency: у последней, можно смело получить троечку. А что там процессор в очередь поставит и прочее, уже эксперементами решаемо. Ну, или IACA - хороший инструмент, но иногда, очень редко, врет.
А разве это только про mulx? Написано ж, что для всех. Да и mulx имеет специфическое применение — для длинной арифметики.
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Ioann_V
Доска, это что?
DOS :)
источник

I

Ioann_V in pro.asm
Евгений Красников (Jin X)
А разве это только про mulx? Написано ж, что для всех. Да и mulx имеет специфическое применение — для длинной арифметики.
Чтооо? MulX, не только в bn применим, он 64 на 64 умеет делать, но и imul тоже умеет, только с флагами, да. Но MulX могет 64 на 64 в любой регистр, что круто, временами, а вот imul только в один.
Про доску, я к чему:
Иака он же под процы, а не под ОСки. Так что, все ок будет. На доске замеры делать лучше, ну и еще там команды сброса кеша работают.
источник

I

Ioann_V in pro.asm
А на винде они только из r0 доступны, вродь
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Я имею в виду, что съест ли он код без PE-заголовка? Там вроде метки ставить нужно, насколько я помню. Посмотрю, спасибо за идею! 😉
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Ioann_V
А на винде они только из r0 доступны, вродь
Кто они?
источник

I

Ioann_V in pro.asm
команды сброса кеша, конечно
источник

I

Ioann_V in pro.asm
Евгений Красников (Jin X)
Я имею в виду, что съест ли он код без PE-заголовка? Там вроде метки ставить нужно, насколько я помню. Посмотрю, спасибо за идею! 😉
а, ну у меня он объектники хавает, вроде на ура, а вот на доске не тестил, думаю, что возьмет, наверное.
источник

I

Ioann_V in pro.asm
Иака не учитывает бранч миспредикшны, кеш миссы и прочее - рассматривает код так, как будто все всегда ок.
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Ioann_V
команды сброса кеша, конечно
Ну дочитал сообщения. Ну да, в r0.
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Ioann_V
Иака не учитывает бранч миспредикшны, кеш миссы и прочее - рассматривает код так, как будто все всегда ок.
Плохо.
источник

I

Ioann_V in pro.asm
Угу, но в любом случае, принцип таков: если есть возможность обойтись лишним тактом, но без бранча, лучше обойтись этим тактом. Типа, cmove и прочие команды. Иногда adc зайти может, что-то еще. Ситуаций много, про это я говорить могу много. Но асм вообще говоря, не мой основной язык, я крестовик, а вообще, я простой человек, и слово программист в моем отношении, звучит как оскорбление. Программистов сегодня много, но все ради зарплаты, но у меня не так.
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Ioann_V
Угу, но в любом случае, принцип таков: если есть возможность обойтись лишним тактом, но без бранча, лучше обойтись этим тактом. Типа, cmove и прочие команды. Иногда adc зайти может, что-то еще. Ситуаций много, про это я говорить могу много. Но асм вообще говоря, не мой основной язык, я крестовик, а вообще, я простой человек, и слово программист в моем отношении, звучит как оскорбление. Программистов сегодня много, но все ради зарплаты, но у меня не так.
Ну, cmov иногда работает хуже, чем jcc. Тестить надо варианты, setcc пошустрее.
источник

I

Ioann_V in pro.asm
cmov и setc разные, первый перебросит данные, а второй только байт выставит. А байты, кстати, это проблема тоже. Partial Register Stalling и прочие вещи никто не отменял. Ну, да, тут тестами тоже, но с опытом уже чуйка вырабатывается. Но тут скорее соль в том, что это разные команды.
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Я писал как-то статейку «обходимся без ветвлений». Если есть интерес, могу дать покритиковать :)
источник

I

Ioann_V in pro.asm
Кидай, конечно же.
источник

I

Ioann_V in pro.asm
Самое главное, это тесты. Их очень сложно делать грамотно. Это прям, надо точно не в инете гуглить. В инете неправильно тестируют. То лишние call ы накидают, то кеш инструкций набьют. И все такое. Ну и да, наверное на RTOS тестировать надо.
источник

I

Ioann_V in pro.asm
Жду линку, да.
источник

ЕК

Евгений Красников (Jin X) in pro.asm
источник