mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 14:23:09 +00:00
fix outputs in inline assembly
This commit is contained in:
parent
09992f8acc
commit
fe314e60bb
@ -60,8 +60,8 @@ pub const SYS = enum(usize) {
|
|||||||
_NSEC = 53,
|
_NSEC = 53,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub fn pwrite(fd: usize, buf: [*]const u8, count: usize, offset: usize) void {
|
pub fn pwrite(fd: usize, buf: [*]const u8, count: usize, offset: usize) usize {
|
||||||
syscall_bits.syscall4(.PWRITE, fd, @ptrToInt(buf), count, offset);
|
return syscall_bits.syscall4(.PWRITE, fd, @ptrToInt(buf), count, offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn exits(status: ?[*:0]const u8) void {
|
pub fn exits(status: ?[*:0]const u8) void {
|
||||||
|
|||||||
@ -2,8 +2,8 @@ const plan9 = @import("../plan9.zig");
|
|||||||
// TODO get ret from inline asm
|
// TODO get ret from inline asm
|
||||||
// TODO better inline asm
|
// TODO better inline asm
|
||||||
|
|
||||||
pub fn syscall4(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize, arg3: usize) void {
|
pub fn syscall4(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize, arg3: usize) usize {
|
||||||
asm volatile (
|
return asm volatile (
|
||||||
\\push %%r11
|
\\push %%r11
|
||||||
\\push %%r10
|
\\push %%r10
|
||||||
\\push %%r9
|
\\push %%r9
|
||||||
@ -15,7 +15,8 @@ pub fn syscall4(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize, arg3: usi
|
|||||||
\\pop %%r11
|
\\pop %%r11
|
||||||
\\pop %%r11
|
\\pop %%r11
|
||||||
\\pop %%r11
|
\\pop %%r11
|
||||||
:
|
: [ret] "={rax}" (-> usize),
|
||||||
|
// :
|
||||||
: [arg0] "{r8}" (arg0),
|
: [arg0] "{r8}" (arg0),
|
||||||
[arg1] "{r9}" (arg1),
|
[arg1] "{r9}" (arg1),
|
||||||
[arg2] "{r10}" (arg2),
|
[arg2] "{r10}" (arg2),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user