Как на AMD64/IA32 возвращаются большие структуры?

agaaaa

Есть функция, которая возвращает структуру, например, размером 64 байта.
Каким образом в стандартных соглашениях о вызове функций она возвращается и как это делают на практике?

vall

гугли "calling conventions"
скорее всего если влазит сует в %eax или в пару %eax:%edx
ну и в 64битные аналоги соотвественно.

agaaaa

Гуглил и в Вики смотрел. Просто подумал, может кто знает.
64 байта точно не войдут ни в один регистр, ни даже во все на IA32.

Vlad77

gcc -S как бы намекает, что он кладёт всю эту махину на стек перед аргументами. После возврата %eax содержит адрес начала структуры.
Оставить комментарий
Имя или ник:
Комментарий: