diff options
author | Chris Lattner <sabre@nondot.org> | 2006-09-08 17:03:56 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-09-08 17:03:56 +0000 |
commit | 40f4ba5e711e9c100c7fc2d5326de4fc37987aaf (patch) | |
tree | 39943ecdb0ae17b27ccdf4fc586434a3ae1cead1 /lib/Target/X86/X86JITInfo.cpp | |
parent | 4e30764d5515b09e48ebed1ee61d206d11fc2293 (diff) | |
download | llvm-40f4ba5e711e9c100c7fc2d5326de4fc37987aaf.tar.gz llvm-40f4ba5e711e9c100c7fc2d5326de4fc37987aaf.tar.bz2 llvm-40f4ba5e711e9c100c7fc2d5326de4fc37987aaf.tar.xz |
Use __USER_LABEL_PREFIX__ to get the prefix added by the current host.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30190 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86JITInfo.cpp')
-rw-r--r-- | lib/Target/X86/X86JITInfo.cpp | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/lib/Target/X86/X86JITInfo.cpp b/lib/Target/X86/X86JITInfo.cpp index 7ea7e9ea6d..deeea3d286 100644 --- a/lib/Target/X86/X86JITInfo.cpp +++ b/lib/Target/X86/X86JITInfo.cpp @@ -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" |