dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dotgnu-pnet-commits] libjit ./ChangeLog jit/jit-internal.h jit/jit-f...


From: Aleksey Demakov
Subject: [dotgnu-pnet-commits] libjit ./ChangeLog jit/jit-internal.h jit/jit-f...
Date: Tue, 10 Jan 2006 21:03:44 +0000

CVSROOT:        /sources/dotgnu-pnet
Module name:    libjit
Branch:         
Changes by:     Aleksey Demakov <address@hidden>        06/01/10 21:03:44

Modified files:
        .              : ChangeLog 
        jit            : jit-internal.h jit-function.c jit-rules-x86.c 

Log message:
        added fixup_absolute_list field to _jit_block struct

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/libjit/ChangeLog.diff?tr1=1.188&tr2=1.189&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/libjit/jit/jit-internal.h.diff?tr1=1.19&tr2=1.20&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/libjit/jit/jit-function.c.diff?tr1=1.16&tr2=1.17&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/libjit/jit/jit-rules-x86.c.diff?tr1=1.26&tr2=1.27&r1=text&r2=text

Patches:
Index: libjit/ChangeLog
diff -u libjit/ChangeLog:1.188 libjit/ChangeLog:1.189
--- libjit/ChangeLog:1.188      Tue Jan 10 20:48:35 2006
+++ libjit/ChangeLog    Tue Jan 10 21:03:44 2006
@@ -2,6 +2,9 @@
 
        * jit/jit-gen-x86.h (x86_jump_memindex): add macro for indirect
        jumps.
+       * jit/jit-internal.h, jit/jit-function.c, jiy/jit-rules-x86.c:
+       add fixup_absolute_list field to _jit_block struct for fixing up
+       absolute address references to a block.
 
 2006-01-08  Aleksey Demakov  <address@hidden>
 
Index: libjit/jit/jit-function.c
diff -u libjit/jit/jit-function.c:1.16 libjit/jit/jit-function.c:1.17
--- libjit/jit/jit-function.c:1.16      Sat Dec 24 09:48:42 2005
+++ libjit/jit/jit-function.c   Tue Jan 10 21:03:44 2006
@@ -710,6 +710,7 @@
                        {
                                block->address = 0;
                                block->fixup_list = 0;
+                               block->fixup_absolute_list = 0;
                        }
                }
 
Index: libjit/jit/jit-internal.h
diff -u libjit/jit/jit-internal.h:1.19 libjit/jit/jit-internal.h:1.20
--- libjit/jit/jit-internal.h:1.19      Sat Dec 24 06:55:13 2005
+++ libjit/jit/jit-internal.h   Tue Jan 10 21:03:44 2006
@@ -184,8 +184,9 @@
        int                                     entered_via_top : 1;
        int                                     entered_via_branch : 1;
        int                                     ends_in_dead : 1;
-       void                       *address;
-       void                       *fixup_list;
+       void                            *address;
+       void                            *fixup_list;
+       void                            *fixup_absolute_list;
 };
 
 /*
Index: libjit/jit/jit-rules-x86.c
diff -u libjit/jit/jit-rules-x86.c:1.26 libjit/jit/jit-rules-x86.c:1.27
--- libjit/jit/jit-rules-x86.c:1.26     Tue Oct 12 01:19:24 2004
+++ libjit/jit/jit-rules-x86.c  Tue Jan 10 21:03:44 2006
@@ -1397,6 +1397,15 @@
                fixup = next;
        }
        block->fixup_list = 0;
+
+       fixup = (void**)(block->fixup_absolute_list);
+       while(fixup != 0)
+       {
+               next = (void **)(fixup[0]);
+               fixup[0] = (void *)((jit_nint)(block->address));
+               fixup = next;
+       }
+       block->fixup_absolute_list = 0;
 }
 
 void _jit_gen_end_block(jit_gencode_t gen, jit_block_t block)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]