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

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

[dotgnu-pnet-commits] pnet ChangeLog engine/jitc_except.c engine/lib_...


From: Klaus Treichel
Subject: [dotgnu-pnet-commits] pnet ChangeLog engine/jitc_except.c engine/lib_...
Date: Wed, 24 Dec 2008 11:29:33 +0000

CVSROOT:        /cvsroot/dotgnu-pnet
Module name:    pnet
Changes by:     Klaus Treichel <ktreichel>      08/12/24 11:29:33

Modified files:
        .              : ChangeLog 
        engine         : jitc_except.c lib_helpers.c verify.c 
                         verify_call.c 
        include        : il_coder.h 

Log message:
        Fix a compiler warning in enngine/lib_helpers.c.
        Fix a segfault with jit if built without thread as first argument to
        function calls.
        Add inlining of 
System.Runtime.CompilerServices.RuntimeHelpers.OffsetToStringData.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pnet/ChangeLog?cvsroot=dotgnu-pnet&r1=1.3594&r2=1.3595
http://cvs.savannah.gnu.org/viewcvs/pnet/engine/jitc_except.c?cvsroot=dotgnu-pnet&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/pnet/engine/lib_helpers.c?cvsroot=dotgnu-pnet&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/pnet/engine/verify.c?cvsroot=dotgnu-pnet&r1=1.55&r2=1.56
http://cvs.savannah.gnu.org/viewcvs/pnet/engine/verify_call.c?cvsroot=dotgnu-pnet&r1=1.61&r2=1.62
http://cvs.savannah.gnu.org/viewcvs/pnet/include/il_coder.h?cvsroot=dotgnu-pnet&r1=1.59&r2=1.60

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/ChangeLog,v
retrieving revision 1.3594
retrieving revision 1.3595
diff -u -b -r1.3594 -r1.3595
--- ChangeLog   23 Dec 2008 13:31:14 -0000      1.3594
+++ ChangeLog   24 Dec 2008 11:29:32 -0000      1.3595
@@ -1,3 +1,17 @@
+2008-12-24  Klaus Treichel  <address@hidden>
+
+       * engine/lib_helpers.c (_IL_RuntimeHelpers_InternalOffsetToStringData):
+       Fix compiler warning on 64bit archs.
+
+       * engine/jitc_except.c (JITCoder_TryHandlerStart): Make sure the current
+       ILExecThread is available on entry of a catch block if built without
+       the thread in the signature.
+
+       * engine/verify.c: include lib_defs.h
+
+       * engine/verify_call.c, include/il_coder.h: Add support for inlining of
+       OffsetToStringData in System.Runtime.CompilerServices.RuntimeHelpers.
+
 2008-12-23  Klaus Treichel  <address@hidden>
 
        * codegen/cg_cast.tc: Allow cast from managed pointer to unmanaged

Index: engine/jitc_except.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/engine/jitc_except.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- engine/jitc_except.c        11 Feb 2007 14:34:32 -0000      1.16
+++ engine/jitc_except.c        24 Dec 2008 11:29:32 -0000      1.17
@@ -464,10 +464,24 @@
 
        if(!(jitCoder->isInCatcher))
        {
+#ifndef IL_JIT_THREAD_IN_SIGNATURE
+               ILJitValue thread;
+#endif
+
                /* Tell libjit that we are in the catcher. */
                jit_insn_start_catcher(jitCoder->jitFunction);
                
                jitCoder->isInCatcher = 1;
+
+#ifndef IL_JIT_THREAD_IN_SIGNATURE
+               /* 
+                * We have to make sure the current thread is available at the 
start
+                * of a catch block.
+                * This is a NOP if the thread was loaded during execution of
+                * 'normal' code.
+                */
+               thread = _ILJitCoderGetThread(jitCoder);
+#endif
        }
        else
        {

Index: engine/lib_helpers.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/engine/lib_helpers.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- engine/lib_helpers.c        16 Jan 2007 06:46:08 -0000      1.14
+++ engine/lib_helpers.c        24 Dec 2008 11:29:32 -0000      1.15
@@ -277,7 +277,7 @@
 
 ILInt32 _IL_RuntimeHelpers_InternalOffsetToStringData(ILExecThread *thread)
 {
-       return (ILInt32)(StringToBuffer(0));
+       return (ILInt32)(ILNativeInt)(StringToBuffer(0));
 }
 
 ILObject *_IL_RuntimeHelpers_GetObjectValue(ILExecThread *_thread,

Index: engine/verify.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/engine/verify.c,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -b -r1.55 -r1.56
--- engine/verify.c     24 Aug 2008 17:45:32 -0000      1.55
+++ engine/verify.c     24 Dec 2008 11:29:32 -0000      1.56
@@ -19,6 +19,7 @@
  */
 
 #include "engine.h"
+#include "lib_defs.h"
 #include "il_coder.h"
 #include "il_opcodes.h"
 #include "il_align.h"

Index: engine/verify_call.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/engine/verify_call.c,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -b -r1.61 -r1.62
--- engine/verify_call.c        24 Aug 2008 17:45:33 -0000      1.61
+++ engine/verify_call.c        24 Dec 2008 11:29:32 -0000      1.62
@@ -1297,6 +1297,9 @@
        {"Array", "System", "Clear", "(oSystem.Array;ii)V",
         IL_INLINEMETHOD_ARRAY_CLEAR_AI4I4},
 
+       {"RuntimeHelpers", "System.Runtime.CompilerServices",
+        "get_OffsetToStringData", "()i", IL_INLINEMETHOD_OFFSETTOSTRINGDATA},
+
        {"Math", "System", "Abs", "(i)i", IL_INLINEMETHOD_ABS_I4},
        {"Math", "System", "Max", "(ii)i", IL_INLINEMETHOD_MAX_I4},
        {"Math", "System", "Min", "(ii)i", IL_INLINEMETHOD_MIN_I4},
@@ -1748,7 +1751,29 @@
                                                break;
                                        }
 
-                                       if (inlineType != -1
+                                       if (inlineType == 
IL_INLINEMETHOD_OFFSETTOSTRINGDATA)
+                                       {
+                                               ILInt32 offset = 
(ILInt32)(ILNativeInt)(StringToBuffer(0));
+
+                                               ILCoderConstant(coder, 
IL_OP_LDC_I4, (unsigned char *)&offset);
+                                               stack[stackSize].engineType = 
ILEngineType_I4;
+                                               stack[stackSize].typeInfo = 0;
+
+#if !defined(IL_CONFIG_REDUCE_CODE) && !defined(IL_WITHOUT_TOOLS)
+                                               if (coderFlags & 
IL_CODER_FLAG_STATS)
+                                               {
+                                                       
ILMutexLock(globalTraceMutex);
+                                                       fprintf(stdout,
+                                                               "Inlining: 
%s.%s at %s.%s\n", 
+                                                                       
ILClass_Name(ILMethod_Owner(methodInfo)),
+                                                                       
ILMethod_Name(methodInfo),
+                                                                       
ILClass_Name(ILMethod_Owner(method)),
+                                                                       
ILMethod_Name(method));
+                                                       
ILMutexUnlock(globalTraceMutex);
+                                               }
+#endif
+                                       }
+                                       else if (inlineType != -1
                                                && ILCoderCallInlineable(coder, 
inlineType,
                                                                                
                 methodInfo, elementSize))
                                        {

Index: include/il_coder.h
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/include/il_coder.h,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -b -r1.59 -r1.60
--- include/il_coder.h  24 Aug 2008 17:45:33 -0000      1.59
+++ include/il_coder.h  24 Dec 2008 11:29:33 -0000      1.60
@@ -150,6 +150,7 @@
 #define IL_INLINEMETHOD_ARRAY_COPY_AAI4                49
 #define IL_INLINEMETHOD_ARRAY_COPY_AI4AI4I4    50
 #define IL_INLINEMETHOD_ARRAY_CLEAR_AI4I4      51
+#define IL_INLINEMETHOD_OFFSETTOSTRINGDATA     52
 
 /*
  * Return values for "ILCoderFinish".




reply via email to

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