Commit 0197f21c authored by Magnus Damm's avatar Magnus Damm Committed by Paul Mundt

sh: prefetch early exception data on sh4/sh4a.

Prefetch early exception data. There is unused space in our
exception handler cache line anyway, so this is almost free.
Signed-off-by: default avatarMagnus Damm <damm@igel.co.jp>
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 4f099ebb
...@@ -31,3 +31,8 @@ ...@@ -31,3 +31,8 @@
#endif #endif
.endm .endm
#if defined(CONFIG_CPU_SH2A) || defined(CONFIG_CPU_SH4)
# define PREF(x) pref @x
#else
# define PREF(x) nop
#endif
...@@ -463,9 +463,11 @@ tlb_miss: ...@@ -463,9 +463,11 @@ tlb_miss:
sts pr, k3 ! save original pr value in k3 sts pr, k3 ! save original pr value in k3
handle_exception: handle_exception:
mova exception_data, k0
! Setup stack and save DSP context (k0 contains original r15 on return) ! Setup stack and save DSP context (k0 contains original r15 on return)
bsr prepare_stack_save_dsp bsr prepare_stack_save_dsp
nop PREF(k0)
! Save registers / Switch to bank 0 ! Save registers / Switch to bank 0
mov.l 5f, k2 ! vector register address mov.l 5f, k2 ! vector register address
...@@ -556,10 +558,11 @@ ENTRY(handle_interrupt) ...@@ -556,10 +558,11 @@ ENTRY(handle_interrupt)
11: 11:
#endif /* defined(CONFIG_KGDB) */ #endif /* defined(CONFIG_KGDB) */
sts pr, k3 ! save original pr value in k3 sts pr, k3 ! save original pr value in k3
mova exception_data, k0
! Setup stack and save DSP context (k0 contains original r15 on return) ! Setup stack and save DSP context (k0 contains original r15 on return)
bsr prepare_stack_save_dsp bsr prepare_stack_save_dsp
nop PREF(k0)
! Save registers / Switch to bank 0 ! Save registers / Switch to bank 0
bsr save_regs ! needs original pr value in k3 bsr save_regs ! needs original pr value in k3
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment