Difference between revisions of "AROS ABIv1"

From www.evillabs.net
Jump to: navigation, search
(Created page with "= Libraries = * The library basecall register must be: - Saved by the called function by the ABI of the architecture - Not a register that is used to hold arguments - Not ...")
 
(Libraries)
Line 1: Line 1:
 
= Libraries =
 
= Libraries =
 
* The library basecall register must be:
 
  - Saved by the called function by the ABI of the architecture
 
  - Not a register that is used to hold arguments
 
  - Not a scratch register
 
  
 
* Regcall ABI (ie AROS_LH(...))
 
* Regcall ABI (ie AROS_LH(...))
Line 11: Line 6:
 
   - Up to 14 arguments
 
   - Up to 14 arguments
  
* SysV ABI
+
* SysV ABI calls
 
   - Library base passed in via the basecall register
 
   - Library base passed in via the basecall register
 
   - On the library side, the register is saved in the
 
   - On the library side, the register is saved in the
 
     task's taskstorage slot for this library.
 
     task's taskstorage slot for this library.

Revision as of 22:28, 1 August 2012

Libraries

  • Regcall ABI (ie AROS_LH(...))
 - Library base passed in as an argument
 - Must not be (,...) varadic
 - Up to 14 arguments
  • SysV ABI calls
 - Library base passed in via the basecall register
 - On the library side, the register is saved in the
   task's taskstorage slot for this library.