kopia lustrzana https://github.com/espressif/esp-idf
Merge branch 'fix/xtensa-register-corrupted-after-context-switch_v4.4' into 'release/v4.4'
fix(xtensa): fix registers curruption on context switch (v4.4) See merge request espressif/esp-idf!26212pull/13426/head
commit
68915490b0
|
@ -1041,13 +1041,17 @@ locking.
|
||||||
bnone a2, a0, .L_xt_coproc_done /* if no match then done */
|
bnone a2, a0, .L_xt_coproc_done /* if no match then done */
|
||||||
and a2, a2, a0 /* a2 = which CPs to restore */
|
and a2, a2, a0 /* a2 = which CPs to restore */
|
||||||
extui a2, a2, 0, 8 /* extract low 8 bits */
|
extui a2, a2, 0, 8 /* extract low 8 bits */
|
||||||
|
#if portNUM_PROCESSORS == 1
|
||||||
s32i a6, sp, XT_STK_A6 /* save extra needed regs */
|
s32i a6, sp, XT_STK_A6 /* save extra needed regs */
|
||||||
s32i a7, sp, XT_STK_A7
|
s32i a7, sp, XT_STK_A7
|
||||||
|
#endif /* portNUM_PROCESSORS == 1 */
|
||||||
s32i a13, sp, XT_STK_A13
|
s32i a13, sp, XT_STK_A13
|
||||||
s32i a14, sp, XT_STK_A14
|
s32i a14, sp, XT_STK_A14
|
||||||
call0 _xt_coproc_restorecs /* restore CP registers */
|
call0 _xt_coproc_restorecs /* restore CP registers */
|
||||||
|
#if portNUM_PROCESSORS == 1
|
||||||
l32i a6, sp, XT_STK_A6 /* restore saved registers */
|
l32i a6, sp, XT_STK_A6 /* restore saved registers */
|
||||||
l32i a7, sp, XT_STK_A7
|
l32i a7, sp, XT_STK_A7
|
||||||
|
#endif /* portNUM_PROCESSORS == 1 */
|
||||||
l32i a13, sp, XT_STK_A13
|
l32i a13, sp, XT_STK_A13
|
||||||
l32i a14, sp, XT_STK_A14
|
l32i a14, sp, XT_STK_A14
|
||||||
j .L_xt_coproc_done
|
j .L_xt_coproc_done
|
||||||
|
|
Ładowanie…
Reference in New Issue