aboutsummaryrefslogtreecommitdiff
path: root/lib/MC/MCDisassembler/EDDisassembler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/MC/MCDisassembler/EDDisassembler.cpp')
-rw-r--r--lib/MC/MCDisassembler/EDDisassembler.cpp27
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 &registerInfo) {