[MIPS] Fix register handling in syscalls when debugging.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
ecd5a73904
commit
04a7052c83
|
@ -94,11 +94,13 @@ syscall_trace_entry:
|
||||||
li a1, 0
|
li a1, 0
|
||||||
jal do_syscall_trace
|
jal do_syscall_trace
|
||||||
|
|
||||||
|
move t0, s0
|
||||||
|
RESTORE_STATIC
|
||||||
lw a0, PT_R4(sp) # Restore argument registers
|
lw a0, PT_R4(sp) # Restore argument registers
|
||||||
lw a1, PT_R5(sp)
|
lw a1, PT_R5(sp)
|
||||||
lw a2, PT_R6(sp)
|
lw a2, PT_R6(sp)
|
||||||
lw a3, PT_R7(sp)
|
lw a3, PT_R7(sp)
|
||||||
jalr s0
|
jalr t0
|
||||||
|
|
||||||
li t0, -EMAXERRNO - 1 # error?
|
li t0, -EMAXERRNO - 1 # error?
|
||||||
sltu t0, t0, v0
|
sltu t0, t0, v0
|
||||||
|
|
|
@ -93,13 +93,15 @@ syscall_trace_entry:
|
||||||
li a1, 0
|
li a1, 0
|
||||||
jal do_syscall_trace
|
jal do_syscall_trace
|
||||||
|
|
||||||
|
move t0, s0
|
||||||
|
RESTORE_STATIC
|
||||||
ld a0, PT_R4(sp) # Restore argument registers
|
ld a0, PT_R4(sp) # Restore argument registers
|
||||||
ld a1, PT_R5(sp)
|
ld a1, PT_R5(sp)
|
||||||
ld a2, PT_R6(sp)
|
ld a2, PT_R6(sp)
|
||||||
ld a3, PT_R7(sp)
|
ld a3, PT_R7(sp)
|
||||||
ld a4, PT_R8(sp)
|
ld a4, PT_R8(sp)
|
||||||
ld a5, PT_R9(sp)
|
ld a5, PT_R9(sp)
|
||||||
jalr s0
|
jalr t0
|
||||||
|
|
||||||
li t0, -EMAXERRNO - 1 # error?
|
li t0, -EMAXERRNO - 1 # error?
|
||||||
sltu t0, t0, v0
|
sltu t0, t0, v0
|
||||||
|
|
|
@ -90,13 +90,15 @@ n32_syscall_trace_entry:
|
||||||
li a1, 0
|
li a1, 0
|
||||||
jal do_syscall_trace
|
jal do_syscall_trace
|
||||||
|
|
||||||
|
move t0, s0
|
||||||
|
RESTORE_STATIC
|
||||||
ld a0, PT_R4(sp) # Restore argument registers
|
ld a0, PT_R4(sp) # Restore argument registers
|
||||||
ld a1, PT_R5(sp)
|
ld a1, PT_R5(sp)
|
||||||
ld a2, PT_R6(sp)
|
ld a2, PT_R6(sp)
|
||||||
ld a3, PT_R7(sp)
|
ld a3, PT_R7(sp)
|
||||||
ld a4, PT_R8(sp)
|
ld a4, PT_R8(sp)
|
||||||
ld a5, PT_R9(sp)
|
ld a5, PT_R9(sp)
|
||||||
jalr s0
|
jalr t0
|
||||||
|
|
||||||
li t0, -EMAXERRNO - 1 # error?
|
li t0, -EMAXERRNO - 1 # error?
|
||||||
sltu t0, t0, v0
|
sltu t0, t0, v0
|
||||||
|
|
|
@ -124,6 +124,8 @@ trace_a_syscall:
|
||||||
li a1, 0
|
li a1, 0
|
||||||
jal do_syscall_trace
|
jal do_syscall_trace
|
||||||
|
|
||||||
|
move t0, s0
|
||||||
|
RESTORE_STATIC
|
||||||
ld a0, PT_R4(sp) # Restore argument registers
|
ld a0, PT_R4(sp) # Restore argument registers
|
||||||
ld a1, PT_R5(sp)
|
ld a1, PT_R5(sp)
|
||||||
ld a2, PT_R6(sp)
|
ld a2, PT_R6(sp)
|
||||||
|
@ -132,7 +134,7 @@ trace_a_syscall:
|
||||||
ld a5, PT_R9(sp)
|
ld a5, PT_R9(sp)
|
||||||
ld a6, PT_R10(sp)
|
ld a6, PT_R10(sp)
|
||||||
ld a7, PT_R11(sp) # For indirect syscalls
|
ld a7, PT_R11(sp) # For indirect syscalls
|
||||||
jalr s0
|
jalr t0
|
||||||
|
|
||||||
li t0, -EMAXERRNO - 1 # error?
|
li t0, -EMAXERRNO - 1 # error?
|
||||||
sltu t0, t0, v0
|
sltu t0, t0, v0
|
||||||
|
|
Loading…
Reference in New Issue