Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

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