authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-08-28 01:21:58+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-08-29 00:12:39+02:00
log1231c8fbbd8be33674d33a302ddcb5dbcf52e2bf
treeeee814af4dbbdd27717d37ee9e2767bb3d5caa31
parent49f0122e413ee5d4640878985320e36b7ce7cc26
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std.os.linux: powerpc syscalls clobber ctr and xer

https://git.musl-libc.org/cgit/musl/commit/?id=f6944eb3c4ce1c97dc39dc36d32390dc9f70b67b

2 files changed, 14 insertions(+), 14 deletions(-)

lib/std/os/linux/powerpc.zig+7-7
......@@ -22,7 +22,7 @@ pub fn syscall0(number: SYS) usize {
2222 \\ 1:
2323 : [ret] "={r3}" (-> usize),
2424 : [number] "{r0}" (@intFromEnum(number)),
25 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
25 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
2626}
2727
2828pub fn syscall1(number: SYS, arg1: usize) usize {
......@@ -34,7 +34,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
3434 : [ret] "={r3}" (-> usize),
3535 : [number] "{r0}" (@intFromEnum(number)),
3636 [arg1] "{r3}" (arg1),
37 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
37 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
3838}
3939
4040pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
......@@ -47,7 +47,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
4747 : [number] "{r0}" (@intFromEnum(number)),
4848 [arg1] "{r3}" (arg1),
4949 [arg2] "{r4}" (arg2),
50 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
50 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
5151}
5252
5353pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
......@@ -61,7 +61,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
6161 [arg1] "{r3}" (arg1),
6262 [arg2] "{r4}" (arg2),
6363 [arg3] "{r5}" (arg3),
64 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
64 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
6565}
6666
6767pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
......@@ -76,7 +76,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
7676 [arg2] "{r4}" (arg2),
7777 [arg3] "{r5}" (arg3),
7878 [arg4] "{r6}" (arg4),
79 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
79 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
8080}
8181
8282pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
......@@ -92,7 +92,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
9292 [arg3] "{r5}" (arg3),
9393 [arg4] "{r6}" (arg4),
9494 [arg5] "{r7}" (arg5),
95 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
95 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
9696}
9797
9898pub fn syscall6(
......@@ -117,7 +117,7 @@ pub fn syscall6(
117117 [arg4] "{r6}" (arg4),
118118 [arg5] "{r7}" (arg5),
119119 [arg6] "{r8}" (arg6),
120 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
120 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
121121}
122122
123123pub fn clone() callconv(.naked) usize {
lib/std/os/linux/powerpc64.zig+7-7
......@@ -22,7 +22,7 @@ pub fn syscall0(number: SYS) usize {
2222 \\ 1:
2323 : [ret] "={r3}" (-> usize),
2424 : [number] "{r0}" (@intFromEnum(number)),
25 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
25 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
2626}
2727
2828pub fn syscall1(number: SYS, arg1: usize) usize {
......@@ -34,7 +34,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
3434 : [ret] "={r3}" (-> usize),
3535 : [number] "{r0}" (@intFromEnum(number)),
3636 [arg1] "{r3}" (arg1),
37 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
37 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
3838}
3939
4040pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
......@@ -47,7 +47,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
4747 : [number] "{r0}" (@intFromEnum(number)),
4848 [arg1] "{r3}" (arg1),
4949 [arg2] "{r4}" (arg2),
50 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
50 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
5151}
5252
5353pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
......@@ -61,7 +61,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
6161 [arg1] "{r3}" (arg1),
6262 [arg2] "{r4}" (arg2),
6363 [arg3] "{r5}" (arg3),
64 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
64 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
6565}
6666
6767pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
......@@ -76,7 +76,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
7676 [arg2] "{r4}" (arg2),
7777 [arg3] "{r5}" (arg3),
7878 [arg4] "{r6}" (arg4),
79 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
79 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
8080}
8181
8282pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
......@@ -92,7 +92,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
9292 [arg3] "{r5}" (arg3),
9393 [arg4] "{r6}" (arg4),
9494 [arg5] "{r7}" (arg5),
95 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
95 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
9696}
9797
9898pub fn syscall6(
......@@ -117,7 +117,7 @@ pub fn syscall6(
117117 [arg4] "{r6}" (arg4),
118118 [arg5] "{r7}" (arg5),
119119 [arg6] "{r8}" (arg6),
120 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true });
120 : .{ .memory = true, .cr0 = true, .r0 = true, .r4 = true, .r5 = true, .r6 = true, .r7 = true, .r8 = true, .r9 = true, .r10 = true, .r11 = true, .r12 = true, .ctr = true, .xer = true });
121121}
122122
123123pub fn clone() callconv(.naked) usize {