sh: Share exception vector table for SH-3/4.
authorPaul Mundt <lethal@linux-sh.org>
Tue, 8 May 2007 04:01:37 +0000 (13:01 +0900)
committerPaul Mundt <lethal@hera.kernel.org>
Wed, 9 May 2007 01:35:01 +0000 (01:35 +0000)
The only difference between these at the moment are the FPU
exceptions, and these are hidden away under CONFIG_SH_FPU
(which is only set for the SH-4 case anyways..).

This consolidates the two tables, and updates SH-4 to use
the updated copy.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/kernel/cpu/sh3/ex.S
arch/sh/kernel/cpu/sh4/Makefile
arch/sh/kernel/cpu/sh4/ex.S [deleted file]

index ba3082d..2b2a9e0 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *  arch/sh/kernel/cpu/sh3/ex.S
  *
- *  The SH-3 exception vector table.
+ *  The SH-3 and SH-4 exception vector table.
 
  *  Copyright (C) 1999, 2000, 2002  Niibe Yutaka
  *  Copyright (C) 2003 - 2006  Paul Mundt
@@ -9,7 +9,6 @@
  * 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>
 
@@ -36,8 +35,12 @@ ENTRY(exception_handling_table)
        .long   exception_error ! address error load
        .long   exception_error ! address error store   /* 100 */
 #endif
-       .long   exception_error ! fpu_exception /* 120 */
-       .long   exception_error                 /* 140 */
+#if defined(CONFIG_SH_FPU)
+       .long   do_fpu_error            /* 120 */
+#else
+       .long   exception_error         /* 120 */
+#endif
+       .long   exception_error         /* 140 */
        .long   system_call     ! Unconditional Trap     /* 160 */
        .long   exception_error ! reserved_instruction (filled by trap_init) /* 180 */
        .long   exception_error ! illegal_slot_instruction (filled by trap_init) /*1A0*/
@@ -55,4 +58,4 @@ ENTRY(user_break_point_trap)
         * away offsets can be manually inserted in to their appropriate
         * location via set_exception_table_{evt,vec}().
         */
-       .balign 4096,0,4096
+       .balign 4096,0,4096
index 19ca68c..8add10b 100644 (file)
@@ -2,10 +2,10 @@
 # Makefile for the Linux/SuperH SH-4 backends.
 #
 
-obj-y  := ex.o probe.o common.o
-common-y       += $(addprefix ../sh3/, entry.o)
+obj-y  := probe.o common.o
+common-y       += $(addprefix ../sh3/, entry.o ex.o)
 
-obj-$(CONFIG_SH_FPU)                    += fpu.o
+obj-$(CONFIG_SH_FPU)                   += fpu.o
 obj-$(CONFIG_SH_STORE_QUEUES)          += sq.o
 
 # CPU subtype setup
diff --git a/arch/sh/kernel/cpu/sh4/ex.S b/arch/sh/kernel/cpu/sh4/ex.S
deleted file mode 100644 (file)
index ac8ab57..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- *  arch/sh/kernel/cpu/sh4/ex.S
- *
- *  The SH-4 exception vector table.
-
- *  Copyright (C) 1999, 2000, 2002  Niibe Yutaka
- *  Copyright (C) 2003 - 2006  Paul Mundt
- *
- * 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>
-
-       .align 2
-       .data
-
-ENTRY(exception_handling_table)
-       .long   exception_error         /* 000 */
-       .long   exception_error
-#if defined(CONFIG_MMU)
-       .long   tlb_miss_load           /* 040 */
-       .long   tlb_miss_store
-       .long   initial_page_write
-       .long   tlb_protection_violation_load
-       .long   tlb_protection_violation_store
-       .long   address_error_load
-       .long   address_error_store     /* 100 */
-#else
-       .long   exception_error ! tlb miss load         /* 040 */
-       .long   exception_error ! tlb miss store
-       .long   exception_error ! initial page write
-       .long   exception_error ! tlb prot violation load
-       .long   exception_error ! tlb prot violation store
-       .long   exception_error ! address error load
-       .long   exception_error ! address error store   /* 100 */
-#endif
-#if defined(CONFIG_SH_FPU)
-       .long   do_fpu_error            /* 120 */
-#else
-       .long   exception_error         /* 120 */
-#endif
-       .long   exception_error         /* 140 */
-       .long   system_call     ! Unconditional Trap     /* 160 */
-       .long   exception_error ! reserved_instruction (filled by trap_init) /* 180 */
-       .long   exception_error ! illegal_slot_instruction (filled by trap_init) /*1A0*/
-ENTRY(nmi_slot)
-#if defined (CONFIG_KGDB_NMI)
-       .long   debug_enter     /* 1C0 */       ! Allow trap to debugger
-#else
-       .long   exception_none  /* 1C0 */       ! Not implemented yet
-#endif
-ENTRY(user_break_point_trap)
-       .long   break_point_trap        /* 1E0 */
-
-       /*
-        * Pad the remainder of the table out, exceptions residing in far
-        * away offsets can be manually inserted in to their appropriate
-        * location via set_exception_table_{evt,vec}().
-        */
-       .balign 4096,0,4096