Merge pull request #20 from acevest/context_switch
improve risc-v context switch
This commit is contained in:
@@ -136,11 +136,6 @@ port_systick_pending_reset:
|
|||||||
addi sp, sp, 32*REGBYTES
|
addi sp, sp, 32*REGBYTES
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.align 2
|
|
||||||
context_switch_return:
|
|
||||||
irq_context_return:
|
|
||||||
ret
|
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
.type port_sched_start, %function
|
.type port_sched_start, %function
|
||||||
port_sched_start:
|
port_sched_start:
|
||||||
@@ -167,9 +162,7 @@ port_sched_start:
|
|||||||
port_context_switch:
|
port_context_switch:
|
||||||
SAVE_CONTEXT
|
SAVE_CONTEXT
|
||||||
|
|
||||||
// return from port_context_switch as return from a function
|
sw ra, 0*REGBYTES(sp)
|
||||||
la t0, context_switch_return
|
|
||||||
sw t0, 0*REGBYTES(sp)
|
|
||||||
|
|
||||||
csrr t0, mstatus
|
csrr t0, mstatus
|
||||||
li t1, MSTATUS_MPP
|
li t1, MSTATUS_MPP
|
||||||
@@ -200,9 +193,7 @@ port_context_switch:
|
|||||||
port_irq_context_switch:
|
port_irq_context_switch:
|
||||||
SAVE_CONTEXT
|
SAVE_CONTEXT
|
||||||
|
|
||||||
|
sw ra, 0*REGBYTES(sp)
|
||||||
la t0, irq_context_return
|
|
||||||
sw t0, 0*REGBYTES(sp)
|
|
||||||
|
|
||||||
li t0, MSTATUS_MPP
|
li t0, MSTATUS_MPP
|
||||||
sw t0, 1*REGBYTES(sp)
|
sw t0, 1*REGBYTES(sp)
|
||||||
|
Reference in New Issue
Block a user