sh: nmi_debug support.
[linux-block.git] / arch / sh / kernel / cpu / sh3 / ex.S
CommitLineData
1da177e4
LT
1/*
2 * arch/sh/kernel/cpu/sh3/ex.S
3 *
00bf0610 4 * The SH-3 and SH-4 exception vector table.
1da177e4
LT
5
6 * Copyright (C) 1999, 2000, 2002 Niibe Yutaka
ef9247ef 7 * Copyright (C) 2003 - 2008 Paul Mundt
1da177e4
LT
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.
1da177e4
LT
12 */
13#include <linux/linkage.h>
1da177e4 14
ef9247ef
PM
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
ab6e570b 29#if !defined(CONFIG_KGDB)
ef9247ef
PM
30#define kgdb_handle_exception exception_error
31#endif
32
1da177e4
LT
33 .align 2
34 .data
35
36ENTRY(exception_handling_table)
37 .long exception_error /* 000 */
38 .long exception_error
1da177e4
LT
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 */
74d99a5e 46 .long fpu_error_trap_handler /* 120 */
00bf0610 47 .long exception_error /* 140 */
1da177e4
LT
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*/
1e1030dc 51 .long nmi_trap_handler /* 1C0 */ ! Allow trap to debugger
1da177e4 52 .long break_point_trap /* 1E0 */
1f666587
PM
53
54 /*
55 * Pad the remainder of the table out, exceptions residing in far
56 * away offsets can be manually inserted in to their appropriate
57 * location via set_exception_table_{evt,vec}().
58 */
00bf0610 59 .balign 4096,0,4096