authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-10-18 11:29:40+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-10-18 11:36:02+02:00
loge59f2995a50f5a01181fbd903c8d077339aec61b
tree7adba30926296c158f92a0bd2b7a6ca5acb34b15
parent842de66db831e24476c381aeac625e340030c76b
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std.Thread: fix inline asm for mipsn32

This was using the mips64 syscalls. ref https://github.com/ziglang/zig/issues/22189

1 files changed, 28 insertions(+), 16 deletions(-)

lib/std/Thread.zig+28-16
......@@ -1242,26 +1242,38 @@ const LinuxThreadImpl = struct {
12421242 // The bug was introduced in 46e12c07b3b9603c60fc1d421ff18618241cb081 and fixed in
12431243 // 7928eb0370d1133d0d8cd2f5ddfca19c309079d5.
12441244 .mips, .mipsel => asm volatile (
1245 \\ move $sp, $25
1246 \\ li $2, 4091 # SYS_munmap
1247 \\ move $4, %[ptr]
1248 \\ move $5, %[len]
1249 \\ syscall
1250 \\ li $2, 4001 # SYS_exit
1251 \\ li $4, 0
1252 \\ syscall
1245 \\ move $sp, $t9
1246 \\ li $v0, 4091 # SYS_munmap
1247 \\ move $a0, %[ptr]
1248 \\ move $a1, %[len]
1249 \\ syscall
1250 \\ li $v0, 4001 # SYS_exit
1251 \\ li $a0, 0
1252 \\ syscall
12531253 :
12541254 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
12551255 [len] "r" (self.mapped.len),
12561256 : .{ .memory = true }),
1257 .mips64, .mips64el => asm volatile (
1258 \\ li $2, 5011 # SYS_munmap
1259 \\ move $4, %[ptr]
1260 \\ move $5, %[len]
1261 \\ syscall
1262 \\ li $2, 5058 # SYS_exit
1263 \\ li $4, 0
1264 \\ syscall
1257 .mips64, .mips64el => asm volatile (switch (target.abi) {
1258 .gnuabin32, .muslabin32 =>
1259 \\ li $v0, 6011 # SYS_munmap
1260 \\ move $a0, %[ptr]
1261 \\ move $a1, %[len]
1262 \\ syscall
1263 \\ li $v0, 6058 # SYS_exit
1264 \\ li $a0, 0
1265 \\ syscall
1266 ,
1267 else =>
1268 \\ li $v0, 5011 # SYS_munmap
1269 \\ move $a0, %[ptr]
1270 \\ move $a1, %[len]
1271 \\ syscall
1272 \\ li $v0, 5058 # SYS_exit
1273 \\ li $a0, 0
1274 \\ syscall
1275 ,
1276 }
12651277 :
12661278 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
12671279 [len] "r" (self.mapped.len),