From 8a7d00fa4d4a66cf882bd4b9f423ea47b0fc1404 Mon Sep 17 00:00:00 2001 From: Avi Kivity Date: Wed, 31 Oct 2007 11:21:06 +0200 Subject: [PATCH] --- yaml --- r: 80701 b: refs/heads/master c: 9f1ef3f8f5f8ade2561d969181b152c225b82a3e h: refs/heads/master i: 80699: 4a52c0ade0f854dc82663e51f8f7d9e4c16e6df0 v: v3 --- [refs] | 2 +- trunk/drivers/kvm/x86_emulate.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 7d6af2ff2a95..cf4e40c17311 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 33615aa956521923eab0552994b5961cd3034042 +refs/heads/master: 9f1ef3f8f5f8ade2561d969181b152c225b82a3e diff --git a/trunk/drivers/kvm/x86_emulate.c b/trunk/drivers/kvm/x86_emulate.c index 884e4a2e47e6..b352a6c4d4a2 100644 --- a/trunk/drivers/kvm/x86_emulate.c +++ b/trunk/drivers/kvm/x86_emulate.c @@ -518,10 +518,10 @@ static int test_cc(unsigned int condition, unsigned int flags) static void decode_register_operand(struct operand *op, struct decode_cache *c, - int highbyte_regs, int inhibit_bytereg) { unsigned reg = c->modrm_reg; + int highbyte_regs = c->rex_prefix == 0; if (!(c->d & ModRM)) reg = (c->b & 7) | ((c->rex_prefix & 1) << 3); @@ -837,7 +837,7 @@ x86_decode_insn(struct x86_emulate_ctxt *ctxt, struct x86_emulate_ops *ops) case SrcNone: break; case SrcReg: - decode_register_operand(&c->src, c, c->rex_prefix == 0, 0); + decode_register_operand(&c->src, c, 0); break; case SrcMem16: c->src.bytes = 2; @@ -895,7 +895,7 @@ x86_decode_insn(struct x86_emulate_ctxt *ctxt, struct x86_emulate_ops *ops) /* Special instructions do their own operand decoding. */ return 0; case DstReg: - decode_register_operand(&c->dst, c, c->rex_prefix == 0, + decode_register_operand(&c->dst, c, c->twobyte && (c->b == 0xb6 || c->b == 0xb7)); break; case DstMem: