From b7a56ad907e036c74ee1cb91769622c2db5c3f96 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Sun, 1 Aug 2010 23:36:18 +0000 Subject: [PATCH] Targets: Add InitializeNativeTargetAsmPrinter(), patch by Jan Sjodin, although rewritten by me to not require updating all the target initialization routine names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109996 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Target/TargetSelect.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/include/llvm/Target/TargetSelect.h b/include/llvm/Target/TargetSelect.h index 951e7fa86b5..fc3244acd8e 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" @@ -109,6 +116,23 @@ namespace llvm { return false; #undef DoInit #undef DoInit2 +#else + 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