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-interp.c


From: Aleksey Demakov
Subject: [dotgnu-pnet-commits] libjit ChangeLog jit/jit-interp.c
Date: Sun, 12 Oct 2008 17:06:36 +0000

CVSROOT:        /sources/dotgnu-pnet
Module name:    libjit
Changes by:     Aleksey Demakov <avd>   08/10/12 17:06:36

Modified files:
        .              : ChangeLog 
        jit            : jit-interp.c 

Log message:
        fix exception handling in interpreter

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libjit/ChangeLog?cvsroot=dotgnu-pnet&r1=1.390&r2=1.391
http://cvs.savannah.gnu.org/viewcvs/libjit/jit/jit-interp.c?cvsroot=dotgnu-pnet&r1=1.24&r2=1.25

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/dotgnu-pnet/libjit/ChangeLog,v
retrieving revision 1.390
retrieving revision 1.391
diff -u -b -r1.390 -r1.391
--- ChangeLog   12 Oct 2008 16:54:23 -0000      1.390
+++ ChangeLog   12 Oct 2008 17:06:35 -0000      1.391
@@ -2,6 +2,9 @@
 
        * jit/jit-unwind.c: fix typos.
 
+       * jit/jit-interp.c (_jit_run_function): adjust exception_pc if
+       exception is generated by a previous instruction.
+
 2008-10-05  Aleksey Demakov  <address@hidden>
 
        * jit/jit-interp.c (_jit_run_function): fix implementation of the

Index: jit/jit-interp.c
===================================================================
RCS file: /sources/dotgnu-pnet/libjit/jit/jit-interp.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- jit/jit-interp.c    5 Oct 2008 15:34:14 -0000       1.24
+++ jit/jit-interp.c    12 Oct 2008 17:06:36 -0000      1.25
@@ -343,6 +343,7 @@
                {
                        /* An exception has been thrown by lower-level code */
                        exception_object = jit_exception_get_last_and_clear();
+                       exception_pc = pc - 1;
                        goto handle_exception;
                }
        }
@@ -3620,8 +3621,8 @@
                {
                        /* Throw an exception, which may be handled in this 
function */
                        exception_object = VM_R1_PTR;
-               handle_exception:
                        exception_pc = pc;
+               handle_exception:
                        tempptr = jit_function_from_pc(func->func->context, pc, 
&handler);
                        if(tempptr == func->func && handler != 0)
                        {
@@ -4058,6 +4059,7 @@
                                if(setjmp(jbuf->buf))
                                {
                                        exception_object = 
jit_exception_get_last_and_clear();
+                                       exception_pc = pc - 1;
                                        goto handle_exception;
                                }
                        }




reply via email to

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