diff options
Diffstat (limited to 'llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp')
-rw-r--r-- | llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp b/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp index 3e42499..d5218d3 100644 --- a/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp +++ b/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp @@ -1257,9 +1257,9 @@ static int getInstructionID(struct InternalInstruction *insn, attrMask &= ~ATTR_ADSIZE; } - // Absolute jump need special handling + // Absolute jump and pushp/popp need special handling if (insn->rex2ExtensionPrefix[0] == 0xd5 && insn->opcodeType == ONEBYTE && - insn->opcode == 0xA1) + (insn->opcode == 0xA1 || (insn->opcode & 0xf0) == 0x50)) attrMask |= ATTR_REX2; if (insn->mode == MODE_16BIT) { |