Привык, что пролог выглядит как-то так (у меня старый Debian Sarge 3.1): push %ebp mov %ebp,%esp sub $0x..., %esp Недавно, собрав один модуль для apache, обнаружил, что в прологе всех его функций идёт сохранение регистров push%esi push %edi push %ebх, причём иногда %ebx вообще в функции не использовался! Оптимизация вроде по умолчанию была -O2. От чего ещё может зависеть пролог и зачем всё это сохранять?
Это не то! -fomit-frame-pointer убирает сохранение ebp, а меня интересует именно конструкция: push%esi push %edi push %ebх
Спасибо, это понятно. Но дело в том, что ebx, например, мало где используется и толку от его сохранения 0.