Use __USER_LABEL_PREFIX__ to get the prefix added by the current host.
authorChris Lattner <sabre@nondot.org>
Fri, 8 Sep 2006 17:03:56 +0000 (17:03 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 8 Sep 2006 17:03:56 +0000 (17:03 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30190 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86JITInfo.cpp

index 7ea7e9ea6d56df3a7044f500ba8023337556229d..deeea3d2867c90cb16b96d2272cb226286fd7cd2 100644 (file)
@@ -39,6 +39,14 @@ void X86JITInfo::replaceMachineCodeForFunction(void *Old, void *New) {
 /// compile a function lazily.
 static TargetJITInfo::JITCompilerFn JITCompilerFunction;
 
+// Get the ASMPREFIX for the current host.  This is often '_'.
+#ifndef __USER_LABEL_PREFIX__
+#define __USER_LABEL_PREFIX__
+#endif
+#define GETASMPREFIX2(X) #X
+#define GETASMPREFIX(X) GETASMPREFIX2(X)
+#define ASMPREFIX GETASMPREFIX(__USER_LABEL_PREFIX__)
+
 // Provide a wrapper for X86CompilationCallback2 that saves non-traditional
 // callee saved registers, for the fastcc calling convention.
 extern "C" {
@@ -48,8 +56,8 @@ extern "C" {
   asm(
     ".text\n"
     ".align 8\n"
-    ".globl _X86CompilationCallback\n"
-  "_X86CompilationCallback:\n"
+    ".globl " ASMPREFIX "X86CompilationCallback\n"
+  ASMPREFIX "X86CompilationCallback:\n"
     // Save RBP
     "pushq   %rbp\n"
     // Save RSP
@@ -77,7 +85,7 @@ extern "C" {
     // JIT callee
     "movq    %rbp, %rdi\n"    // Pass prev frame and return address
     "movq    8(%rbp), %rsi\n"
-    "call    _X86CompilationCallback2\n"
+    "call    " ASMPREFIX "X86CompilationCallback2\n"
     // Restore all XMM arg registers
     "movaps  112(%rsp), %xmm7\n"
     "movaps  96(%rsp), %xmm6\n"
@@ -106,13 +114,8 @@ extern "C" {
   asm(
     ".text\n"
     ".align 8\n"
-#if defined(__CYGWIN__) || defined(__APPLE__) || defined(__MINGW32__)
-    ".globl _X86CompilationCallback\n"
-  "_X86CompilationCallback:\n"
-#else
-    ".globl X86CompilationCallback\n"
-  "X86CompilationCallback:\n"
-#endif
+    ".globl " ASMPREFIX  "X86CompilationCallback\n"
+  ASMPREFIX "X86CompilationCallback:\n"
     "pushl   %ebp\n"
     "movl    %esp, %ebp\n"    // Standard prologue
 #if FASTCC_NUM_INT_ARGS_INREGS > 0
@@ -126,11 +129,7 @@ extern "C" {
     "movl    4(%ebp), %eax\n" // Pass prev frame and return address
     "movl    %eax, 4(%esp)\n"
     "movl    %ebp, (%esp)\n"
-#if defined(__CYGWIN__) || defined(__MINGW32__) || defined(__APPLE__)
-    "call    _X86CompilationCallback2\n"
-#else
-    "call    X86CompilationCallback2\n"
-#endif
+    "call    " ASMPREFIX "X86CompilationCallback2\n"
     "movl    %ebp, %esp\n"    // Restore ESP
 #if FASTCC_NUM_INT_ARGS_INREGS > 0
     "subl    $8, %esp\n"