authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-10-18 15:02:31+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-10-18 22:27:35+02:00
log35e819aac8c43a13247b81e69a0af429c35aa0b8
treeed9fb9cb29b242a1a8d7277ea90799ceb9ddfa69
parente646c47f675be2dd83847717c3edda634d3e7dbb
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std.os.linux.tls: implement or1k support


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

lib/std/os/linux/tls.zig+8
...@@ -79,6 +79,7 @@ const current_variant: Variant = switch (native_arch) {...@@ -79,6 +79,7 @@ const current_variant: Variant = switch (native_arch) {
79 .mipsel,79 .mipsel,
80 .mips64,80 .mips64,
81 .mips64el,81 .mips64el,
82 .or1k,
82 .powerpc,83 .powerpc,
83 .powerpcle,84 .powerpcle,
84 .powerpc64,85 .powerpc64,
...@@ -285,6 +286,13 @@ pub fn setThreadPointer(addr: usize) void {...@@ -285,6 +286,13 @@ pub fn setThreadPointer(addr: usize) void {
285 const rc = @call(.always_inline, linux.syscall1, .{ .set_thread_area, addr });286 const rc = @call(.always_inline, linux.syscall1, .{ .set_thread_area, addr });
286 assert(rc == 0);287 assert(rc == 0);
287 },288 },
289 .or1k => {
290 asm volatile (
291 \\ l.ori r10, %[addr], 0
292 :
293 : [addr] "r" (addr),
294 );
295 },
288 .powerpc, .powerpcle => {296 .powerpc, .powerpcle => {
289 asm volatile (297 asm volatile (
290 \\ mr 2, %[addr]298 \\ mr 2, %[addr]