On Sat, Sep 29, 2012 at 08:38:04PM +0400, "Артём Н." wrote: > >>>>>> Кстати, а hardening (например, проверка стека) сильно влияет на производительность? > >>>>> stackprotector - вряд ли заметно, pie - да на i386, остальное скорее вообще никак. > >>>> Да, а на не 64-битных не влияет? Почему? Разве есть какие-то кардинальные отличия? > >>> PIC/PIE занимает один регистр, который на i386 очень мало. > >> Если не хватает регистров, он использует стэк? > > Зависит. > > Обычно наоборот, если есть свободные регистры, туда можно сунуть локальные > > переменные вместо стека. > В смысле, для вычисления адресов, при использовании PIE используется много > регистров, а если они заняты, компилятору приходится гонять данные между стеком > и регистрами. Потому на x86 и тормозит, а в x64 добавили регистры, так что их > там хватает. Так? Хм, я сейчас нашёл, что на amd64 и каких-нибудь других архитектурах вообще не занимается регистр, т.к. достаточно уметь адресацию через %rip. На i386 да, всегда занят один регистр, там лежит адрес GOT. -- WBR, wRAR
Attachment:
signature.asc
Description: Digital signature