diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2015-12-30 11:46:15 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2015-12-30 11:46:15 +0000 | 
| commit | dd58ef019b700900793a1eb48b52123db01b654e (patch) | |
| tree | fcfbb4df56a744f4ddc6122c50521dd3f1c5e196 /lib/Target/X86/Disassembler/X86Disassembler.cpp | |
| parent | 2fe5752e3a7c345cdb59e869278d36af33c13fa4 (diff) | |
Notes
Diffstat (limited to 'lib/Target/X86/Disassembler/X86Disassembler.cpp')
| -rw-r--r-- | lib/Target/X86/Disassembler/X86Disassembler.cpp | 7 | 
1 files changed, 7 insertions, 0 deletions
| diff --git a/lib/Target/X86/Disassembler/X86Disassembler.cpp b/lib/Target/X86/Disassembler/X86Disassembler.cpp index cfc3ee2fb08f..ce8fcf164668 100644 --- a/lib/Target/X86/Disassembler/X86Disassembler.cpp +++ b/lib/Target/X86/Disassembler/X86Disassembler.cpp @@ -95,11 +95,13 @@ X86GenericDisassembler::X86GenericDisassembler(    llvm_unreachable("Invalid CPU mode");  } +namespace {  struct Region {    ArrayRef<uint8_t> Bytes;    uint64_t Base;    Region(ArrayRef<uint8_t> Bytes, uint64_t Base) : Bytes(Bytes), Base(Base) {}  }; +} // end anonymous namespace  /// A callback function that wraps the readByte method from Region.  /// @@ -831,8 +833,12 @@ static bool translateRM(MCInst &mcInst, const OperandSpecifier &operand,    case TYPE_XMM256:    case TYPE_XMM512:    case TYPE_VK1: +  case TYPE_VK2: +  case TYPE_VK4:    case TYPE_VK8:    case TYPE_VK16: +  case TYPE_VK32: +  case TYPE_VK64:    case TYPE_DEBUGREG:    case TYPE_CONTROLREG:    case TYPE_BNDR: @@ -962,6 +968,7 @@ static bool translateInstruction(MCInst &mcInst,      return true;    } +  mcInst.clear();    mcInst.setOpcode(insn.instructionID);    // If when reading the prefix bytes we determined the overlapping 0xf2 or 0xf3    // prefix bytes should be disassembled as xrelease and xacquire then set the | 
