mirror of
https://github.com/ziglang/zig.git
synced 2025-12-27 00:23:22 +00:00
std.Thread: fix inline asm for mipsn32
This was using the mips64 syscalls. ref https://github.com/ziglang/zig/issues/22189
This commit is contained in:
parent
842de66db8
commit
e59f2995a5
@ -1242,26 +1242,38 @@ const LinuxThreadImpl = struct {
|
|||||||
// The bug was introduced in 46e12c07b3b9603c60fc1d421ff18618241cb081 and fixed in
|
// The bug was introduced in 46e12c07b3b9603c60fc1d421ff18618241cb081 and fixed in
|
||||||
// 7928eb0370d1133d0d8cd2f5ddfca19c309079d5.
|
// 7928eb0370d1133d0d8cd2f5ddfca19c309079d5.
|
||||||
.mips, .mipsel => asm volatile (
|
.mips, .mipsel => asm volatile (
|
||||||
\\ move $sp, $25
|
\\ move $sp, $t9
|
||||||
\\ li $2, 4091 # SYS_munmap
|
\\ li $v0, 4091 # SYS_munmap
|
||||||
\\ move $4, %[ptr]
|
\\ move $a0, %[ptr]
|
||||||
\\ move $5, %[len]
|
\\ move $a1, %[len]
|
||||||
\\ syscall
|
\\ syscall
|
||||||
\\ li $2, 4001 # SYS_exit
|
\\ li $v0, 4001 # SYS_exit
|
||||||
\\ li $4, 0
|
\\ li $a0, 0
|
||||||
\\ syscall
|
\\ syscall
|
||||||
:
|
:
|
||||||
: [ptr] "r" (@intFromPtr(self.mapped.ptr)),
|
: [ptr] "r" (@intFromPtr(self.mapped.ptr)),
|
||||||
[len] "r" (self.mapped.len),
|
[len] "r" (self.mapped.len),
|
||||||
: .{ .memory = true }),
|
: .{ .memory = true }),
|
||||||
.mips64, .mips64el => asm volatile (
|
.mips64, .mips64el => asm volatile (switch (target.abi) {
|
||||||
\\ li $2, 5011 # SYS_munmap
|
.gnuabin32, .muslabin32 =>
|
||||||
\\ move $4, %[ptr]
|
\\ li $v0, 6011 # SYS_munmap
|
||||||
\\ move $5, %[len]
|
\\ move $a0, %[ptr]
|
||||||
\\ syscall
|
\\ move $a1, %[len]
|
||||||
\\ li $2, 5058 # SYS_exit
|
\\ syscall
|
||||||
\\ li $4, 0
|
\\ li $v0, 6058 # SYS_exit
|
||||||
\\ syscall
|
\\ li $a0, 0
|
||||||
|
\\ syscall
|
||||||
|
,
|
||||||
|
else =>
|
||||||
|
\\ li $v0, 5011 # SYS_munmap
|
||||||
|
\\ move $a0, %[ptr]
|
||||||
|
\\ move $a1, %[len]
|
||||||
|
\\ syscall
|
||||||
|
\\ li $v0, 5058 # SYS_exit
|
||||||
|
\\ li $a0, 0
|
||||||
|
\\ syscall
|
||||||
|
,
|
||||||
|
}
|
||||||
:
|
:
|
||||||
: [ptr] "r" (@intFromPtr(self.mapped.ptr)),
|
: [ptr] "r" (@intFromPtr(self.mapped.ptr)),
|
||||||
[len] "r" (self.mapped.len),
|
[len] "r" (self.mapped.len),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user