[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 14/18] target/i386: AMD only supports SYSENTER/SYSEXIT in 32-bit m
From: |
Paolo Bonzini |
Subject: |
[PULL 14/18] target/i386: AMD only supports SYSENTER/SYSEXIT in 32-bit mode |
Date: |
Mon, 26 Jun 2023 13:14:41 +0200 |
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
target/i386/tcg/translate.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/target/i386/tcg/translate.c b/target/i386/tcg/translate.c
index ed4016f554b..a20b5af71e7 100644
--- a/target/i386/tcg/translate.c
+++ b/target/i386/tcg/translate.c
@@ -5669,9 +5669,10 @@ static bool disas_insn(DisasContext *s, CPUState *cpu)
s->base.is_jmp = DISAS_NORETURN;
break;
case 0x134: /* sysenter */
- /* For Intel SYSENTER is valid on 64-bit */
- if (CODE64(s) && env->cpuid_vendor1 != CPUID_VENDOR_INTEL_1)
+ /* For AMD SYSENTER is not valid in long mode */
+ if (LMA(s) && env->cpuid_vendor1 != CPUID_VENDOR_INTEL_1) {
goto illegal_op;
+ }
if (!PE(s)) {
gen_exception_gpf(s);
} else {
@@ -5680,9 +5681,10 @@ static bool disas_insn(DisasContext *s, CPUState *cpu)
}
break;
case 0x135: /* sysexit */
- /* For Intel SYSEXIT is valid on 64-bit */
- if (CODE64(s) && env->cpuid_vendor1 != CPUID_VENDOR_INTEL_1)
+ /* For AMD SYSEXIT is not valid in long mode */
+ if (LMA(s) && env->cpuid_vendor1 != CPUID_VENDOR_INTEL_1) {
goto illegal_op;
+ }
if (!PE(s)) {
gen_exception_gpf(s);
} else {
--
2.41.0
- [PULL 06/18] kvm: reuse per-vcpu stats fd to avoid vcpu interruption, (continued)
- [PULL 06/18] kvm: reuse per-vcpu stats fd to avoid vcpu interruption, Paolo Bonzini, 2023/06/26
- [PULL 05/18] hw/riscv: Validate cluster and NUMA node boundary, Paolo Bonzini, 2023/06/26
- [PULL 07/18] target/i386: fix INVD vmexit, Paolo Bonzini, 2023/06/26
- [PULL 08/18] target/i386: TCG supports 3DNow! prefetch(w), Paolo Bonzini, 2023/06/26
- [PULL 09/18] target/i386: TCG supports RDSEED, Paolo Bonzini, 2023/06/26
- [PULL 10/18] target/i386: do not accept RDSEED if CPUID bit absent, Paolo Bonzini, 2023/06/26
- [PULL 11/18] target/i386: TCG supports XSAVEERPTR, Paolo Bonzini, 2023/06/26
- [PULL 13/18] target/i386: Intel only supports SYSCALL/SYSRET in long mode, Paolo Bonzini, 2023/06/26
- [PULL 12/18] target/i386: TCG supports WBNOINVD, Paolo Bonzini, 2023/06/26
- [PULL 16/18] target/i386: implement RDPID in TCG, Paolo Bonzini, 2023/06/26
- [PULL 14/18] target/i386: AMD only supports SYSENTER/SYSEXIT in 32-bit mode,
Paolo Bonzini <=
- [PULL 15/18] target/i386: sysret and sysexit are privileged, Paolo Bonzini, 2023/06/26
- [PULL 17/18] target/i386: implement SYSCALL/SYSRET in 32-bit emulators, Paolo Bonzini, 2023/06/26
- [PULL 18/18] git-submodule.sh: allow running in validate mode without previous update, Paolo Bonzini, 2023/06/26
- Re: [PULL 00/18] Misc, i386 patches for 2023-06-26, Richard Henderson, 2023/06/26