diff options
author | Owen Anderson <resistor@mac.com> | 2011-02-18 21:51:29 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2011-02-18 21:51:29 +0000 |
commit | d8c87888a71c4433d76b48bca6c3e03a17890648 (patch) | |
tree | ee475b6e7aed2dfa61e0035bde2e6433c8b1133d /utils/TableGen/DisassemblerEmitter.cpp | |
parent | ce99120084f549a523213064648662a704e8b789 (diff) | |
download | llvm-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.cpp | 5 |
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); } |