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