This commit is contained in:
cxy004 2021-08-16 07:01:40 +08:00
parent f8dee74f7c
commit e04605d2fd
2 changed files with 13 additions and 19 deletions

View File

@ -66,7 +66,7 @@ SUPV_TCB:
// Count
.word 0
// Compare
.word 0
.word -1
// STATUS
.word STATUSF_IP5 | STATUSF_IP4 | ST0_IE
// EPC

View File

@ -25,62 +25,56 @@
nop
mfc0 k1, CP0_STATUS
and k0, k0, k1
7:
andi k1, k0, C_IRQ5
7:
beqz k1, 6f
nop
andi k1, k0, C_IRQ4
lui k0, %hi(current_thread)
lw k0, %lo(current_thread)(k0)
lw k1, TF_INTHDL7(k0)
jr k1
nop
6:
andi k1, k0, C_IRQ4
beqz k1, 5f
nop
andi k1, k0, C_IRQ3
lui k0, %hi(current_thread)
lw k0, %lo(current_thread)(k0)
lw k1, TF_INTHDL6(k0)
jr k1
nop
5:
andi k1, k0, C_IRQ3
beqz k1, 4f
nop
andi k1, k0, C_IRQ2
lui k0, %hi(current_thread)
lw k0, %lo(current_thread)(k0)
lw k1, TF_INTHDL5(k0)
jr k1
nop
4:
andi k1, k0, C_IRQ2
beqz k1, 3f
nop
andi k1, k0, C_IRQ1
lui k0, %hi(current_thread)
lw k0, %lo(current_thread)(k0)
lw k1, TF_INTHDL4(k0)
jr k1
nop
3:
andi k1, k0, C_IRQ1
beqz k1, 2f
nop
andi k1, k0, C_IRQ0
lui k0, %hi(current_thread)
lw k0, %lo(current_thread)(k0)
lw k1, TF_INTHDL3(k0)
jr k1
nop
2:
andi k1, k0, C_IRQ0
beqz k1, 1f
nop
andi k1, k0, C_SW1
lui k0, %hi(current_thread)
lw k0, %lo(current_thread)(k0)
lw k1, TF_INTHDL2(k0)
jr k1
nop
1:
andi k1, k0, C_SW1
beqz k1, 0f
nop
lui k0, %hi(current_thread)
@ -168,21 +162,21 @@ RESTART_LOAD:
lw s1, TF_s1(k0)
lw s2, TF_s2(k0)
lw s3, TF_s3(k0)
lw k1, TF_COUNT(k0)
lw s4, TF_s4(k0)
lw s5, TF_s5(k0)
mtc0 k1, CP0_COUNT
lw s6, TF_s6(k0)
lw s7, TF_s7(k0)
lw k1, TF_COMPARE(k0)
lw t8, TF_t8(k0)
lw t9, TF_t9(k0)
mtc0 k1, CP0_COMPARE
lw gp, TF_gp(k0)
lw sp, TF_sp(k0)
lw k1, TF_EPC(k0)
lw fp, TF_fp(k0)
lw ra, TF_ra(k0)
lw k1, TF_COUNT(k0)
mtc0 k1, CP0_COUNT
lw k1, TF_COMPARE(k0)
mtc0 k1, CP0_COMPARE
lw k1, TF_EPC(k0)
mtc0 k1, CP0_EPC
.global RESTART