Mixed Function Arguments in x86-64 Assembly – Integers & Floats Explained

Mixed Function Arguments in x86-64 Assembly – Integers & Floats Explained

In the System V x86-64 ABI, integer and floating-point arguments use separate register assignment sequences. Integer arguments go into rdi, rsi, rdx, rcx, r8, r9 (then stack), while floating-point arguments use xmm0 through xmm7 independently. This means the first integer you see — even if it appears after several doubles — always goes into rdi, and the second float always goes into xmm1 regardless of how many integers came before it.