| ... | ... | @@ -1316,30 +1316,29 @@ const LinuxThreadImpl = struct { |
| 1316 | 1316 | [len] "{r4}" (self.mapped.len), |
| 1317 | 1317 | ), |
| 1318 | 1318 | .powerpc, .powerpcle, .powerpc64, .powerpc64le => asm volatile ( |
| 1319 | | \\ li 0, 91 # SYS_munmap |
| 1320 | | \\ sc |
| 1321 | | \\ li 0, 1 # SYS_exit |
| 1322 | | \\ li 3, 0 |
| 1323 | | \\ sc |
| 1324 | | \\ blr |
| 1319 | \\ li 0, 91 # SYS_munmap |
| 1320 | \\ sc |
| 1321 | \\ li 0, 1 # SYS_exit |
| 1322 | \\ li 3, 0 |
| 1323 | \\ sc |
| 1325 | 1324 | : |
| 1326 | 1325 | : [ptr] "{r3}" (@intFromPtr(self.mapped.ptr)), |
| 1327 | 1326 | [len] "{r4}" (self.mapped.len), |
| 1328 | 1327 | ), |
| 1329 | 1328 | .riscv32, .riscv64 => asm volatile ( |
| 1330 | | \\ li a7, 215 # SYS_munmap |
| 1331 | | \\ ecall |
| 1332 | | \\ li a7, 93 # SYS_exit |
| 1333 | | \\ mv a0, zero |
| 1334 | | \\ ecall |
| 1329 | \\ li a7, 215 # SYS_munmap |
| 1330 | \\ ecall |
| 1331 | \\ li a7, 93 # SYS_exit |
| 1332 | \\ mv a0, zero |
| 1333 | \\ ecall |
| 1335 | 1334 | : |
| 1336 | 1335 | : [ptr] "{a0}" (@intFromPtr(self.mapped.ptr)), |
| 1337 | 1336 | [len] "{a1}" (self.mapped.len), |
| 1338 | 1337 | ), |
| 1339 | 1338 | .s390x => asm volatile ( |
| 1340 | | \\ svc 91 # SYS_munmap |
| 1341 | | \\ lghi %%r2, 0 |
| 1342 | | \\ svc 1 # SYS_exit |
| 1339 | \\ svc 91 # SYS_munmap |
| 1340 | \\ lghi %%r2, 0 |
| 1341 | \\ svc 1 # SYS_exit |
| 1343 | 1342 | : |
| 1344 | 1343 | : [ptr] "{r2}" (@intFromPtr(self.mapped.ptr)), |
| 1345 | 1344 | [len] "{r3}" (self.mapped.len), |
| ... | ... | @@ -1379,7 +1378,7 @@ const LinuxThreadImpl = struct { |
| 1379 | 1378 | : [ptr] "{g1}" (@intFromPtr(self.mapped.ptr)), |
| 1380 | 1379 | [len] "{g2}" (self.mapped.len), |
| 1381 | 1380 | [stack] "{g3}" (&sparc_exit_stack), |
| 1382 | | : .{ .memory = true }), |
| 1381 | ), |
| 1383 | 1382 | .sparc64 => asm volatile ( |
| 1384 | 1383 | \\ // Ensure that the kernel only has to flush the current register window. |
| 1385 | 1384 | \\ flushw |
| ... | ... | @@ -1398,7 +1397,7 @@ const LinuxThreadImpl = struct { |
| 1398 | 1397 | : [ptr] "{g1}" (@intFromPtr(self.mapped.ptr)), |
| 1399 | 1398 | [len] "{g2}" (self.mapped.len), |
| 1400 | 1399 | [stack] "{g3}" (&sparc_exit_stack), |
| 1401 | | : .{ .memory = true }), |
| 1400 | ), |
| 1402 | 1401 | .loongarch32, .loongarch64 => asm volatile ( |
| 1403 | 1402 | \\ ori $a7, $zero, 215 # SYS_munmap |
| 1404 | 1403 | \\ syscall 0 # call munmap |
| ... | ... | @@ -1408,7 +1407,7 @@ const LinuxThreadImpl = struct { |
| 1408 | 1407 | : |
| 1409 | 1408 | : [ptr] "{r4}" (@intFromPtr(self.mapped.ptr)), |
| 1410 | 1409 | [len] "{r5}" (self.mapped.len), |
| 1411 | | : .{ .memory = true }), |
| 1410 | ), |
| 1412 | 1411 | .csky => asm volatile ( |
| 1413 | 1412 | \\ movi r7, 215 # SYS_munmap |
| 1414 | 1413 | \\ trap 0 |
| ... | ... | @@ -1418,7 +1417,7 @@ const LinuxThreadImpl = struct { |
| 1418 | 1417 | : |
| 1419 | 1418 | : [ptr] "{r0}" (@intFromPtr(self.mapped.ptr)), |
| 1420 | 1419 | [len] "{r1}" (self.mapped.len), |
| 1421 | | : .{ .memory = true }), |
| 1420 | ), |
| 1422 | 1421 | .xtensa, .xtensaeb => asm volatile ( |
| 1423 | 1422 | \\ movi a2, 81 // SYS_munmap |
| 1424 | 1423 | \\ syscall |
| ... | ... | @@ -1428,7 +1427,7 @@ const LinuxThreadImpl = struct { |
| 1428 | 1427 | : |
| 1429 | 1428 | : [ptr] "{a6}" (@intFromPtr(self.mapped.ptr)), |
| 1430 | 1429 | [len] "{a3}" (self.mapped.len), |
| 1431 | | : .{ .memory = true }), |
| 1430 | ), |
| 1432 | 1431 | else => |cpu_arch| @compileError("Unsupported linux arch: " ++ @tagName(cpu_arch)), |
| 1433 | 1432 | } |
| 1434 | 1433 | unreachable; |