нажимаем возвращаемых значений в стек


Мне интересно, имеет ли смысл вставлять возвращаемое значение функции в ее стек-фрейм.

Я знаю, что возвращаемые значения в основном хранятся в регистрах (eax для gcc), но это только для производительности?

Спасибо!

1 4

1 ответ:

Это имеет смысл, но он должен быть вставлен вручную (а не простым нажатием). "пробел" для него должен быть "выделен" вызывающим (он должен уменьшать sp перед вызовом функции), потому что при возврате из функции - адрес возврата должен быть в верхней части стека, поэтому возвращаемое значение должно быть ниже адреса возврата. [тот же принцип, что и передача аргументов в стеке]