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_setup.c engine/jit...


From: Klaus Treichel
Subject: [dotgnu-pnet-commits] pnet ./ChangeLog engine/jitc_setup.c engine/jit...
Date: Sat, 31 Dec 2005 14:09:19 +0000

CVSROOT:        /cvsroot/dotgnu-pnet
Module name:    pnet
Branch:         
Changes by:     Klaus Treichel <address@hidden> 05/12/31 14:09:19

Modified files:
        .              : ChangeLog 
        engine         : jitc_setup.c jitc_var.c 

Log message:
        Reset labellist in jitcoder_finish and add the rest of the opcodes in 
jitc_var.c

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/ChangeLog.diff?tr1=1.3264&tr2=1.3265&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/jitc_setup.c.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/jitc_var.c.diff?tr1=1.2&tr2=1.3&r1=text&r2=text

Patches:
Index: pnet/ChangeLog
diff -u pnet/ChangeLog:1.3264 pnet/ChangeLog:1.3265
--- pnet/ChangeLog:1.3264       Sat Dec 31 10:25:39 2005
+++ pnet/ChangeLog      Sat Dec 31 14:09:19 2005
@@ -1,3 +1,9 @@
+2005-12-31  Klaus Treichel  <address@hidden>
+
+       * engine/jitc_setup.c: Reset the labellist in ILJITCoder_Finish.
+
+       * engine/jitc_var.c: Implement the rest of the instructions.
+
 2005-12-31  Kirill Kononenko  <address@hidden>
 
        * engine/jitc_arith.c: Implement first version of the arithmetic 
functions.
Index: pnet/engine/jitc_setup.c
diff -u pnet/engine/jitc_setup.c:1.3 pnet/engine/jitc_setup.c:1.4
--- pnet/engine/jitc_setup.c:1.3        Thu Dec 29 15:56:52 2005
+++ pnet/engine/jitc_setup.c    Sat Dec 31 14:09:19 2005
@@ -152,6 +152,20 @@
  */
 static int JITCoder_Finish(ILCoder *_coder)
 {
+       ILJITCoder *jitCoder = ((ILJITCoder *)_coder);
+
+       /* Clear the label pool */
+       ILMemPoolClear(&(jitCoder->labelPool));
+       jitCoder->labelList = 0;
+       if(jitCoder->labelOutOfMemory)
+       {
+               /* We ran out of memory trying to allocate labels */
+               jitCoder->labelOutOfMemory = 0;
+
+               return IL_CODER_END_TOO_BIG;
+       }
+       jitCoder->labelOutOfMemory = 0;
+
        return IL_CODER_END_OK;
 }
 
Index: pnet/engine/jitc_var.c
diff -u pnet/engine/jitc_var.c:1.2 pnet/engine/jitc_var.c:1.3
--- pnet/engine/jitc_var.c:1.2  Fri Dec 30 20:06:58 2005
+++ pnet/engine/jitc_var.c      Sat Dec 31 14:09:19 2005
@@ -103,9 +103,12 @@
 static void JITCoder_AddrOfArg(ILCoder *coder, ILUInt32 argNum)
 {
        ILJITCoder *jitCoder = _ILCoderToILJITCoder(coder);
+       /* We need argNum + 1 because the ILExecThread is added as param 0 */
+       ILJitValue argValue = jit_value_get_param(jitCoder->jitFunction, argNum 
+ 1);
 
-
-
+       jitCoder->jitStack[jitCoder->stackTop] = 
+                                       
jit_insn_address_of(jitCoder->jitFunction, argValue);
+       JITC_ADJUST(jitCoder, 1);
 }
 
 /*
@@ -114,7 +117,11 @@
 static void JITCoder_AddrOfLocal(ILCoder *coder, ILUInt32 localNum)
 {
        ILJITCoder *jitCoder = _ILCoderToILJITCoder(coder);
+       ILJitValue localValue = jitCoder->jitLocals[localNum];
 
+       jitCoder->jitStack[jitCoder->stackTop] = 
+                                       
jit_insn_address_of(jitCoder->jitFunction, localValue);
+       JITC_ADJUST(jitCoder, 1);
 }
 
 /*
@@ -124,6 +131,9 @@
 {
        ILJITCoder *jitCoder = _ILCoderToILJITCoder(coder);
 
+       jitCoder->jitStack[jitCoder->stackTop - 1] = 
+                                       jit_insn_alloca(jitCoder->jitFunction,
+                                                                       
jitCoder->jitStack[jitCoder->stackTop - 1]);
 }
 
 #endif /* IL_JITC_CODE */




reply via email to

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