* mini.c (type_from_op): Convert CEE_CONV_U to OP_LCONV_TO_U when the argument is
a pointer on 64 bit systems. Fixes #80190.
* iltests.il: Add new regression test.
svn path=/trunk/mono/; revision=73324
+2007-02-22 Zoltan Varga <vargaz@gmail.com>
+
+ * mini.c (type_from_op): Convert CEE_CONV_U to OP_LCONV_TO_U when the argument is
+ a pointer on 64 bit systems. Fixes #80190.
+
+ * iltests.il: Add new regression test.
Tue Feb 20 11:33:28 CET 2007 Paolo Molaro <lupus@ximian.com>
IL_000f: ret
}
+ .method private static default int32 test_0_regresss_80190 () cil managed
+ {
+ .maxstack 2
+ .locals init (int32 V_0,
+ int32* V_1)
+ IL_0000: nop
+ IL_0001: nop
+ IL_0002: ldloca.s V_0
+ IL_0004: conv.u
+ IL_0005: stloc.1
+ IL_0006: ldloc.1
+ IL_0007: ldc.i4.3
+ IL_0008: stind.i4
+ IL_0009: nop
+ ldc.i4.0
+ ret
+ }
+
}
ins->type = STACK_PTR;
switch (ins->inst_i0->type) {
case STACK_I4:
+ break;
case STACK_PTR:
case STACK_MP:
+#if SIZEOF_VOID_P == 8
+ ins->opcode = OP_LCONV_TO_U;
+#endif
break;
case STACK_I8:
ins->opcode = OP_LCONV_TO_U;