From: Avi Kivity <[EMAIL PROTECTED]>

Signed-off-by: Avi Kivity <[EMAIL PROTECTED]>

diff --git a/user/test/x86/emulator.c b/user/test/x86/emulator.c
index 54f7662..26c9aaa 100644
--- a/user/test/x86/emulator.c
+++ b/user/test/x86/emulator.c
@@ -128,6 +128,28 @@ void test_push(void *mem)
        report("push mem", stack_top[-3] == 0x123456789abcdeful);
 }
 
+void test_smsw(void *mem)
+{
+       unsigned short msw, msw_orig, *pmsw;
+       unsigned long cr0;
+       int i, zero;
+
+       asm("mov %%cr0, %0" : "=r"(cr0));
+       msw_orig = cr0;
+
+       asm("smsw %0" : "=r"(msw));
+       report("smsw (1)", msw == msw_orig);
+
+       memset(mem, 0, 16);
+       pmsw = mem;
+       asm("smsw %0" : "=m"(pmsw[4]));
+       zero = 1;
+       for (i = 0; i < 8; ++i)
+               if (i != 4 && pmsw[i])
+                       zero = 0;
+       report("smsw (2)", msw == pmsw[4] && zero);
+}
+
 int main()
 {
        void *mem;
@@ -151,6 +173,8 @@ int main()
 
        test_cr8();
 
+       test_smsw(mem);
+
        printf("\nSUMMARY: %d tests, %d failures\n", tests, fails);
        return fails ? 1 : 0;
 }

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
kvm-commits mailing list
kvm-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-commits

Reply via email to