std.os.linux.tls: add alpha support

This commit is contained in:
Alex Rønne Petersen 2025-10-21 04:07:19 +02:00
parent 2b54437f24
commit 9fde44229c
No known key found for this signature in database

View File

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