diff options
-rw-r--r-- | utils/hwstub/stub/asm/mips/system.S | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/utils/hwstub/stub/asm/mips/system.S b/utils/hwstub/stub/asm/mips/system.S index 7f619c6edd..9e843f7f15 100644 --- a/utils/hwstub/stub/asm/mips/system.S +++ b/utils/hwstub/stub/asm/mips/system.S | |||
@@ -25,6 +25,7 @@ | |||
25 | * the code can register a "longjmp" buffer to restore the context in case of | 25 | * the code can register a "longjmp" buffer to restore the context in case of |
26 | * fault */ | 26 | * fault */ |
27 | .data | 27 | .data |
28 | .align 4 | ||
28 | .global exception_jmp_ctx_ptr | 29 | .global exception_jmp_ctx_ptr |
29 | exception_jmp_ctx_ptr: | 30 | exception_jmp_ctx_ptr: |
30 | /* buffer contains in order: s0-s7, sp, s8, ra */ | 31 | /* buffer contains in order: s0-s7, sp, s8, ra */ |
@@ -56,19 +57,19 @@ set_exception_jmp: | |||
56 | * a0: exception type (EXCEPTION_*) */ | 57 | * a0: exception type (EXCEPTION_*) */ |
57 | .global restore_exception_jmp | 58 | .global restore_exception_jmp |
58 | restore_exception_jmp: | 59 | restore_exception_jmp: |
59 | la k1, exception_jmp_ctx_ptr | 60 | la v0, exception_jmp_ctx_ptr |
60 | lw s0, 0(k1) | 61 | lw s0, 0(v0) |
61 | lw s1, 4(k1) | 62 | lw s1, 4(v0) |
62 | lw s2, 8(k1) | 63 | lw s2, 8(v0) |
63 | lw s3, 12(k1) | 64 | lw s3, 12(v0) |
64 | lw s4, 16(k1) | 65 | lw s4, 16(v0) |
65 | lw s5, 20(k1) | 66 | lw s5, 20(v0) |
66 | lw s6, 24(k1) | 67 | lw s6, 24(v0) |
67 | lw s7, 28(k1) | 68 | lw s7, 28(v0) |
68 | lw sp, 32(k1) | 69 | lw sp, 32(v0) |
69 | lw s8, 36(k1) | 70 | lw s8, 36(v0) |
70 | lw k1, 40(k1) | 71 | lw v0, 40(v0) |
71 | mtc0 k1, C0_EPC | 72 | mtc0 v0, C0_EPC |
72 | #ifdef CONFIG_JZ4760B | 73 | #ifdef CONFIG_JZ4760B |
73 | /* XBurst has a 3 interlock cycle delay, but we don't know if the interlock | 74 | /* XBurst has a 3 interlock cycle delay, but we don't know if the interlock |
74 | * works with eret */ | 75 | * works with eret */ |