commit b0bda2d744f2f68a3edb7d948f7dc40cec2fef5e (tree)
parent ecc47695efd1a81e8d713376a54944f5312cd6eb
Author: Alex Rønne Petersen <alex@alexrp.com>
Date: Tue, 26 May 2026 08:05:09 +0200
std.Thread: implement LinuxThreadImpl.freeAndExit() for xtensa
Diffstat:
1 file changed, 10 insertions(+), 0 deletions(-)
diff --git a/lib/std/Thread.zig b/lib/std/Thread.zig
@@ -1411,6 +1411,16 @@ const LinuxThreadImpl = struct {
: [ptr] "{r4}" (@intFromPtr(self.mapped.ptr)),
[len] "{r5}" (self.mapped.len),
: .{ .memory = true }),
+ .xtensa, .xtensaeb => asm volatile (
+ \\ movi a2, 81 // SYS_munmap
+ \\ syscall
+ \\ movi a6, 0
+ \\ movi a2, 118 // SYS_exit
+ \\ syscall
+ :
+ : [ptr] "{a6}" (@intFromPtr(self.mapped.ptr)),
+ [len] "{a3}" (self.mapped.len),
+ : .{ .memory = true }),
else => |cpu_arch| @compileError("Unsupported linux arch: " ++ @tagName(cpu_arch)),
}
unreachable;