Message ID | be99bef9-eeb2-6816-e0ca-979780a48a06@redhat.com |
---|---|
State | New |
Headers | show |
On 06/14/2017 10:08 AM, Paolo Bonzini wrote: > And MIPS: > > diff --git a/target/mips/translate.c b/target/mips/translate.c > index 559f8fed89..244f3cb9ab 100644 > --- a/target/mips/translate.c > +++ b/target/mips/translate.c > @@ -13403,8 +13403,9 @@ static void gen_pool32axf (CPUMIPSState *env, DisasContext *ctx, int rt, int rs) > save_cpu_state(ctx, 1); > gen_helper_ei(t0, cpu_env); > gen_store_gpr(t0, rs); > - /* Stop translation as we may have switched the execution mode */ > - ctx->bstate = BS_STOP; > + /* BS_STOP isn't good enough here, reevaluate cpu_mips_hw_interrupts_enabled. */ > + gen_save_pc(ctx->pc + 4); > + ctx->bstate = BS_EXCP; > tcg_temp_free(t0); > } > break; > > The others seem okay. Thanks for this bit. We also need to fix SSM for s390x. r~
Richard Henderson <rth@twiddle.net> writes: > On 06/14/2017 10:08 AM, Paolo Bonzini wrote: >> And MIPS: >> >> diff --git a/target/mips/translate.c b/target/mips/translate.c >> index 559f8fed89..244f3cb9ab 100644 >> --- a/target/mips/translate.c >> +++ b/target/mips/translate.c >> @@ -13403,8 +13403,9 @@ static void gen_pool32axf (CPUMIPSState *env, DisasContext *ctx, int rt, int rs) >> save_cpu_state(ctx, 1); >> gen_helper_ei(t0, cpu_env); >> gen_store_gpr(t0, rs); >> - /* Stop translation as we may have switched the execution mode */ >> - ctx->bstate = BS_STOP; >> + /* BS_STOP isn't good enough here, reevaluate cpu_mips_hw_interrupts_enabled. */ >> + gen_save_pc(ctx->pc + 4); >> + ctx->bstate = BS_EXCP; >> tcg_temp_free(t0); >> } >> break; >> >> The others seem okay. > > Thanks for this bit. We also need to fix SSM for s390x. If your rolling a series for all these can you also pick up Thomas Huth's fix for --accel? -- Alex Bennée
On 06/14/2017 12:07 PM, Alex Bennée wrote: > > Richard Henderson <rth@twiddle.net> writes: > >> On 06/14/2017 10:08 AM, Paolo Bonzini wrote: >>> And MIPS: >>> >>> diff --git a/target/mips/translate.c b/target/mips/translate.c >>> index 559f8fed89..244f3cb9ab 100644 >>> --- a/target/mips/translate.c >>> +++ b/target/mips/translate.c >>> @@ -13403,8 +13403,9 @@ static void gen_pool32axf (CPUMIPSState *env, DisasContext *ctx, int rt, int rs) >>> save_cpu_state(ctx, 1); >>> gen_helper_ei(t0, cpu_env); >>> gen_store_gpr(t0, rs); >>> - /* Stop translation as we may have switched the execution mode */ >>> - ctx->bstate = BS_STOP; >>> + /* BS_STOP isn't good enough here, reevaluate cpu_mips_hw_interrupts_enabled. */ >>> + gen_save_pc(ctx->pc + 4); >>> + ctx->bstate = BS_EXCP; >>> tcg_temp_free(t0); >>> } >>> break; >>> >>> The others seem okay. >> >> Thanks for this bit. We also need to fix SSM for s390x. > > If your rolling a series for all these can you also pick up Thomas > Huth's fix for --accel? Will do. r~
On Wed, Jun 14, 2017 at 12:43:00 -0700, Richard Henderson wrote: > On 06/14/2017 12:07 PM, Alex Bennée wrote: > >If your rolling a series for all these can you also pick up Thomas > >Huth's fix for --accel? > > Will do. Just a heads up since I see the patch is in your tcg-next branch: Paolo included this patch in a recent pull request ("Misc patches for 2017-06-15"), although the pull has yet to happen. https://lists.nongnu.org/archive/html/qemu-devel/2017-06/msg03682.html E.
diff --git a/target/mips/translate.c b/target/mips/translate.c index 559f8fed89..244f3cb9ab 100644 --- a/target/mips/translate.c +++ b/target/mips/translate.c @@ -13403,8 +13403,9 @@ static void gen_pool32axf (CPUMIPSState *env, DisasContext *ctx, int rt, int rs) save_cpu_state(ctx, 1); gen_helper_ei(t0, cpu_env); gen_store_gpr(t0, rs); - /* Stop translation as we may have switched the execution mode */ - ctx->bstate = BS_STOP; + /* BS_STOP isn't good enough here, reevaluate cpu_mips_hw_interrupts_enabled. */ + gen_save_pc(ctx->pc + 4); + ctx->bstate = BS_EXCP; tcg_temp_free(t0); } break;