diff options
Diffstat (limited to 'lib/MC/MCDisassembler/EDDisassembler.cpp')
-rw-r--r-- | lib/MC/MCDisassembler/EDDisassembler.cpp | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/lib/MC/MCDisassembler/EDDisassembler.cpp b/lib/MC/MCDisassembler/EDDisassembler.cpp index 227e229f09..14d735dbc7 100644 --- a/lib/MC/MCDisassembler/EDDisassembler.cpp +++ b/lib/MC/MCDisassembler/EDDisassembler.cpp @@ -239,29 +239,20 @@ EDInst *EDDisassembler::createInst(EDByteReaderCallback byteReader, MCInst* inst = new MCInst; uint64_t byteSize; - MCDisassembler::DecodeStatus S; - S = Disassembler->getInstruction(*inst, - byteSize, - memoryObject, - address, - ErrorStream); - switch (S) { - case MCDisassembler::Fail: - case MCDisassembler::SoftFail: + if (Disassembler->getInstruction(*inst, byteSize, memoryObject, address, + ErrorStream) != MCDisassembler::Success) { // FIXME: Do something different on soft failure mode? delete inst; return NULL; - case MCDisassembler::Success: { - const llvm::EDInstInfo *thisInstInfo = NULL; - - if (InstInfos) { - thisInstInfo = &InstInfos[inst->getOpcode()]; - } - - EDInst* sdInst = new EDInst(inst, byteSize, *this, thisInstInfo); - return sdInst; } + const llvm::EDInstInfo *thisInstInfo = NULL; + + if (InstInfos) { + thisInstInfo = &InstInfos[inst->getOpcode()]; } + + EDInst* sdInst = new EDInst(inst, byteSize, *this, thisInstInfo); + return sdInst; } void EDDisassembler::initMaps(const MCRegisterInfo ®isterInfo) { |