[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 32/50] target/i386: Implement skinit in translate.c
From: |
Richard Henderson |
Subject: |
[PULL 32/50] target/i386: Implement skinit in translate.c |
Date: |
Wed, 19 May 2021 13:30:32 -0500 |
Our sysemu implementation is a stub. We can already intercept
instructions for vmexit, and raising #UD is trivial.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20210514151342.384376-33-richard.henderson@linaro.org>
---
target/i386/helper.h | 1 -
target/i386/tcg/sysemu/svm_helper.c | 7 -------
target/i386/tcg/translate.c | 7 +++----
target/i386/tcg/user/svm_stubs.c | 4 ----
4 files changed, 3 insertions(+), 16 deletions(-)
diff --git a/target/i386/helper.h b/target/i386/helper.h
index 095520f81f..7a09efd55b 100644
--- a/target/i386/helper.h
+++ b/target/i386/helper.h
@@ -117,7 +117,6 @@ DEF_HELPER_2(vmload, void, env, int)
DEF_HELPER_2(vmsave, void, env, int)
DEF_HELPER_1(stgi, void, env)
DEF_HELPER_1(clgi, void, env)
-DEF_HELPER_1(skinit, void, env)
DEF_HELPER_2(invlpga, void, env, int)
/* x86 FPU */
diff --git a/target/i386/tcg/sysemu/svm_helper.c
b/target/i386/tcg/sysemu/svm_helper.c
index c4e8e717a9..79c73d67af 100644
--- a/target/i386/tcg/sysemu/svm_helper.c
+++ b/target/i386/tcg/sysemu/svm_helper.c
@@ -412,13 +412,6 @@ void helper_clgi(CPUX86State *env)
env->hflags2 &= ~HF2_GIF_MASK;
}
-void helper_skinit(CPUX86State *env)
-{
- cpu_svm_check_intercept_param(env, SVM_EXIT_SKINIT, 0, GETPC());
- /* XXX: not implemented */
- raise_exception(env, EXCP06_ILLOP);
-}
-
void helper_invlpga(CPUX86State *env, int aflag)
{
X86CPU *cpu = env_archcpu(env);
diff --git a/target/i386/tcg/translate.c b/target/i386/tcg/translate.c
index 200d205d7e..f7f84f79fe 100644
--- a/target/i386/tcg/translate.c
+++ b/target/i386/tcg/translate.c
@@ -7578,10 +7578,9 @@ static target_ulong disas_insn(DisasContext *s, CPUState
*cpu)
|| !PE(s)) {
goto illegal_op;
}
- gen_update_cc_op(s);
- gen_jmp_im(s, pc_start - s->cs_base);
- gen_helper_skinit(cpu_env);
- break;
+ gen_svm_check_intercept(s, pc_start, SVM_EXIT_SKINIT);
+ /* If not intercepted, not implemented -- raise #UD. */
+ goto illegal_op;
case 0xdf: /* INVLPGA */
if (!SVME(s) || !PE(s)) {
diff --git a/target/i386/tcg/user/svm_stubs.c b/target/i386/tcg/user/svm_stubs.c
index 97528b56ad..63b37f0de6 100644
--- a/target/i386/tcg/user/svm_stubs.c
+++ b/target/i386/tcg/user/svm_stubs.c
@@ -46,10 +46,6 @@ void helper_clgi(CPUX86State *env)
{
}
-void helper_skinit(CPUX86State *env)
-{
-}
-
void helper_invlpga(CPUX86State *env, int aflag)
{
}
--
2.25.1
- [PULL 17/50] target/i386: Move rex_r into DisasContext, (continued)
- [PULL 17/50] target/i386: Move rex_r into DisasContext, Richard Henderson, 2021/05/19
- [PULL 15/50] target/i386: Introduce REX_PREFIX, Richard Henderson, 2021/05/19
- [PULL 22/50] target/i386: Reduce DisasContext.prefix to uint8_t, Richard Henderson, 2021/05/19
- [PULL 23/50] target/i386: Reduce DisasContext.vex_[lv] to uint8_t, Richard Henderson, 2021/05/19
- [PULL 21/50] target/i386: Reduce DisasContext.override to int8_t, Richard Henderson, 2021/05/19
- [PULL 29/50] target/i386: Add stub generator for helper_set_dr, Richard Henderson, 2021/05/19
- [PULL 19/50] target/i386: Remove DisasContext.f_st as unused, Richard Henderson, 2021/05/19
- [PULL 20/50] target/i386: Reduce DisasContext.flags to uint32_t, Richard Henderson, 2021/05/19
- [PULL 30/50] target/i386: Assert !SVME for user-only, Richard Henderson, 2021/05/19
- [PULL 26/50] target/i386: Reduce DisasContext jmp_opt, repz_opt to bool, Richard Henderson, 2021/05/19
- [PULL 32/50] target/i386: Implement skinit in translate.c,
Richard Henderson <=
- [PULL 31/50] target/i386: Assert !GUEST for user-only, Richard Henderson, 2021/05/19
- [PULL 27/50] target/i386: Fix the comment for repz_opt, Richard Henderson, 2021/05/19
- [PULL 28/50] target/i386: Reorder DisasContext members, Richard Henderson, 2021/05/19
- [PULL 36/50] target/i386: Tidy svm_check_intercept from tcg, Richard Henderson, 2021/05/19
- [PULL 25/50] target/i386: Leave TF in DisasContext.flags, Richard Henderson, 2021/05/19
- [PULL 24/50] target/i386: Reduce DisasContext popl_esp_hack and rip_offset to uint8_t, Richard Henderson, 2021/05/19
- [PULL 39/50] target/i386: Cleanup read_crN, write_crN, lmsw, Richard Henderson, 2021/05/19
- [PULL 34/50] target/i386: Mark some helpers as noreturn, Richard Henderson, 2021/05/19
- [PULL 37/50] target/i386: Remove pc_start argument to gen_svm_check_intercept, Richard Henderson, 2021/05/19
- [PULL 35/50] target/i386: Simplify gen_debug usage, Richard Henderson, 2021/05/19