aboutsummaryrefslogtreecommitdiff
path: root/target/i386/tcg
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2023-06-16 23:58:25 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2023-06-26 10:23:07 +0200
commit431c51e9d48faecbd2dd3ffc49b1636f280bfe8d (patch)
tree3f848c63601747247493030cd80ca7610b862fcd /target/i386/tcg
parent1420dd6a19cfbdf444af5622797d5d95a24d9461 (diff)
downloadqemu-431c51e9d48faecbd2dd3ffc49b1636f280bfe8d.zip
qemu-431c51e9d48faecbd2dd3ffc49b1636f280bfe8d.tar.gz
qemu-431c51e9d48faecbd2dd3ffc49b1636f280bfe8d.tar.bz2
target/i386: TCG supports WBNOINVD
WBNOINVD is the same as INVD or WBINVD as far as TCG is concerned, since there is no cache in TCG and therefore no invalidation side effect in WBNOINVD. With respect to SVM emulation, processors that do not support WBNOINVD will ignore the prefix and treat it as WBINVD, while those that support it will generate exactly the same vmexit. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'target/i386/tcg')
-rw-r--r--target/i386/tcg/translate.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target/i386/tcg/translate.c b/target/i386/tcg/translate.c
index 4ef45bb..b2e2dcc 100644
--- a/target/i386/tcg/translate.c
+++ b/target/i386/tcg/translate.c
@@ -6125,7 +6125,7 @@ static bool disas_insn(DisasContext *s, CPUState *cpu)
break;
case 0x108: /* invd */
- case 0x109: /* wbinvd */
+ case 0x109: /* wbinvd; wbnoinvd with REPZ prefix */
if (check_cpl0(s)) {
gen_svm_check_intercept(s, (b & 1) ? SVM_EXIT_WBINVD : SVM_EXIT_INVD);
/* nothing to do */