authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-10-21 05:33:48+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-10-23 09:27:17+02:00
log493889d5ebd961dabcb53d90c0814f6c71700cff
treea9a5fabef7b072c0462594dced87d3c9e23e115b
parent3777d3c25bb597998eea9cbc977519622e27eeab
signature Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std.Thread: implement freeAndExit() for sh-linux


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

lib/std/Thread.zig+22
...@@ -1383,6 +1383,28 @@ const LinuxThreadImpl = struct {...@@ -1383,6 +1383,28 @@ const LinuxThreadImpl = struct {
1383 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),1383 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
1384 [len] "r" (self.mapped.len),1384 [len] "r" (self.mapped.len),
1385 : .{ .memory = true }),1385 : .{ .memory = true }),
1386 .sh, .sheb => asm volatile (
1387 \\ mov #91, r3 ! SYS_munmap
1388 \\ mov %[ptr], r4
1389 \\ mov %[len], r5
1390 \\ trapa #31
1391 \\ or r0, r0
1392 \\ or r0, r0
1393 \\ or r0, r0
1394 \\ or r0, r0
1395 \\ or r0, r0
1396 \\ mov #1, r3 ! SYS_exit
1397 \\ mov #0, r4
1398 \\ trapa #31
1399 \\ or r0, r0
1400 \\ or r0, r0
1401 \\ or r0, r0
1402 \\ or r0, r0
1403 \\ or r0, r0
1404 :
1405 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
1406 [len] "r" (self.mapped.len),
1407 : .{ .memory = true }),
1386 .sparc => asm volatile (1408 .sparc => asm volatile (
1387 \\ # See sparc64 comments below.1409 \\ # See sparc64 comments below.
1388 \\ 1:1410 \\ 1: