xtensa: clean up PS_WOE_BIT usage
PS_WOE_BIT is mainly used to generate PS.WOE mask in the code. Introduce PS_WOE_MASK macro and use it instead. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
This commit is contained in:
parent
f348f5c232
commit
9e1e41c447
|
@ -179,7 +179,7 @@ struct thread_struct {
|
||||||
* Note: We set-up ps as if we did a call4 to the new pc.
|
* Note: We set-up ps as if we did a call4 to the new pc.
|
||||||
* set_thread_state in signal.c depends on it.
|
* set_thread_state in signal.c depends on it.
|
||||||
*/
|
*/
|
||||||
#define USER_PS_VALUE ((1 << PS_WOE_BIT) | \
|
#define USER_PS_VALUE (PS_WOE_MASK | \
|
||||||
(1 << PS_CALLINC_SHIFT) | \
|
(1 << PS_CALLINC_SHIFT) | \
|
||||||
(USER_RING << PS_RING_SHIFT) | \
|
(USER_RING << PS_RING_SHIFT) | \
|
||||||
(1 << PS_UM_BIT) | \
|
(1 << PS_UM_BIT) | \
|
||||||
|
|
|
@ -81,6 +81,7 @@
|
||||||
/* PS register fields. */
|
/* PS register fields. */
|
||||||
|
|
||||||
#define PS_WOE_BIT 18
|
#define PS_WOE_BIT 18
|
||||||
|
#define PS_WOE_MASK 0x00040000
|
||||||
#define PS_CALLINC_SHIFT 16
|
#define PS_CALLINC_SHIFT 16
|
||||||
#define PS_CALLINC_MASK 0x00030000
|
#define PS_CALLINC_MASK 0x00030000
|
||||||
#define PS_OWB_SHIFT 8
|
#define PS_OWB_SHIFT 8
|
||||||
|
|
|
@ -414,7 +414,7 @@ common_exception:
|
||||||
movi a3, LOCKLEVEL
|
movi a3, LOCKLEVEL
|
||||||
|
|
||||||
.Lexception:
|
.Lexception:
|
||||||
movi a0, 1 << PS_WOE_BIT
|
movi a0, PS_WOE_MASK
|
||||||
or a3, a3, a0
|
or a3, a3, a0
|
||||||
#else
|
#else
|
||||||
addi a2, a2, -EXCCAUSE_LEVEL1_INTERRUPT
|
addi a2, a2, -EXCCAUSE_LEVEL1_INTERRUPT
|
||||||
|
@ -422,7 +422,7 @@ common_exception:
|
||||||
extui a3, a3, PS_INTLEVEL_SHIFT, PS_INTLEVEL_WIDTH
|
extui a3, a3, PS_INTLEVEL_SHIFT, PS_INTLEVEL_WIDTH
|
||||||
# a3 = PS.INTLEVEL
|
# a3 = PS.INTLEVEL
|
||||||
moveqz a3, a0, a2 # a3 = LOCKLEVEL iff interrupt
|
moveqz a3, a0, a2 # a3 = LOCKLEVEL iff interrupt
|
||||||
movi a2, 1 << PS_WOE_BIT
|
movi a2, PS_WOE_MASK
|
||||||
or a3, a3, a2
|
or a3, a3, a2
|
||||||
rsr a2, exccause
|
rsr a2, exccause
|
||||||
#endif
|
#endif
|
||||||
|
@ -922,7 +922,7 @@ ENTRY(unrecoverable_exception)
|
||||||
wsr a1, windowbase
|
wsr a1, windowbase
|
||||||
rsync
|
rsync
|
||||||
|
|
||||||
movi a1, (1 << PS_WOE_BIT) | LOCKLEVEL
|
movi a1, PS_WOE_MASK | LOCKLEVEL
|
||||||
wsr a1, ps
|
wsr a1, ps
|
||||||
rsync
|
rsync
|
||||||
|
|
||||||
|
@ -1359,7 +1359,7 @@ ENTRY(fast_syscall_spill_registers)
|
||||||
rsr a3, excsave1
|
rsr a3, excsave1
|
||||||
l32i a1, a3, EXC_TABLE_KSTK
|
l32i a1, a3, EXC_TABLE_KSTK
|
||||||
|
|
||||||
movi a4, (1 << PS_WOE_BIT) | LOCKLEVEL
|
movi a4, PS_WOE_MASK | LOCKLEVEL
|
||||||
wsr a4, ps
|
wsr a4, ps
|
||||||
rsync
|
rsync
|
||||||
|
|
||||||
|
|
|
@ -193,7 +193,7 @@ ENTRY(_startup)
|
||||||
movi a1, start_info
|
movi a1, start_info
|
||||||
l32i a1, a1, 0
|
l32i a1, a1, 0
|
||||||
|
|
||||||
movi a2, (1 << PS_WOE_BIT) | LOCKLEVEL
|
movi a2, PS_WOE_MASK | LOCKLEVEL
|
||||||
# WOE=1, INTLEVEL=LOCKLEVEL, UM=0
|
# WOE=1, INTLEVEL=LOCKLEVEL, UM=0
|
||||||
wsr a2, ps # (enable reg-windows; progmode stack)
|
wsr a2, ps # (enable reg-windows; progmode stack)
|
||||||
rsync
|
rsync
|
||||||
|
|
Loading…
Reference in New Issue