All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, Paolo Bonzini <pbonzini@redhat.com>
Subject: [PULL 31/50] target/i386: Assert !GUEST for user-only
Date: Wed, 19 May 2021 13:30:31 -0500	[thread overview]
Message-ID: <20210519183050.875453-32-richard.henderson@linaro.org> (raw)
In-Reply-To: <20210519183050.875453-1-richard.henderson@linaro.org>

For user-only, we do not need to check for VMM intercept.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20210514151342.384376-32-richard.henderson@linaro.org>
---
 target/i386/tcg/translate.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/target/i386/tcg/translate.c b/target/i386/tcg/translate.c
index 235caa247b..200d205d7e 100644
--- a/target/i386/tcg/translate.c
+++ b/target/i386/tcg/translate.c
@@ -139,11 +139,13 @@ typedef struct DisasContext {
 #define CPL(S)    3
 #define IOPL(S)   0
 #define SVME(S)   false
+#define GUEST(S)  false
 #else
 #define PE(S)     (((S)->flags & HF_PE_MASK) != 0)
 #define CPL(S)    ((S)->cpl)
 #define IOPL(S)   ((S)->iopl)
 #define SVME(S)   (((S)->flags & HF_SVME_MASK) != 0)
+#define GUEST(S)  (((S)->flags & HF_GUEST_MASK) != 0)
 #endif
 #if defined(CONFIG_USER_ONLY) && defined(TARGET_X86_64)
 #define VM86(S)   false
@@ -677,7 +679,7 @@ static void gen_check_io(DisasContext *s, MemOp ot, target_ulong cur_eip,
             tcg_abort();
         }
     }
-    if(s->flags & HF_GUEST_MASK) {
+    if (GUEST(s)) {
         gen_update_cc_op(s);
         gen_jmp_im(s, cur_eip);
         svm_flags |= (1 << (4 + ot));
@@ -2417,8 +2419,9 @@ gen_svm_check_intercept_param(DisasContext *s, target_ulong pc_start,
                               uint32_t type, uint64_t param)
 {
     /* no SVM activated; fast case */
-    if (likely(!(s->flags & HF_GUEST_MASK)))
+    if (likely(!GUEST(s))) {
         return;
+    }
     gen_update_cc_op(s);
     gen_jmp_im(s, pc_start - s->cs_base);
     gen_helper_svm_check_intercept_param(cpu_env, tcg_const_i32(type),
@@ -8517,6 +8520,7 @@ static void i386_tr_init_disas_context(DisasContextBase *dcbase, CPUState *cpu)
     g_assert(LMA(dc) == ((flags & HF_LMA_MASK) != 0));
     g_assert(ADDSEG(dc) == ((flags & HF_ADDSEG_MASK) != 0));
     g_assert(SVME(dc) == ((flags & HF_SVME_MASK) != 0));
+    g_assert(GUEST(dc) == ((flags & HF_GUEST_MASK) != 0));
 
     dc->cc_op = CC_OP_DYNAMIC;
     dc->cc_op_dirty = false;
-- 
2.25.1



  parent reply	other threads:[~2021-05-19 18:47 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-19 18:30 [PULL 00/50] target/i386 translate cleanups Richard Henderson
2021-05-19 18:30 ` [PULL 01/50] target/i386: Split out gen_exception_gpf Richard Henderson
2021-05-19 18:30 ` [PULL 02/50] target/i386: Split out check_cpl0 Richard Henderson
2021-05-19 18:30 ` [PULL 03/50] target/i386: Unify code paths for IRET Richard Henderson
2021-05-19 18:30 ` [PULL 04/50] target/i386: Split out check_vm86_iopl Richard Henderson
2021-05-19 18:30 ` [PULL 05/50] target/i386: Split out check_iopl Richard Henderson
2021-05-19 18:30 ` [PULL 06/50] target/i386: Assert PE is set for user-only Richard Henderson
2021-05-19 18:30 ` [PULL 07/50] target/i386: Assert CPL is 3 " Richard Henderson
2021-05-19 18:30 ` [PULL 08/50] target/i386: Assert IOPL is 0 " Richard Henderson
2021-05-19 18:30 ` [PULL 09/50] target/i386: Assert !VM86 for x86_64 user-only Richard Henderson
2021-05-19 18:30 ` [PULL 10/50] target/i386: Assert CODE32 " Richard Henderson
2021-05-19 18:30 ` [PULL 11/50] target/i386: Assert SS32 " Richard Henderson
2021-05-19 18:30 ` [PULL 12/50] target/i386: Assert CODE64 " Richard Henderson
2021-05-19 18:30 ` [PULL 13/50] target/i386: Assert LMA " Richard Henderson
2021-05-19 18:30 ` [PULL 14/50] target/i386: Assert !ADDSEG " Richard Henderson
2021-05-19 18:30 ` [PULL 15/50] target/i386: Introduce REX_PREFIX Richard Henderson
2021-05-19 18:30 ` [PULL 16/50] target/i386: Tidy REX_B, REX_X definition Richard Henderson
2021-05-19 18:30 ` [PULL 17/50] target/i386: Move rex_r into DisasContext Richard Henderson
2021-05-19 18:30 ` [PULL 18/50] target/i386: Move rex_w " Richard Henderson
2021-05-19 18:30 ` [PULL 19/50] target/i386: Remove DisasContext.f_st as unused Richard Henderson
2021-05-19 18:30 ` [PULL 20/50] target/i386: Reduce DisasContext.flags to uint32_t Richard Henderson
2021-05-19 18:30 ` [PULL 21/50] target/i386: Reduce DisasContext.override to int8_t Richard Henderson
2021-05-19 18:30 ` [PULL 22/50] target/i386: Reduce DisasContext.prefix to uint8_t Richard Henderson
2021-05-19 18:30 ` [PULL 23/50] target/i386: Reduce DisasContext.vex_[lv] " Richard Henderson
2021-05-19 18:30 ` [PULL 24/50] target/i386: Reduce DisasContext popl_esp_hack and rip_offset " Richard Henderson
2021-05-19 18:30 ` [PULL 25/50] target/i386: Leave TF in DisasContext.flags Richard Henderson
2021-05-19 18:30 ` [PULL 26/50] target/i386: Reduce DisasContext jmp_opt, repz_opt to bool Richard Henderson
2021-05-19 18:30 ` [PULL 27/50] target/i386: Fix the comment for repz_opt Richard Henderson
2021-05-19 18:30 ` [PULL 28/50] target/i386: Reorder DisasContext members Richard Henderson
2021-05-19 18:30 ` [PULL 29/50] target/i386: Add stub generator for helper_set_dr Richard Henderson
2021-05-19 18:30 ` [PULL 30/50] target/i386: Assert !SVME for user-only Richard Henderson
2021-05-19 18:30 ` Richard Henderson [this message]
2021-05-19 18:30 ` [PULL 32/50] target/i386: Implement skinit in translate.c Richard Henderson
2021-05-19 18:30 ` [PULL 33/50] target/i386: Eliminate SVM helpers for user-only Richard Henderson
2021-05-19 18:30 ` [PULL 34/50] target/i386: Mark some helpers as noreturn Richard Henderson
2021-05-19 18:30 ` [PULL 35/50] target/i386: Simplify gen_debug usage Richard Henderson
2021-05-19 18:30 ` [PULL 36/50] target/i386: Tidy svm_check_intercept from tcg Richard Henderson
2021-05-19 18:30 ` [PULL 37/50] target/i386: Remove pc_start argument to gen_svm_check_intercept Richard Henderson
2021-05-19 18:30 ` [PULL 38/50] target/i386: Remove user stub for cpu_vmexit Richard Henderson
2021-05-19 18:30 ` [PULL 39/50] target/i386: Cleanup read_crN, write_crN, lmsw Richard Henderson
2021-05-19 18:30 ` [PULL 40/50] target/i386: Pass env to do_pause and do_hlt Richard Henderson
2021-05-19 18:30 ` [PULL 41/50] target/i386: Move invlpg, hlt, monitor, mwait to sysemu Richard Henderson
2021-05-19 18:30 ` [PULL 42/50] target/i386: Unify invlpg, invlpga Richard Henderson
2021-05-19 18:30 ` [PULL 43/50] target/i386: Inline user cpu_svm_check_intercept_param Richard Henderson
2021-05-19 18:30 ` [PULL 44/50] target/i386: Eliminate user stubs for read/write_crN, rd/wrmsr Richard Henderson
2021-05-19 18:30 ` [PULL 45/50] target/i386: Exit tb after wrmsr Richard Henderson
2021-05-19 18:30 ` [PULL 46/50] target/i386: Tidy gen_check_io Richard Henderson
2021-05-19 18:30 ` [PULL 47/50] target/i386: Pass in port to gen_check_io Richard Henderson
2021-05-19 18:30 ` [PULL 48/50] target/i386: Create helper_check_io Richard Henderson
2021-05-19 18:30 ` [PULL 49/50] target/i386: Move helper_check_io to sysemu Richard Henderson
2021-05-19 18:30 ` [PULL 50/50] target/i386: Remove user-only i/o stubs Richard Henderson
2021-05-19 19:15 ` [PULL 00/50] target/i386 translate cleanups no-reply
2021-05-20 13:19 ` Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210519183050.875453-32-richard.henderson@linaro.org \
    --to=richard.henderson@linaro.org \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.