[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v5 09/11] target-i386: exception handling for other
From: |
Pavel Dovgalyuk |
Subject: |
[Qemu-devel] [PATCH v5 09/11] target-i386: exception handling for other helper functions |
Date: |
Mon, 06 Jul 2015 11:26:28 +0300 |
User-agent: |
StGit/0.16 |
This patch fixes exception handling for other helper functions.
Signed-off-by: Pavel Dovgalyuk <address@hidden>
---
target-i386/cc_helper.c | 2 +-
target-i386/misc_helper.c | 10 +++++-----
target-i386/ops_sse.h | 2 +-
target-i386/svm_helper.c | 4 ++--
4 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/target-i386/cc_helper.c b/target-i386/cc_helper.c
index ecbf0ec..d5b7c7b 100644
--- a/target-i386/cc_helper.c
+++ b/target-i386/cc_helper.c
@@ -378,7 +378,7 @@ void helper_sti_vm(CPUX86State *env)
{
env->eflags |= VIF_MASK;
if (env->eflags & VIP_MASK) {
- raise_exception(env, EXCP0D_GPF);
+ raise_exception_ra(env, EXCP0D_GPF, GETPC());
}
}
#endif
diff --git a/target-i386/misc_helper.c b/target-i386/misc_helper.c
index 52c5d65..c8e7ee9 100644
--- a/target-i386/misc_helper.c
+++ b/target-i386/misc_helper.c
@@ -220,7 +220,7 @@ void helper_rdtsc(CPUX86State *env)
uint64_t val;
if ((env->cr[4] & CR4_TSD_MASK) && ((env->hflags & HF_CPL_MASK) != 0)) {
- raise_exception(env, EXCP0D_GPF);
+ raise_exception_ra(env, EXCP0D_GPF, GETPC());
}
cpu_svm_check_intercept_param(env, SVM_EXIT_RDTSC, 0);
@@ -238,13 +238,13 @@ void helper_rdtscp(CPUX86State *env)
void helper_rdpmc(CPUX86State *env)
{
if ((env->cr[4] & CR4_PCE_MASK) && ((env->hflags & HF_CPL_MASK) != 0)) {
- raise_exception(env, EXCP0D_GPF);
+ raise_exception_ra(env, EXCP0D_GPF, GETPC());
}
cpu_svm_check_intercept_param(env, SVM_EXIT_RDPMC, 0);
/* currently unimplemented */
qemu_log_mask(LOG_UNIMP, "x86: unimplemented rdpmc\n");
- raise_exception_err(env, EXCP06_ILLOP, 0);
+ raise_exception_err_ra(env, EXCP06_ILLOP, 0, GETPC());
}
#if defined(CONFIG_USER_ONLY)
@@ -589,7 +589,7 @@ void helper_hlt(CPUX86State *env, int next_eip_addend)
void helper_monitor(CPUX86State *env, target_ulong ptr)
{
if ((uint32_t)env->regs[R_ECX] != 0) {
- raise_exception(env, EXCP0D_GPF);
+ raise_exception_ra(env, EXCP0D_GPF, GETPC());
}
/* XXX: store address? */
cpu_svm_check_intercept_param(env, SVM_EXIT_MONITOR, 0);
@@ -601,7 +601,7 @@ void helper_mwait(CPUX86State *env, int next_eip_addend)
X86CPU *cpu;
if ((uint32_t)env->regs[R_ECX] != 0) {
- raise_exception(env, EXCP0D_GPF);
+ raise_exception_ra(env, EXCP0D_GPF, GETPC());
}
cpu_svm_check_intercept_param(env, SVM_EXIT_MWAIT, 0);
env->eip += next_eip_addend;
diff --git a/target-i386/ops_sse.h b/target-i386/ops_sse.h
index 0765073..8c8e53b 100644
--- a/target-i386/ops_sse.h
+++ b/target-i386/ops_sse.h
@@ -483,7 +483,7 @@ void glue(helper_maskmov, SUFFIX)(CPUX86State *env, Reg *d,
Reg *s,
for (i = 0; i < (8 << SHIFT); i++) {
if (s->B(i) & 0x80) {
- cpu_stb_data(env, a0 + i, d->B(i));
+ cpu_stb_data_ra(env, a0 + i, d->B(i), GETPC());
}
}
}
diff --git a/target-i386/svm_helper.c b/target-i386/svm_helper.c
index f1fabf5..cc8c2ec 100644
--- a/target-i386/svm_helper.c
+++ b/target-i386/svm_helper.c
@@ -354,7 +354,7 @@ void helper_vmrun(CPUX86State *env, int aflag, int
next_eip_addend)
void helper_vmmcall(CPUX86State *env)
{
cpu_svm_check_intercept_param(env, SVM_EXIT_VMMCALL, 0);
- raise_exception(env, EXCP06_ILLOP);
+ raise_exception_ra(env, EXCP06_ILLOP, GETPC());
}
void helper_vmload(CPUX86State *env, int aflag)
@@ -457,7 +457,7 @@ void helper_skinit(CPUX86State *env)
{
cpu_svm_check_intercept_param(env, SVM_EXIT_SKINIT, 0);
/* XXX: not implemented */
- raise_exception(env, EXCP06_ILLOP);
+ raise_exception_ra(env, EXCP06_ILLOP, GETPC());
}
void helper_invlpga(CPUX86State *env, int aflag)
- Re: [Qemu-devel] [PATCH v5 05/11] target-i386: exception handling for FPU instructions, (continued)
Re: [Qemu-devel] [PATCH v5 05/11] target-i386: exception handling for FPU instructions, Aurelien Jarno, 2015/07/06
[Qemu-devel] [PATCH v5 03/11] target-mips: improve exceptions handling, Pavel Dovgalyuk, 2015/07/06
[Qemu-devel] [PATCH v5 06/11] target-i386: exception handling for div instructions, Pavel Dovgalyuk, 2015/07/06
[Qemu-devel] [PATCH v5 07/11] target-i386: exception handling for memory helpers, Pavel Dovgalyuk, 2015/07/06
[Qemu-devel] [PATCH v5 09/11] target-i386: exception handling for other helper functions,
Pavel Dovgalyuk <=
[Qemu-devel] [PATCH v5 08/11] target-i386: exception handling for seg_helper functions, Pavel Dovgalyuk, 2015/07/06
[Qemu-devel] [PATCH v5 10/11] target-i386: remove useless PC updates, Pavel Dovgalyuk, 2015/07/06
[Qemu-devel] [PATCH v5 11/11] target-ppc: exceptions handling in icount mode, Pavel Dovgalyuk, 2015/07/06