Hexagon: fix register used to call do_work_pending
ABI v2 callee saves start at R24. Signed-off-by: Richard Kuo <rkuo@codeaurora.org>
This commit is contained in:
parent
426d29ccb2
commit
13a95c4813
1 changed files with 6 additions and 6 deletions
|
@ -291,12 +291,12 @@ event_dispatch:
|
||||||
/* "Nested control path" -- if the previous mode was kernel */
|
/* "Nested control path" -- if the previous mode was kernel */
|
||||||
{
|
{
|
||||||
R0 = memw(R29 + #_PT_ER_VMEST);
|
R0 = memw(R29 + #_PT_ER_VMEST);
|
||||||
R16.L = #LO(do_work_pending);
|
R26.L = #LO(do_work_pending);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
P0 = tstbit(R0, #HVM_VMEST_UM_SFT);
|
P0 = tstbit(R0, #HVM_VMEST_UM_SFT);
|
||||||
if (!P0.new) jump:nt restore_all;
|
if (!P0.new) jump:nt restore_all;
|
||||||
R16.H = #HI(do_work_pending);
|
R26.H = #HI(do_work_pending);
|
||||||
R0 = #VM_INT_DISABLE;
|
R0 = #VM_INT_DISABLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -304,7 +304,7 @@ event_dispatch:
|
||||||
* Check also the return from fork/system call, normally coming back from
|
* Check also the return from fork/system call, normally coming back from
|
||||||
* user mode
|
* user mode
|
||||||
*
|
*
|
||||||
* R16 needs to have do_work_pending, and R0 should have VM_INT_DISABLE
|
* R26 needs to have do_work_pending, and R0 should have VM_INT_DISABLE
|
||||||
*/
|
*/
|
||||||
|
|
||||||
check_work_pending:
|
check_work_pending:
|
||||||
|
@ -313,7 +313,7 @@ check_work_pending:
|
||||||
{
|
{
|
||||||
R0 = R29; /* regs should still be at top of stack */
|
R0 = R29; /* regs should still be at top of stack */
|
||||||
R1 = memw(THREADINFO_REG + #_THREAD_INFO_FLAGS);
|
R1 = memw(THREADINFO_REG + #_THREAD_INFO_FLAGS);
|
||||||
callr R16;
|
callr R26;
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -375,11 +375,11 @@ _K_enter_debug:
|
||||||
ret_from_fork:
|
ret_from_fork:
|
||||||
{
|
{
|
||||||
call schedule_tail
|
call schedule_tail
|
||||||
R16.H = #HI(do_work_pending);
|
R26.H = #HI(do_work_pending);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
P0 = cmp.eq(R24, #0);
|
P0 = cmp.eq(R24, #0);
|
||||||
R16.L = #LO(do_work_pending);
|
R26.L = #LO(do_work_pending);
|
||||||
R0 = #VM_INT_DISABLE;
|
R0 = #VM_INT_DISABLE;
|
||||||
}
|
}
|
||||||
if P0 jump check_work_pending
|
if P0 jump check_work_pending
|
||||||
|
|
Loading…
Reference in a new issue