2 rax temporary register; with variable arguments passes information
3 about the number of SSE registers used; 1st return register
5 rbx* callee-saved register; optionally used as base pointer
7 rcx used to pass 4th integer argument to functions
9 rdx used to pass 3rd argument to functions 2nd return register
13 rbp* callee-saved register; optionally used as frame pointer
15 rsi used to pass 2nd argument to functions
17 rdi used to pass 1st argument to functions
19 r8 used to pass 5th argument to functions
21 r9 used to pass 6th argument to functions
23 r10 temporary register, used for passing a function's static chain pointer
25 r11 temporary register
27 r12-15* callee-saved registers
29 xmm01 used to pass and return floating point arguments
31 xmm27 used to pass floating point arguments
33 xmm815 temporary registers
35 mmx07 temporary registers
37 st0 temporary register; used to return long double arguments
39 st1 temporary registers; used to return long double arguments
41 st27 temporary registers
43 fs Reserved for system use (as thread specific data register)
47 *) must be preserved across function calls
49 Integer arguments from list: rdi,rsi,rdx,rcx,r8,r9,stack
50 Floating point arguments from list: xmm0-xmm7