Browse Source

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.
Rich Felker 12 years ago
parent
commit
21419914c5
1 changed files with 2 additions and 2 deletions
  1. 2 2
      src/internal/mips/syscall.s

+ 2 - 2
src/internal/mips/syscall.s

@@ -3,7 +3,7 @@
 .global __syscall
 .type   __syscall,@function
 __syscall:
-	move    $10, $4
+	move    $25, $4
 	move    $4, $5
 	move    $5, $6
 	move    $6, $7
@@ -13,7 +13,7 @@ __syscall:
 	subu    $sp, $sp, 32
 	sw      $8, 16($sp)
 	sw      $9, 20($sp)
-	move    $2, $10
+	move    $2, $25
 	syscall
 	beq     $7, $0, 1f
 	addu    $sp, $sp, 32