aboutsummaryrefslogtreecommitdiff
path: root/target-cris/helper.c
diff options
context:
space:
mode:
Diffstat (limited to 'target-cris/helper.c')
-rw-r--r--target-cris/helper.c17
1 files changed, 3 insertions, 14 deletions
diff --git a/target-cris/helper.c b/target-cris/helper.c
index 19c3755816..053ed4ab2a 100644
--- a/target-cris/helper.c
+++ b/target-cris/helper.c
@@ -78,7 +78,7 @@ int cpu_cris_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
D(printf ("%s addr=%x pc=%x rw=%x\n", __func__, address, env->pc, rw));
miss = cris_mmu_translate(&res, env, address & TARGET_PAGE_MASK,
- rw, mmu_idx);
+ rw, mmu_idx, 0);
if (miss)
{
if (env->exception_index == EXCP_BUSFAULT)
@@ -248,26 +248,15 @@ void do_interrupt(CPUState *env)
target_phys_addr_t cpu_get_phys_page_debug(CPUState * env, target_ulong addr)
{
uint32_t phy = addr;
- uint32_t r_cause, r_tlb_sel, rand_lfsr;
struct cris_mmu_result res;
int miss;
- /* Save MMU state. */
- r_tlb_sel = env->sregs[SFR_RW_MM_TLB_SEL];
- r_cause = env->sregs[SFR_R_MM_CAUSE];
- rand_lfsr = env->mmu_rand_lfsr;
-
- miss = cris_mmu_translate(&res, env, addr, 0, 0);
+ miss = cris_mmu_translate(&res, env, addr, 0, 0, 1);
/* If D TLB misses, try I TLB. */
if (miss) {
- miss = cris_mmu_translate(&res, env, addr, 2, 0);
+ miss = cris_mmu_translate(&res, env, addr, 2, 0, 1);
}
- /* Restore MMU state. */
- env->sregs[SFR_RW_MM_TLB_SEL] = r_tlb_sel;
- env->sregs[SFR_R_MM_CAUSE] = r_cause;
- env->mmu_rand_lfsr = rand_lfsr;
-
if (!miss)
phy = res.phy;
D(fprintf(stderr, "%s %x -> %x\n", __func__, addr, phy));