qemu-e2k/target/i386
Bin Meng c2ba0515f2 target/i386: seg_helper: Correct segment selector nullification in the RET/IRET helper
Per the SDM, when returning to outer privilege level, for segment
registers (ES, FS, GS, and DS) if the check fails, the segment
selector becomes null, but QEMU clears the base/limit/flags as well
as nullifying the segment selector, which should be a spec violation.

Real hardware seems to be compliant with the spec, at least on one
Coffee Lake board I tested.

Signed-off-by: Bin Meng <bin.meng@windriver.com>

Message-Id: <1605261378-77971-1-git-send-email-bmeng.cn@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-12-10 12:15:00 -05:00
..
hvf hvf: Fix segment selector format 2020-11-18 09:32:17 +01:00
arch_dump.c
arch_memory_mapping.c
bpt_helper.c x86 tcg cpus: Fix Lesser GPL version number 2020-11-15 16:41:42 +01:00
cc_helper.c x86 tcg cpus: Fix Lesser GPL version number 2020-11-15 16:41:42 +01:00
cc_helper_template.h x86 tcg cpus: Fix Lesser GPL version number 2020-11-15 16:41:42 +01:00
cpu-param.h
cpu-qom.h
cpu.c target/i386: Support up to 32768 CPUs without IRQ remapping 2020-12-10 12:15:00 -05:00
cpu.h x86 tcg cpus: Fix Lesser GPL version number 2020-11-15 16:41:42 +01:00
excp_helper.c x86 tcg cpus: Fix Lesser GPL version number 2020-11-15 16:41:42 +01:00
fpu_helper.c x86 tcg cpus: Fix Lesser GPL version number 2020-11-15 16:41:42 +01:00
gdbstub.c x86 tcg cpus: Fix Lesser GPL version number 2020-11-15 16:41:42 +01:00
hax-all.c
hax-cpus.c
hax-cpus.h
hax-i386.h
hax-interface.h
hax-mem.c
hax-posix.c
hax-posix.h
hax-windows.c
hax-windows.h
helper.c target/i386: avoid theoretical leak on MCE injection 2020-11-16 13:22:18 -05:00
helper.h
hyperv-proto.h
hyperv-stub.c
hyperv.c
hyperv.h
int_helper.c x86 tcg cpus: Fix Lesser GPL version number 2020-11-15 16:41:42 +01:00
kvm-stub.c
kvm.c target/i386: Support up to 32768 CPUs without IRQ remapping 2020-12-10 12:15:00 -05:00
kvm_i386.h target/i386: Support up to 32768 CPUs without IRQ remapping 2020-12-10 12:15:00 -05:00
machine.c
mem_helper.c x86 tcg cpus: Fix Lesser GPL version number 2020-11-15 16:41:42 +01:00
meson.build
misc_helper.c x86 tcg cpus: Fix Lesser GPL version number 2020-11-15 16:41:42 +01:00
monitor.c
mpx_helper.c x86 tcg cpus: Fix Lesser GPL version number 2020-11-15 16:41:42 +01:00
ops_sse.h x86 tcg cpus: Fix Lesser GPL version number 2020-11-15 16:41:42 +01:00
ops_sse_header.h x86 tcg cpus: Fix Lesser GPL version number 2020-11-15 16:41:42 +01:00
seg_helper.c target/i386: seg_helper: Correct segment selector nullification in the RET/IRET helper 2020-12-10 12:15:00 -05:00
sev-stub.c
sev.c
sev_i386.h
shift_helper_template.h x86 tcg cpus: Fix Lesser GPL version number 2020-11-15 16:41:42 +01:00
smm_helper.c x86 tcg cpus: Fix Lesser GPL version number 2020-11-15 16:41:42 +01:00
svm.h
svm_helper.c x86 tcg cpus: Fix Lesser GPL version number 2020-11-15 16:41:42 +01:00
tcg-stub.c x86 tcg cpus: Fix Lesser GPL version number 2020-11-15 16:41:42 +01:00
trace-events
trace.h
translate.c target/i386: fix operand order for PDEP and PEXT 2020-12-10 12:14:49 -05:00
whp-dispatch.h
whpx-all.c
whpx-cpus.c
whpx-cpus.h
xsave_helper.c