| ... | @@ -41,7 +41,7 @@ pub fn syscall_fork() u64 { | ... | @@ -41,7 +41,7 @@ pub fn syscall_fork() u64 { |
| 41 | \\ 2: | 41 | \\ 2: |
| 42 | : [ret] "={o0}" (-> u64), | 42 | : [ret] "={o0}" (-> u64), |
| 43 | : [number] "{g1}" (@intFromEnum(SYS.fork)), | 43 | : [number] "{g1}" (@intFromEnum(SYS.fork)), |
| 44 | : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true }); | 44 | : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true }); |
| 45 | } | 45 | } |
| 46 | | 46 | |
| 47 | pub fn syscall0(number: SYS) u64 { | 47 | pub fn syscall0(number: SYS) u64 { |
| ... | @@ -53,7 +53,7 @@ pub fn syscall0(number: SYS) u64 { | ... | @@ -53,7 +53,7 @@ pub fn syscall0(number: SYS) u64 { |
| 53 | \\ 1: | 53 | \\ 1: |
| 54 | : [ret] "={o0}" (-> u64), | 54 | : [ret] "={o0}" (-> u64), |
| 55 | : [number] "{g1}" (@intFromEnum(number)), | 55 | : [number] "{g1}" (@intFromEnum(number)), |
| 56 | : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true }); | 56 | : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true }); |
| 57 | } | 57 | } |
| 58 | | 58 | |
| 59 | pub fn syscall1(number: SYS, arg1: u64) u64 { | 59 | pub fn syscall1(number: SYS, arg1: u64) u64 { |
| ... | @@ -66,7 +66,7 @@ pub fn syscall1(number: SYS, arg1: u64) u64 { | ... | @@ -66,7 +66,7 @@ pub fn syscall1(number: SYS, arg1: u64) u64 { |
| 66 | : [ret] "={o0}" (-> u64), | 66 | : [ret] "={o0}" (-> u64), |
| 67 | : [number] "{g1}" (@intFromEnum(number)), | 67 | : [number] "{g1}" (@intFromEnum(number)), |
| 68 | [arg1] "{o0}" (arg1), | 68 | [arg1] "{o0}" (arg1), |
| 69 | : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true }); | 69 | : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true }); |
| 70 | } | 70 | } |
| 71 | | 71 | |
| 72 | pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 { | 72 | pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 { |
| ... | @@ -80,7 +80,7 @@ pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 { | ... | @@ -80,7 +80,7 @@ pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 { |
| 80 | : [number] "{g1}" (@intFromEnum(number)), | 80 | : [number] "{g1}" (@intFromEnum(number)), |
| 81 | [arg1] "{o0}" (arg1), | 81 | [arg1] "{o0}" (arg1), |
| 82 | [arg2] "{o1}" (arg2), | 82 | [arg2] "{o1}" (arg2), |
| 83 | : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true }); | 83 | : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true }); |
| 84 | } | 84 | } |
| 85 | | 85 | |
| 86 | pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 { | 86 | pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 { |
| ... | @@ -95,7 +95,7 @@ pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 { | ... | @@ -95,7 +95,7 @@ pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 { |
| 95 | [arg1] "{o0}" (arg1), | 95 | [arg1] "{o0}" (arg1), |
| 96 | [arg2] "{o1}" (arg2), | 96 | [arg2] "{o1}" (arg2), |
| 97 | [arg3] "{o2}" (arg3), | 97 | [arg3] "{o2}" (arg3), |
| 98 | : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true }); | 98 | : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true }); |
| 99 | } | 99 | } |
| 100 | | 100 | |
| 101 | pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 { | 101 | pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 { |
| ... | @@ -111,7 +111,7 @@ pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 { | ... | @@ -111,7 +111,7 @@ pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 { |
| 111 | [arg2] "{o1}" (arg2), | 111 | [arg2] "{o1}" (arg2), |
| 112 | [arg3] "{o2}" (arg3), | 112 | [arg3] "{o2}" (arg3), |
| 113 | [arg4] "{o3}" (arg4), | 113 | [arg4] "{o3}" (arg4), |
| 114 | : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true }); | 114 | : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true }); |
| 115 | } | 115 | } |
| 116 | | 116 | |
| 117 | pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u64) u64 { | 117 | pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u64) u64 { |
| ... | @@ -128,7 +128,7 @@ pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u | ... | @@ -128,7 +128,7 @@ pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u |
| 128 | [arg3] "{o2}" (arg3), | 128 | [arg3] "{o2}" (arg3), |
| 129 | [arg4] "{o3}" (arg4), | 129 | [arg4] "{o3}" (arg4), |
| 130 | [arg5] "{o4}" (arg5), | 130 | [arg5] "{o4}" (arg5), |
| 131 | : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true }); | 131 | : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true }); |
| 132 | } | 132 | } |
| 133 | | 133 | |
| 134 | pub fn syscall6( | 134 | pub fn syscall6( |
| ... | @@ -154,7 +154,7 @@ pub fn syscall6( | ... | @@ -154,7 +154,7 @@ pub fn syscall6( |
| 154 | [arg4] "{o3}" (arg4), | 154 | [arg4] "{o3}" (arg4), |
| 155 | [arg5] "{o4}" (arg5), | 155 | [arg5] "{o4}" (arg5), |
| 156 | [arg6] "{o5}" (arg6), | 156 | [arg6] "{o5}" (arg6), |
| 157 | : .{ .memory = true, .icc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true }); | 157 | : .{ .memory = true, .xcc = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true }); |
| 158 | } | 158 | } |
| 159 | | 159 | |
| 160 | pub fn clone() callconv(.naked) u64 { | 160 | pub fn clone() callconv(.naked) u64 { |
| ... | @@ -220,7 +220,7 @@ pub fn restore_rt() callconv(.c) void { | ... | @@ -220,7 +220,7 @@ pub fn restore_rt() callconv(.c) void { |
| 220 | return asm volatile ("t 0x6d" | 220 | return asm volatile ("t 0x6d" |
| 221 | : | 221 | : |
| 222 | : [number] "{g1}" (@intFromEnum(SYS.rt_sigreturn)), | 222 | : [number] "{g1}" (@intFromEnum(SYS.rt_sigreturn)), |
| 223 | : .{ .memory = true, .icc = true, .o0 = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true }); | 223 | : .{ .memory = true, .xcc = true, .o0 = true, .o1 = true, .o2 = true, .o3 = true, .o4 = true, .o5 = true, .o7 = true }); |
| 224 | } | 224 | } |
| 225 | | 225 | |
| 226 | pub const VDSO = struct { | 226 | pub const VDSO = struct { |