forked from Minki/linux
sh: Fixup SH-2 BUG() trap handling.
This adds in support for the BUG() trap on SH-2. Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
b641fe016a
commit
e9cfc147df
@ -178,14 +178,20 @@ interrupt_entry:
|
|||||||
8: .long do_exception_error
|
8: .long do_exception_error
|
||||||
|
|
||||||
trap_entry:
|
trap_entry:
|
||||||
|
/* verbose BUG trapa entry check */
|
||||||
|
mov #0x3e,r8
|
||||||
|
cmp/ge r8,r9
|
||||||
|
bf/s 1f
|
||||||
add #-0x10,r9
|
add #-0x10,r9
|
||||||
|
add #0x10,r9
|
||||||
|
1:
|
||||||
shll2 r9 ! TRA
|
shll2 r9 ! TRA
|
||||||
mov #OFF_TRA,r8
|
mov #OFF_TRA,r8
|
||||||
add r15,r8
|
add r15,r8
|
||||||
mov.l r9,@r8
|
mov.l r9,@r8
|
||||||
mov r9,r8
|
mov r9,r8
|
||||||
#ifdef CONFIG_TRACE_IRQFLAGS
|
#ifdef CONFIG_TRACE_IRQFLAGS
|
||||||
mov.l 5f, r9
|
mov.l 2f, r9
|
||||||
jsr @r9
|
jsr @r9
|
||||||
nop
|
nop
|
||||||
#endif
|
#endif
|
||||||
@ -194,12 +200,8 @@ trap_entry:
|
|||||||
nop
|
nop
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
1: .long syscall_exit
|
|
||||||
2: .long break_point_trap_software
|
|
||||||
3: .long NR_syscalls
|
|
||||||
4: .long sys_call_table
|
|
||||||
#ifdef CONFIG_TRACE_IRQFLAGS
|
#ifdef CONFIG_TRACE_IRQFLAGS
|
||||||
5: .long trace_hardirqs_on
|
2: .long trace_hardirqs_on
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_SH_STANDARD_BIOS)
|
#if defined(CONFIG_SH_STANDARD_BIOS)
|
||||||
@ -264,7 +266,7 @@ ENTRY(address_error_handler)
|
|||||||
restore_all:
|
restore_all:
|
||||||
cli
|
cli
|
||||||
#ifdef CONFIG_TRACE_IRQFLAGS
|
#ifdef CONFIG_TRACE_IRQFLAGS
|
||||||
mov.l 3f, r0
|
mov.l 1f, r0
|
||||||
jsr @r0
|
jsr @r0
|
||||||
nop
|
nop
|
||||||
#endif
|
#endif
|
||||||
@ -309,20 +311,14 @@ restore_all:
|
|||||||
mov.l @r15,r15
|
mov.l @r15,r15
|
||||||
rte
|
rte
|
||||||
nop
|
nop
|
||||||
2:
|
|
||||||
mov.l 1f,r8
|
|
||||||
mov.l 2f,r9
|
|
||||||
jmp @r9
|
|
||||||
lds r8,pr
|
|
||||||
|
|
||||||
.align 2
|
#ifdef CONFIG_TRACE_IRQFLAGS
|
||||||
|
1: .long trace_hardirqs_off
|
||||||
|
#endif
|
||||||
$current_thread_info:
|
$current_thread_info:
|
||||||
.long __current_thread_info
|
.long __current_thread_info
|
||||||
$cpu_mode:
|
$cpu_mode:
|
||||||
.long __cpu_mode
|
.long __cpu_mode
|
||||||
#ifdef CONFIG_TRACE_IRQFLAGS
|
|
||||||
3: .long trace_hardirqs_off
|
|
||||||
#endif
|
|
||||||
|
|
||||||
! common exception handler
|
! common exception handler
|
||||||
#include "../../entry-common.S"
|
#include "../../entry-common.S"
|
||||||
|
Loading…
Reference in New Issue
Block a user