authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-11-23 07:23:44+01:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-11-23 07:27:45+01:00
log1231aa9719856320359392e99e330aa78b718c50
tree89cc6a2e827e97dae7482109ccb86054af8808dc
parent8284da2f3d5179d9c3160edd8d167b5169dbe126
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

Revert "std.os.linux.sparc64: use icc instead of xcc in asm clobbers"

This reverts commit b34a13da38f60737477e62dd0acd1a7a6b6be0a0. This is not the right fix; rather, the C backend needs to translate all of ccr, icc, and xcc to just icc.

1 files changed, 9 insertions(+), 9 deletions(-)

lib/std/os/linux/sparc64.zig+9-9
...@@ -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}
4646
47pub fn syscall0(number: SYS) u64 {47pub 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}
5858
59pub fn syscall1(number: SYS, arg1: u64) u64 {59pub 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}
7171
72pub fn syscall2(number: SYS, arg1: u64, arg2: u64) u64 {72pub 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}
8585
86pub fn syscall3(number: SYS, arg1: u64, arg2: u64, arg3: u64) u64 {86pub 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}
100100
101pub fn syscall4(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64) u64 {101pub 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}
116116
117pub fn syscall5(number: SYS, arg1: u64, arg2: u64, arg3: u64, arg4: u64, arg5: u64) u64 {117pub 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}
133133
134pub fn syscall6(134pub 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}
159159
160pub fn clone() callconv(.naked) u64 {160pub 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}
225225
226pub const VDSO = struct {226pub const VDSO = struct {