2012-08-30 00:51:00 +00:00
|
|
|
|
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<EFBFBD>1 used to pass and return floating point arguments
|
|
|
|
|
|
|
|
|
|
xmm2<EFBFBD>7 used to pass floating point arguments
|
|
|
|
|
|
|
|
|
|
xmm8<EFBFBD>15 temporary registers
|
|
|
|
|
|
|
|
|
|
mmx0<EFBFBD>7 temporary registers
|
|
|
|
|
|
|
|
|
|
st0 temporary register; used to return long double arguments
|
|
|
|
|
|
|
|
|
|
st1 temporary registers; used to return long double arguments
|
|
|
|
|
|
|
|
|
|
st2<EFBFBD>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
|
2013-02-17 15:06:22 +00:00
|
|
|
|
Floating point arguments from list: xmm0-xmm7
|