authorgravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2020-11-04 15:54:38+01:00
committergravatar for thatlemon@gmail.comLemonBoy <thatlemon@gmail.com> 2020-11-04 15:54:38+01:00
logf313c884283e69298f6dc375259eb522fcf58487
tree597519e043d2d187c62f04e60db7f065d6fbf635
parent342ba960f77010fd195dfb319f97c7329e090a4d

std: Fix pipe syscall stub for sparc64


1 files changed, 11 insertions(+), 10 deletions(-)

lib/std/os/linux/sparc64.zig+11-10
......@@ -2,20 +2,21 @@ usingnamespace @import("../bits.zig");
22
33pub fn syscall_pipe(fd: *[2]i32) usize {
44 return asm volatile (
5 \\ mov %%o0, %%o2
5 \\ mov %[arg], %%g3
66 \\ t 0x6d
77 \\ bcc,pt %%xcc, 1f
88 \\ nop
9 \\ # Return the error code
910 \\ ba 2f
1011 \\ neg %%o0
11 \\ 1:
12 \\ st %%o0, [%%o2]
13 \\ st %%o1, [%%o2 + 4]
14 \\ clr %%o0
15 \\ 2:
12 \\1:
13 \\ st %%o0, [%%g3+0]
14 \\ st %%o1, [%%g3+4]
15 \\2:
1616 : [ret] "={o0}" (-> usize)
17 : [number] "{$2}" (@enumToInt(SYS.pipe))
18 : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"
17 : [number] "{g1}" (@enumToInt(SYS.pipe)),
18 [arg] "r" (fd)
19 : "memory", "g3"
1920 );
2021}
2122
......@@ -107,7 +108,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
107108 [arg2] "{o1}" (arg2),
108109 [arg3] "{o2}" (arg3),
109110 [arg4] "{o3}" (arg4),
110 [arg5] "{o4}" (arg5),
111 [arg5] "{o4}" (arg5)
111112 : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"
112113 );
113114}
......@@ -134,7 +135,7 @@ pub fn syscall6(
134135 [arg3] "{o2}" (arg3),
135136 [arg4] "{o3}" (arg4),
136137 [arg5] "{o4}" (arg5),
137 [arg6] "{o5}" (arg6),
138 [arg6] "{o5}" (arg6)
138139 : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"
139140 );
140141}