1Register Usage 2rax temporary register; with variable arguments passes information 3 about the number of SSE registers used; 1st return register 4 5rbx* callee-saved register; optionally used as base pointer 6 7rcx used to pass 4th integer argument to functions 8 9rdx used to pass 3rd argument to functions 2nd return register 10 11rsp* stack pointer 12 13rbp* callee-saved register; optionally used as frame pointer 14 15rsi used to pass 2nd argument to functions 16 17rdi used to pass 1st argument to functions 18 19r8 used to pass 5th argument to functions 20 21r9 used to pass 6th argument to functions 22 23r10 temporary register, used for passing a function's static chain pointer 24 25r11 temporary register 26 27r12-15* callee-saved registers 28 29xmm0�1 used to pass and return floating point arguments 30 31xmm2�7 used to pass floating point arguments 32 33xmm8�15 temporary registers 34 35mmx0�7 temporary registers 36 37st0 temporary register; used to return long double arguments 38 39st1 temporary registers; used to return long double arguments 40 41st2�7 temporary registers 42 43fs Reserved for system use (as thread specific data register) 44 45 46 47*) must be preserved across function calls 48 49Integer arguments from list: rdi,rsi,rdx,rcx,r8,r9,stack 50Floating point arguments from list: xmm0-xmm7