From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:57867) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QtoIz-0006qg-Gy for qemu-devel@nongnu.org; Wed, 17 Aug 2011 18:09:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QtoIx-0008OE-U2 for qemu-devel@nongnu.org; Wed, 17 Aug 2011 18:09:45 -0400 Received: from mail-gy0-f173.google.com ([209.85.160.173]:33574) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QtoIx-0008LM-RG for qemu-devel@nongnu.org; Wed, 17 Aug 2011 18:09:43 -0400 Received: by mail-gy0-f173.google.com with SMTP id 12so1281803gyd.4 for ; Wed, 17 Aug 2011 15:09:43 -0700 (PDT) From: Bryce Lanham Date: Wed, 17 Aug 2011 17:09:10 -0500 Message-Id: <1313618952-14774-8-git-send-email-blanham@gmail.com> In-Reply-To: <1313618952-14774-1-git-send-email-blanham@gmail.com> References: <1313618952-14774-1-git-send-email-blanham@gmail.com> Subject: [Qemu-devel] [PATCH 6/8] adds SFC, DFC, MMU TC, access control register, and user stack pointer acces to movec_to/from List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Bryce Lanham Signed-off-by: Bryce Lanham --- 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