diff options
author | Steven J. Hill <Steven.Hill@imgtec.com> | 2013-03-25 13:15:55 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2013-05-09 11:55:18 -0400 |
commit | 2a0b24f56c2492b932f1aed617ae80fb23500d21 (patch) | |
tree | c9aec2872f912c65b83a92a66fe94f6006427d73 /arch/mips/kernel/scall32-o32.S | |
parent | 102cedc32a6e3cd537374a3678d407591d5a6fab (diff) |
MIPS: microMIPS: Add support for exception handling.
All exceptions must be taken in microMIPS mode, never in classic
MIPS mode or the kernel falls apart. A few NOP instructions are
used to maintain the correct alignment of microMIPS versions of
the exception vectors.
Signed-off-by: Steven J. Hill <Steven.Hill@imgtec.com>
Diffstat (limited to 'arch/mips/kernel/scall32-o32.S')
-rw-r--r-- | arch/mips/kernel/scall32-o32.S | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S index 9ea29649fc28..9b36424b03c5 100644 --- a/arch/mips/kernel/scall32-o32.S +++ b/arch/mips/kernel/scall32-o32.S | |||
@@ -138,9 +138,18 @@ stackargs: | |||
138 | 5: jr t1 | 138 | 5: jr t1 |
139 | sw t5, 16(sp) # argument #5 to ksp | 139 | sw t5, 16(sp) # argument #5 to ksp |
140 | 140 | ||
141 | #ifdef CONFIG_CPU_MICROMIPS | ||
141 | sw t8, 28(sp) # argument #8 to ksp | 142 | sw t8, 28(sp) # argument #8 to ksp |
143 | nop | ||
142 | sw t7, 24(sp) # argument #7 to ksp | 144 | sw t7, 24(sp) # argument #7 to ksp |
145 | nop | ||
143 | sw t6, 20(sp) # argument #6 to ksp | 146 | sw t6, 20(sp) # argument #6 to ksp |
147 | nop | ||
148 | #else | ||
149 | sw t8, 28(sp) # argument #8 to ksp | ||
150 | sw t7, 24(sp) # argument #7 to ksp | ||
151 | sw t6, 20(sp) # argument #6 to ksp | ||
152 | #endif | ||
144 | 6: j stack_done # go back | 153 | 6: j stack_done # go back |
145 | nop | 154 | nop |
146 | .set pop | 155 | .set pop |