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-rules-x86.sel


From: Aleksey Demakov
Subject: [dotgnu-pnet-commits] libjit ./ChangeLog jit/jit-rules-x86.sel
Date: Sun, 12 Feb 2006 13:55:09 +0000

CVSROOT:        /sources/dotgnu-pnet
Module name:    libjit
Branch:         
Changes by:     Aleksey Demakov <address@hidden>        06/02/12 13:55:09

Modified files:
        .              : ChangeLog 
        jit            : jit-rules-x86.sel 

Log message:
        Fixed JIT_OP_CALL_FINALLY

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/libjit/ChangeLog.diff?tr1=1.199&tr2=1.200&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/libjit/jit/jit-rules-x86.sel.diff?tr1=1.40&tr2=1.41&r1=text&r2=text

Patches:
Index: libjit/ChangeLog
diff -u libjit/ChangeLog:1.199 libjit/ChangeLog:1.200
--- libjit/ChangeLog:1.199      Fri Feb 10 14:00:39 2006
+++ libjit/ChangeLog    Sun Feb 12 13:55:09 2006
@@ -1,10 +1,14 @@
+2006-02-12  Aleksey Demakov  <address@hidden>
+
+       * jit/jit-rules-x86.sel: fix JIT_OP_CALL_FINALLY.
+
 2006-02-10  Aleksey Demakov  <address@hidden>
 
        * jit/jit-bitset.c: 
        * jit/jit-bitset.h: 
        * jit/jit-cfg.c:
-       * jit/jit-cfg.h: initial code for a more precise liveness analyses
-       based on the control flow graph.
+       * jit/jit-cfg.h: initial code drop for a more precise liveness
+       analysis based on control flow graph.
 
 2006-02-04  Aleksey Demakov  <address@hidden>
 
Index: libjit/jit/jit-rules-x86.sel
diff -u libjit/jit/jit-rules-x86.sel:1.40 libjit/jit/jit-rules-x86.sel:1.41
--- libjit/jit/jit-rules-x86.sel:1.40   Fri Feb  3 18:50:14 2006
+++ libjit/jit/jit-rules-x86.sel        Sun Feb 12 13:55:09 2006
@@ -1879,7 +1879,23 @@
 
 JIT_OP_CALL_FINALLY: spill_before
        [] -> {
-               inst = output_branch(func, inst, 0xE8 /* call */, insn);
+               jit_block_t block;
+
+               block = jit_block_from_label(func, (jit_label_t)(insn->dest));
+               if(!block)
+               {
+                       return;
+               }
+
+               if(block->address)
+               {
+                       x86_call_code(inst, block->address);
+               }
+               else
+               {
+                       x86_call_imm(inst, block->fixup_list);
+                       block->fixup_list = (void *)(inst - 4);
+               }
        }
 
 JIT_OP_ENTER_FILTER: manual




reply via email to

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