From c21cac5c36c360cb94cac09aa67d00547b579394 Mon Sep 17 00:00:00 2001 From: Zoltan Varga Date: Sat, 27 Jan 2007 16:17:52 +0000 Subject: [PATCH] 2007-01-27 Zoltan Varga * mini-amd64.c (peephole_pass): Remove optimizations which omit a narrowing. Fixes #80622. * iltests.il: Add new regresssion test. svn path=/trunk/mono/; revision=71791 --- mono/mini/ChangeLog | 6 ++++++ mono/mini/iltests.il | 27 +++++++++++++++++++++++++++ mono/mini/mini-amd64.c | 2 -- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/mono/mini/ChangeLog b/mono/mini/ChangeLog index b419e76e3d9..73cafb2216b 100644 --- a/mono/mini/ChangeLog +++ b/mono/mini/ChangeLog @@ -1,3 +1,9 @@ +2007-01-27 Zoltan Varga + + * mini-amd64.c (peephole_pass): Remove optimizations which omit a + narrowing. Fixes #80622. + + * iltests.il: Add new regresssion test. Fri Jan 26 18:31:45 CET 2007 Paolo Molaro diff --git a/mono/mini/iltests.il b/mono/mini/iltests.il index 0a98aa8ceb9..a23b749a4e1 100644 --- a/mono/mini/iltests.il +++ b/mono/mini/iltests.il @@ -1192,4 +1192,31 @@ COND: ldloc.0 IL_0049: ret } // end of method Tests::test_5_float_branch_nan + .method private static hidebysig + default void regress_80622_inner (object x) cil managed + { + .locals (unsigned int8 i) + // Method begins at RVA 0x2050 + // Code size 14 (0xe) + .maxstack 8 + IL_1000: ldarg.0 + IL_1001: unbox unsigned int8 + IL_1006: ldobj unsigned int8 + IL_000b: conv.ovf.i4.un + IL_000c: pop + IL_000d: ret + } + + // method line 2 + .method private static hidebysig + default int32 test_0_regress_80622 () cil managed + { + .maxstack 8 + IL_0000: ldc.i4 255 + IL_0005: box unsigned int8 + IL_000a: call void class Tests::regress_80622_inner (object) + ldc.i4.0 + IL_000f: ret + } + } diff --git a/mono/mini/mini-amd64.c b/mono/mini/mini-amd64.c index 7b3b9be54a4..0c08103c1a7 100644 --- a/mono/mini/mini-amd64.c +++ b/mono/mini/mini-amd64.c @@ -1691,7 +1691,6 @@ peephole_pass (MonoCompile *cfg, MonoBasicBlock *bb) #endif } break; - case OP_LOADU1_MEMBASE: case OP_LOADI1_MEMBASE: /* * Note: if reg1 = reg2 the load op is removed @@ -1716,7 +1715,6 @@ peephole_pass (MonoCompile *cfg, MonoBasicBlock *bb) } } break; - case OP_LOADU2_MEMBASE: case OP_LOADI2_MEMBASE: /* * Note: if reg1 = reg2 the load op is removed -- 2.25.1