Skip to content

Commit

Permalink
sh: prefetch early exception data on sh4/sh4a.
Browse files Browse the repository at this point in the history
Prefetch early exception data. There is unused space in our
exception handler cache line anyway, so this is almost free.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Magnus Damm authored and Paul Mundt committed Feb 27, 2009
1 parent 4f099eb commit 0197f21
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
5 changes: 5 additions & 0 deletions arch/sh/include/asm/entry-macros.S
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,8 @@
#endif
.endm

#if defined(CONFIG_CPU_SH2A) || defined(CONFIG_CPU_SH4)
# define PREF(x) pref @x
#else
# define PREF(x) nop
#endif
7 changes: 5 additions & 2 deletions arch/sh/kernel/cpu/sh3/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -463,9 +463,11 @@ tlb_miss:
sts pr, k3 ! save original pr value in k3

handle_exception:
mova exception_data, k0

! Setup stack and save DSP context (k0 contains original r15 on return)
bsr prepare_stack_save_dsp
nop
PREF(k0)

! Save registers / Switch to bank 0
mov.l 5f, k2 ! vector register address
Expand Down Expand Up @@ -556,10 +558,11 @@ ENTRY(handle_interrupt)
11:
#endif /* defined(CONFIG_KGDB) */
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)
bsr prepare_stack_save_dsp
nop
PREF(k0)

! Save registers / Switch to bank 0
bsr save_regs ! needs original pr value in k3
Expand Down

0 comments on commit 0197f21

Please sign in to comment.