diff options
author | Bryan Cantrill <bryan@joyent.com> | 2011-05-13 10:50:26 -0700 |
---|---|---|
committer | Bryan Cantrill <bryan@joyent.com> | 2011-05-13 10:50:26 -0700 |
commit | 79836fd6afeab807099b5ff4833501f49ed3d48d (patch) | |
tree | 411b2031245fdb97d7043ebc2230ab6ad1c94b86 /kvm_emulate.c | |
parent | 4242a94eb94f7e9d85824e0a970f949b19e173a5 (diff) | |
download | illumos-kvm-79836fd6afeab807099b5ff4833501f49ed3d48d.tar.gz |
HVM-199 _PRE_EFLAGS performs an andl on an illegal address
Diffstat (limited to 'kvm_emulate.c')
-rw-r--r-- | kvm_emulate.c | 3 |
1 files changed, 2 insertions, 1 deletions
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; " \ |