On Wed, Jul 28, 2010 at 12:39:01PM +0300, Mohammed Gamal wrote: > This adds a unit test for real mode emulation of the iret instruction > > Signed-off-by: Mohammed Gamal <m.gamal005@xxxxxxxxx> > > --- > Changes from v1: > - Added test for 16-bit iret > - Added tests for returned eflags > --- > kvm/test/x86/realmode.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++ > 1 files changed, 79 insertions(+), 0 deletions(-) > > diff --git a/kvm/test/x86/realmode.c b/kvm/test/x86/realmode.c > index bd79348..74456c3 100644 > --- a/kvm/test/x86/realmode.c > +++ b/kvm/test/x86/realmode.c > @@ -865,6 +865,84 @@ void test_pusha_popa() > print_serial("Pusha/Popa Test2: PASS\n"); > } > > +void test_iret() > +{ > + struct regs inregs = { 0 }, outregs; > + > + MK_INSN(iret32, "pushf\n\t" > + "pushl %cs\n\t" > + "call 1f\n\t" /* a near call will push eip onto the stack */ > + "jmp 2f\n\t" > + "1: iret\n\t" > + "2:\n\t" > + ); > + > + MK_INSN(iret16, "pushfw\n\t" > + "pushw %cs\n\t" > + "callw 1f\n\t" > + "jmp 2f\n\t" > + "1: iretw\n\t" > + "2:\n\t"); Unless iret causes a task switch, it will not cause an exit. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html