On Mon, May 07, 2018 at 02:20:11PM +0800, wei.guo.simon@xxxxxxxxx wrote: > From: Simon Guo <wei.guo.simon@xxxxxxxxx> > > This patch reimplements non-SIMD LOAD/STORE instruction MMIO emulation > with analyse_intr() input. It utilizes the BYTEREV/UPDATE/SIGNEXT > properties exported by analyse_instr() and invokes > kvmppc_handle_load(s)/kvmppc_handle_store() accordingly. > > It also move CACHEOP type handling into the skeleton. > > instruction_type within kvm_ppc.h is renamed to avoid conflict with > sstep.h. > > Suggested-by: Paul Mackerras <paulus@xxxxxxxxxx> > Signed-off-by: Simon Guo <wei.guo.simon@xxxxxxxxx> Looks pretty good, but one comment below... > - case OP_31_XOP_LWAUX: > - emulated = kvmppc_handle_loads(run, vcpu, rt, 4, 1); > - kvmppc_set_gpr(vcpu, ra, vcpu->arch.vaddr_accessed); > - break; > + if (emulated == EMULATE_DONE) > + goto out; Shouldn't this also goto out if emulated == EMULATE_DO_MMIO? Paul.