diff options
Diffstat (limited to 'arch/mips/kernel/genex.S')
-rw-r--r-- | arch/mips/kernel/genex.S | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/mips/kernel/genex.S b/arch/mips/kernel/genex.S index 349ec301168f..fd904d1e4190 100644 --- a/arch/mips/kernel/genex.S +++ b/arch/mips/kernel/genex.S | |||
@@ -148,6 +148,38 @@ NESTED(except_vec_ejtag_debug, 0, sp) | |||
148 | __FINIT | 148 | __FINIT |
149 | 149 | ||
150 | /* | 150 | /* |
151 | * Vectored interrupt handler. | ||
152 | * This prototype is copied to ebase + n*IntCtl.VS and patched | ||
153 | * to invoke the handler | ||
154 | */ | ||
155 | NESTED(except_vec_vi, 0, sp) | ||
156 | SAVE_SOME | ||
157 | SAVE_AT | ||
158 | .set push | ||
159 | .set noreorder | ||
160 | EXPORT(except_vec_vi_lui) | ||
161 | lui v0, 0 /* Patched */ | ||
162 | j except_vec_vi_handler | ||
163 | EXPORT(except_vec_vi_ori) | ||
164 | ori v0, 0 /* Patched */ | ||
165 | .set pop | ||
166 | END(except_vec_vi) | ||
167 | EXPORT(except_vec_vi_end) | ||
168 | |||
169 | /* | ||
170 | * Common Vectored Interrupt code | ||
171 | * Complete the register saves and invoke the handler which is passed in $v0 | ||
172 | */ | ||
173 | NESTED(except_vec_vi_handler, 0, sp) | ||
174 | SAVE_TEMP | ||
175 | SAVE_STATIC | ||
176 | CLI | ||
177 | move a0, sp | ||
178 | jalr v0 | ||
179 | j ret_from_irq | ||
180 | END(except_vec_vi_handler) | ||
181 | |||
182 | /* | ||
151 | * EJTAG debug exception handler. | 183 | * EJTAG debug exception handler. |
152 | */ | 184 | */ |
153 | NESTED(ejtag_debug_handler, PT_SIZE, sp) | 185 | NESTED(ejtag_debug_handler, PT_SIZE, sp) |