feature. See also
. The project being documented here (as the example) is the Zig library itself.
alpha.syscall6
pub fn syscall6(
number: SYS,
arg1: u64,
arg2: u64,
arg3: u64,
arg4: u64,
arg5: u64,
arg6: u64,
) u64
File
Code
pub fn syscall6(
number: SYS,
arg1: u64,
arg2: u64,
arg3: u64,
arg4: u64,
arg5: u64,
arg6: u64,
) u64 {
var r16_out: u64 = undefined;
var r17_out: u64 = undefined;
var r18_out: u64 = undefined;
var r19_out: u64 = undefined;
var r20_out: u64 = undefined;
var r21_out: u64 = undefined;
return asm volatile (
\\ callsys
\\ beq $19, 1f
\\ negq $0, $0
\\1:
: [ret] "={$0}" (-> u64),
[r16_out] "={$16}" (r16_out),
[r17_out] "={$17}" (r17_out),
[r18_out] "={$18}" (r18_out),
[r19_out] "={$19}" (r19_out),
[r20_out] "={$20}" (r20_out),
[r21_out] "={$21}" (r21_out),
: [number] "{$0}" (number),
[arg1] "{$16}" (arg1),
[arg2] "{$17}" (arg2),
[arg3] "{$18}" (arg3),
[arg4] "{$19}" (arg4),
[arg5] "{$20}" (arg5),
[arg6] "{$21}" (arg6),
: .{
.r1 = true,
.r2 = true,
.r3 = true,
.r4 = true,
.r5 = true,
.r6 = true,
.r7 = true,
.r8 = true,
.r22 = true,
.r23 = true,
.r24 = true,
.r25 = true,
.r27 = true,
.r28 = true,
.memory = true,
});
}