qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [RFC PATCH] sparc: fix leon3 casa instruction when MMU is d


From: KONRAD Frederic
Subject: [Qemu-devel] [RFC PATCH] sparc: fix leon3 casa instruction when MMU is disabled
Date: Thu, 1 Mar 2018 15:22:53 +0100

Since the commit af7a06bac7d3abb2da48ef3277d2a415772d2ae8:
`casa [..](10), .., ..` triggers a data access exception when the MMU
is disabled.

This fixes this wrong behavior.

Signed-off-by: KONRAD Frederic <address@hidden>
---

Notes:
    There is an other way to do that: emiting the instruction with a
    MMU_PHYS_IDX when the MMU is disabled. I can switch to that if it's a
    prefered method.

 target/sparc/mmu_helper.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/sparc/mmu_helper.c b/target/sparc/mmu_helper.c
index f8886ae..3cebf50 100644
--- a/target/sparc/mmu_helper.c
+++ b/target/sparc/mmu_helper.c
@@ -100,7 +100,7 @@ static int get_physical_address(CPUSPARCState *env, hwaddr 
*physical,
 
     is_user = mmu_idx == MMU_USER_IDX;
 
-    if (mmu_idx == MMU_PHYS_IDX) {
+    if ((mmu_idx == MMU_PHYS_IDX) || ((env->mmuregs[0] & MMU_E) == 0)) {
         *page_size = TARGET_PAGE_SIZE;
         /* Boot mode: instruction fetches are taken from PROM */
         if (rw == 2 && (env->mmuregs[0] & env->def.mmu_bm)) {
-- 
1.8.3.1




reply via email to

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