authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-10-21 03:50:09+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-10-23 09:27:17+02:00
logaff557e4e81f88028e34fad8aa86f7361ef1632e
treebc390eba99f57a252043d1ccd26d8ee829eeba40
parent5e921261a08a9b27f95ce982e8a10b461520b922
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std.os.linux.tls: add sh support


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

lib/std/os/linux/tls.zig+11
......@@ -73,6 +73,8 @@ const current_variant: Variant = switch (native_arch) {
7373 .csky,
7474 .microblaze,
7575 .microblazeel,
76 .sh,
77 .sheb,
7678 .thumb,
7779 .thumbeb,
7880 => .I_original,
......@@ -144,6 +146,8 @@ const AbiTcb = switch (current_variant) {
144146 .armeb,
145147 .microblaze,
146148 .microblazeel,
149 .sh,
150 .sheb,
147151 .thumb,
148152 .thumbeb,
149153 => extern struct {
......@@ -337,6 +341,13 @@ pub fn setThreadPointer(addr: usize) void {
337341 : [addr] "r" (addr),
338342 : .{ .r0 = true });
339343 },
344 .sh, .sheb => {
345 asm volatile (
346 \\ ldc gbr, %[addr]
347 :
348 : [addr] "r" (addr),
349 );
350 },
340351 .sparc, .sparc64 => {
341352 asm volatile (
342353 \\ mov %[addr], %%g7