authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-10-21 06:10:04+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-10-23 09:27:17+02:00
logf6c06d7069bd347528f388d39dfbd4b451560ff6
tree7dd6c997509c3181cdb1f3d96d677722e53f4920
parentde87c856e78fa8c9a92a7d9638c287fd70d7f235
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std.Thread: implement freeAndExit() for hppa-linux


1 files changed, 12 insertions(+), 0 deletions(-)

lib/std/Thread.zig+12
...@@ -1259,6 +1259,18 @@ const LinuxThreadImpl = struct {...@@ -1259,6 +1259,18 @@ const LinuxThreadImpl = struct {
1259 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),1259 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
1260 [len] "r" (self.mapped.len),1260 [len] "r" (self.mapped.len),
1261 : .{ .memory = true }),1261 : .{ .memory = true }),
1262 .hppa => asm volatile (
1263 \\ ldi 91, %%r20 /* SYS_munmap */
1264 \\ copy %[ptr], %%r26
1265 \\ copy %[len], %%r25
1266 \\ ble 0x100(%%sr2, %%r0)
1267 \\ ldi 1, %%r20 /* SYS_exit */
1268 \\ ldi 0, %%r26
1269 \\ ble 0x100(%%sr2, %%r0)
1270 :
1271 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
1272 [len] "r" (self.mapped.len),
1273 : .{ .memory = true }),
1262 .m68k => asm volatile (1274 .m68k => asm volatile (
1263 \\ move.l #91, %%d0 // SYS_munmap1275 \\ move.l #91, %%d0 // SYS_munmap
1264 \\ move.l %[ptr], %%d11276 \\ move.l %[ptr], %%d1