Syscalls in Ironclad have an architecture-dependent ABI, but the table and its indexes are always the same, this is done to simplify development. and here is a list of the supported architectures and the ABI for each of them. Here is the table:
Syscalls are invoked in Ironclad by using swi
.
The index of the syscall is passed over %x8
, while the return value is
returned in %x0
, errno is returned in %x9
, arguments are passed
over %x0
to r7
.
Syscalls are invoked in Ironclad by using swi
.
The index of the syscall is passed over %r4
, while the return value is
returned in %r0
, errno is returned in %r1
, arguments are passed
over %r0
to r7
.
The syscall mechanism for leon3 is yet to be implemented. Sorry!
Syscalls are invoked in Ironclad by using syscall
.
The index of the syscall is passed over %rax
, while the return value is
returned in %rax
, errno is returned on %rdx
, arguments are passed
over %rdi
, %rsi
, %rdx
, %r12
, %r8
,
%r9
, and %r10
, following the SysV ABI.