1.1 --- a/lib/cpu.S Sat Oct 27 23:45:09 2018 +0200
1.2 +++ b/lib/cpu.S Sun Oct 28 01:21:24 2018 +0200
1.3 @@ -137,7 +137,7 @@
1.4 .set noat
1.5
1.6 #define IRQ_STACK_LIMIT (KSEG0_BASE + IRQ_STACK_SIZE)
1.7 -#define IRQ_STACK_TOP (IRQ_STACK_LIMIT - 32 * 4)
1.8 +#define IRQ_STACK_TOP (IRQ_STACK_LIMIT - 34 * 4)
1.9
1.10 int_handler:
1.11
1.12 @@ -153,6 +153,11 @@
1.13 sw $\reg, -(\reg * 4)($k0)
1.14 .endr
1.15
1.16 + mflo $k1
1.17 + sw $k1, -(32 * 4)($k0)
1.18 + mfhi $k1
1.19 + sw $k1, -(33 * 4)($k0)
1.20 +
1.21 /* Switch to the IRQ stack. */
1.22
1.23 lui $sp, %hi(IRQ_STACK_TOP)
1.24 @@ -163,6 +168,11 @@
1.25
1.26 /* Restore affected registers. */
1.27
1.28 + lw $k1, -(32 * 4)($k0)
1.29 + mtlo $k1
1.30 + lw $k1, -(33 * 4)($k0)
1.31 + mthi $k1
1.32 +
1.33 .irp reg, \
1.34 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 \
1.35 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, \