Correct P flag assertion in rfe.
authoredgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162>
Fri, 6 Jun 2008 11:17:17 +0000 (11:17 +0000)
committeredgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162>
Fri, 6 Jun 2008 11:17:17 +0000 (11:17 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4683 c046a42c-6fe2-441c-8c8c-71466251a162

target-cris/op_helper.c

index ebff31a..21ee5ee 100644 (file)
@@ -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;
 }