diff options
Diffstat (limited to 'arch/mips/lib/genex.S')
-rw-r--r-- | arch/mips/lib/genex.S | 33 |
1 files changed, 11 insertions, 22 deletions
diff --git a/arch/mips/lib/genex.S b/arch/mips/lib/genex.S index 5fb2223231..27dd9de67a 100644 --- a/arch/mips/lib/genex.S +++ b/arch/mips/lib/genex.S @@ -1,6 +1,7 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + #include <asm/asm.h> #include <asm/regdef.h> -#include <asm/mipsregs.h> #include <asm/stackframe.h> .text @@ -9,31 +10,19 @@ .set noreorder .align 5 -/* Exception vector */ -NESTED(handle_reserved, 0, sp) +NESTED(exception_vec, 0, sp) + j handle_reserved + nop +EXPORT(exception_vec_end) +END(exception_vec) + +handle_reserved: SAVE_ALL - la k0, barebox_exc_handler - jal k0 + PTR_LA k0, barebox_exc_handler + j k0 move a0, sp - /* will never return here */ - END(handle_reserved) - -/* General exception vector */ -NESTED(except_vec3_generic, 0, sp) - .set noat - mfc0 k1, CP0_CAUSE - la k0, exception_handlers - andi k1, k1, 0x7c - addu k0, k0, k1 - lw k0, (k0) - nop - jr k0 - nop - END(except_vec3_generic) - .set at FEXPORT(ret_from_exception) .set noat RESTORE_ALL_AND_RET - nop .set at |