[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for 4.9 5/6] x86/emul: Drop swint_emulate infrastructure
>>> On 31.03.17 at 21:50, <andrew.cooper3@xxxxxxxxxx> wrote: > With the SVM injection logic capable of doing its own emulation, there is no > need for this hardware-specific assistance in the common emulator. > > Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> with one remark below. > --- > tools/fuzz/x86_instruction_emulator/fuzz-emul.c | 18 +-- > xen/arch/x86/hvm/emulate.c | 7 - > xen/arch/x86/mm.c | 2 - > xen/arch/x86/mm/shadow/common.c | 1 - > xen/arch/x86/x86_emulate/x86_emulate.c | 187 > ++++-------------------- > xen/arch/x86/x86_emulate/x86_emulate.h | 53 ------- > 6 files changed, 30 insertions(+), 238 deletions(-) I like this. > @@ -4103,25 +3966,38 @@ x86_emulate( > goto done; > break; > > - case 0xcc: /* int3 */ > - src.val = EXC_BP; > - swint_type = x86_swint_int3; > - goto swint; > - > - case 0xcd: /* int imm8 */ > - swint_type = x86_swint_int; > - swint: > - rc = inject_swint(swint_type, (uint8_t)src.val, > - _regs.r(ip) - ctxt->regs->r(ip), > - ctxt, ops) ? : X86EMUL_EXCEPTION; > - goto done; > - > case 0xce: /* into */ > if ( !(_regs.eflags & X86_EFLAGS_OF) ) > break; > - src.val = EXC_OF; > - swint_type = x86_swint_into; > - goto swint; > + /* Fallthrough */ > + case 0xcc: /* int3 */ > + case 0xcd: /* int imm8 */ > + case 0xf1: /* int1 (icebp) */ > + ASSERT(!ctxt->event_pending); > + switch ( ctxt->opcode ) > + { > + case 0xcc: /* int3 */ > + ctxt->event.vector = EXC_BP; > + ctxt->event.type = X86_EVENTTYPE_SW_EXCEPTION; > + break; > + case 0xcd: /* int imm8 */ > + ctxt->event.vector = src.val; I think with our current naming and fields use it might be marginally better to use imm1 here; the R-b applies to both cases, though. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |