sh: Fix SH-X3 FPU exception handling.
authorPaul Mundt <lethal@linux-sh.org>
Wed, 1 Aug 2007 07:55:07 +0000 (16:55 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Wed, 1 Aug 2007 07:55:07 +0000 (16:55 +0900)
SH-X3 has the FPU exceptions on different vectors completely,
patch in do_fpu_state_restore() to the proper vectors.

Results in a much happier userspace.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/kernel/traps.c

index 502d43e4785c200bf557bdcca552caaa7df5273a..67015044d74a935f75bff8c86e58dce737faeaf0 100644 (file)
@@ -854,9 +854,14 @@ void __init trap_init(void)
        set_exception_table_evt(0x800, do_reserved_inst);
        set_exception_table_evt(0x820, do_illegal_slot_inst);
 #elif defined(CONFIG_SH_FPU)
+#ifdef CONFIG_CPU_SUBTYPE_SHX3
+       set_exception_table_evt(0xd80, do_fpu_state_restore);
+       set_exception_table_evt(0xda0, do_fpu_state_restore);
+#else
        set_exception_table_evt(0x800, do_fpu_state_restore);
        set_exception_table_evt(0x820, do_fpu_state_restore);
 #endif
+#endif
 
 #ifdef CONFIG_CPU_SH2
        set_exception_table_vec(TRAP_ADDRESS_ERROR, address_error_handler);