1.1 --- a/stage2/entry.S Thu Feb 25 18:17:27 2016 +0100
1.2 +++ b/stage2/entry.S Thu Feb 25 21:29:53 2016 +0100
1.3 @@ -26,6 +26,18 @@
1.4 .set noreorder
1.5
1.6 _tlb_entry:
1.7 + /* Save the status. */
1.8 +
1.9 + mfc0 $k0, $12 /* CP0_STATUS */
1.10 + nop
1.11 + sw $k0, -120($sp)
1.12 +
1.13 + /* Mask interrupts. */
1.14 +
1.15 + li $k1, 0xffff03ff
1.16 + and $k1, $k0, $k1
1.17 + mtc0 $k1, $12
1.18 +
1.19 /* Save registers that the assembler wants to trash. */
1.20
1.21 sw $t9, -100($sp)
1.22 @@ -39,6 +51,18 @@
1.23 nop
1.24
1.25 _irq_entry:
1.26 + /* Save the status. */
1.27 +
1.28 + mfc0 $k0, $12 /* CP0_STATUS */
1.29 + nop
1.30 + sw $k0, -120($sp)
1.31 +
1.32 + /* Mask interrupts. */
1.33 +
1.34 + li $k1, 0xffff03ff
1.35 + and $k1, $k0, $k1
1.36 + mtc0 $k1, $12
1.37 +
1.38 /* Save registers that the assembler wants to trash. */
1.39
1.40 sw $t9, -100($sp)
2.1 --- a/stage2/handlers.S Thu Feb 25 18:17:27 2016 +0100
2.2 +++ b/stage2/handlers.S Thu Feb 25 21:29:53 2016 +0100
2.3 @@ -55,14 +55,6 @@
2.4 nop
2.5
2.6 save_state:
2.7 - /* Save the status, mask interrupts. */
2.8 -
2.9 - mfc0 $k0, $12 /* CP0_STATUS */
2.10 - li $k1, 0xffff03ff
2.11 - and $k1, $k0, $k1
2.12 - mtc0 $k1, $12
2.13 - sw $k0, -120($sp)
2.14 -
2.15 sw $at, -4($sp)
2.16 sw $v0, -8($sp)
2.17 sw $v1, -12($sp)