2007-03-07 Zoltan Varga <vargaz@gmail.com>
authorZoltan Varga <vargaz@gmail.com>
Wed, 7 Mar 2007 12:45:37 +0000 (12:45 -0000)
committerZoltan Varga <vargaz@gmail.com>
Wed, 7 Mar 2007 12:45:37 +0000 (12:45 -0000)
* docs/aot-compiler.txt: Add into about the PLT.

svn path=/trunk/mono/; revision=73881

ChangeLog
docs/aot-compiler.txt

index 242a5c8bf45acdc95f277870993739257a6c530d..0dd8f9d404bde5c236502ce3652076f93cca0303 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2007-03-07  Zoltan Varga  <vargaz@gmail.com>
 
+       * docs/aot-compiler.txt: Add into about the PLT.
+       
        * docs/aot-compiler.txt: Update a bit to reflect recent changes.
 
 2007-02-24  Raja R Harinath  <rharinath@novell.com>
index 672f9495aa98380118f8b4afcd6f0f87f3a0f307..7c7f1009961e0287df5f29d961c771d2d69f9a28 100644 (file)
@@ -89,6 +89,18 @@ Mono Ahead Of Time Compiler
        
        svn diff -r 37739:38213 mini-x86.c 
 
+       * The Program Linkage Table
+
+       As in ELF, calls made from AOT code do not go through the GOT. Instead, a direct call is
+       made to an entry in the Program Linkage Table (PLT). This is based on the fact that on
+       most architectures, call instructions use a displacement instead of an absolute address, so
+       they are already position independent. An PLT entry is usually a jump instruction, which
+       initially points to some trampoline code which transfers control to the AOT loader, which
+       will compile the called method, and patch the PLT entry so that further calls are made
+       directly to the called method.
+       If the called method is in the same assembly, and does not need initialization (i.e. it
+    doesn't have GOT slots etc), then the call is made directly, bypassing the PLT.
+
 * The Precompiled File Format
 -----------------------------