| ... | ... | @@ -1242,26 +1242,38 @@ const LinuxThreadImpl = struct { |
| 1242 | 1242 | // The bug was introduced in 46e12c07b3b9603c60fc1d421ff18618241cb081 and fixed in |
| 1243 | 1243 | // 7928eb0370d1133d0d8cd2f5ddfca19c309079d5. |
| 1244 | 1244 | .mips, .mipsel => asm volatile ( |
| 1245 | | \\ move $sp, $25 |
| 1246 | | \\ li $2, 4091 # SYS_munmap |
| 1247 | | \\ move $4, %[ptr] |
| 1248 | | \\ move $5, %[len] |
| 1249 | | \\ syscall |
| 1250 | | \\ li $2, 4001 # SYS_exit |
| 1251 | | \\ li $4, 0 |
| 1252 | | \\ syscall |
| 1245 | \\ move $sp, $t9 |
| 1246 | \\ li $v0, 4091 # SYS_munmap |
| 1247 | \\ move $a0, %[ptr] |
| 1248 | \\ move $a1, %[len] |
| 1249 | \\ syscall |
| 1250 | \\ li $v0, 4001 # SYS_exit |
| 1251 | \\ li $a0, 0 |
| 1252 | \\ syscall |
| 1253 | 1253 | : |
| 1254 | 1254 | : [ptr] "r" (@intFromPtr(self.mapped.ptr)), |
| 1255 | 1255 | [len] "r" (self.mapped.len), |
| 1256 | 1256 | : .{ .memory = true }), |
| 1257 | | .mips64, .mips64el => asm volatile ( |
| 1258 | | \\ li $2, 5011 # SYS_munmap |
| 1259 | | \\ move $4, %[ptr] |
| 1260 | | \\ move $5, %[len] |
| 1261 | | \\ syscall |
| 1262 | | \\ li $2, 5058 # SYS_exit |
| 1263 | | \\ li $4, 0 |
| 1264 | | \\ syscall |
| 1257 | .mips64, .mips64el => asm volatile (switch (target.abi) { |
| 1258 | .gnuabin32, .muslabin32 => |
| 1259 | \\ li $v0, 6011 # SYS_munmap |
| 1260 | \\ move $a0, %[ptr] |
| 1261 | \\ move $a1, %[len] |
| 1262 | \\ syscall |
| 1263 | \\ li $v0, 6058 # SYS_exit |
| 1264 | \\ li $a0, 0 |
| 1265 | \\ syscall |
| 1266 | , |
| 1267 | else => |
| 1268 | \\ li $v0, 5011 # SYS_munmap |
| 1269 | \\ move $a0, %[ptr] |
| 1270 | \\ move $a1, %[len] |
| 1271 | \\ syscall |
| 1272 | \\ li $v0, 5058 # SYS_exit |
| 1273 | \\ li $a0, 0 |
| 1274 | \\ syscall |
| 1275 | , |
| 1276 | } |
| 1265 | 1277 | : |
| 1266 | 1278 | : [ptr] "r" (@intFromPtr(self.mapped.ptr)), |
| 1267 | 1279 | [len] "r" (self.mapped.len), |