Commit 15e5e5b2bc

Andrew Kelley <andrew@ziglang.org>
2025-07-16 02:15:58
fix mips inline asm
wtf are these dollar signs?
1 parent 3628137
Changed files (3)
lib
compiler_rt
std
lib/compiler_rt/clear_cache.zig
@@ -103,7 +103,7 @@ fn clear_cache(start: usize, end: usize) callconv(.c) void {
             : [_] "{$2}" (165), // nr = SYS_sysarch
               [_] "{$4}" (0), // op = MIPS_CACHEFLUSH
               [_] "{$5}" (&cfa), // args = &cfa
-            : .{ .@"$1" = true, .@"$2" = true, .@"$3" = true, .@"$4" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+            : .{ .@"r1" = true, .@"r2" = true, .@"r3" = true, .@"r4" = true, .@"r5" = true, .@"r6" = true, .@"r7" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
         exportIt();
     } else if (mips and os == .openbsd) {
         // TODO
lib/std/os/linux/mips.zig
@@ -21,7 +21,7 @@ pub fn syscall0(number: SYS) usize {
         \\ 1:
         : [ret] "={$2}" (-> usize),
         : [number] "{$2}" (@intFromEnum(number)),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$4" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r4" = true, .@"r5" = true, .@"r6" = true, .@"r7" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub fn syscall_pipe(fd: *[2]i32) usize {
@@ -40,7 +40,7 @@ pub fn syscall_pipe(fd: *[2]i32) usize {
         : [ret] "={$2}" (-> usize),
         : [number] "{$2}" (@intFromEnum(SYS.pipe)),
           [fd] "{$4}" (fd),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r5" = true, .@"r6" = true, .@"r7" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub fn syscall1(number: SYS, arg1: usize) usize {
@@ -53,7 +53,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
         : [ret] "={$2}" (-> usize),
         : [number] "{$2}" (@intFromEnum(number)),
           [arg1] "{$4}" (arg1),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r5" = true, .@"r6" = true, .@"r7" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
@@ -67,7 +67,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
         : [number] "{$2}" (@intFromEnum(number)),
           [arg1] "{$4}" (arg1),
           [arg2] "{$5}" (arg2),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r6" = true, .@"r7" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
@@ -82,7 +82,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
           [arg1] "{$4}" (arg1),
           [arg2] "{$5}" (arg2),
           [arg3] "{$6}" (arg3),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r7" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
@@ -98,7 +98,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
           [arg2] "{$5}" (arg2),
           [arg3] "{$6}" (arg3),
           [arg4] "{$7}" (arg4),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
@@ -119,7 +119,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
           [arg3] "{$6}" (arg3),
           [arg4] "{$7}" (arg4),
           [arg5] "r" (arg5),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 // NOTE: The o32 calling convention requires the callee to reserve 16 bytes for
@@ -153,7 +153,7 @@ pub fn syscall6(
           [arg4] "{$7}" (arg4),
           [arg5] "r" (arg5),
           [arg6] "r" (arg6),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub fn syscall7(
@@ -187,7 +187,7 @@ pub fn syscall7(
           [arg5] "r" (arg5),
           [arg6] "r" (arg6),
           [arg7] "r" (arg7),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub fn clone() callconv(.naked) usize {
@@ -246,7 +246,7 @@ pub fn restore() callconv(.naked) noreturn {
         \\ syscall
         :
         : [number] "{$2}" (@intFromEnum(SYS.sigreturn)),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$4" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r4" = true, .@"r5" = true, .@"r6" = true, .@"r7" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub fn restore_rt() callconv(.naked) noreturn {
@@ -254,7 +254,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
         \\ syscall
         :
         : [number] "{$2}" (@intFromEnum(SYS.rt_sigreturn)),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$4" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r4" = true, .@"r5" = true, .@"r6" = true, .@"r7" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub const F = struct {
lib/std/os/linux/mips64.zig
@@ -21,7 +21,7 @@ pub fn syscall0(number: SYS) usize {
         \\ 1:
         : [ret] "={$2}" (-> usize),
         : [number] "{$2}" (@intFromEnum(number)),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$4" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r4" = true, .@"r5" = true, .@"r6" = true, .@"r7" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub fn syscall_pipe(fd: *[2]i32) usize {
@@ -40,7 +40,7 @@ pub fn syscall_pipe(fd: *[2]i32) usize {
         : [ret] "={$2}" (-> usize),
         : [number] "{$2}" (@intFromEnum(SYS.pipe)),
           [fd] "{$4}" (fd),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r5" = true, .@"r6" = true, .@"r7" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub fn syscall1(number: SYS, arg1: usize) usize {
@@ -54,7 +54,7 @@ pub fn syscall1(number: SYS, arg1: usize) usize {
         : [ret] "={$2}" (-> usize),
         : [number] "{$2}" (@intFromEnum(number)),
           [arg1] "{$4}" (arg1),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r5" = true, .@"r6" = true, .@"r7" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
@@ -68,7 +68,7 @@ pub fn syscall2(number: SYS, arg1: usize, arg2: usize) usize {
         : [number] "{$2}" (@intFromEnum(number)),
           [arg1] "{$4}" (arg1),
           [arg2] "{$5}" (arg2),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r6" = true, .@"r7" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
@@ -83,7 +83,7 @@ pub fn syscall3(number: SYS, arg1: usize, arg2: usize, arg3: usize) usize {
           [arg1] "{$4}" (arg1),
           [arg2] "{$5}" (arg2),
           [arg3] "{$6}" (arg3),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r7" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize {
@@ -99,7 +99,7 @@ pub fn syscall4(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize)
           [arg2] "{$5}" (arg2),
           [arg3] "{$6}" (arg3),
           [arg4] "{$7}" (arg4),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize {
@@ -116,7 +116,7 @@ pub fn syscall5(number: SYS, arg1: usize, arg2: usize, arg3: usize, arg4: usize,
           [arg3] "{$6}" (arg3),
           [arg4] "{$7}" (arg4),
           [arg5] "{$8}" (arg5),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub fn syscall6(
@@ -142,7 +142,7 @@ pub fn syscall6(
           [arg4] "{$7}" (arg4),
           [arg5] "{$8}" (arg5),
           [arg6] "{$9}" (arg6),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub fn syscall7(
@@ -170,7 +170,7 @@ pub fn syscall7(
           [arg5] "{$8}" (arg5),
           [arg6] "{$9}" (arg6),
           [arg7] "{$10}" (arg7),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub fn clone() callconv(.naked) usize {
@@ -225,7 +225,7 @@ pub fn restore() callconv(.naked) noreturn {
         \\ syscall
         :
         : [number] "{$2}" (@intFromEnum(SYS.rt_sigreturn)),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$4" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r4" = true, .@"r5" = true, .@"r6" = true, .@"r7" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub fn restore_rt() callconv(.naked) noreturn {
@@ -233,7 +233,7 @@ pub fn restore_rt() callconv(.naked) noreturn {
         \\ syscall
         :
         : [number] "{$2}" (@intFromEnum(SYS.rt_sigreturn)),
-        : .{ .@"$1" = true, .@"$3" = true, .@"$4" = true, .@"$5" = true, .@"$6" = true, .@"$7" = true, .@"$8" = true, .@"$9" = true, .@"$10" = true, .@"$11" = true, .@"$12" = true, .@"$13" = true, .@"$14" = true, .@"$15" = true, .@"$24" = true, .@"$25" = true, .hi = true, .lo = true, .memory = true });
+        : .{ .@"r1" = true, .@"r3" = true, .@"r4" = true, .@"r5" = true, .@"r6" = true, .@"r7" = true, .@"r8" = true, .@"r9" = true, .@"r10" = true, .@"r11" = true, .@"r12" = true, .@"r13" = true, .@"r14" = true, .@"r15" = true, .@"r24" = true, .@"r25" = true, .hi = true, .lo = true, .memory = true });
 }
 
 pub const F = struct {