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