提交 e160c51c 编写于 作者: P pbrook

Fix msr_mask.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3584 c046a42c-6fe2-441c-8c8c-71466251a162
上级 579a97f7
......@@ -2478,7 +2478,6 @@ static inline void gen_mulxy(int x, int y)
/* Return the mask of PSR bits set by a MSR instruction. */
static uint32_t msr_mask(CPUState *env, DisasContext *s, int flags, int spsr) {
uint32_t mask;
uint32_t reserved;
mask = 0;
if (flags & (1 << 0))
......@@ -2493,12 +2492,12 @@ static uint32_t msr_mask(CPUState *env, DisasContext *s, int flags, int spsr) {
/* Mask out undefined bits. */
mask &= ~CPSR_RESERVED;
if (!arm_feature(env, ARM_FEATURE_V6))
reserved &= ~(CPSR_E | CPSR_GE);
mask &= ~(CPSR_E | CPSR_GE);
if (!arm_feature(env, ARM_FEATURE_THUMB2))
reserved &= ~CPSR_IT;
mask &= ~CPSR_IT;
/* Mask out execution state bits. */
if (!spsr)
reserved &= ~CPSR_EXEC;
mask &= ~CPSR_EXEC;
/* Mask out privileged bits. */
if (IS_USER(s))
mask &= CPSR_USER;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册