diff --git a/lib/std/os/linux/tls.zig b/lib/std/os/linux/tls.zig index 7319f4863e..e39a3a0308 100644 --- 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, + .hexagon, .s390x, .sparc64, .x86, @@ -246,6 +247,13 @@ pub fn setThreadPointer(addr: usize) void { const rc = linux.syscall1(.set_thread_area, addr); assert(rc == 0); }, + .hexagon => { + asm volatile ( + \\ ugp = %[addr] + : + : [addr] "r" (addr), + ); + }, .loongarch32, .loongarch64 => { asm volatile ( \\ mv tp, %[addr]