K10 Это оптимизация на несколько байт, и октуальна она только если вы вирус пишете. А например в PE файлах FileAlignment "сожрёт" всю вашу оптимизацию по размеру.
Правильно, и все эти loop, enter и т.п. и были придуманы в стародавние времена для сокращения размера кода. Судя по табличке (см.ссылку в #4) они и тогда (т.е. всегда) были достаточно тормозными, и расчитывать на то, что разрабы по прошествии лет сойдут с ума и начнут их как-то специально оптимизировать, мягко говоря, не приходится. Тем более, что в отношении loop это весьма проблематично, т.к. она по дурной задумке\традиции не должна изменять флаги, а это в условиях out-of-order execution вызывает серьезную проблему "из той же оперы", что и inc\dec и прочие partial flags Что касается leave, то это просто пара эквивалентных микрооперций mov+pop и соотв-но особых проблем с ее реализацией нет, поэтому она и работает достаточно быстро (по кр.мере в P6 и AMD). Возможно и enter 0,0 можно было также "бесхитростно" реализовать через push+mov, но это видимо нафиг никому не нужно, как и сама enter , и соотв-но все варианты enter отрабатывают "по полной (микро)программе"
leo Это проблемы компилятора. Зачем вобще SFC ? Это ведь замедляет и ограничивает в использовании одного регистра. Да и в безопасности это дыра, развертка SFC это альтернативный способ захвата кода.