Page 1 of 1
Re: Почему всё же eax?
Posted: Tue Feb 07, 2006 10:39 am
by willow
Johnny B wrote:
Очень часто просто возникает желание его заюзать, т.к. по многим командам это даёт выигрыш, как по размеру(обычно команды с eax, в кач-ве параметра, на байт короче), так и по скорости(подозреваю).
Короче, приходится обходится другими регистрами.
Наверное, просто потому, что это самый "главный" регистр, его сделали показателем номера сисфункции. Это дает ускорение в ядре, а насчет приложений - для размеров исполняемых файлов Menuet это мелочь.
Posted: Wed Feb 08, 2006 7:38 pm
by Mario79
Johnny B
Вообще особенности логики данного финского мужика (ему более 40 лет от роду) мы уже не раз обсуждали на форуме, IRC, асе и в письмах. Так что думаю, возвращаться к этой теме не имеет смысла. Система работает, и перекраивать ее на 100% не имеет практического смысла.
Теперь насчет использования EAX.
Возможно, ты знаешь, но я напишу - есть команды работы со стеком.
PUSH, POP и остальные разновидности. Я уже не говорю о прямой работе с ESP.
Если подпрограмма достаточно большая и критичная по времени, то сохранение регистра в стеке на входе процедуры и восстановление на выходе, очень даже неплохое решение проблемы.
А иногда это единственно возможное решение.
willow
Ускорение в ядре это никакого не дает. С таким же успехом можно использовать область данных с параметрами, естественно хоть один регистр при этом придется использовать, для указания на месторасположения области данных.
Однократное применение регистра без всякого цикла погоду не делает.
Posted: Wed Feb 08, 2006 10:30 pm
by NoName
На самом деле вызов fastcall не имеет смысла, все равно придется в большинстве случаяв сохранять в функции регистры через стек, на кой черт это делать если можно через стек передавать параметры? Прирост производительности можно проверить, он должен быть и мы можем его оценить!
2coremans Не придется ли вручную копировать стек? Вроде у нас нет теперь такого tss...
Posted: Thu Feb 09, 2006 11:15 am
by willow
Как насчет этой статьи
http://www.wasm.ru/article.php?article=1010002 . Тут большой простор для оптимизации и сокращению размера кода. Кое-что использую и сам.
Posted: Thu Feb 09, 2006 9:02 pm
by NoName
сейчас уже работает, лежал под принудительной перегрузкой.
"Преждевременная оптимизация корень всех зол"
Posted: Thu Feb 09, 2006 10:32 pm
by mike.dld