1.1 --- a/cpu.S Sat Oct 20 19:16:03 2018 +0200
1.2 +++ b/cpu.S Sat Oct 20 19:17:46 2018 +0200
1.3 @@ -136,14 +136,15 @@
1.4 .org 0x200
1.5 .set noat
1.6
1.7 -#define IRQ_STACK_LIMIT (KSEG0_BASE + 256)
1.8 +#define IRQ_STACK_LIMIT (KSEG0_BASE + IRQ_STACK_SIZE)
1.9 #define IRQ_STACK_TOP (IRQ_STACK_LIMIT - 32 * 4)
1.10
1.11 int_handler:
1.12
1.13 /* Store affected registers from IRQ_STACK_LIMIT - 4 downwards. */
1.14
1.15 - li $k0, IRQ_STACK_LIMIT
1.16 + lui $k0, %hi(IRQ_STACK_LIMIT)
1.17 + ori $k0, $k0, %lo(IRQ_STACK_LIMIT)
1.18
1.19 .irp reg, \
1.20 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 \
1.21 @@ -154,7 +155,8 @@
1.22
1.23 /* Switch to the IRQ stack. */
1.24
1.25 - li $sp, IRQ_STACK_TOP
1.26 + lui $sp, %hi(IRQ_STACK_TOP)
1.27 + ori $sp, $sp, %lo(IRQ_STACK_TOP)
1.28
1.29 jal interrupt_handler
1.30 nop