From f6c06d7069bd347528f388d39dfbd4b451560ff6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Tue, 21 Oct 2025 06:10:04 +0200 Subject: [PATCH] std.Thread: implement freeAndExit() for hppa-linux --- lib/std/Thread.zig | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/std/Thread.zig b/lib/std/Thread.zig index 02d7dc9eee..3c7536ea21 100644 --- 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