12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- /*
- * arch/sh/kernel/cpu/sh2a/ex.S
- *
- * The SH-2A exception vector table
- *
- * Copyright (C) 2008 Yoshinori Sato
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- */
- #include <linux/linkage.h>
- !
- ! convert Exception Vector to Exception Number
- !
- ! exception no 0 to 255
- exception_entry0:
- no = 0
- .rept 256
- mov.l r1,@-sp
- bra exception_trampoline0
- mov #no,r1
- no = no + 1
- .endr
- exception_trampoline0:
- mov.l r0,@-sp
- mov.l 1f,r0
- extu.b r1,r1
- jmp @r0
- extu.w r1,r1
-
- .align 2
- 1: .long exception_handler
- ! exception no 256 to 511
- exception_entry1:
- no = 0
- .rept 256
- mov.l r1,@-sp
- bra exception_trampoline1
- mov #no,r1
- no = no + 1
- .endr
- exception_trampoline1:
- mov.l r0,@-sp
- extu.b r1,r1
- movi20 #0x100,r0
- add r0,r1
- mov.l 1f,r0
- jmp @r0
- extu.w r1,r1
-
- .align 2
- 1: .long exception_handler
- !
- ! Exception Vector Base
- !
- .align 2
- ENTRY(vbr_base)
- vector = 0
- .rept 256
- .long exception_entry0 + vector * 6
- vector = vector + 1
- .endr
- vector = 0
- .rept 256
- .long exception_entry1 + vector * 6
- vector = vector + 1
- .endr
|