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) {...@@ -73,6 +73,8 @@ const current_variant: Variant = switch (native_arch) {
73 .csky,73 .csky,
74 .microblaze,74 .microblaze,
75 .microblazeel,75 .microblazeel,
76 .sh,
77 .sheb,
76 .thumb,78 .thumb,
77 .thumbeb,79 .thumbeb,
78 => .I_original,80 => .I_original,
...@@ -144,6 +146,8 @@ const AbiTcb = switch (current_variant) {...@@ -144,6 +146,8 @@ const AbiTcb = switch (current_variant) {
144 .armeb,146 .armeb,
145 .microblaze,147 .microblaze,
146 .microblazeel,148 .microblazeel,
149 .sh,
150 .sheb,
147 .thumb,151 .thumb,
148 .thumbeb,152 .thumbeb,
149 => extern struct {153 => extern struct {
...@@ -337,6 +341,13 @@ pub fn setThreadPointer(addr: usize) void {...@@ -337,6 +341,13 @@ pub fn setThreadPointer(addr: usize) void {
337 : [addr] "r" (addr),341 : [addr] "r" (addr),
338 : .{ .r0 = true });342 : .{ .r0 = true });
339 },343 },
344 .sh, .sheb => {
345 asm volatile (
346 \\ ldc gbr, %[addr]
347 :
348 : [addr] "r" (addr),
349 );
350 },
340 .sparc, .sparc64 => {351 .sparc, .sparc64 => {
341 asm volatile (352 asm volatile (
342 \\ mov %[addr], %%g7353 \\ mov %[addr], %%g7