[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 25/33] target/i386: pass cr3 to mmu_translate
From: |
Paolo Bonzini |
Subject: |
[PULL 25/33] target/i386: pass cr3 to mmu_translate |
Date: |
Tue, 11 May 2021 04:13:42 -0400 |
First step in unifying the nested and regular page table walk.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
target/i386/tcg/sysemu/excp_helper.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/target/i386/tcg/sysemu/excp_helper.c
b/target/i386/tcg/sysemu/excp_helper.c
index f1103db64f..4cf04f4e96 100644
--- a/target/i386/tcg/sysemu/excp_helper.c
+++ b/target/i386/tcg/sysemu/excp_helper.c
@@ -246,7 +246,7 @@ static hwaddr get_hphys(CPUState *cs, hwaddr gphys,
MMUAccessType access_type,
#define PG_ERROR_OK (-1)
static int mmu_translate(CPUState *cs, vaddr addr,
- int is_write1, int mmu_idx,
+ uint64_t cr3, int is_write1, int mmu_idx,
vaddr *xlat, int *page_size, int *prot)
{
X86CPU *cpu = X86_CPU(cs);
@@ -288,7 +288,7 @@ static int mmu_translate(CPUState *cs, vaddr addr,
}
if (la57) {
- pml5e_addr = ((env->cr[3] & ~0xfff) +
+ pml5e_addr = ((cr3 & ~0xfff) +
(((addr >> 48) & 0x1ff) << 3)) & a20_mask;
pml5e_addr = get_hphys(cs, pml5e_addr, MMU_DATA_STORE, NULL);
pml5e = x86_ldq_phys(cs, pml5e_addr);
@@ -304,7 +304,7 @@ static int mmu_translate(CPUState *cs, vaddr addr,
}
ptep = pml5e ^ PG_NX_MASK;
} else {
- pml5e = env->cr[3];
+ pml5e = cr3;
ptep = PG_NX_MASK | PG_USER_MASK | PG_RW_MASK;
}
@@ -349,7 +349,7 @@ static int mmu_translate(CPUState *cs, vaddr addr,
#endif
{
/* XXX: load them when cr3 is loaded ? */
- pdpe_addr = ((env->cr[3] & ~0x1f) + ((addr >> 27) & 0x18)) &
+ pdpe_addr = ((cr3 & ~0x1f) + ((addr >> 27) & 0x18)) &
a20_mask;
pdpe_addr = get_hphys(cs, pdpe_addr, MMU_DATA_STORE, false);
pdpe = x86_ldq_phys(cs, pdpe_addr);
@@ -403,7 +403,7 @@ static int mmu_translate(CPUState *cs, vaddr addr,
uint32_t pde;
/* page directory entry */
- pde_addr = ((env->cr[3] & ~0xfff) + ((addr >> 20) & 0xffc)) &
+ pde_addr = ((cr3 & ~0xfff) + ((addr >> 20) & 0xffc)) &
a20_mask;
pde_addr = get_hphys(cs, pde_addr, MMU_DATA_STORE, NULL);
pde = x86_ldl_phys(cs, pde_addr);
@@ -573,7 +573,7 @@ static int handle_mmu_fault(CPUState *cs, vaddr addr, int
size,
prot = PAGE_READ | PAGE_WRITE | PAGE_EXEC;
page_size = 4096;
} else {
- error_code = mmu_translate(cs, addr, is_write1,
+ error_code = mmu_translate(cs, addr, env->cr[3], is_write1,
mmu_idx,
&paddr, &page_size, &prot);
}
--
2.26.2
- [PULL 11/33] i386: move TCG bpt_helper into sysemu/, (continued)
- [PULL 11/33] i386: move TCG bpt_helper into sysemu/, Paolo Bonzini, 2021/05/11
- [PULL 10/33] i386: split tcg excp_helper into sysemu and user parts, Paolo Bonzini, 2021/05/11
- [PULL 12/33] i386: split misc helper user stubs and sysemu part, Paolo Bonzini, 2021/05/11
- [PULL 15/33] i386: split seg_helper into user-only and sysemu parts, Paolo Bonzini, 2021/05/11
- [PULL 13/33] i386: separate fpu_helper sysemu-only parts, Paolo Bonzini, 2021/05/11
- [PULL 22/33] target/i386: merge SVM_NPTEXIT_* with PF_ERROR_* constants, Paolo Bonzini, 2021/05/11
- [PULL 32/33] configure: fix detection of gdbus-codegen, Paolo Bonzini, 2021/05/11
- [PULL 26/33] target/i386: extend pg_mode to more CR0 and CR4 bits, Paolo Bonzini, 2021/05/11
- [PULL 33/33] coverity-scan: list components, move model to scripts/coverity-scan, Paolo Bonzini, 2021/05/11
- [PULL 29/33] main-loop: remove dead code, Paolo Bonzini, 2021/05/11
- [PULL 25/33] target/i386: pass cr3 to mmu_translate,
Paolo Bonzini <=
- [PULL 24/33] target/i386: extract mmu_translate, Paolo Bonzini, 2021/05/11
- [PULL 28/33] target/i386: use mmu_translate for NPT walk, Paolo Bonzini, 2021/05/11
- [PULL 21/33] accel: add init_accel_cpu for adapting accel behavior to CPU type, Paolo Bonzini, 2021/05/11
- [PULL 27/33] target/i386: allow customizing the next phase of the translation, Paolo Bonzini, 2021/05/11
- [PULL 31/33] qemu-option: support accept-any QemuOptsList in qemu_opts_absorb_qdict, Paolo Bonzini, 2021/05/11
- [PULL 30/33] migration: do not restart VM after successful snapshot-load, Paolo Bonzini, 2021/05/11