On 2017-05-09 11:07, Richard Henderson wrote: > From: Eric Bischoff <ebisch...@nerim.net> > > Reviewed-by: Aurelien Jarno <aurel...@aurel32.net> > Signed-off-by: Eric Bischoff <ebisch...@nerim.net> > Message-Id: <20170228120134.7921-1-ebisch...@suse.com> > [rth: Combine the two via insn->data; free the address temps.] > Signed-off-by: Richard Henderson <r...@twiddle.net> > --- > target/s390x/insn-data.def | 4 +++- > target/s390x/translate.c | 42 ++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 45 insertions(+), 1 deletion(-)
[snip] > diff --git a/target/s390x/translate.c b/target/s390x/translate.c > index 2b66a4e..8de0177 100644 > --- a/target/s390x/translate.c > +++ b/target/s390x/translate.c > @@ -2559,6 +2559,7 @@ static ExitStatus op_lctlg(DisasContext *s, DisasOps *o) > tcg_temp_free_i32(r3); > return NO_EXIT; > } > + > static ExitStatus op_lra(DisasContext *s, DisasOps *o) > { > check_privileged(s); > @@ -2759,6 +2760,31 @@ static ExitStatus op_lm64(DisasContext *s, DisasOps *o) > return NO_EXIT; > } > > +static ExitStatus op_lpd(DisasContext *s, DisasOps *o) > +{ > + TCGv_i64 a1, a2; > + TCGMemOp mop = s->insn->data; > + > + /* In a parallel context, stop the world and single step. */ > + if (parallel_cpus) { > + potential_page_fault(s); > + gen_helper_exit_atomic(cpu_env); > + return EXIT_NORETURN; > + } One small additional comment about this patch I haven't spotted at the first review. The exit_atomic helper is properly restoring the CPU state passing the return address to cpu_loop_exit_atomic, so I believe the potential_page_fault call is not necessary. That said, it doesn't hurt either. Aurelien -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurel...@aurel32.net http://www.aurel32.net