x86: emulator: Fix h_mem usage in tests_smsw
In emulator.c/tests_smsw, smsw (3) fails because h_mem isn't being set correctly
before smsw is called. By using the + constraint modifier for memory we can
ensure the compiler no longer optimizes out the assignment before smsw.
Signed-off-by: Chris J Arges <chris.j.arges@canonical.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
diff --git a/x86/emulator.c b/x86/emulator.c
index 5aa4dbf..1e05574 100644
--- a/x86/emulator.c
+++ b/x86/emulator.c
@@ -359,7 +359,7 @@
/* Trigger exit on smsw */
*h_mem = 0x12345678abcdeful;
- asm volatile("smsw %0" : "=m"(*h_mem));
+ asm volatile("smsw %0" : "+m"(*h_mem));
report("smsw (3)", msw == (unsigned short)*h_mem &&
(*h_mem & ~0xfffful) == 0x12345678ab0000ul);
}