diff options
| author | YANG Xudong <yangxudong@ymatrix.cn> | 2024-08-09 08:30:57 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-09 00:30:57 +0000 |
| commit | a9b65b6fd4021b6b303b6a4d35cfaba56aac0c32 (patch) | |
| tree | f5b4db2ce9476a2a419d00c9e5a64ad75ba5ac27 /lib/std/Thread.zig | |
| parent | a854ce3021773a3f5cd1dce8ac6bc9eb5f4f937c (diff) | |
| download | zig-a9b65b6fd4021b6b303b6a4d35cfaba56aac0c32.tar.gz zig-a9b65b6fd4021b6b303b6a4d35cfaba56aac0c32.zip | |
std: add loongarch64 support (#20915)
Co-authored-by: Alex Rønne Petersen <alex@alexrp.com>
Diffstat (limited to 'lib/std/Thread.zig')
| -rw-r--r-- | lib/std/Thread.zig | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/std/Thread.zig b/lib/std/Thread.zig index 224a309730..dadf50e5ad 100644 --- a/lib/std/Thread.zig +++ b/lib/std/Thread.zig @@ -1224,6 +1224,19 @@ const LinuxThreadImpl = struct { [len] "r" (self.mapped.len), : "memory" ), + .loongarch64 => asm volatile ( + \\ or $a0, $zero, %[ptr] + \\ or $a1, $zero, %[len] + \\ ori $a7, $zero, 215 # SYS_munmap + \\ syscall 0 # call munmap + \\ ori $a0, $zero, 0 + \\ ori $a7, $zero, 93 # SYS_exit + \\ syscall 0 # call exit + : + : [ptr] "r" (@intFromPtr(self.mapped.ptr)), + [len] "r" (self.mapped.len), + : "memory" + ), else => |cpu_arch| @compileError("Unsupported linux arch: " ++ @tagName(cpu_arch)), } unreachable; |
