mirror of
https://gitlab.os-k.eu/os-k-team/kvisc.git
synced 2023-08-25 14:05:46 +02:00
abi
This commit is contained in:
parent
778c56cc60
commit
498e46ddc8
13
ka/ABI
13
ka/ABI
@ -73,7 +73,7 @@ Aside from the DF flag, a function cannot assume anything about the state
|
||||
of the flags in the FLG register.
|
||||
|
||||
Passing parameters is done using the following registers, in that order:
|
||||
a0-a15
|
||||
a0-a7
|
||||
|
||||
The stack is never used for argument passing, except for variadic functions,
|
||||
cf the next section. If you need to pass large structures of data, pass
|
||||
@ -85,10 +85,10 @@ and require more registers, use the following registers, in that order:
|
||||
|
||||
The following registers are volatile; the calling function cannot assume
|
||||
that they will be left unmodified by the called function:
|
||||
rax, rcx, rdx, r8-r15, a0-a15
|
||||
rax, rcx, rdx, r8-r15, a0-a7
|
||||
|
||||
The following registers are nonvolatile; the called function must preserve them:
|
||||
rbx, rsi, rdi, n0-n15, rbp, rsp
|
||||
rbx, rsi, rdi, n0-n7, rbp, rsp
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
|
||||
@ -125,12 +125,7 @@ The 'inv' register cannot be referenced by machine code except when specified
|
||||
as an offset register in the [reg+reg(*/+...)] memory formats; in these case,
|
||||
'inv' can be assumed to be always null.
|
||||
|
||||
The following registers can only be used by the supervisor:
|
||||
- Fast global variables for the supervisor:
|
||||
sa0-sa3
|
||||
|
||||
The following registers cannot be referenced by machine code at all:
|
||||
px0-px1, fc0-fc2, cr0-cr3
|
||||
(TO BE COMPLETED)
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user