diff options
Diffstat (limited to 'lib/Target/ARM/Disassembler/ARMDisassembler.cpp')
| -rw-r--r-- | lib/Target/ARM/Disassembler/ARMDisassembler.cpp | 49 | 
1 files changed, 6 insertions, 43 deletions
| diff --git a/lib/Target/ARM/Disassembler/ARMDisassembler.cpp b/lib/Target/ARM/Disassembler/ARMDisassembler.cpp index e22028985b46..78d73d3a272b 100644 --- a/lib/Target/ARM/Disassembler/ARMDisassembler.cpp +++ b/lib/Target/ARM/Disassembler/ARMDisassembler.cpp @@ -39,9 +39,9 @@  /// o static uint16_t decodeThumbInstruction(field_t insn) - the decoding  /// function for a Thumb instruction.  /// -#include "../ARMGenDecoderTables.inc" +#include "ARMGenDecoderTables.inc" -#include "../ARMGenEDInfo.inc" +#include "ARMGenEDInfo.inc"  using namespace llvm; @@ -89,7 +89,8 @@ static unsigned decodeARMInstruction(uint32_t &insn) {        return ARM::BFI;    } -  // Ditto for STRBT, which is a super-instruction for A8.6.199 Encoding A1 & A2. +  // Ditto for STRBT, which is a super-instruction for A8.6.199 Encodings +  // A1 & A2.    // As a result, the decoder fails to deocode USAT properly.    if (slice(insn, 27, 21) == 0x37 && slice(insn, 5, 4) == 1)      return ARM::USAT; @@ -252,9 +253,6 @@ static unsigned T2Morph2LoadLiteral(unsigned Opcode) {    default:      return Opcode; // Return unmorphed opcode. -  case ARM::t2LDRDi8: -    return ARM::t2LDRDpci; -    case ARM::t2LDR_POST:   case ARM::t2LDR_PRE:    case ARM::t2LDRi12:     case ARM::t2LDRi8:    case ARM::t2LDRs:       case ARM::t2LDRT: @@ -349,36 +347,6 @@ static unsigned decodeThumbSideEffect(bool IsThumb2, unsigned &insn) {    return decodeThumbInstruction(insn);  } -static inline bool Thumb2PreloadOpcodeNoPCI(unsigned Opcode) { -  switch (Opcode) { -  default: -    return false; -  case ARM::t2PLDi12:   case ARM::t2PLDi8: -  case ARM::t2PLDr:     case ARM::t2PLDs: -  case ARM::t2PLDWi12:  case ARM::t2PLDWi8: -  case ARM::t2PLDWr:    case ARM::t2PLDWs: -  case ARM::t2PLIi12:   case ARM::t2PLIi8: -  case ARM::t2PLIr:     case ARM::t2PLIs: -    return true; -  } -} - -static inline unsigned T2Morph2Preload2PCI(unsigned Opcode) { -  switch (Opcode) { -  default: -    return 0; -  case ARM::t2PLDi12:   case ARM::t2PLDi8: -  case ARM::t2PLDr:     case ARM::t2PLDs: -    return ARM::t2PLDpci; -  case ARM::t2PLDWi12:  case ARM::t2PLDWi8: -  case ARM::t2PLDWr:    case ARM::t2PLDWs: -    return ARM::t2PLDWpci; -  case ARM::t2PLIi12:   case ARM::t2PLIi8: -  case ARM::t2PLIr:     case ARM::t2PLIs: -    return ARM::t2PLIpci; -  } -} -  //  // Public interface for the disassembler  // @@ -485,11 +453,6 @@ bool ThumbDisassembler::getInstruction(MCInst &MI,    // instructions as well.    unsigned Opcode = decodeThumbSideEffect(IsThumb2, insn); -  // A8.6.117/119/120/121. -  // PLD/PLDW/PLI instructions with Rn==15 is transformed to the pci variant. -  if (Thumb2PreloadOpcodeNoPCI(Opcode) && slice(insn, 19, 16) == 15) -    Opcode = T2Morph2Preload2PCI(Opcode); -    ARMFormat Format = ARMFormats[Opcode];    Size = IsThumb2 ? 4 : 2; @@ -568,9 +531,9 @@ static MCDisassembler *createThumbDisassembler(const Target &T) {    return new ThumbDisassembler;  } -extern "C" void LLVMInitializeARMDisassembler() {  +extern "C" void LLVMInitializeARMDisassembler() {    // Register the disassembler. -  TargetRegistry::RegisterMCDisassembler(TheARMTarget,  +  TargetRegistry::RegisterMCDisassembler(TheARMTarget,                                           createARMDisassembler);    TargetRegistry::RegisterMCDisassembler(TheThumbTarget,                                           createThumbDisassembler); | 
