authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-10-21 04:26:27+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-10-23 09:27:17+02:00
logf723d69a5825221a87221d946d23d6b1093d70ab
tree102330582f61b251f7acea5ebdfc61b79bdad19e
parentaff557e4e81f88028e34fad8aa86f7361ef1632e
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std.os.linux.tls: add hppa support

Turns out Linux on PA-RISC does system calls in a pretty fascinating way; see arch/parisc/kernel/syscall.S for details.

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

lib/std/os/linux/tls.zig+9
......@@ -71,6 +71,7 @@ const current_variant: Variant = switch (native_arch) {
7171 .arm,
7272 .armeb,
7373 .csky,
74 .hppa,
7475 .microblaze,
7576 .microblazeel,
7677 .sh,
......@@ -144,6 +145,7 @@ const AbiTcb = switch (current_variant) {
144145 .alpha,
145146 .arm,
146147 .armeb,
148 .hppa,
147149 .microblaze,
148150 .microblazeel,
149151 .sh,
......@@ -285,6 +287,13 @@ pub fn setThreadPointer(addr: usize) void {
285287 : [addr] "r" (addr),
286288 );
287289 },
290 .hppa => {
291 asm volatile (
292 \\ ble 0xe0(%%sr2, %%r0)
293 :
294 : [addr] "={r26}" (addr),
295 : .{ .r29 = true });
296 },
288297 .loongarch32, .loongarch64 => {
289298 asm volatile (
290299 \\ move $tp, %[addr]