Subversion Repositories Kolibri OS

Rev

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

  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