Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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
+5 −2
Original line number Diff line number Diff line
@@ -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
@@ -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