diff options
Diffstat (limited to 'arch/sh/kernel/cpu/sh3')
-rw-r--r-- | arch/sh/kernel/cpu/sh3/entry.S | 7 |
1 files changed, 5 insertions, 2 deletions
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 | ||
465 | handle_exception: | 465 | handle_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) | |||
556 | 11: | 558 | 11: |
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 |