mirror of
https://github.com/qemu/qemu.git
synced 2024-11-26 12:23:36 +08:00
target-sparc: use direct address translation in hyperprivileged mode
Please note that QEMU doesn't impelement Real->Physical address translation. The "Real Address" is always the "Physical Address". Suggested-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com>
This commit is contained in:
parent
5c65df364a
commit
84f8f58766
@ -230,7 +230,7 @@ enum {
|
||||
#if !defined(TARGET_SPARC64)
|
||||
#define NB_MMU_MODES 3
|
||||
#else
|
||||
#define NB_MMU_MODES 7
|
||||
#define NB_MMU_MODES 6
|
||||
typedef struct trap_state {
|
||||
uint64_t tpc;
|
||||
uint64_t tnpc;
|
||||
@ -676,8 +676,7 @@ int cpu_sparc_signal_handler(int host_signum, void *pinfo, void *puc);
|
||||
#define MMU_KERNEL_IDX 2
|
||||
#define MMU_KERNEL_SECONDARY_IDX 3
|
||||
#define MMU_NUCLEUS_IDX 4
|
||||
#define MMU_HYPV_IDX 5
|
||||
#define MMU_PHYS_IDX 6
|
||||
#define MMU_PHYS_IDX 5
|
||||
#else
|
||||
#define MMU_USER_IDX 0
|
||||
#define MMU_KERNEL_IDX 1
|
||||
@ -723,7 +722,7 @@ static inline int cpu_mmu_index(CPUSPARCState *env, bool ifetch)
|
||||
: (env->lsu & DMMU_E) == 0) {
|
||||
return MMU_PHYS_IDX;
|
||||
} else if (cpu_hypervisor_mode(env)) {
|
||||
return MMU_HYPV_IDX;
|
||||
return MMU_PHYS_IDX;
|
||||
} else if (env->tl > 0) {
|
||||
return MMU_NUCLEUS_IDX;
|
||||
} else if (cpu_supervisor_mode(env)) {
|
||||
|
@ -2143,7 +2143,7 @@ static DisasASI get_asi(DisasContext *dc, int insn, TCGMemOp memop)
|
||||
case ASI_NUCLEUS_QUAD_LDD:
|
||||
case ASI_NUCLEUS_QUAD_LDD_L:
|
||||
if (hypervisor(dc)) {
|
||||
mem_idx = MMU_HYPV_IDX;
|
||||
mem_idx = MMU_PHYS_IDX;
|
||||
} else {
|
||||
mem_idx = MMU_NUCLEUS_IDX;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user