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

This commit is contained in:
Alex Rønne Petersen 2025-10-21 05:33:48 +02:00
parent 3777d3c25b
commit 493889d5eb
No known key found for this signature in database

View file

@ -1383,6 +1383,28 @@ const LinuxThreadImpl = struct {
: [ptr] "r" (@intFromPtr(self.mapped.ptr)), : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
[len] "r" (self.mapped.len), [len] "r" (self.mapped.len),
: .{ .memory = true }), : .{ .memory = true }),
.sh, .sheb => asm volatile (
\\ mov #91, r3 ! SYS_munmap
\\ mov %[ptr], r4
\\ mov %[len], r5
\\ trapa #31
\\ or r0, r0
\\ or r0, r0
\\ or r0, r0
\\ or r0, r0
\\ or r0, r0
\\ mov #1, r3 ! SYS_exit
\\ mov #0, r4
\\ trapa #31
\\ or r0, r0
\\ or r0, r0
\\ or r0, r0
\\ or r0, r0
\\ or r0, r0
:
: [ptr] "r" (@intFromPtr(self.mapped.ptr)),
[len] "r" (self.mapped.len),
: .{ .memory = true }),
.sparc => asm volatile ( .sparc => asm volatile (
\\ # See sparc64 comments below. \\ # See sparc64 comments below.
\\ 1: \\ 1: