вставьте возвращаемые значения в кадр стека - PullRequest
4 голосов
/ 08 августа 2011

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

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

Спасибо!

1 Ответ

9 голосов
/ 08 августа 2011

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

...