diff options
Diffstat (limited to 'arch/sh/kernel/cpu')
-rw-r--r-- | arch/sh/kernel/cpu/sh3/entry.S | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/arch/sh/kernel/cpu/sh3/entry.S b/arch/sh/kernel/cpu/sh3/entry.S index cbffbffce351..0271fe08de27 100644 --- a/arch/sh/kernel/cpu/sh3/entry.S +++ b/arch/sh/kernel/cpu/sh3/entry.S | |||
@@ -312,7 +312,6 @@ skip_restore: | |||
312 | mov #0, k1 | 312 | mov #0, k1 |
313 | mov.b k1, @k0 | 313 | mov.b k1, @k0 |
314 | #endif | 314 | #endif |
315 | mov.l @r15+, k2 ! restore EXPEVT | ||
316 | mov k4, r15 | 315 | mov k4, r15 |
317 | rte | 316 | rte |
318 | nop | 317 | nop |
@@ -487,20 +486,18 @@ handle_exception_special: | |||
487 | .align L1_CACHE_SHIFT | 486 | .align L1_CACHE_SHIFT |
488 | 487 | ||
489 | ! save_regs() | 488 | ! save_regs() |
490 | ! - save vector, default tra, macl, mach, gbr, ssr, pr* and spc on the stack | 489 | ! - save default tra, macl, mach, gbr, ssr, pr* and spc on the stack |
491 | ! - save r15*, r14, r13, r12, r11, r10, r9, r8 on the stack | 490 | ! - save r15*, r14, r13, r12, r11, r10, r9, r8 on the stack |
492 | ! - switch bank | 491 | ! - switch bank |
493 | ! - save r7, r6, r5, r4, r3, r2, r1, r0 on the stack | 492 | ! - save r7, r6, r5, r4, r3, r2, r1, r0 on the stack |
494 | ! k0 contains original stack pointer* | 493 | ! k0 contains original stack pointer* |
495 | ! k1 trashed | 494 | ! k1 trashed |
496 | ! k2 passes vector (EXPEVT) | ||
497 | ! k3 passes original pr* | 495 | ! k3 passes original pr* |
498 | ! k4 trashed | 496 | ! k4 trashed |
499 | ! BL=1 on entry, on exit BL=0. | 497 | ! BL=1 on entry, on exit BL=0. |
500 | 498 | ||
501 | save_regs: | 499 | save_regs: |
502 | mov #-1, r1 | 500 | mov #-1, r1 |
503 | mov.l k2, @-r15 ! vector in k2 | ||
504 | mov.l k1, @-r15 ! set TRA (default: -1) | 501 | mov.l k1, @-r15 ! set TRA (default: -1) |
505 | sts.l macl, @-r15 | 502 | sts.l macl, @-r15 |
506 | sts.l mach, @-r15 | 503 | sts.l mach, @-r15 |