qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [4718] CRIS: Support RFN insn.


From: Edgar E. Iglesias
Subject: [Qemu-devel] [4718] CRIS: Support RFN insn.
Date: Mon, 09 Jun 2008 23:07:50 +0000

Revision: 4718
          http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=4718
Author:   edgar_igl
Date:     2008-06-09 23:07:50 +0000 (Mon, 09 Jun 2008)

Log Message:
-----------
CRIS: Support RFN insn.

Modified Paths:
--------------
    trunk/target-cris/helper.h
    trunk/target-cris/op_helper.c

Modified: trunk/target-cris/helper.h
===================================================================
--- trunk/target-cris/helper.h  2008-06-09 23:06:31 UTC (rev 4717)
+++ trunk/target-cris/helper.h  2008-06-09 23:07:50 UTC (rev 4718)
@@ -5,6 +5,7 @@
 void TCG_HELPER_PROTO helper_dump(uint32_t a0, uint32_t a1, uint32_t a2);
 void TCG_HELPER_PROTO helper_dummy(void);
 void TCG_HELPER_PROTO helper_rfe(void);
+void TCG_HELPER_PROTO helper_rfn(void);
 void TCG_HELPER_PROTO helper_store(uint32_t a0);
 
 void TCG_HELPER_PROTO helper_movl_sreg_reg (uint32_t sreg, uint32_t reg);

Modified: trunk/target-cris/op_helper.c
===================================================================
--- trunk/target-cris/op_helper.c       2008-06-09 23:06:31 UTC (rev 4717)
+++ trunk/target-cris/op_helper.c       2008-06-09 23:07:50 UTC (rev 4718)
@@ -220,6 +220,25 @@
                env->pregs[PR_CCS] |= P_FLAG;
 }
 
+void helper_rfn(void)
+{
+       int rflag = env->pregs[PR_CCS] & R_FLAG;
+
+       D(fprintf(logfile, "rfn: erp=%x pid=%x ccs=%x btarget=%x\n", 
+                env->pregs[PR_ERP], env->pregs[PR_PID],
+                env->pregs[PR_CCS],
+                env->btarget));
+
+       cris_ccs_rshift(env);
+
+       /* Set the P_FLAG only if the R_FLAG is not set.  */
+       if (!rflag)
+               env->pregs[PR_CCS] |= P_FLAG;
+
+    /* Always set the M flag.  */
+    env->pregs[PR_CCS] |= M_FLAG;
+}
+
 void helper_store(uint32_t a0)
 {
        if (env->pregs[PR_CCS] & P_FLAG )






reply via email to

[Prev in Thread] Current Thread [Next in Thread]