Second try of initial ARM/Thumb disassembler check-in. It consists of a tablgen
[oota-llvm.git] / utils / TableGen / DisassemblerEmitter.cpp
index a195c0b8d6dc13298e4f3e95cba7bd1cd3b33047..3284366c6dd8e2da3583f32971ea4efe48a99a5e 100644 (file)
@@ -12,6 +12,8 @@
 #include "Record.h"
 #include "X86DisassemblerTables.h"
 #include "X86RecognizableInstr.h"
+#include "ARMDecoderEmitter.h"
+
 using namespace llvm;
 using namespace llvm::X86Disassembler;
 
@@ -124,6 +126,12 @@ void DisassemblerEmitter::run(raw_ostream &OS) {
     return;
   }
 
+  // Fixed-instruction-length targets use a common disassembler.
+  if (Target.getName() == "ARM") {
+    ARMDecoderEmitter(Records).run(OS);
+    return;
+  }  
+
   throw TGError(Target.getTargetRecord()->getLoc(),
                 "Unable to generate disassembler for this target");
 }