aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoredgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162>2008-06-06 11:17:17 +0000
committeredgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162>2008-06-06 11:17:17 +0000
commitbf443337130809afc7887dd59e0a29fe605155eb (patch)
tree1786ca3300d91cfa47e2948fba8d3f985feca4d8
parent313281198dc87984fde5cc3aceccbb002beed047 (diff)
Correct P flag assertion in rfe.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4683 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--target-cris/op_helper.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/target-cris/op_helper.c b/target-cris/op_helper.c
index ebff31a1de..21ee5ee1c5 100644
--- a/target-cris/op_helper.c
+++ b/target-cris/op_helper.c
@@ -202,6 +202,8 @@ static void cris_ccs_rshift(CPUState *env)
void helper_rfe(void)
{
+ int rflag = env->pregs[PR_CCS] & R_FLAG;
+
D(fprintf(logfile, "rfe: erp=%x pid=%x ccs=%x btarget=%x\n",
env->pregs[PR_ERP], env->pregs[PR_PID],
env->pregs[PR_CCS],
@@ -210,7 +212,7 @@ void helper_rfe(void)
cris_ccs_rshift(env);
/* RFE sets the P_FLAG only if the R_FLAG is not set. */
- if (!(env->pregs[PR_CCS] & R_FLAG))
+ if (!rflag)
env->pregs[PR_CCS] |= P_FLAG;
}