Merge branches 'x86/prototypes', 'x86/x2apic' and 'x86/debug' into x86/core
[linux-2.6] / arch / sh / kernel / cpu / sh3 / ex.S
1 /*
2  *  arch/sh/kernel/cpu/sh3/ex.S
3  *
4  *  The SH-3 and SH-4 exception vector table.
5
6  *  Copyright (C) 1999, 2000, 2002  Niibe Yutaka
7  *  Copyright (C) 2003 - 2008  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 #include <linux/linkage.h>
14
15 #if !defined(CONFIG_MMU)
16 #define tlb_miss_load                   exception_error
17 #define tlb_miss_store                  exception_error
18 #define initial_page_write              exception_error
19 #define tlb_protection_violation_load   exception_error
20 #define tlb_protection_violation_store  exception_error
21 #define address_error_load              exception_error
22 #define address_error_store             exception_error
23 #endif
24
25 #if !defined(CONFIG_SH_FPU)
26 #define fpu_error_trap_handler          exception_error
27 #endif
28
29 #if !defined(CONFIG_KGDB_NMI)
30 #define kgdb_handle_exception           exception_error
31 #endif
32
33         .align 2
34         .data
35
36 ENTRY(exception_handling_table)
37         .long   exception_error         /* 000 */
38         .long   exception_error
39         .long   tlb_miss_load           /* 040 */
40         .long   tlb_miss_store
41         .long   initial_page_write
42         .long   tlb_protection_violation_load
43         .long   tlb_protection_violation_store
44         .long   address_error_load
45         .long   address_error_store     /* 100 */
46         .long   fpu_error_trap_handler  /* 120 */
47         .long   exception_error         /* 140 */
48         .long   system_call     ! Unconditional Trap     /* 160 */
49         .long   exception_error ! reserved_instruction (filled by trap_init) /* 180 */
50         .long   exception_error ! illegal_slot_instruction (filled by trap_init) /*1A0*/
51 ENTRY(nmi_slot)
52         .long   kgdb_handle_exception   /* 1C0 */       ! Allow trap to debugger
53 ENTRY(user_break_point_trap)
54         .long   break_point_trap        /* 1E0 */
55
56         /*
57          * Pad the remainder of the table out, exceptions residing in far
58          * away offsets can be manually inserted in to their appropriate
59          * location via set_exception_table_{evt,vec}().
60          */
61         .balign 4096,0,4096