diff options
| author | Alex Rønne Petersen <alex@alexrp.com> | 2025-10-21 05:33:48 +0200 |
|---|---|---|
| committer | Alex Rønne Petersen <alex@alexrp.com> | 2025-10-23 09:27:17 +0200 |
| commit | 493889d5ebd961dabcb53d90c0814f6c71700cff (patch) | |
| tree | a9a5fabef7b072c0462594dced87d3c9e23e115b /lib/std/Thread.zig | |
| parent | 3777d3c25bb597998eea9cbc977519622e27eeab (diff) | |
| download | zig-493889d5ebd961dabcb53d90c0814f6c71700cff.tar.gz zig-493889d5ebd961dabcb53d90c0814f6c71700cff.zip | |
std.Thread: implement freeAndExit() for sh-linux
Diffstat (limited to 'lib/std/Thread.zig')
| -rw-r--r-- | lib/std/Thread.zig | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/std/Thread.zig b/lib/std/Thread.zig index fdf1a6f4d8..dfefeceea0 100644 --- a/lib/std/Thread.zig +++ b/lib/std/Thread.zig @@ -1383,6 +1383,28 @@ const LinuxThreadImpl = struct { : [ptr] "r" (@intFromPtr(self.mapped.ptr)), [len] "r" (self.mapped.len), : .{ .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 ( \\ # See sparc64 comments below. \\ 1: |
