mirror of
https://git.musl-libc.org/git/musl
synced 2025-01-27 08:29:27 +03:00
fix broken mips syscall asm
this code was using $10 to save the syscall number, but $10 is not necessarily preserved by the kernel across syscalls. only mattered for syscalls that got interrupted by a signal and restarted. as far as i can tell, $25 is preserved by the kernel across syscalls.
This commit is contained in:
parent
41c5ee50ee
commit
21419914c5
@ -3,7 +3,7 @@
|
|||||||
.global __syscall
|
.global __syscall
|
||||||
.type __syscall,@function
|
.type __syscall,@function
|
||||||
__syscall:
|
__syscall:
|
||||||
move $10, $4
|
move $25, $4
|
||||||
move $4, $5
|
move $4, $5
|
||||||
move $5, $6
|
move $5, $6
|
||||||
move $6, $7
|
move $6, $7
|
||||||
@ -13,7 +13,7 @@ __syscall:
|
|||||||
subu $sp, $sp, 32
|
subu $sp, $sp, 32
|
||||||
sw $8, 16($sp)
|
sw $8, 16($sp)
|
||||||
sw $9, 20($sp)
|
sw $9, 20($sp)
|
||||||
move $2, $10
|
move $2, $25
|
||||||
syscall
|
syscall
|
||||||
beq $7, $0, 1f
|
beq $7, $0, 1f
|
||||||
addu $sp, $sp, 32
|
addu $sp, $sp, 32
|
||||||
|
Loading…
Reference in New Issue
Block a user