r142259 - trunk/mono/mono/mini

0 views
Skip to first unread message

Zoltan Varga (vargaz AT gmail.com)

unread,
Sep 19, 2009, 2:48:21 PM9/19/09
to mono-p...@lists.ximian.com, ximian....@gmail.com, mono-svn-patche...@googlegroups.com
Author: zoltan
Date: 2009-09-19 14:48:20 -0400 (Sat, 19 Sep 2009)
New Revision: 142259

Modified:
trunk/mono/mono/mini/ChangeLog
trunk/mono/mono/mini/iltests.il.in
trunk/mono/mono/mini/method-to-ir.c
Log:
2009-09-19 Zoltan Varga <var...@gmail.com>

* method-to-ir.c: Applied patch from Rodrigo Kumpera. Allow an i8 argument
to NEWARR.

* iltests.il.in: Add a new test.

Modified: trunk/mono/mono/mini/ChangeLog
===================================================================
--- trunk/mono/mono/mini/ChangeLog 2009-09-19 17:34:16 UTC (rev 142258)
+++ trunk/mono/mono/mini/ChangeLog 2009-09-19 18:48:20 UTC (rev 142259)
@@ -1,3 +1,10 @@
+2009-09-19 Zoltan Varga <var...@gmail.com>
+
+ * method-to-ir.c: Applied patch from Rodrigo Kumpera. Allow an i8 argument
+ to NEWARR.
+
+ * iltests.il.in: Add a new test.
+
2009-09-18 Zoltan Varga <var...@gmail.com>

* aot-compiler.c (add_generic_instances): Add more instances of

Modified: trunk/mono/mono/mini/iltests.il.in
===================================================================
--- trunk/mono/mono/mini/iltests.il.in 2009-09-19 17:34:16 UTC (rev 142258)
+++ trunk/mono/mono/mini/iltests.il.in 2009-09-19 18:48:20 UTC (rev 142259)
@@ -2354,5 +2354,14 @@
ldc.i4.0
ret
}
-
+
+ .method public static default int32 test_0_newarr_i8 () cil managed
+ {
+ ldc.i4 1000
+ conv.i8
+ newarr [mscorlib]System.Boolean
+ pop
+ ldc.i4 0
+ ret
+ }
}

Modified: trunk/mono/mono/mini/method-to-ir.c
===================================================================
--- trunk/mono/mono/mini/method-to-ir.c 2009-09-19 17:34:16 UTC (rev 142258)
+++ trunk/mono/mono/mini/method-to-ir.c 2009-09-19 18:48:20 UTC (rev 142259)
@@ -8425,6 +8425,15 @@
if (cfg->generic_sharing_context)
context_used = mono_class_check_context_used (klass);

+ if (sp [0]->type == STACK_I8 || (SIZEOF_VOID_P == 8 && sp [0]->type == STACK_PTR)) {
+ MONO_INST_NEW (cfg, ins, OP_LCONV_TO_I4);
+ ins->sreg1 = sp [0]->dreg;
+ ins->type = STACK_I4;
+ ins->dreg = alloc_ireg (cfg);
+ MONO_ADD_INS (cfg->cbb, ins);
+ *sp = ins;
+ }
+
if (context_used) {
MonoInst *args [2];

Reply all
Reply to author
Forward
0 new messages