Skip to content

Commit

Permalink
target/cris: Use MMUAccessType enum type when possible
Browse files Browse the repository at this point in the history
Replace the 0/1/2 magic values by the corresponding MMUAccessType.
We can remove a comment as enum names are self explicit.

Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Edgar E. Iglesias <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Edgar E. Iglesias <[email protected]>
  • Loading branch information
philmd authored and edgarigl committed Feb 22, 2021
1 parent 00d8ba9 commit c0ff662
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 9 deletions.
4 changes: 2 additions & 2 deletions target/cris/helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -275,10 +275,10 @@ hwaddr cris_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
struct cris_mmu_result res;
int miss;

miss = cris_mmu_translate(&res, &cpu->env, addr, 0, 0, 1);
miss = cris_mmu_translate(&res, &cpu->env, addr, MMU_DATA_LOAD, 0, 1);
/* If D TLB misses, try I TLB. */
if (miss) {
miss = cris_mmu_translate(&res, &cpu->env, addr, 2, 0, 1);
miss = cris_mmu_translate(&res, &cpu->env, addr, MMU_INST_FETCH, 0, 1);
}

if (!miss) {
Expand Down
13 changes: 6 additions & 7 deletions target/cris/mmu.c
Original file line number Diff line number Diff line change
Expand Up @@ -152,15 +152,15 @@ static int cris_mmu_translate_page(struct cris_mmu_result *res,
pid = env->pregs[PR_PID] & 0xff;

switch (rw) {
case 2:
case MMU_INST_FETCH:
rwcause = CRIS_MMU_ERR_EXEC;
mmu = 0;
break;
case 1:
case MMU_DATA_STORE:
rwcause = CRIS_MMU_ERR_WRITE;
break;
default:
case 0:
case MMU_DATA_LOAD:
rwcause = CRIS_MMU_ERR_READ;
break;
}
Expand Down Expand Up @@ -219,13 +219,13 @@ static int cris_mmu_translate_page(struct cris_mmu_result *res,
vaddr, lo, env->pc));
match = 0;
res->bf_vec = vect_base + 2;
} else if (rw == 1 && cfg_w && !tlb_w) {
} else if (rw == MMU_DATA_STORE && cfg_w && !tlb_w) {
D(printf("tlb: write protected %x lo=%x pc=%x\n",
vaddr, lo, env->pc));
match = 0;
/* write accesses never go through the I mmu. */
res->bf_vec = vect_base + 3;
} else if (rw == 2 && cfg_x && !tlb_x) {
} else if (rw == MMU_INST_FETCH && cfg_x && !tlb_x) {
D(printf("tlb: exec protected %x lo=%x pc=%x\n",
vaddr, lo, env->pc));
match = 0;
Expand Down Expand Up @@ -329,8 +329,7 @@ int cris_mmu_translate(struct cris_mmu_result *res,

old_srs = env->pregs[PR_SRS];

/* rw == 2 means exec, map the access to the insn mmu. */
env->pregs[PR_SRS] = rw == 2 ? 1 : 2;
env->pregs[PR_SRS] = rw == MMU_INST_FETCH ? 1 : 2;

if (!cris_mmu_enabled(env->sregs[SFR_RW_GC_CFG])) {
res->phy = vaddr;
Expand Down

0 comments on commit c0ff662

Please sign in to comment.