Created
October 13, 2015 00:27
-
-
Save flandr/c6da5e13d2d400573c3a to your computer and use it in GitHub Desktop.
x86_64 abi
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
http://en.wikipedia.org/wiki/X86_calling_conventions#AMD64_ABI_convention | |
rax function(rdi, rsi, rdx, rcx, r8, r9, ...); | |
Preserved across | |
Register Usage function calls | |
%rax temporary register; with variable arguments No | |
passes information about the number of SSE | |
registers used; 1st return register | |
%rbx callee-saved register; optionally used as base Yes | |
pointer | |
%rcx used to pass 4th argument to functions No | |
%rdx used to pass 3rd argument to functions; No | |
2nd return register | |
%rsp stack pointer Yes | |
%rbp callee-saved register; optionally used as frame Yes | |
pointer | |
%rsi used to pass 2nd argument to functions No | |
%rdi used to pass 1st argument to functions No | |
%r8 used to pass 5th argument to functions No | |
%r9 used to pass 6th argument to functions No | |
%r10 temporary register, used for passing a function's No | |
static chain pointer | |
%r11 temporary register No | |
%r12-r15 callee-saved registers Yes | |
%xmm0-%xmm1 used to pass and return floating point arguments No | |
%xmm2-%xmm7 used to pass floating point arguments No | |
%xmm8-%xmm15 temporary registers No | |
%mmx0-%mmx7 temporary registers No | |
%st0,%st1 temporary registers; used to return long No | |
double arguments | |
%st2-%st7 temporary registers No | |
%fs Reserved for system (as thread specific data No | |
register) | |
mxcsr SSE2 control and status word partial | |
x87 SW x87 status word No | |
x87 CW x87 control word Yes |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment