summaryrefslogtreecommitdiff
path: root/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
commitd8c87888a71c4433d76b48bca6c3e03a17890648 (patch)
treeee475b6e7aed2dfa61e0035bde2e6433c8b1133d /utils/TableGen/DisassemblerEmitter.cpp
parentce99120084f549a523213064648662a704e8b789 (diff)
downloadllvm-d8c87888a71c4433d76b48bca6c3e03a17890648.tar.gz
llvm-d8c87888a71c4433d76b48bca6c3e03a17890648.tar.bz2
llvm-d8c87888a71c4433d76b48bca6c3e03a17890648.tar.xz
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125966 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/DisassemblerEmitter.cpp')
-rw-r--r--utils/TableGen/DisassemblerEmitter.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/utils/TableGen/DisassemblerEmitter.cpp b/utils/TableGen/DisassemblerEmitter.cpp
index 2d8bf6634a..90a2af21f3 100644
--- a/utils/TableGen/DisassemblerEmitter.cpp
+++ b/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);
}