aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/sh/include/asm/entry-macros.S5
-rw-r--r--arch/sh/kernel/cpu/sh3/entry.S7
2 files changed, 10 insertions, 2 deletions
diff --git a/arch/sh/include/asm/entry-macros.S b/arch/sh/include/asm/entry-macros.S
index 2dab0b8d9454..3a4752a65722 100644
--- a/arch/sh/include/asm/entry-macros.S
+++ b/arch/sh/include/asm/entry-macros.S
@@ -31,3 +31,8 @@
31#endif 31#endif
32 .endm 32 .endm
33 33
34#if defined(CONFIG_CPU_SH2A) || defined(CONFIG_CPU_SH4)
35# define PREF(x) pref @x
36#else
37# define PREF(x) nop
38#endif
diff --git a/arch/sh/kernel/cpu/sh3/entry.S b/arch/sh/kernel/cpu/sh3/entry.S
index 0271fe08de27..e984e94394ec 100644
--- a/arch/sh/kernel/cpu/sh3/entry.S
+++ b/arch/sh/kernel/cpu/sh3/entry.S
@@ -463,9 +463,11 @@ tlb_miss:
463 sts pr, k3 ! save original pr value in k3 463 sts pr, k3 ! save original pr value in k3
464 464
465handle_exception: 465handle_exception:
466 mova exception_data, k0
467
466 ! Setup stack and save DSP context (k0 contains original r15 on return) 468 ! Setup stack and save DSP context (k0 contains original r15 on return)
467 bsr prepare_stack_save_dsp 469 bsr prepare_stack_save_dsp
468 nop 470 PREF(k0)
469 471
470 ! Save registers / Switch to bank 0 472 ! Save registers / Switch to bank 0
471 mov.l 5f, k2 ! vector register address 473 mov.l 5f, k2 ! vector register address
@@ -556,10 +558,11 @@ ENTRY(handle_interrupt)
55611: 55811:
557#endif /* defined(CONFIG_KGDB) */ 559#endif /* defined(CONFIG_KGDB) */
558 sts pr, k3 ! save original pr value in k3 560 sts pr, k3 ! save original pr value in k3
561 mova exception_data, k0
559 562
560 ! Setup stack and save DSP context (k0 contains original r15 on return) 563 ! Setup stack and save DSP context (k0 contains original r15 on return)
561 bsr prepare_stack_save_dsp 564 bsr prepare_stack_save_dsp
562 nop 565 PREF(k0)
563 566
564 ! Save registers / Switch to bank 0 567 ! Save registers / Switch to bank 0
565 bsr save_regs ! needs original pr value in k3 568 bsr save_regs ! needs original pr value in k3