qemu/target/i386/tcg/sysemu
Paolo Bonzini ad003650d5 target/i386: use separate MMU indexes for 32-bit accesses
Accesses from a 32-bit environment (32-bit code segment for instruction
accesses, EFER.LMA==0 for processor accesses) have to mask away the
upper 32 bits of the address.  While a bit wasteful, the easiest way
to do so is to use separate MMU indexes.  These days, QEMU anyway is
compiled with a fixed value for NB_MMU_MODES.  Split MMU_USER_IDX,
MMU_KSMAP_IDX and MMU_KNOSMAP_IDX in two.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit 90f641531c)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
(Mjt: move changes for x86_cpu_mmu_index() to cpu_mmu_index() due to missing
 v8.2.0-1030-gace0c5fe5950 "target/i386: Populate CPUClass.mmu_index"
 Increase NB_MMU_MODES from 5 to 8 in target/i386/cpu-param.h due to missing
 v7.2.0-2640-gffd824f3f32d "include/exec: Set default NB_MMU_MODES to 16"
 v7.2.0-2647-g6787318a5d86 "target/i386: Remove NB_MMU_MODES define"
 which relaxed upper limit of MMU index for i386, since this commit starts
 using MMU_NESTED_IDX=7.
 Thanks Zhao Liu and Paolo Bonzini for the analisys and suggestions.
)
2024-04-09 20:06:31 +03:00
..
bpt_helper.c target/i386: Tidy hw_breakpoint_remove 2021-07-13 08:13:19 -07:00
excp_helper.c target/i386: use separate MMU indexes for 32-bit accesses 2024-04-09 20:06:31 +03:00
fpu_helper.c i386: separate fpu_helper sysemu-only parts 2021-05-10 15:41:51 -04:00
meson.build i386: split seg_helper into user-only and sysemu parts 2021-05-10 15:41:52 -04:00
misc_helper.c target/i386: check validity of VMCB addresses 2024-02-28 21:03:15 +03:00
seg_helper.c exec/exec-all: Move 'qemu/log.h' include in units requiring it 2022-02-21 10:18:06 +01:00
smm_helper.c i386: split smm helper (sysemu) 2021-05-10 15:41:51 -04:00
svm_helper.c target/i386: check validity of VMCB addresses 2024-02-28 21:03:15 +03:00
tcg-cpu.c