blob: 4147f7eba9100554c9847ad086398fdf469a1a58 [file] [log] [blame]
Register Usage
rax temporary register; with variable arguments passes information
about the number of SSE registers used; 1st return register
rbx* callee-saved register; optionally used as base pointer
rcx used to pass 4th integer argument to functions
rdx used to pass 3rd argument to functions 2nd return register
rsp* stack pointer
rbp* callee-saved register; optionally used as frame pointer
rsi used to pass 2nd argument to functions
rdi used to pass 1st argument to functions
r8 used to pass 5th argument to functions
r9 used to pass 6th argument to functions
r10 temporary register, used for passing a function's static chain pointer
r11 temporary register
r12-15* callee-saved registers
xmm0­1 used to pass and return floating point arguments
xmm2­7 used to pass floating point arguments
xmm8­15 temporary registers
mmx0­7 temporary registers
st0 temporary register; used to return long double arguments
st1 temporary registers; used to return long double arguments
st2­7 temporary registers
fs Reserved for system use (as thread specific data register)
*) must be preserved across function calls
Integer arguments from list: rdi,rsi,rdx,rcx,r8,r9,stack
Floating point arguments from list: xmm0-xmm7