qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH 6/8] adds SFC, DFC, MMU TC, access control register,


From: Bryce Lanham
Subject: [Qemu-devel] [PATCH 6/8] adds SFC, DFC, MMU TC, access control register, and user stack pointer acces to movec_to/from
Date: Wed, 17 Aug 2011 17:09:10 -0500

Signed-off-by: Bryce Lanham <address@hidden>
---
 target-m68k/helper.c |   44 ++++++++++++++++++++++++++++++++++++--------
 1 files changed, 36 insertions(+), 8 deletions(-)

diff --git a/target-m68k/helper.c b/target-m68k/helper.c
index 71294c0..5fa5b06 100644
--- a/target-m68k/helper.c
+++ b/target-m68k/helper.c
@@ -480,9 +480,25 @@ void HELPER(movec_to)(CPUM68KState * env, uint32_t reg, 
uint32_t val)
         env->cacr = val;
         m68k_switch_sp(env);
         break;
-    case 0x04: case 0x05: case 0x06: case 0x07: /* ACR[0-3] */
-        /* TODO: Implement Access Control Registers.  */
-        break;
+    case 0x03: /* MMU Translation Control */
+               env->mmu.tc = val;
+               break;
+    /*Translation/Access Control Registers*/
+       case 0x04:
+               env->itt0 = val;
+               return;
+       case 0x05:
+               env->itt1 = val;
+               break;
+       case 0x06:
+               env->dtt0 = val;
+               break;
+       case 0x07:
+               env->dtt1 = val;
+               break;
+    case 0x800: /* USP */
+               env->sp[M68K_USP] = val;
+               break;
     case 0x801: /* VBR */
         env->vbr = val;
         break;
@@ -496,14 +512,26 @@ void HELPER(movec_to)(CPUM68KState * env, uint32_t reg, 
uint32_t val)
 uint32_t HELPER(movec_from)(CPUM68KState * env, uint32_t reg)
 {
     switch (reg) {
+       case 0x00: /* SFC */
+        return env->sfc;
+    case 0x01: /* DFC */
+        return env->dfc;
     case 0x02: /* CACR */
-        return env->cacr;
-    case 0x04: case 0x05: case 0x06: case 0x07: /* ACR[0-3] */
-        /* TODO: Implement Access Control Registers.  */
-        return 0;
+        return env->cacr; 
+    case 0x03: /*MMU TC*/
+        return env->mmu.tc;
+    case 0x04:
+        return env->itt0;
+       case 0x05:
+               return env->itt1;
+       case 0x06:
+               return env->dtt0;
+    case 0x07:
+        return env->dtt1;
+    case 0x800:/*USP*/
+        return env->sp[M68K_USP];
     case 0x801: /* VBR */
         return env->vbr;
-        break;
     /* TODO: Implement control registers.  */
     default:
         cpu_abort(env, "Unimplemented control register read 0x%x\n",
-- 
1.7.2.3




reply via email to

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