Commit 9fde44229c

Alex Rønne Petersen <alex@alexrp.com>
2025-10-21 04:07:19
std.os.linux.tls: add alpha support
1 parent 2b54437
Changed files (1)
lib
std
os
linux
lib/std/os/linux/tls.zig
@@ -63,12 +63,13 @@ const Variant = enum {
 };
 
 const current_variant: Variant = switch (native_arch) {
+    .aarch64,
+    .aarch64_be,
+    .alpha,
     .arc,
     .arceb,
     .arm,
     .armeb,
-    .aarch64,
-    .aarch64_be,
     .csky,
     .thumb,
     .thumbeb,
@@ -138,6 +139,7 @@ const AbiTcb = switch (current_variant) {
         // usual, while the second one is unspecified.
         .aarch64,
         .aarch64_be,
+        .alpha,
         .arm,
         .armeb,
         .thumb,
@@ -244,6 +246,14 @@ pub fn setThreadPointer(addr: usize) void {
                 : [addr] "r" (addr),
             );
         },
+        .alpha => {
+            asm volatile (
+                \\ lda a0, %[addr]
+                \\ wruniq
+                :
+                : [addr] "r" (addr),
+            );
+        },
         .arc, .arceb => {
             // We apparently need to both set r25 (TP) *and* inform the kernel...
             asm volatile (