This breaks a type down into 'simpler' types that can be passed to a function
in registers, and returned in registers.
This is the implementation for the x86_64 System V ABI (not used for Win64),
based on https://www.uclibc.org/docs/psABI-x86_64.pdf.
tuple of types, each element can be passed in a register.
A tuple of zero length means the type cannot be passed/returned in registers.
null indicates a void.
This breaks a type down into 'simpler' types that can be passed to a function in registers, and returned in registers. This is the implementation for the x86_64 System V ABI (not used for Win64), based on https://www.uclibc.org/docs/psABI-x86_64.pdf.