3 ms·
Per the sysv abi, sec. 3.2.3, parameter passing: > If the size of an object is larger than eight eightbytes, or it contains unaligned fields, it has class MEMOR
by moonchild 6y ago
Per the sysv abi, sec. 3.2.3, parameter passing:
> If the size of an object is larger than eight eightbytes, or it contains unaligned fields, it has class MEMORY
> [...]
> If the size of the aggregate exceeds a single eightbyte, each is classified separately. Each eightbyte gets initialized to class NO_CLASS.
So that only happens if the whole structure is bigger than 64 bytes. Otherwise everything gets passed in registers like normal.
- account42 6y agoOnly 16 bytes are passed in registers except for float types: > If the size of the aggregate exceeds two eightbytes and the first eight-byte isn’t SSE or any other eightbyte isn’t SSEUP, the whole argumentis passed in memory.