Add the rest of the build system logic for optional target disassemblers
[oota-llvm.git] / include / llvm / Target / TargetSelect.h
index e79f651e5da5fed1940a2ee0047b7f79b4caa6fe..951e7fa86b5d0fa1bd922dec5202f48ef5618b07 100644 (file)
@@ -33,6 +33,10 @@ extern "C" {
   // Declare all of the available assembly parser initialization functions.
 #define LLVM_ASM_PARSER(TargetName) void LLVMInitialize##TargetName##AsmParser();
 #include "llvm/Config/AsmParsers.def"
+
+  // Declare all of the available disassembler initialization functions.
+#define LLVM_DISASSEMBLER(TargetName) void LLVMInitialize##TargetName##Disassembler();
+#include "llvm/Config/Disassemblers.def"
 }
 
 namespace llvm {
@@ -79,6 +83,16 @@ namespace llvm {
 #include "llvm/Config/AsmParsers.def"
   }
   
+  /// InitializeAllDisassemblers - The main program should call this function if
+  /// it wants all disassemblers that LLVM is configured to support, to make
+  /// them available via the TargetRegistry.
+  ///
+  /// It is legal for a client to make multiple calls to this function.
+  inline void InitializeAllDisassemblers() {
+#define LLVM_DISASSEMBLER(TargetName) LLVMInitialize##TargetName##Disassembler();
+#include "llvm/Config/Disassemblers.def"
+  }
+  
   /// InitializeNativeTarget - The main program should call this function to
   /// initialize the native target corresponding to the host.  This is useful 
   /// for JIT applications to ensure that the target gets linked in correctly.