diff options
-rw-r--r-- | include/llvm/Target/TargetSelect.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/include/llvm/Target/TargetSelect.h b/include/llvm/Target/TargetSelect.h index 951e7fa86b..fc3244acd8 100644 --- a/include/llvm/Target/TargetSelect.h +++ b/include/llvm/Target/TargetSelect.h @@ -30,6 +30,13 @@ extern "C" { #define LLVM_ASM_PRINTER(TargetName) void LLVMInitialize##TargetName##AsmPrinter(); #include "llvm/Config/AsmPrinters.def" + // FIXME: Workaround for unfortunate definition of LLVM_NATIVE_ARCH. +#define LLVM_ASM_PRINTER(TargetName) \ + static inline void LLVMInitialize##TargetName##TargetAsmPrinter() { \ + LLVMInitialize##TargetName##AsmPrinter(); \ + } +#include "llvm/Config/AsmPrinters.def" + // Declare all of the available assembly parser initialization functions. #define LLVM_ASM_PARSER(TargetName) void LLVMInitialize##TargetName##AsmParser(); #include "llvm/Config/AsmParsers.def" @@ -113,6 +120,23 @@ namespace llvm { return true; #endif } + + /// InitializeNativeTargetAsmPrinter - The main program should call + /// this function to initialize the native target asm printer. + inline bool InitializeNativeTargetAsmPrinter() { + // If we have a native target, initialize the corresponding asm printer. +#ifdef LLVM_NATIVE_ARCH +#define DoInit2(TARG) \ + LLVMInitialize ## TARG ## AsmPrinter (); +#define DoInit(T) DoInit2(T) + DoInit(LLVM_NATIVE_ARCH); + return false; +#undef DoInit +#undef DoInit2 +#else + return true; +#endif + } } #endif |