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) {...@@ -60,8 +60,8 @@ pub const SYS = enum(usize) {
60 _NSEC = 53,60 _NSEC = 53,
61};61};
6262
63pub fn pwrite(fd: usize, buf: [*]const u8, count: usize, offset: usize) void {63pub fn pwrite(fd: usize, buf: [*]const u8, count: usize, offset: usize) usize {
64 syscall_bits.syscall4(.PWRITE, fd, @ptrToInt(buf), count, offset);64 return syscall_bits.syscall4(.PWRITE, fd, @ptrToInt(buf), count, offset);
65}65}
6666
67pub fn exits(status: ?[*:0]const u8) void {67pub 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");...@@ -2,8 +2,8 @@ const plan9 = @import("../plan9.zig");
2// TODO get ret from inline asm2// TODO get ret from inline asm
3// TODO better inline asm3// TODO better inline asm
44
5pub fn syscall4(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize, arg3: usize) void {5pub fn syscall4(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize, arg3: usize) usize {
6 asm volatile (6 return asm volatile (
7 \\push %%r117 \\push %%r11
8 \\push %%r108 \\push %%r10
9 \\push %%r99 \\push %%r9
...@@ -15,7 +15,8 @@ pub fn syscall4(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize, arg3: usi...@@ -15,7 +15,8 @@ pub fn syscall4(sys: plan9.SYS, arg0: usize, arg1: usize, arg2: usize, arg3: usi
15 \\pop %%r1115 \\pop %%r11
16 \\pop %%r1116 \\pop %%r11
17 \\pop %%r1117 \\pop %%r11
18 :18 : [ret] "={rax}" (-> usize),
19 // :
19 : [arg0] "{r8}" (arg0),20 : [arg0] "{r8}" (arg0),
20 [arg1] "{r9}" (arg1),21 [arg1] "{r9}" (arg1),
21 [arg2] "{r10}" (arg2),22 [arg2] "{r10}" (arg2),