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

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

[dotgnu-pnet-commits] [SCM] DotGNU Portable.NET engine, compilers and to


From: Klaus Treichel
Subject: [dotgnu-pnet-commits] [SCM] DotGNU Portable.NET engine, compilers and tools (pnet) branch, master, updated. fab64f5929cd06894aebca178fbeba2aba85ac82
Date: Tue, 08 Sep 2009 14:32:20 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "DotGNU Portable.NET engine, compilers and tools (pnet)".

The branch, master has been updated
       via  fab64f5929cd06894aebca178fbeba2aba85ac82 (commit)
      from  6f7a4aaef216dd887992502f386c4e2cbd715173 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit/pnet.git/commit/?id=fab64f5929cd06894aebca178fbeba2aba85ac82

commit fab64f5929cd06894aebca178fbeba2aba85ac82
Author: Klaus Treichel <address@hidden>
Date:   Tue Sep 8 16:31:57 2009 +0200

    Fix interrupt based exception handling for x86.

diff --git a/ChangeLog b/ChangeLog
index 4fa51a7..b0671c1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,8 @@
 
        * engine/cvm.c: Add support for restoring the interpreter state after
        returnining to the interpreter from a longjmp for X86_64.
+       Change restoring the interpreter register variables after returning to
+       the interpreter from a lngjmp for x86.
 
        * engine/engine.h: Add x86_64 to the platforms that support interrupt
        based exception handling.
diff --git a/engine/cvm.c b/engine/cvm.c
index e88d7b5..d56aefd 100644
--- a/engine/cvm.c
+++ b/engine/cvm.c
@@ -239,16 +239,9 @@ extern     "C" {
                #define INTERRUPT_RESTORE_FROM_THREAD() \
                        do \
                        { \
-                               volatile int tempreg; \
-                               tempreg = thread->interruptContext.Ebx; \
-                               __asm__ __volatile__ \
-                               ( "mov %0, %%ebx;" : : "m"(tempreg) ); \
-                               tempreg = thread->interruptContext.Edi; \
-                               __asm__ __volatile__ \
-                               ( "mov %0, %%edi;" : : "m"(tempreg) ); \
-                               tempreg = thread->interruptContext.Esi; \
-                               __asm__ __volatile__ \
-                               ( "mov %0, %%esi;" : : "m"(tempreg) ); \
+                               pc = (unsigned char 
*)thread->interruptContext.Esi; \
+                               stacktop = (CVMWord 
*)thread->interruptContext.Edi; \
+                               frame = (CVMWord 
*)thread->interruptContext.Ebx; \
                        } \
                        while (0);
        #elif defined(IL_INTERRUPT_HAVE_X86_64_CONTEXT) && 
defined(REGISTER_ASM_X86_64)

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog    |    2 ++
 engine/cvm.c |   13 +++----------
 2 files changed, 5 insertions(+), 10 deletions(-)


hooks/post-receive
-- 
DotGNU Portable.NET engine, compilers and tools (pnet)




reply via email to

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