authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-06-22 14:54:03+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-07-29 09:50:09+02:00
logb83d10214bf723c21a912e809fb39f4407dae927
tree0fbccbb3f33f4e2fe928d12c2d3a674c18b44682
parentb958225e687c3b044d52a5adcb58dfb413ee141a
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std.Thread: Implement LinuxThreadImpl.ThreadCompletion.freeAndExit() for riscv32.


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

lib/std/Thread.zig+13
...@@ -1171,6 +1171,19 @@ const LinuxThreadImpl = struct {...@@ -1171,6 +1171,19 @@ const LinuxThreadImpl = struct {
1171 [len] "r" (self.mapped.len),1171 [len] "r" (self.mapped.len),
1172 : "memory"1172 : "memory"
1173 ),1173 ),
1174 .riscv32 => asm volatile (
1175 \\ li a7, 215
1176 \\ mv a0, %[ptr]
1177 \\ mv a1, %[len]
1178 \\ ecall
1179 \\ li a7, 93
1180 \\ mv a0, zero
1181 \\ ecall
1182 :
1183 : [ptr] "r" (@intFromPtr(self.mapped.ptr)),
1184 [len] "r" (self.mapped.len),
1185 : "memory"
1186 ),
1174 .riscv64 => asm volatile (1187 .riscv64 => asm volatile (
1175 \\ li a7, 2151188 \\ li a7, 215
1176 \\ mv a0, %[ptr]1189 \\ mv a0, %[ptr]