diff --git a/lib/std/os/linux/tls.zig b/lib/std/os/linux/tls.zig index 1ca38c2ebd..212de9ccb2 100644 --- a/lib/std/os/linux/tls.zig +++ b/lib/std/os/linux/tls.zig @@ -70,6 +70,8 @@ const current_variant: Variant = switch (native_arch) { .thumb, .thumbeb, => .I_original, + .loongarch32, + .loongarch64, .m68k, .mips, .mipsel, @@ -243,6 +245,13 @@ pub fn setThreadPointer(addr: usize) void { const rc = linux.syscall1(.set_thread_area, addr); assert(rc == 0); }, + .loongarch32, .loongarch64 => { + asm volatile ( + \\ mv tp, %[addr] + : + : [addr] "r" (addr), + ); + }, .riscv32, .riscv64 => { asm volatile ( \\ mv tp, %[addr]