Name Description Size
ffi.c The Nios II Processor Reference Handbook defines the procedure call ABI as follows. Arguments are passed as if a structure containing the types of the arguments were constructed. The first 16 bytes are passed in r4 through r7, the remainder on the stack. The first 16 bytes of a function taking variable arguments are passed in r4-r7 in the same way. Return values of types up to 8 bytes are returned in r2 and r3. For return values greater than 8 bytes, the caller must allocate memory for the result and pass the address as if it were argument 0. While this isn't specified explicitly in the ABI documentation, GCC promotes integral arguments smaller than int size to 32 bits. Also of note, the ABI specifies that all structure objects are aligned to 32 bits even if all their fields have a smaller natural alignment. See FFI_AGGREGATE_ALIGNMENT. 9589
ffitarget.h Structures have a 4-byte alignment even if all the fields have lesser alignment requirements. 1812
sysv.S 3841