authorgravatar for jacoblevgw@gmail.comJacob G-W <jacoblevgw@gmail.com> 2021-10-17 01:14:27-04:00
committergravatar for jacoblevgw@gmail.comJacob G-W <jacoblevgw@gmail.com> 2021-11-09 07:08:27-05:00
logfe314e60bbb2861484241a81d3d6185dbb60d1e8
treec985f745bd117c8374be334bb481a7dc29c81fa0
parent09992f8acc2432080409c3c3b32cab52bc8a3d91

fix outputs in inline assembly


2 files changed, 6 insertions(+), 5 deletions(-)

lib/std/os/plan9.zig+2-2
......@@ -60,8 +60,8 @@ pub const SYS = enum(usize) {
6060 _NSEC = 53,
6161};
6262
63pub fn pwrite(fd: usize, buf: [*]const u8, count: usize, offset: usize) void {
64 syscall_bits.syscall4(.PWRITE, fd, @ptrToInt(buf), count, offset);
63pub fn pwrite(fd: usize, buf: [*]const u8, count: usize, offset: usize) usize {
64 return syscall_bits.syscall4(.PWRITE, fd, @ptrToInt(buf), count, offset);
6565}
6666
6767pub fn exits(status: ?[*:0]const u8) void {
lib/std/os/plan9/x86_64.zig+4-3
......@@ -2,8 +2,8 @@ const plan9 = @import("../plan9.zig");
22// TODO get ret from inline asm
33// TODO better inline asm
44
5pub fn syscall4(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize, arg3: usize) void {
6 asm volatile (
5pub fn syscall4(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize, arg3: usize) usize {
6 return asm volatile (
77 \\push %%r11
88 \\push %%r10
99 \\push %%r9
......@@ -15,7 +15,8 @@ pub fn syscall4(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize, arg3: usi
1515 \\pop %%r11
1616 \\pop %%r11
1717 \\pop %%r11
18 :
18 : [ret] "={rax}" (-> usize),
19 // :
1920 : [arg0] "{r8}" (arg0),
2021 [arg1] "{r9}" (arg1),
2122 [arg2] "{r10}" (arg2),