aboutsummaryrefslogtreecommitdiff
path: root/llvm/utils/TableGen/DisassemblerEmitter.cpp
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2011-02-18 21:51:29 +0000
committerOwen Anderson <resistor@mac.com>2011-02-18 21:51:29 +0000
commit4e81890d36133252ffb2309d723c761c71c86f79 (patch)
treef57c926b35471b252f1b83e422e296c45d4cc739 /llvm/utils/TableGen/DisassemblerEmitter.cpp
parent0e125bb4d0f153ac18fc86adc1bedc33c6176f34 (diff)
downloadllvm-4e81890d36133252ffb2309d723c761c71c86f79.zip
llvm-4e81890d36133252ffb2309d723c761c71c86f79.tar.gz
llvm-4e81890d36133252ffb2309d723c761c71c86f79.tar.bz2
Add FixedLenDecoderEmitter, the skeleton of a new disassembler emitter for fixed-length instruction encodings.
A major part of its (eventual) goal is to support a much cleaner separation between disassembly callbacks provided by the target and the disassembler emitter itself, i.e. not requiring hardcoding of knowledge in tblgen like the existing disassembly emitters do. The hope is that some day this will allow us to replace the existing non-Thumb ARM disassembler and remove some of the hacks the old one introduced to tblgen. llvm-svn: 125966
Diffstat (limited to 'llvm/utils/TableGen/DisassemblerEmitter.cpp')
-rw-r--r--llvm/utils/TableGen/DisassemblerEmitter.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/utils/TableGen/DisassemblerEmitter.cpp b/llvm/utils/TableGen/DisassemblerEmitter.cpp
index 2d8bf66..90a2af2 100644
--- a/llvm/utils/TableGen/DisassemblerEmitter.cpp
+++ b/llvm/utils/TableGen/DisassemblerEmitter.cpp
@@ -13,6 +13,7 @@
#include "X86DisassemblerTables.h"
#include "X86RecognizableInstr.h"
#include "ARMDecoderEmitter.h"
+#include "FixedLenDecoderEmitter.h"
using namespace llvm;
using namespace llvm::X86Disassembler;
@@ -127,11 +128,11 @@ void DisassemblerEmitter::run(raw_ostream &OS) {
}
// Fixed-instruction-length targets use a common disassembler.
+ // ARM use its own implementation for now.
if (Target.getName() == "ARM") {
ARMDecoderEmitter(Records).run(OS);
return;
}
- throw TGError(Target.getTargetRecord()->getLoc(),
- "Unable to generate disassembler for this target");
+ FixedLenDecoderEmitter(Records).run(OS);
}