commit f6c06d7069bd347528f388d39dfbd4b451560ff6 (tree)
parent de87c856e78fa8c9a92a7d9638c287fd70d7f235
Author: Alex Rønne Petersen <alex@alexrp.com>
Date: Tue, 21 Oct 2025 06:10:04 +0200
std.Thread: implement freeAndExit() for hppa-linux
Diffstat:
1 file changed, 12 insertions(+), 0 deletions(-)
diff --git a/lib/std/Thread.zig b/lib/std/Thread.zig
@@ -1259,6 +1259,18 @@ const LinuxThreadImpl = struct {
: [ptr] "r" (@intFromPtr(self.mapped.ptr)),
[len] "r" (self.mapped.len),
: .{ .memory = true }),
+ .hppa => asm volatile (
+ \\ ldi 91, %%r20 /* SYS_munmap */
+ \\ copy %[ptr], %%r26
+ \\ copy %[len], %%r25
+ \\ ble 0x100(%%sr2, %%r0)
+ \\ ldi 1, %%r20 /* SYS_exit */
+ \\ ldi 0, %%r26
+ \\ ble 0x100(%%sr2, %%r0)
+ :
+ : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
+ [len] "r" (self.mapped.len),
+ : .{ .memory = true }),
.m68k => asm volatile (
\\ move.l #91, %%d0 // SYS_munmap
\\ move.l %[ptr], %%d1