zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit d2b21d582341a2958cf41dde046466a1607926fb (tree)
parent 9db992bd9bf67efef3a81c76fc3896ac1c94d7e4
Author: Alex Rønne Petersen <alex@alexrp.com>
Date:   Sun, 28 Jul 2024 18:46:25 +0200

std.os.linux.tls: Add s390x support.

Diffstat:
Mlib/std/os/linux/tls.zig | 12++++++++++++
1 file changed, 12 insertions(+), 0 deletions(-)

diff --git a/lib/std/os/linux/tls.zig b/lib/std/os/linux/tls.zig @@ -84,6 +84,7 @@ const current_variant: Variant = switch (native_arch) { .riscv32, .riscv64, => .I_modified, + .s390x, .sparc64, .x86, .x86_64, @@ -277,6 +278,17 @@ pub fn setThreadPointer(addr: usize) void { : [addr] "r" (addr), ); }, + .s390x => { + asm volatile ( + \\ lgr %%r0, %[addr] + \\ sar %%a1, %%r0 + \\ srlg %%r0, %%r0, 32 + \\ sar %%a0, %%r0 + : + : [addr] "r" (addr), + : "r0" + ); + }, .sparc64 => { asm volatile ( \\ mov %[addr], %%g7