sync hh.org
[hh.org.git] / arch / sh / kernel / cpu / sh4 / ex.S
blobac8ab57413cced9e802c5f77485be6e4b844d299
1 /*
2  *  arch/sh/kernel/cpu/sh4/ex.S
3  *
4  *  The SH-4 exception vector table.
6  *  Copyright (C) 1999, 2000, 2002  Niibe Yutaka
7  *  Copyright (C) 2003 - 2006  Paul Mundt
8  *
9  * This file is subject to the terms and conditions of the GNU General Public
10  * License.  See the file "COPYING" in the main directory of this archive
11  * for more details.
12  *
13  */
14 #include <linux/linkage.h>
16         .align 2
17         .data
19 ENTRY(exception_handling_table)
20         .long   exception_error         /* 000 */
21         .long   exception_error
22 #if defined(CONFIG_MMU)
23         .long   tlb_miss_load           /* 040 */
24         .long   tlb_miss_store
25         .long   initial_page_write
26         .long   tlb_protection_violation_load
27         .long   tlb_protection_violation_store
28         .long   address_error_load
29         .long   address_error_store     /* 100 */
30 #else
31         .long   exception_error ! tlb miss load         /* 040 */
32         .long   exception_error ! tlb miss store
33         .long   exception_error ! initial page write
34         .long   exception_error ! tlb prot violation load
35         .long   exception_error ! tlb prot violation store
36         .long   exception_error ! address error load
37         .long   exception_error ! address error store   /* 100 */
38 #endif
39 #if defined(CONFIG_SH_FPU)
40         .long   do_fpu_error            /* 120 */
41 #else
42         .long   exception_error         /* 120 */
43 #endif
44         .long   exception_error         /* 140 */
45         .long   system_call     ! Unconditional Trap     /* 160 */
46         .long   exception_error ! reserved_instruction (filled by trap_init) /* 180 */
47         .long   exception_error ! illegal_slot_instruction (filled by trap_init) /*1A0*/
48 ENTRY(nmi_slot)
49 #if defined (CONFIG_KGDB_NMI)
50         .long   debug_enter     /* 1C0 */       ! Allow trap to debugger
51 #else
52         .long   exception_none  /* 1C0 */       ! Not implemented yet
53 #endif
54 ENTRY(user_break_point_trap)
55         .long   break_point_trap        /* 1E0 */
57         /*
58          * Pad the remainder of the table out, exceptions residing in far
59          * away offsets can be manually inserted in to their appropriate
60          * location via set_exception_table_{evt,vec}().
61          */
62         .balign 4096,0,4096