diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-08-01 23:36:18 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-08-01 23:36:18 +0000 |
commit | b7a56ad907e036c74ee1cb91769622c2db5c3f96 (patch) | |
tree | b8e3706d5d606527ec1e0ebcac3c32a174d18399 | |
parent | 2a80aca1a8c0d97efded8b4e3633b2c36444925d (diff) |
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
-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 |