[libcpu]riscv使用call指令解决长跳转问题
This commit is contained in:
parent
0d9185bd5a
commit
2b21b095f9
|
@ -77,11 +77,11 @@
|
|||
rt_hw_context_switch_to:
|
||||
LOAD sp, (a0)
|
||||
|
||||
jal rt_thread_self
|
||||
call rt_thread_self
|
||||
mv s1, a0
|
||||
|
||||
#ifdef RT_USING_SMART
|
||||
jal lwp_aspace_switch
|
||||
call lwp_aspace_switch
|
||||
#endif
|
||||
|
||||
RESTORE_CONTEXT
|
||||
|
@ -104,11 +104,11 @@ rt_hw_context_switch:
|
|||
LOAD sp, (a1)
|
||||
|
||||
// restore Address Space
|
||||
jal rt_thread_self
|
||||
call rt_thread_self
|
||||
mv s1, a0
|
||||
|
||||
#ifdef RT_USING_SMART
|
||||
jal lwp_aspace_switch
|
||||
call lwp_aspace_switch
|
||||
#endif
|
||||
|
||||
RESTORE_CONTEXT
|
||||
|
|
|
@ -46,7 +46,8 @@ _distinguish_syscall:
|
|||
#ifdef RT_USING_SMART
|
||||
// TODO swap 8 with config macro name
|
||||
li t1, 8
|
||||
beq t0, t1, syscall_entry
|
||||
bne t0, t1, _handle_interrupt_and_exception
|
||||
call syscall_entry
|
||||
// syscall never return here
|
||||
#endif
|
||||
|
||||
|
@ -78,7 +79,8 @@ _resume_execution:
|
|||
#ifdef RT_USING_SMART
|
||||
LOAD t0, FRAME_OFF_SSTATUS(sp)
|
||||
andi t0, t0, SSTATUS_SPP
|
||||
beqz t0, arch_ret_to_user
|
||||
bnez t0, _resume_kernel
|
||||
call arch_ret_to_user
|
||||
#endif
|
||||
|
||||
_resume_kernel:
|
||||
|
|
Loading…
Reference in New Issue