aboutsummaryrefslogtreecommitdiff
path: root/target-microblaze
diff options
context:
space:
mode:
authorEdgar E. Iglesias <edgar.iglesias@gmail.com>2010-06-07 11:54:27 +0200
committerEdgar E. Iglesias <edgar.iglesias@gmail.com>2010-06-07 11:54:27 +0200
commitfd1dc858370d9a9ac7ea2512812c3a152ee6484b (patch)
tree17132e5d6661351364f3cb1ea7fb0159570286c4 /target-microblaze
parent7375c86f0b1b1ac6f71a8728c6416c99850b30d9 (diff)
microblaze: Make MSR_UM and MSR_VM part of the tb flags
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
Diffstat (limited to 'target-microblaze')
-rw-r--r--target-microblaze/cpu.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/target-microblaze/cpu.h b/target-microblaze/cpu.h
index 33167977f2..ff8c8c8a80 100644
--- a/target-microblaze/cpu.h
+++ b/target-microblaze/cpu.h
@@ -217,8 +217,7 @@ typedef struct CPUMBState {
#define DRTB_FLAG (1 << 18)
#define D_FLAG (1 << 19) /* Bit in ESR. */
/* TB dependant CPUState. */
-#define IFLAGS_TB_MASK (D_FLAG | IMM_FLAG | DRTI_FLAG \
- | DRTE_FLAG | DRTB_FLAG | MSR_EE_FLAG)
+#define IFLAGS_TB_MASK (D_FLAG | IMM_FLAG | DRTI_FLAG | DRTE_FLAG | DRTB_FLAG)
uint32_t iflags;
struct {
@@ -323,8 +322,8 @@ static inline void cpu_get_tb_cpu_state(CPUState *env, target_ulong *pc,
{
*pc = env->sregs[SR_PC];
*cs_base = 0;
- env->iflags |= env->sregs[SR_MSR] & MSR_EE;
- *flags = env->iflags & IFLAGS_TB_MASK;
+ *flags = (env->iflags & IFLAGS_TB_MASK) |
+ (env->sregs[SR_MSR] & (MSR_UM | MSR_VM | MSR_EE));
}
#if !defined(CONFIG_USER_ONLY)