diff options
Diffstat (limited to 'arch/sh/kernel/cpu/sh2/ex.S')
-rw-r--r-- | arch/sh/kernel/cpu/sh2/ex.S | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/arch/sh/kernel/cpu/sh2/ex.S b/arch/sh/kernel/cpu/sh2/ex.S index 6d285af7846c..85b0bf81fc1d 100644 --- a/arch/sh/kernel/cpu/sh2/ex.S +++ b/arch/sh/kernel/cpu/sh2/ex.S | |||
@@ -18,16 +18,17 @@ | |||
18 | exception_entry: | 18 | exception_entry: |
19 | no = 0 | 19 | no = 0 |
20 | .rept 256 | 20 | .rept 256 |
21 | mov.l r0,@-sp | 21 | mov.l r1,@-sp |
22 | mov #no,r0 | ||
23 | bra exception_trampoline | 22 | bra exception_trampoline |
24 | and #0xff,r0 | 23 | mov #no,r1 |
25 | no = no + 1 | 24 | no = no + 1 |
26 | .endr | 25 | .endr |
27 | exception_trampoline: | 26 | exception_trampoline: |
28 | mov.l r1,@-sp | 27 | mov.l r0,@-sp |
29 | mov.l $exception_handler,r1 | 28 | mov.l $exception_handler,r0 |
30 | jmp @r1 | 29 | extu.b r1,r1 |
30 | jmp @r0 | ||
31 | extu.w r1,r1 | ||
31 | 32 | ||
32 | .align 2 | 33 | .align 2 |
33 | $exception_entry: | 34 | $exception_entry: |
@@ -41,6 +42,6 @@ $exception_handler: | |||
41 | ENTRY(vbr_base) | 42 | ENTRY(vbr_base) |
42 | vector = 0 | 43 | vector = 0 |
43 | .rept 256 | 44 | .rept 256 |
44 | .long exception_entry + vector * 8 | 45 | .long exception_entry + vector * 6 |
45 | vector = vector + 1 | 46 | vector = vector + 1 |
46 | .endr | 47 | .endr |