blob: 2b2a9e02fb752d1e358f41787369cb8731412501 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 * arch/sh/kernel/cpu/sh3/ex.S
3 *
Paul Mundt00bf0612007-05-08 13:01:37 +09004 * The SH-3 and SH-4 exception vector table.
Linus Torvalds1da177e2005-04-16 15:20:36 -07005
6 * Copyright (C) 1999, 2000, 2002 Niibe Yutaka
Paul Mundt1f666582006-10-19 16:20:25 +09007 * Copyright (C) 2003 - 2006 Paul Mundt
Linus Torvalds1da177e2005-04-16 15:20:36 -07008 *
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.
Linus Torvalds1da177e2005-04-16 15:20:36 -070012 */
13#include <linux/linkage.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -070014
15 .align 2
16 .data
17
18ENTRY(exception_handling_table)
19 .long exception_error /* 000 */
20 .long exception_error
21#if defined(CONFIG_MMU)
22 .long tlb_miss_load /* 040 */
23 .long tlb_miss_store
24 .long initial_page_write
25 .long tlb_protection_violation_load
26 .long tlb_protection_violation_store
27 .long address_error_load
28 .long address_error_store /* 100 */
29#else
30 .long exception_error ! tlb miss load /* 040 */
31 .long exception_error ! tlb miss store
32 .long exception_error ! initial page write
33 .long exception_error ! tlb prot violation load
34 .long exception_error ! tlb prot violation store
35 .long exception_error ! address error load
36 .long exception_error ! address error store /* 100 */
37#endif
Paul Mundt00bf0612007-05-08 13:01:37 +090038#if defined(CONFIG_SH_FPU)
39 .long do_fpu_error /* 120 */
40#else
41 .long exception_error /* 120 */
42#endif
43 .long exception_error /* 140 */
Linus Torvalds1da177e2005-04-16 15:20:36 -070044 .long system_call ! Unconditional Trap /* 160 */
45 .long exception_error ! reserved_instruction (filled by trap_init) /* 180 */
46 .long exception_error ! illegal_slot_instruction (filled by trap_init) /*1A0*/
47ENTRY(nmi_slot)
48#if defined (CONFIG_KGDB_NMI)
49 .long debug_enter /* 1C0 */ ! Allow trap to debugger
50#else
51 .long exception_none /* 1C0 */ ! Not implemented yet
52#endif
53ENTRY(user_break_point_trap)
54 .long break_point_trap /* 1E0 */
Paul Mundt1f666582006-10-19 16:20:25 +090055
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 */
Paul Mundt00bf0612007-05-08 13:01:37 +090061 .balign 4096,0,4096