Revision 6ebbf390 target-ppc/helper.c
b/target-ppc/helper.c | ||
---|---|---|
39 | 39 |
|
40 | 40 |
#if defined(CONFIG_USER_ONLY) |
41 | 41 |
int cpu_ppc_handle_mmu_fault (CPUState *env, target_ulong address, int rw, |
42 |
int is_user, int is_softmmu)
|
|
42 |
int mmu_idx, int is_softmmu)
|
|
43 | 43 |
{ |
44 | 44 |
int exception, error_code; |
45 | 45 |
|
... | ... | |
1349 | 1349 |
|
1350 | 1350 |
/* Perform address translation */ |
1351 | 1351 |
int cpu_ppc_handle_mmu_fault (CPUState *env, target_ulong address, int rw, |
1352 |
int is_user, int is_softmmu)
|
|
1352 |
int mmu_idx, int is_softmmu)
|
|
1353 | 1353 |
{ |
1354 | 1354 |
mmu_ctx_t ctx; |
1355 | 1355 |
int access_type; |
... | ... | |
1370 | 1370 |
if (ret == 0) { |
1371 | 1371 |
ret = tlb_set_page(env, address & TARGET_PAGE_MASK, |
1372 | 1372 |
ctx.raddr & TARGET_PAGE_MASK, ctx.prot, |
1373 |
is_user, is_softmmu);
|
|
1373 |
mmu_idx, is_softmmu);
|
|
1374 | 1374 |
} else if (ret < 0) { |
1375 | 1375 |
#if defined (DEBUG_MMU) |
1376 | 1376 |
if (loglevel != 0) |
... | ... | |
2083 | 2083 |
env->hflags |= msr_cm << MSR_CM; |
2084 | 2084 |
env->hflags |= (uint64_t)msr_sf << MSR_SF; |
2085 | 2085 |
env->hflags |= (uint64_t)msr_hv << MSR_HV; |
2086 |
/* Precompute MMU index */ |
|
2087 |
if (msr_pr == 0 && msr_hv == 1) |
|
2088 |
env->mmu_idx = 2; |
|
2089 |
else |
|
2086 | 2090 |
#endif |
2091 |
env->mmu_idx = 1 - msr_pr; |
|
2087 | 2092 |
} |
2088 | 2093 |
|
2089 | 2094 |
/*****************************************************************************/ |
Also available in: Unified diff