KVM:x86: Clean up ModR/M "reg" initialization in reg op decoding
Refactor decode_register_operand() to get the ModR/M register if and only if the instruction uses a ModR/M encoding to make it more obvious how the register operand is retrieved. Signed-off-by: Liam Ni <zhiguangni01@gmail.com> Link: https://lore.kernel.org/r/20220908141210.1375828-1-zhiguangni01@zhaoxin.com Signed-off-by: Sean Christopherson <seanjc@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
02dfc44f20
commit
e390f4d69d
@ -1137,9 +1137,11 @@ static int em_fnstsw(struct x86_emulate_ctxt *ctxt)
|
||||
static void decode_register_operand(struct x86_emulate_ctxt *ctxt,
|
||||
struct operand *op)
|
||||
{
|
||||
unsigned reg = ctxt->modrm_reg;
|
||||
unsigned int reg;
|
||||
|
||||
if (!(ctxt->d & ModRM))
|
||||
if (ctxt->d & ModRM)
|
||||
reg = ctxt->modrm_reg;
|
||||
else
|
||||
reg = (ctxt->b & 7) | ((ctxt->rex_prefix & 1) << 3);
|
||||
|
||||
if (ctxt->d & Sse) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user