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

This commit is contained in:
Alex Rønne Petersen 2024-07-28 18:46:25 +02:00
parent 9db992bd9b
commit d2b21d5823
No known key found for this signature in database

View File

@ -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