[LLVMdev] LLVM ExecutionEngine/JIT trampoline question

Xin Tong Utoronto x.tong at utoronto.ca
Tue Feb 22 09:03:17 PST 2011


I have a question on the LLVM JIT

I did some brief memory reading one day and I found that a call to a
non-library function is resolved by the X86CompilationCallback, but the
X86CompilationCallback is reached through a trampoline. why can not  the
generated code jump to the X86CompilationCallback function directly ?

          0x2b0a6a4d103b: mov    $0x2b0a6a561010,%rax
          0x2b0a6a4d1045: callq  *%rax
// call foo

>
>
> ==>
>
> 0x2b0a6a561010: mov    $0xa743a0,%r10                   // some kind of
> trampoline
> 0x2b0a6a56101a: callq  *%r10
>
> ==>
>
> 0xa743a0 <X86CompilationCallback>:        push   %rbp
> 0xa743a1 <X86CompilationCallback+1>:    mov    %rsp,%rbp
> 0xa743a4 <X86CompilationCallback+4>:    push   %rdi
> 0xa743a5 <X86CompilationCallback+5>:    push   %rsi



-- 
Kind Regards

Xin Tong
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110222/812862a9/attachment.html>


More information about the llvm-dev mailing list