aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Thread.zig
diff options
context:
space:
mode:
authorAlex Rønne Petersen <alex@alexrp.com>2024-08-18 02:22:25 +0200
committerAlex Rønne Petersen <alex@alexrp.com>2024-08-19 08:38:05 +0200
commit8e4feca8abbef78567ef789e6c8d8316ebe09119 (patch)
treecfc0bb7e5d0c0dda188042f9f12a39d658f0f87a /lib/std/Thread.zig
parent0f78f8244f3a8fd7a24200eb441287f6e6907d5b (diff)
downloadzig-8e4feca8abbef78567ef789e6c8d8316ebe09119.tar.gz
zig-8e4feca8abbef78567ef789e6c8d8316ebe09119.zip
std.Thread: Implement freeAndExit() for s390x.
Diffstat (limited to 'lib/std/Thread.zig')
-rw-r--r--lib/std/Thread.zig11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/std/Thread.zig b/lib/std/Thread.zig
index 323bf22384..e07c02baa3 100644
--- a/lib/std/Thread.zig
+++ b/lib/std/Thread.zig
@@ -1188,6 +1188,17 @@ const LinuxThreadImpl = struct {
[len] "r" (self.mapped.len),
: "memory"
),
+ .s390x => asm volatile (
+ \\ lgr %%r2, %[ptr]
+ \\ lgr %%r3, %[len]
+ \\ svc 91 # SYS_munmap
+ \\ lghi %%r2, 0
+ \\ svc 1 # SYS_exit
+ :
+ : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
+ [len] "r" (self.mapped.len),
+ : "memory"
+ ),
.sparc => asm volatile (
\\ # See sparc64 comments below.
\\ 1: