[Top][All Lists]
[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);
}
- [dotgnu-pnet-commits] pnet ./ChangeLog engine/jitc_obj.c,
Klaus Treichel <=