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");...@@ -2,20 +2,21 @@ usingnamespace @import("../bits.zig");
22
3pub fn syscall_pipe(fd: *[2]i32) usize {3pub fn syscall_pipe(fd: *[2]i32) usize {
4 return asm volatile (4 return asm volatile (
5 \\ mov %%o0, %%o25 \\ mov %[arg], %%g3
6 \\ t 0x6d6 \\ t 0x6d
7 \\ bcc,pt %%xcc, 1f7 \\ bcc,pt %%xcc, 1f
8 \\ nop8 \\ nop
9 \\ # Return the error code
9 \\ ba 2f10 \\ ba 2f
10 \\ neg %%o011 \\ neg %%o0
11 \\ 1:12 \\1:
12 \\ st %%o0, [%%o2]13 \\ st %%o0, [%%g3+0]
13 \\ st %%o1, [%%o2 + 4]14 \\ st %%o1, [%%g3+4]
14 \\ clr %%o015 \\2:
15 \\ 2:
16 : [ret] "={o0}" (-> usize)16 : [ret] "={o0}" (-> usize)
17 : [number] "{$2}" (@enumToInt(SYS.pipe))17 : [number] "{g1}" (@enumToInt(SYS.pipe)),
18 : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"18 [arg] "r" (fd)
19 : "memory", "g3"
19 );20 );
20}21}
2122
...@@ -107,7 +108,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,...@@ -107,7 +108,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
107 [arg2] "{o1}" (arg2),108 [arg2] "{o1}" (arg2),
108 [arg3] "{o2}" (arg3),109 [arg3] "{o2}" (arg3),
109 [arg4] "{o3}" (arg4),110 [arg4] "{o3}" (arg4),
110 [arg5] "{o4}" (arg5),111 [arg5] "{o4}" (arg5)
111 : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"112 : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"
112 );113 );
113}114}
...@@ -134,7 +135,7 @@ pub fn syscall6(...@@ -134,7 +135,7 @@ pub fn syscall6(
134 [arg3] "{o2}" (arg3),135 [arg3] "{o2}" (arg3),
135 [arg4] "{o3}" (arg4),136 [arg4] "{o3}" (arg4),
136 [arg5] "{o4}" (arg5),137 [arg5] "{o4}" (arg5),
137 [arg6] "{o5}" (arg6),138 [arg6] "{o5}" (arg6)
138 : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"139 : "memory", "xcc", "o1", "o2", "o3", "o4", "o5", "o7"
139 );140 );
140}141}