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


From: Klaus Treichel
Subject: [dotgnu-pnet-commits] pnet ./ChangeLog engine/jitc_obj.c
Date: Thu, 12 Jan 2006 20:23:08 +0000

CVSROOT:        /cvsroot/dotgnu-pnet
Module name:    pnet
Branch:         
Changes by:     Klaus Treichel <address@hidden> 06/01/12 20:23:07

Modified files:
        .              : ChangeLog 
        engine         : jitc_obj.c 

Log message:
        Fix JITCoder_CastClass.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/ChangeLog.diff?tr1=1.3273&tr2=1.3274&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/dotgnu-pnet/pnet/engine/jitc_obj.c.diff?tr1=1.3&tr2=1.4&r1=text&r2=text

Patches:
Index: pnet/ChangeLog
diff -u pnet/ChangeLog:1.3273 pnet/ChangeLog:1.3274
--- pnet/ChangeLog:1.3273       Mon Jan  9 20:49:46 2006
+++ pnet/ChangeLog      Thu Jan 12 20:23:07 2006
@@ -1,3 +1,7 @@
+2006-01-12  Klaus Treichel  <address@hidden>
+
+       * engine/jitc_obj.c: Fix JITCoder_CastClass.
+
 2006-01-09  Klaus Treichel  <address@hidden>
 
        * engine/engine.h: Add jitVtable (vtable pointers for jit functions) and
Index: pnet/engine/jitc_obj.c
diff -u pnet/engine/jitc_obj.c:1.3 pnet/engine/jitc_obj.c:1.4
--- pnet/engine/jitc_obj.c:1.3  Mon Jan  9 20:49:47 2006
+++ pnet/engine/jitc_obj.c      Thu Jan 12 20:23:07 2006
@@ -82,19 +82,6 @@
                                                                                
   ILRuntimeClassImplements,
                                                                                
   _ILJitSignature_ILRuntimeClassImplements,
                                                                                
   args, 2, 0);
-               jit_insn_branch_if(jitCoder->jitFunction, returnValue, &label);
-               if(throwException)
-               {
-                       /* TODO: Throw an InvalidCastException here. */
-               }
-               else
-               {
-                       ILJitValue nullPointer = 
-                                       
jit_value_create_nint_constant(jitCoder->jitFunction,
-                                                                               
                   _IL_JIT_TYPE_VPTR,
-                                                                               
                   (jit_nint)0);
-                       jitCoder->jitStack[jitCoder->stackTop - 1] = 
nullPointer;
-               }
        }
        else
        {
@@ -105,20 +92,28 @@
                                                                                
   ILRuntimeCanCastClass,
                                                                                
   _ILJitSignature_ILRuntimeCanCastClass,
                                                                                
   args, 3, 0);
+       }
+       if(throwException)
+       {
                jit_insn_branch_if(jitCoder->jitFunction, returnValue, &label);
-               if(throwException)
-               {
-                       /* TODO: Throw an InvalidCastException here. */
-
-               }
-               else
-               {
-                       ILJitValue nullPointer = 
-                                       
jit_value_create_nint_constant(jitCoder->jitFunction,
-                                                                               
                   _IL_JIT_TYPE_VPTR,
-                                                                               
                   (jit_nint)0);
-                       jitCoder->jitStack[jitCoder->stackTop - 1] = 
nullPointer;
-               }
+               /* TODO: Throw an InvalidCastException here. */
+
+       }
+       else
+       {
+               jit_label_t label1 = jit_label_undefined;
+               ILJitValue temp = jit_value_create(jitCoder->jitFunction, 
_IL_JIT_TYPE_VPTR);
+               ILJitValue nullPointer = 
+                               
jit_value_create_nint_constant(jitCoder->jitFunction,
+                                                                               
           _IL_JIT_TYPE_VPTR,
+                                                                               
           (jit_nint)0);
+       
+               jit_insn_branch_if(jitCoder->jitFunction, returnValue, &label1);
+               jit_insn_store(jitCoder->jitFunction, temp, nullPointer);
+               jit_insn_branch(jitCoder->jitFunction, &label);
+               jit_insn_label(jitCoder->jitFunction, &label1);
+               jit_insn_store(jitCoder->jitFunction, temp, 
jitCoder->jitStack[jitCoder->stackTop - 1]);
+               jitCoder->jitStack[jitCoder->stackTop - 1] = temp;
        }
        jit_insn_label(jitCoder->jitFunction, &label);
 }




reply via email to

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