All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH kvm-unit-test]: test fninit/fnstsw/fnstcw instructions emulation
@ 2012-12-20 15:00 Gleb Natapov
  0 siblings, 0 replies; only message in thread
From: Gleb Natapov @ 2012-12-20 15:00 UTC (permalink / raw)
  To: kvm; +Cc: mtosatti

Add test for fninit/fnstsw/fnstcw instructions emulation. This exact
code sequence is executed by Linux kernel during boot and sometimes gets
emulated by KVM.

Signed-off-by: Gleb Natapov <gleb@redhat.com>
diff --git a/x86/realmode.c b/x86/realmode.c
index 549b36a..f5426e0 100644
--- a/x86/realmode.c
+++ b/x86/realmode.c
@@ -1384,6 +1384,18 @@ static void test_aad(void)
     report("aad", R_AX, outregs.eax == 0x123400d4);
 }
 
+static void test_fninit(void)
+{
+	u16 fcw = -1, fsw = -1;
+	MK_INSN(fninit, "fninit ; fnstsw (%eax) ; fnstcw (%ebx)");
+
+	inregs.eax = (u32)&fsw;
+	inregs.ebx = (u32)&fcw;
+
+	exec_in_big_real_mode(&insn_fninit);
+	report("fninit", 0, fsw == 0 && (fcw & 0x103f) == 0x003f);
+}
+
 void realmode_start(void)
 {
 	test_null();
@@ -1424,6 +1436,7 @@ void realmode_start(void)
 	test_movzx_movsx();
 	test_bswap();
 	test_aad();
+	test_fninit();
 
 	exit(0);
 }
--
			Gleb.

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2012-12-20 15:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-20 15:00 [PATCH kvm-unit-test]: test fninit/fnstsw/fnstcw instructions emulation Gleb Natapov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.