With the inlining problem basically solved, here's my second question.
What I would like to achieve is to create my own CallingConvention, or something to that effect. I would want to keep the native calling convention (ABI) intact, but reorganize the parameters and also the return value into a struct.
Here's a simplified example, which I hope makes this clearer: