aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-08-01 23:36:18 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-08-01 23:36:18 +0000
commitb7a56ad907e036c74ee1cb91769622c2db5c3f96 (patch)
treeb8e3706d5d606527ec1e0ebcac3c32a174d18399
parent2a80aca1a8c0d97efded8b4e3633b2c36444925d (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.h24
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