AROS ABIv1: Difference between revisions

From www.evillabs.net
Jump to navigation Jump to 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 ...")
 
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.