From 79836fd6afeab807099b5ff4833501f49ed3d48d Mon Sep 17 00:00:00 2001 From: Bryan Cantrill Date: Fri, 13 May 2011 10:50:26 -0700 Subject: HVM-199 _PRE_EFLAGS performs an andl on an illegal address --- kvm_emulate.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'kvm_emulate.c') diff --git a/kvm_emulate.c b/kvm_emulate.c index 8cece7d..8afb364 100644 --- a/kvm_emulate.c +++ b/kvm_emulate.c @@ -455,6 +455,7 @@ static uint32_t group2_table[] = { #elif defined(__i386__) #define _LO32 "" /* force 32-bit operand */ #define _STK "%%esp" /* stack pointer */ +#error 32-bit variant of _PRE_EFLAGS not supported #endif /* @@ -474,7 +475,7 @@ static uint32_t group2_table[] = { "pushf; " \ "notl %"_LO32 _tmp"; " \ "andl %"_LO32 _tmp",("_STK"); " \ - "andl %"_LO32 _tmp","__stringify(64/4)"("_STK"); " \ + "andl %"_LO32 _tmp",16("_STK"); " \ "pop %"_tmp"; " \ "orl %"_LO32 _tmp",("_STK"); " \ "popf; " \ -- cgit v1.2.3