Jeżeli zwracamy przez wartość dużą strukturę i nie zmieści się ona w rejestrach
RAX,RDX,XMM0,XMM1 to do funkcji w RDI zostanie przesłany adres gdzie należy umieścić wynik.
typedef struct { int a, b, c, d, e; } Dane; extern "C" Dane suma(int, int); ... Dane c = suma(4, 5);
W rejestrze RDI zostanie przesłany adres zmiennej c.
W RSI będzie wartość 4, a w RDX wartość 5.
Wynik wpisujemy bezpośrednio do zmiennej c, a w RAX zwracamy adres zmiennej c