summaryrefslogtreecommitdiff
path: root/src/mesa/x86-64/calling_convention.txt
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2005-05-07 16:59:58 +0000
committerBrian Paul <brian.paul@tungstengraphics.com>2005-05-07 16:59:58 +0000
commit42fa81275c67d7d1ad8d255120af0ffeeb46b963 (patch)
tree1c786fb74f62263d6a1a312178bcef74daeffa5e /src/mesa/x86-64/calling_convention.txt
parente3f684b753c94d8657a1487655b41fdfc0119dba (diff)
x86-64 transform optimizations (Mikko T.)
Diffstat (limited to 'src/mesa/x86-64/calling_convention.txt')
-rw-r--r--src/mesa/x86-64/calling_convention.txt50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/mesa/x86-64/calling_convention.txt b/src/mesa/x86-64/calling_convention.txt
new file mode 100644
index 0000000000..4147f7eba9
--- /dev/null
+++ b/src/mesa/x86-64/calling_convention.txt
@@ -0,0 +1,50 @@
+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 \ No newline at end of file