make irq_restore be executed likely
This commit is contained in:
@@ -250,7 +250,6 @@ restore_context:
|
|||||||
lw x29, __reg_x29_OFFSET(sp)
|
lw x29, __reg_x29_OFFSET(sp)
|
||||||
lw x30, __reg_x30_OFFSET(sp)
|
lw x30, __reg_x30_OFFSET(sp)
|
||||||
lw x31, __reg_x31_OFFSET(sp)
|
lw x31, __reg_x31_OFFSET(sp)
|
||||||
|
|
||||||
addi sp, sp, 128
|
addi sp, sp, 128
|
||||||
|
|
||||||
mret
|
mret
|
||||||
@@ -260,7 +259,6 @@ restore_context:
|
|||||||
.global rv32_exception_entry
|
.global rv32_exception_entry
|
||||||
rv32_exception_entry:
|
rv32_exception_entry:
|
||||||
addi sp, sp, -128
|
addi sp, sp, -128
|
||||||
|
|
||||||
sw ra, __reg_ra__OFFSET(sp)
|
sw ra, __reg_ra__OFFSET(sp)
|
||||||
sw gp, __reg_gp__OFFSET(sp)
|
sw gp, __reg_gp__OFFSET(sp)
|
||||||
sw tp, __reg_tp__OFFSET(sp)
|
sw tp, __reg_tp__OFFSET(sp)
|
||||||
@@ -305,22 +303,8 @@ rv32_exception_entry:
|
|||||||
la t0, k_curr_task
|
la t0, k_curr_task
|
||||||
la t1, k_next_task
|
la t1, k_next_task
|
||||||
|
|
||||||
beq t0, t1, irq_restore
|
// unlikely
|
||||||
|
bne t0, t1, irq_task_switch
|
||||||
sw s0, __reg_s0__OFFSET(sp)
|
|
||||||
sw s1, __reg_s1__OFFSET(sp)
|
|
||||||
sw s2, __reg_s2__OFFSET(sp)
|
|
||||||
sw s3, __reg_s3__OFFSET(sp)
|
|
||||||
sw s4, __reg_s4__OFFSET(sp)
|
|
||||||
sw s5, __reg_s5__OFFSET(sp)
|
|
||||||
sw s6, __reg_s6__OFFSET(sp)
|
|
||||||
sw s7, __reg_s7__OFFSET(sp)
|
|
||||||
sw s8, __reg_s8__OFFSET(sp)
|
|
||||||
sw s9, __reg_s9__OFFSET(sp)
|
|
||||||
sw s10, __reg_s10__OFFSET(sp)
|
|
||||||
sw s11, __reg_s11__OFFSET(sp)
|
|
||||||
|
|
||||||
j switch_task
|
|
||||||
|
|
||||||
irq_restore:
|
irq_restore:
|
||||||
lw t0, __reg_mepc_OFFSET(sp)
|
lw t0, __reg_mepc_OFFSET(sp)
|
||||||
@@ -350,3 +334,19 @@ irq_restore:
|
|||||||
addi sp, sp, 128
|
addi sp, sp, 128
|
||||||
|
|
||||||
mret
|
mret
|
||||||
|
|
||||||
|
irq_task_switch:
|
||||||
|
sw s0, __reg_s0__OFFSET(sp)
|
||||||
|
sw s1, __reg_s1__OFFSET(sp)
|
||||||
|
sw s2, __reg_s2__OFFSET(sp)
|
||||||
|
sw s3, __reg_s3__OFFSET(sp)
|
||||||
|
sw s4, __reg_s4__OFFSET(sp)
|
||||||
|
sw s5, __reg_s5__OFFSET(sp)
|
||||||
|
sw s6, __reg_s6__OFFSET(sp)
|
||||||
|
sw s7, __reg_s7__OFFSET(sp)
|
||||||
|
sw s8, __reg_s8__OFFSET(sp)
|
||||||
|
sw s9, __reg_s9__OFFSET(sp)
|
||||||
|
sw s10, __reg_s10__OFFSET(sp)
|
||||||
|
sw s11, __reg_s11__OFFSET(sp)
|
||||||
|
|
||||||
|
j switch_task
|
||||||
|
Reference in New Issue
Block a user