commit 3d1b7811d4a09a5f7377c2d4122aab9217ded4e0 (tree)
parent f723d69a5825221a87221d946d23d6b1093d70ab
Author: Alex Rønne Petersen <alex@alexrp.com>
Date: Mon, 20 Oct 2025 17:59:00 +0200
std.Thread: implement freeAndExit() for m68k-linux
Diffstat:
1 file changed, 12 insertions(+), 0 deletions(-)
diff --git a/lib/std/Thread.zig b/lib/std/Thread.zig
@@ -1247,6 +1247,18 @@ const LinuxThreadImpl = struct {
: [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
+ \\ move.l %[len], %%d2
+ \\ trap #0
+ \\ move.l #1, %%d0 // SYS_exit
+ \\ move.l #0, %%d1
+ \\ trap #0
+ :
+ : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
+ [len] "r" (self.mapped.len),
+ : .{ .memory = true }),
// We set `sp` to the address of the current function as a workaround for a Linux
// kernel bug that caused syscalls to return EFAULT if the stack pointer is invalid.
// The bug was introduced in 46e12c07b3b9603c60fc1d421ff18618241cb081 and fixed in