authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-07-28 18:46:25+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-07-30 02:33:16+02:00
logd2b21d582341a2958cf41dde046466a1607926fb
treeb47f448fafa0cbfa14787384bc0f6b17f2c4b667
parent9db992bd9bf67efef3a81c76fc3896ac1c94d7e4
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

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


1 files changed, 12 insertions(+), 0 deletions(-)

lib/std/os/linux/tls.zig+12
......@@ -84,6 +84,7 @@ const current_variant: Variant = switch (native_arch) {
8484 .riscv32,
8585 .riscv64,
8686 => .I_modified,
87 .s390x,
8788 .sparc64,
8889 .x86,
8990 .x86_64,
......@@ -277,6 +278,17 @@ pub fn setThreadPointer(addr: usize) void {
277278 : [addr] "r" (addr),
278279 );
279280 },
281 .s390x => {
282 asm volatile (
283 \\ lgr %%r0, %[addr]
284 \\ sar %%a1, %%r0
285 \\ srlg %%r0, %%r0, 32
286 \\ sar %%a0, %%r0
287 :
288 : [addr] "r" (addr),
289 : "r0"
290 );
291 },
280292 .sparc64 => {
281293 asm volatile (
282294 \\ mov %[addr], %%g7