diff --git a/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj b/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj index 229eea694..2dbbf54e8 100644 --- a/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj +++ b/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj @@ -37,10 +37,10 @@ - - + + - + diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.cs index 58d674f9d..fce96b064 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.cs @@ -322,9 +322,16 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty if (a == b) { Console.WriteLine(); } +#if ROSLYN + // Roslyn 2.9 started invoking op_Equality even if the source code says 'a != b' + if (!(a == b)) { + Console.WriteLine(); + } +#else if (a != b) { Console.WriteLine(); } +#endif if (a > b) { Console.WriteLine(); } @@ -399,7 +406,12 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty public static void NumberValueBasic(decimal? a, decimal? b) { Console.WriteLine(a == b); +#if ROSLYN + // Roslyn 2.9 started invoking op_Equality even if the source code says 'a != b' + Console.WriteLine(!(a == b)); +#else Console.WriteLine(a != b); +#endif Console.WriteLine(a > b); Console.WriteLine(!(a > b)); diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.opt.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.opt.roslyn.il index 12a45e909..fafe6bca1 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.opt.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.opt.roslyn.il @@ -39,8 +39,8 @@ .method public hidebysig static void BoolBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 96 (0x60) - .maxstack 2 + // Code size 89 (0x59) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1) IL_0000: ldarg.0 @@ -51,49 +51,41 @@ IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloca.s V_1 IL_000d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0012: beq.s IL_0017 - - IL_0014: ldc.i4.0 - IL_0015: br.s IL_0027 - - IL_0017: ldloca.s V_0 - IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001e: ldloca.s V_1 - IL_0020: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0025: ceq - IL_0027: brfalse.s IL_002e - - IL_0029: call void [mscorlib]System.Console::WriteLine() - IL_002e: ldarg.0 - IL_002f: stloc.1 - IL_0030: ldarg.1 - IL_0031: stloc.0 - IL_0032: ldloca.s V_1 - IL_0034: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0039: ldloca.s V_0 - IL_003b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0040: beq.s IL_0045 - - IL_0042: ldc.i4.1 - IL_0043: br.s IL_0058 - - IL_0045: ldloca.s V_1 - IL_0047: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_004c: ldloca.s V_0 - IL_004e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0053: ceq - IL_0055: ldc.i4.0 - IL_0056: ceq - IL_0058: brfalse.s IL_005f + IL_0012: ceq + IL_0014: ldloca.s V_0 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: ldloca.s V_1 + IL_001d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0022: ceq + IL_0024: and + IL_0025: brfalse.s IL_002c - IL_005a: call void [mscorlib]System.Console::WriteLine() - IL_005f: ret + IL_0027: call void [mscorlib]System.Console::WriteLine() + IL_002c: ldarg.0 + IL_002d: stloc.1 + IL_002e: ldarg.1 + IL_002f: stloc.0 + IL_0030: ldloca.s V_1 + IL_0032: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0037: ldloca.s V_0 + IL_0039: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003e: ceq + IL_0040: ldloca.s V_1 + IL_0042: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0047: ldloca.s V_0 + IL_0049: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004e: ceq + IL_0050: and + IL_0051: brtrue.s IL_0058 + + IL_0053: call void [mscorlib]System.Console::WriteLine() + IL_0058: ret } // end of method LiftedOperators::BoolBasic .method public hidebysig static void BoolComplex(valuetype [mscorlib]System.Nullable`1 a, class [mscorlib]System.Func`1 x) cil managed { - // Code size 147 (0x93) + // Code size 133 (0x85) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, bool V_1) @@ -105,76 +97,60 @@ IL_0009: ldloca.s V_0 IL_000b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0010: ldloc.1 - IL_0011: beq.s IL_0016 - - IL_0013: ldc.i4.0 - IL_0014: br.s IL_001d - - IL_0016: ldloca.s V_0 - IL_0018: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001d: brfalse.s IL_0024 - - IL_001f: call void [mscorlib]System.Console::WriteLine() - IL_0024: ldarg.0 - IL_0025: stloc.0 - IL_0026: ldarg.1 - IL_0027: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_002c: stloc.1 - IL_002d: ldloca.s V_0 - IL_002f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0034: ldloc.1 - IL_0035: beq.s IL_003a - - IL_0037: ldc.i4.1 - IL_0038: br.s IL_0044 - - IL_003a: ldloca.s V_0 - IL_003c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0041: ldc.i4.0 - IL_0042: ceq - IL_0044: brfalse.s IL_004b - - IL_0046: call void [mscorlib]System.Console::WriteLine() - IL_004b: ldarg.1 - IL_004c: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0051: ldarg.0 - IL_0052: stloc.0 - IL_0053: ldloca.s V_0 - IL_0055: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_005a: beq.s IL_005f - - IL_005c: ldc.i4.0 - IL_005d: br.s IL_0066 - - IL_005f: ldloca.s V_0 - IL_0061: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0066: brfalse.s IL_006d + IL_0011: ceq + IL_0013: ldloca.s V_0 + IL_0015: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001a: and + IL_001b: brfalse.s IL_0022 - IL_0068: call void [mscorlib]System.Console::WriteLine() - IL_006d: ldarg.1 - IL_006e: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0073: ldarg.0 - IL_0074: stloc.0 + IL_001d: call void [mscorlib]System.Console::WriteLine() + IL_0022: ldarg.0 + IL_0023: stloc.0 + IL_0024: ldarg.1 + IL_0025: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_002a: stloc.1 + IL_002b: ldloca.s V_0 + IL_002d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0032: ldloc.1 + IL_0033: ceq + IL_0035: ldloca.s V_0 + IL_0037: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003c: and + IL_003d: brtrue.s IL_0044 + + IL_003f: call void [mscorlib]System.Console::WriteLine() + IL_0044: ldarg.1 + IL_0045: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_004a: ldarg.0 + IL_004b: stloc.0 + IL_004c: ldloca.s V_0 + IL_004e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0053: ceq + IL_0055: ldloca.s V_0 + IL_0057: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_005c: and + IL_005d: brfalse.s IL_0064 + + IL_005f: call void [mscorlib]System.Console::WriteLine() + IL_0064: ldarg.1 + IL_0065: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_006a: ldarg.0 + IL_006b: stloc.0 + IL_006c: ldloca.s V_0 + IL_006e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0073: ceq IL_0075: ldloca.s V_0 - IL_0077: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007c: beq.s IL_0081 - - IL_007e: ldc.i4.1 - IL_007f: br.s IL_008b + IL_0077: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007c: and + IL_007d: brtrue.s IL_0084 - IL_0081: ldloca.s V_0 - IL_0083: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0088: ldc.i4.0 - IL_0089: ceq - IL_008b: brfalse.s IL_0092 - - IL_008d: call void [mscorlib]System.Console::WriteLine() - IL_0092: ret + IL_007f: call void [mscorlib]System.Console::WriteLine() + IL_0084: ret } // end of method LiftedOperators::BoolComplex .method public hidebysig static void BoolConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 187 (0xbb) + // Code size 173 (0xad) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, bool V_1) @@ -185,107 +161,91 @@ IL_0004: ldloca.s V_0 IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloc.1 - IL_000c: beq.s IL_0011 - - IL_000e: ldc.i4.0 - IL_000f: br.s IL_0018 - - IL_0011: ldloca.s V_0 - IL_0013: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0018: brfalse.s IL_001f - - IL_001a: call void [mscorlib]System.Console::WriteLine() - IL_001f: ldarg.0 - IL_0020: stloc.0 - IL_0021: ldc.i4.1 - IL_0022: stloc.1 - IL_0023: ldloca.s V_0 - IL_0025: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_002a: ldloc.1 - IL_002b: beq.s IL_0030 - - IL_002d: ldc.i4.1 - IL_002e: br.s IL_003a - - IL_0030: ldloca.s V_0 - IL_0032: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0037: ldc.i4.0 - IL_0038: ceq - IL_003a: brfalse.s IL_0041 - - IL_003c: call void [mscorlib]System.Console::WriteLine() - IL_0041: ldarg.0 - IL_0042: stloc.0 - IL_0043: ldc.i4.0 - IL_0044: stloc.1 - IL_0045: ldloca.s V_0 - IL_0047: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_004c: ldloc.1 - IL_004d: beq.s IL_0052 - - IL_004f: ldc.i4.0 - IL_0050: br.s IL_0059 - - IL_0052: ldloca.s V_0 - IL_0054: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0059: brfalse.s IL_0060 - - IL_005b: call void [mscorlib]System.Console::WriteLine() - IL_0060: ldarg.0 - IL_0061: stloc.0 - IL_0062: ldc.i4.0 - IL_0063: stloc.1 - IL_0064: ldloca.s V_0 - IL_0066: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_006b: ldloc.1 - IL_006c: beq.s IL_0071 - - IL_006e: ldc.i4.1 - IL_006f: br.s IL_007b + IL_000c: ceq + IL_000e: ldloca.s V_0 + IL_0010: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0015: and + IL_0016: brfalse.s IL_001d - IL_0071: ldloca.s V_0 - IL_0073: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0078: ldc.i4.0 - IL_0079: ceq - IL_007b: brfalse.s IL_0082 + IL_0018: call void [mscorlib]System.Console::WriteLine() + IL_001d: ldarg.0 + IL_001e: stloc.0 + IL_001f: ldc.i4.1 + IL_0020: stloc.1 + IL_0021: ldloca.s V_0 + IL_0023: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0028: ldloc.1 + IL_0029: ceq + IL_002b: ldloca.s V_0 + IL_002d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0032: and + IL_0033: brtrue.s IL_003a + + IL_0035: call void [mscorlib]System.Console::WriteLine() + IL_003a: ldarg.0 + IL_003b: stloc.0 + IL_003c: ldc.i4.0 + IL_003d: stloc.1 + IL_003e: ldloca.s V_0 + IL_0040: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0045: ldloc.1 + IL_0046: ceq + IL_0048: ldloca.s V_0 + IL_004a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004f: and + IL_0050: brfalse.s IL_0057 + + IL_0052: call void [mscorlib]System.Console::WriteLine() + IL_0057: ldarg.0 + IL_0058: stloc.0 + IL_0059: ldc.i4.0 + IL_005a: stloc.1 + IL_005b: ldloca.s V_0 + IL_005d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0062: ldloc.1 + IL_0063: ceq + IL_0065: ldloca.s V_0 + IL_0067: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_006c: and + IL_006d: brtrue.s IL_0074 - IL_007d: call void [mscorlib]System.Console::WriteLine() - IL_0082: ldarg.0 - IL_0083: stloc.0 - IL_0084: ldloca.s V_0 - IL_0086: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_008b: brtrue.s IL_0090 + IL_006f: call void [mscorlib]System.Console::WriteLine() + IL_0074: ldarg.0 + IL_0075: stloc.0 + IL_0076: ldloca.s V_0 + IL_0078: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007d: brtrue.s IL_0082 - IL_008d: ldc.i4.1 - IL_008e: br.s IL_0097 + IL_007f: ldc.i4.1 + IL_0080: br.s IL_0089 - IL_0090: ldloca.s V_0 - IL_0092: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0097: brfalse.s IL_009e + IL_0082: ldloca.s V_0 + IL_0084: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0089: brfalse.s IL_0090 - IL_0099: call void [mscorlib]System.Console::WriteLine() - IL_009e: ldarg.0 - IL_009f: stloc.0 - IL_00a0: ldloca.s V_0 - IL_00a2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00a7: brtrue.s IL_00ac + IL_008b: call void [mscorlib]System.Console::WriteLine() + IL_0090: ldarg.0 + IL_0091: stloc.0 + IL_0092: ldloca.s V_0 + IL_0094: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0099: brtrue.s IL_009e - IL_00a9: ldc.i4.0 - IL_00aa: br.s IL_00b3 + IL_009b: ldc.i4.0 + IL_009c: br.s IL_00a5 - IL_00ac: ldloca.s V_0 - IL_00ae: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00b3: brfalse.s IL_00ba + IL_009e: ldloca.s V_0 + IL_00a0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00a5: brfalse.s IL_00ac - IL_00b5: call void [mscorlib]System.Console::WriteLine() - IL_00ba: ret + IL_00a7: call void [mscorlib]System.Console::WriteLine() + IL_00ac: ret } // end of method LiftedOperators::BoolConst .method public hidebysig static void BoolValueBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 444 (0x1bc) - .maxstack 2 + // Code size 440 (0x1b8) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2) @@ -297,208 +257,202 @@ IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloca.s V_1 IL_000d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0012: beq.s IL_0017 - - IL_0014: ldc.i4.0 - IL_0015: br.s IL_0027 + IL_0012: ceq + IL_0014: ldloca.s V_0 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: ldloca.s V_1 + IL_001d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0022: ceq + IL_0024: and + IL_0025: call void [mscorlib]System.Console::WriteLine(bool) + IL_002a: ldarg.0 + IL_002b: stloc.1 + IL_002c: ldarg.1 + IL_002d: stloc.0 + IL_002e: ldloca.s V_1 + IL_0030: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0035: ldloca.s V_0 + IL_0037: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003c: ceq + IL_003e: ldloca.s V_1 + IL_0040: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0045: ldloca.s V_0 + IL_0047: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004c: ceq + IL_004e: and + IL_004f: ldc.i4.0 + IL_0050: ceq + IL_0052: call void [mscorlib]System.Console::WriteLine(bool) + IL_0057: ldarg.0 + IL_0058: stloc.0 + IL_0059: ldarg.1 + IL_005a: stloc.1 + IL_005b: ldloca.s V_0 + IL_005d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0062: brtrue.s IL_0079 - IL_0017: ldloca.s V_0 - IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001e: ldloca.s V_1 - IL_0020: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0025: ceq - IL_0027: call void [mscorlib]System.Console::WriteLine(bool) - IL_002c: ldarg.0 - IL_002d: stloc.1 - IL_002e: ldarg.1 - IL_002f: stloc.0 - IL_0030: ldloca.s V_1 - IL_0032: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0037: ldloca.s V_0 - IL_0039: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_003e: beq.s IL_0043 + IL_0064: ldloca.s V_1 + IL_0066: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_006b: brtrue.s IL_0076 - IL_0040: ldc.i4.1 - IL_0041: br.s IL_0056 + IL_006d: ldloca.s V_0 + IL_006f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0074: brfalse.s IL_0079 + + IL_0076: ldloc.0 + IL_0077: br.s IL_007a + + IL_0079: ldloc.1 + IL_007a: box valuetype [mscorlib]System.Nullable`1 + IL_007f: call void [mscorlib]System.Console::WriteLine(object) + IL_0084: ldarg.0 + IL_0085: stloc.1 + IL_0086: ldarg.1 + IL_0087: stloc.0 + IL_0088: ldloca.s V_1 + IL_008a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_008f: brtrue.s IL_00a6 - IL_0043: ldloca.s V_1 - IL_0045: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_004a: ldloca.s V_0 - IL_004c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0051: ceq - IL_0053: ldc.i4.0 - IL_0054: ceq - IL_0056: call void [mscorlib]System.Console::WriteLine(bool) - IL_005b: ldarg.0 - IL_005c: stloc.0 - IL_005d: ldarg.1 - IL_005e: stloc.1 - IL_005f: ldloca.s V_0 - IL_0061: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0066: brtrue.s IL_007d + IL_0091: ldloca.s V_0 + IL_0093: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0098: brtrue.s IL_00a3 + + IL_009a: ldloca.s V_1 + IL_009c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00a1: brfalse.s IL_00a6 + + IL_00a3: ldloc.0 + IL_00a4: br.s IL_00a7 + + IL_00a6: ldloc.1 + IL_00a7: box valuetype [mscorlib]System.Nullable`1 + IL_00ac: call void [mscorlib]System.Console::WriteLine(object) + IL_00b1: ldarg.0 + IL_00b2: stloc.0 + IL_00b3: ldarg.1 + IL_00b4: stloc.1 + IL_00b5: ldloca.s V_0 + IL_00b7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00bc: ldloca.s V_1 + IL_00be: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00c3: and + IL_00c4: brtrue.s IL_00d1 + + IL_00c6: ldloca.s V_2 + IL_00c8: initobj valuetype [mscorlib]System.Nullable`1 + IL_00ce: ldloc.2 + IL_00cf: br.s IL_00e5 - IL_0068: ldloca.s V_1 - IL_006a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_006f: brtrue.s IL_007a - - IL_0071: ldloca.s V_0 - IL_0073: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0078: brfalse.s IL_007d - - IL_007a: ldloc.0 - IL_007b: br.s IL_007e - - IL_007d: ldloc.1 - IL_007e: box valuetype [mscorlib]System.Nullable`1 - IL_0083: call void [mscorlib]System.Console::WriteLine(object) - IL_0088: ldarg.0 - IL_0089: stloc.1 - IL_008a: ldarg.1 - IL_008b: stloc.0 - IL_008c: ldloca.s V_1 - IL_008e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0093: brtrue.s IL_00aa + IL_00d1: ldloca.s V_0 + IL_00d3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00d8: ldloca.s V_1 + IL_00da: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00df: xor + IL_00e0: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_00e5: box valuetype [mscorlib]System.Nullable`1 + IL_00ea: call void [mscorlib]System.Console::WriteLine(object) + IL_00ef: ldarg.0 + IL_00f0: stloc.1 + IL_00f1: ldloca.s V_1 + IL_00f3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00f8: brtrue.s IL_00fd + + IL_00fa: ldarg.1 + IL_00fb: br.s IL_00fe + + IL_00fd: ldloc.1 + IL_00fe: box valuetype [mscorlib]System.Nullable`1 + IL_0103: call void [mscorlib]System.Console::WriteLine(object) + IL_0108: ldarg.0 + IL_0109: stloc.1 + IL_010a: ldloca.s V_1 + IL_010c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0111: brtrue.s IL_011e - IL_0095: ldloca.s V_0 - IL_0097: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_009c: brtrue.s IL_00a7 - - IL_009e: ldloca.s V_1 - IL_00a0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00a5: brfalse.s IL_00aa - - IL_00a7: ldloc.0 - IL_00a8: br.s IL_00ab - - IL_00aa: ldloc.1 - IL_00ab: box valuetype [mscorlib]System.Nullable`1 - IL_00b0: call void [mscorlib]System.Console::WriteLine(object) - IL_00b5: ldarg.0 - IL_00b6: stloc.0 - IL_00b7: ldarg.1 - IL_00b8: stloc.1 - IL_00b9: ldloca.s V_0 - IL_00bb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00c0: ldloca.s V_1 - IL_00c2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00c7: and - IL_00c8: brtrue.s IL_00d5 - - IL_00ca: ldloca.s V_2 - IL_00cc: initobj valuetype [mscorlib]System.Nullable`1 - IL_00d2: ldloc.2 - IL_00d3: br.s IL_00e9 - - IL_00d5: ldloca.s V_0 - IL_00d7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00dc: ldloca.s V_1 - IL_00de: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00e3: xor - IL_00e4: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_00e9: box valuetype [mscorlib]System.Nullable`1 - IL_00ee: call void [mscorlib]System.Console::WriteLine(object) - IL_00f3: ldarg.0 - IL_00f4: stloc.1 - IL_00f5: ldloca.s V_1 - IL_00f7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00fc: brtrue.s IL_0101 - - IL_00fe: ldarg.1 - IL_00ff: br.s IL_0102 - - IL_0101: ldloc.1 - IL_0102: box valuetype [mscorlib]System.Nullable`1 - IL_0107: call void [mscorlib]System.Console::WriteLine(object) - IL_010c: ldarg.0 - IL_010d: stloc.1 - IL_010e: ldloca.s V_1 - IL_0110: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0115: brtrue.s IL_0122 - - IL_0117: ldloca.s V_0 - IL_0119: initobj valuetype [mscorlib]System.Nullable`1 - IL_011f: ldloc.0 - IL_0120: br.s IL_0131 - - IL_0122: ldloca.s V_1 - IL_0124: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0129: ldc.i4.0 - IL_012a: ceq - IL_012c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0131: box valuetype [mscorlib]System.Nullable`1 - IL_0136: call void [mscorlib]System.Console::WriteLine(object) - IL_013b: ldarg.0 - IL_013c: stloc.1 - IL_013d: ldarg.1 - IL_013e: stloc.0 - IL_013f: ldloca.s V_1 - IL_0141: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0146: brtrue.s IL_015d + IL_0113: ldloca.s V_0 + IL_0115: initobj valuetype [mscorlib]System.Nullable`1 + IL_011b: ldloc.0 + IL_011c: br.s IL_012d - IL_0148: ldloca.s V_0 - IL_014a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_014f: brtrue.s IL_015a + IL_011e: ldloca.s V_1 + IL_0120: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0125: ldc.i4.0 + IL_0126: ceq + IL_0128: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_012d: box valuetype [mscorlib]System.Nullable`1 + IL_0132: call void [mscorlib]System.Console::WriteLine(object) + IL_0137: ldarg.0 + IL_0138: stloc.1 + IL_0139: ldarg.1 + IL_013a: stloc.0 + IL_013b: ldloca.s V_1 + IL_013d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0142: brtrue.s IL_0159 + + IL_0144: ldloca.s V_0 + IL_0146: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_014b: brtrue.s IL_0156 - IL_0151: ldloca.s V_1 - IL_0153: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0158: brfalse.s IL_015d + IL_014d: ldloca.s V_1 + IL_014f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0154: brfalse.s IL_0159 - IL_015a: ldloc.1 - IL_015b: br.s IL_015e - - IL_015d: ldloc.0 - IL_015e: starg.s a - IL_0160: ldarg.0 - IL_0161: stloc.0 - IL_0162: ldarg.1 - IL_0163: stloc.1 - IL_0164: ldloca.s V_0 - IL_0166: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_016b: brtrue.s IL_0182 - - IL_016d: ldloca.s V_1 - IL_016f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0174: brtrue.s IL_017f + IL_0156: ldloc.1 + IL_0157: br.s IL_015a - IL_0176: ldloca.s V_0 - IL_0178: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_017d: brfalse.s IL_0182 - - IL_017f: ldloc.1 - IL_0180: br.s IL_0183 - - IL_0182: ldloc.0 - IL_0183: starg.s a - IL_0185: ldarg.0 - IL_0186: stloc.1 - IL_0187: ldarg.1 - IL_0188: stloc.0 - IL_0189: ldloca.s V_1 - IL_018b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0190: ldloca.s V_0 - IL_0192: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0197: and - IL_0198: brtrue.s IL_01a5 - - IL_019a: ldloca.s V_2 - IL_019c: initobj valuetype [mscorlib]System.Nullable`1 - IL_01a2: ldloc.2 - IL_01a3: br.s IL_01b9 - - IL_01a5: ldloca.s V_1 - IL_01a7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01ac: ldloca.s V_0 - IL_01ae: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01b3: xor - IL_01b4: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01b9: starg.s a - IL_01bb: ret + IL_0159: ldloc.0 + IL_015a: starg.s a + IL_015c: ldarg.0 + IL_015d: stloc.0 + IL_015e: ldarg.1 + IL_015f: stloc.1 + IL_0160: ldloca.s V_0 + IL_0162: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0167: brtrue.s IL_017e + + IL_0169: ldloca.s V_1 + IL_016b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0170: brtrue.s IL_017b + + IL_0172: ldloca.s V_0 + IL_0174: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0179: brfalse.s IL_017e + + IL_017b: ldloc.1 + IL_017c: br.s IL_017f + + IL_017e: ldloc.0 + IL_017f: starg.s a + IL_0181: ldarg.0 + IL_0182: stloc.1 + IL_0183: ldarg.1 + IL_0184: stloc.0 + IL_0185: ldloca.s V_1 + IL_0187: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_018c: ldloca.s V_0 + IL_018e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0193: and + IL_0194: brtrue.s IL_01a1 + + IL_0196: ldloca.s V_2 + IL_0198: initobj valuetype [mscorlib]System.Nullable`1 + IL_019e: ldloc.2 + IL_019f: br.s IL_01b5 + + IL_01a1: ldloca.s V_1 + IL_01a3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01a8: ldloca.s V_0 + IL_01aa: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01af: xor + IL_01b0: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01b5: starg.s a + IL_01b7: ret } // end of method LiftedOperators::BoolValueBasic .method public hidebysig static void BoolValueComplex(valuetype [mscorlib]System.Nullable`1 a, class [mscorlib]System.Func`1 x) cil managed { - // Code size 518 (0x206) + // Code size 510 (0x1fe) .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, bool V_1, @@ -512,222 +466,210 @@ IL_0009: ldloca.s V_0 IL_000b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0010: ldloc.1 - IL_0011: beq.s IL_0016 - - IL_0013: ldc.i4.0 - IL_0014: br.s IL_001d - - IL_0016: ldloca.s V_0 - IL_0018: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001d: call void [mscorlib]System.Console::WriteLine(bool) - IL_0022: ldarg.0 - IL_0023: stloc.0 - IL_0024: ldarg.1 - IL_0025: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_002a: stloc.1 - IL_002b: ldloca.s V_0 - IL_002d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0032: ldloc.1 - IL_0033: beq.s IL_0038 - - IL_0035: ldc.i4.1 - IL_0036: br.s IL_0042 - - IL_0038: ldloca.s V_0 - IL_003a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_003f: ldc.i4.0 - IL_0040: ceq - IL_0042: call void [mscorlib]System.Console::WriteLine(bool) - IL_0047: ldarg.1 - IL_0048: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_004d: ldarg.0 - IL_004e: stloc.0 - IL_004f: ldloca.s V_0 - IL_0051: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0056: beq.s IL_005b + IL_0011: ceq + IL_0013: ldloca.s V_0 + IL_0015: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001a: and + IL_001b: call void [mscorlib]System.Console::WriteLine(bool) + IL_0020: ldarg.0 + IL_0021: stloc.0 + IL_0022: ldarg.1 + IL_0023: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0028: stloc.1 + IL_0029: ldloca.s V_0 + IL_002b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0030: ldloc.1 + IL_0031: ceq + IL_0033: ldloca.s V_0 + IL_0035: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003a: and + IL_003b: ldc.i4.0 + IL_003c: ceq + IL_003e: call void [mscorlib]System.Console::WriteLine(bool) + IL_0043: ldarg.1 + IL_0044: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0049: ldarg.0 + IL_004a: stloc.0 + IL_004b: ldloca.s V_0 + IL_004d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0052: ceq + IL_0054: ldloca.s V_0 + IL_0056: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_005b: and + IL_005c: call void [mscorlib]System.Console::WriteLine(bool) + IL_0061: ldarg.1 + IL_0062: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0067: ldarg.0 + IL_0068: stloc.0 + IL_0069: ldloca.s V_0 + IL_006b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0070: ceq + IL_0072: ldloca.s V_0 + IL_0074: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0079: and + IL_007a: ldc.i4.0 + IL_007b: ceq + IL_007d: call void [mscorlib]System.Console::WriteLine(bool) + IL_0082: ldarg.0 + IL_0083: stloc.0 + IL_0084: ldarg.1 + IL_0085: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_008a: stloc.1 + IL_008b: ldloca.s V_0 + IL_008d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0092: brtrue.s IL_009f + + IL_0094: ldloca.s V_2 + IL_0096: initobj valuetype [mscorlib]System.Nullable`1 + IL_009c: ldloc.2 + IL_009d: br.s IL_00ad + + IL_009f: ldloca.s V_0 + IL_00a1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00a6: ldloc.1 + IL_00a7: xor + IL_00a8: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_00ad: box valuetype [mscorlib]System.Nullable`1 + IL_00b2: call void [mscorlib]System.Console::WriteLine(object) + IL_00b7: ldarg.0 + IL_00b8: stloc.0 + IL_00b9: ldloca.s V_0 + IL_00bb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00c0: brtrue.s IL_00ca - IL_0058: ldc.i4.0 - IL_0059: br.s IL_0062 + IL_00c2: ldarg.1 + IL_00c3: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00c8: br.s IL_00d1 - IL_005b: ldloca.s V_0 - IL_005d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0062: call void [mscorlib]System.Console::WriteLine(bool) - IL_0067: ldarg.1 - IL_0068: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_006d: ldarg.0 - IL_006e: stloc.0 - IL_006f: ldloca.s V_0 - IL_0071: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0076: beq.s IL_007b - - IL_0078: ldc.i4.1 - IL_0079: br.s IL_0085 - - IL_007b: ldloca.s V_0 - IL_007d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0082: ldc.i4.0 - IL_0083: ceq - IL_0085: call void [mscorlib]System.Console::WriteLine(bool) - IL_008a: ldarg.0 - IL_008b: stloc.0 - IL_008c: ldarg.1 - IL_008d: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0092: stloc.1 - IL_0093: ldloca.s V_0 - IL_0095: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_009a: brtrue.s IL_00a7 - - IL_009c: ldloca.s V_2 - IL_009e: initobj valuetype [mscorlib]System.Nullable`1 - IL_00a4: ldloc.2 - IL_00a5: br.s IL_00b5 + IL_00ca: ldloca.s V_0 + IL_00cc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00d1: call void [mscorlib]System.Console::WriteLine(bool) + IL_00d6: ldarg.0 + IL_00d7: stloc.0 + IL_00d8: ldarg.1 + IL_00d9: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00de: stloc.1 + IL_00df: ldloca.s V_0 + IL_00e1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00e6: brtrue.s IL_00f3 + + IL_00e8: ldloca.s V_2 + IL_00ea: initobj valuetype [mscorlib]System.Nullable`1 + IL_00f0: ldloc.2 + IL_00f1: br.s IL_0101 + + IL_00f3: ldloca.s V_0 + IL_00f5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00fa: ldloc.1 + IL_00fb: xor + IL_00fc: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0101: starg.s a + IL_0103: ldarg.1 + IL_0104: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0109: ldarg.0 + IL_010a: stloc.0 + IL_010b: brtrue.s IL_0115 - IL_00a7: ldloca.s V_0 - IL_00a9: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00ae: ldloc.1 - IL_00af: xor - IL_00b0: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_00b5: box valuetype [mscorlib]System.Nullable`1 - IL_00ba: call void [mscorlib]System.Console::WriteLine(object) - IL_00bf: ldarg.0 - IL_00c0: stloc.0 - IL_00c1: ldloca.s V_0 - IL_00c3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00c8: brtrue.s IL_00d2 - - IL_00ca: ldarg.1 - IL_00cb: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00d0: br.s IL_00d9 + IL_010d: ldc.i4.0 + IL_010e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0113: br.s IL_0116 - IL_00d2: ldloca.s V_0 - IL_00d4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00d9: call void [mscorlib]System.Console::WriteLine(bool) - IL_00de: ldarg.0 - IL_00df: stloc.0 - IL_00e0: ldarg.1 - IL_00e1: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00e6: stloc.1 - IL_00e7: ldloca.s V_0 - IL_00e9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00ee: brtrue.s IL_00fb + IL_0115: ldloc.0 + IL_0116: box valuetype [mscorlib]System.Nullable`1 + IL_011b: call void [mscorlib]System.Console::WriteLine(object) + IL_0120: ldarg.1 + IL_0121: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0126: ldarg.0 + IL_0127: stloc.0 + IL_0128: brtrue.s IL_012d + + IL_012a: ldloc.0 + IL_012b: br.s IL_0133 + + IL_012d: ldc.i4.1 + IL_012e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0133: box valuetype [mscorlib]System.Nullable`1 + IL_0138: call void [mscorlib]System.Console::WriteLine(object) + IL_013d: ldarg.1 + IL_013e: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0143: stloc.1 + IL_0144: ldarg.0 + IL_0145: stloc.0 + IL_0146: ldloca.s V_0 + IL_0148: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_014d: brtrue.s IL_015a - IL_00f0: ldloca.s V_2 - IL_00f2: initobj valuetype [mscorlib]System.Nullable`1 - IL_00f8: ldloc.2 - IL_00f9: br.s IL_0109 + IL_014f: ldloca.s V_2 + IL_0151: initobj valuetype [mscorlib]System.Nullable`1 + IL_0157: ldloc.2 + IL_0158: br.s IL_0168 - IL_00fb: ldloca.s V_0 - IL_00fd: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0102: ldloc.1 - IL_0103: xor - IL_0104: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0109: starg.s a - IL_010b: ldarg.1 - IL_010c: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0111: ldarg.0 - IL_0112: stloc.0 - IL_0113: brtrue.s IL_011d - - IL_0115: ldc.i4.0 - IL_0116: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_011b: br.s IL_011e - - IL_011d: ldloc.0 - IL_011e: box valuetype [mscorlib]System.Nullable`1 - IL_0123: call void [mscorlib]System.Console::WriteLine(object) - IL_0128: ldarg.1 - IL_0129: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_012e: ldarg.0 - IL_012f: stloc.0 - IL_0130: brtrue.s IL_0135 - - IL_0132: ldloc.0 - IL_0133: br.s IL_013b - - IL_0135: ldc.i4.1 - IL_0136: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_013b: box valuetype [mscorlib]System.Nullable`1 - IL_0140: call void [mscorlib]System.Console::WriteLine(object) - IL_0145: ldarg.1 - IL_0146: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_014b: stloc.1 - IL_014c: ldarg.0 - IL_014d: stloc.0 - IL_014e: ldloca.s V_0 - IL_0150: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0155: brtrue.s IL_0162 - - IL_0157: ldloca.s V_2 - IL_0159: initobj valuetype [mscorlib]System.Nullable`1 - IL_015f: ldloc.2 - IL_0160: br.s IL_0170 - - IL_0162: ldloc.1 - IL_0163: ldloca.s V_0 - IL_0165: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_016a: xor - IL_016b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0170: box valuetype [mscorlib]System.Nullable`1 - IL_0175: call void [mscorlib]System.Console::WriteLine(object) - IL_017a: ldc.i4.0 - IL_017b: newarr valuetype [mscorlib]System.Nullable`1 - IL_0180: ldc.i4.0 - IL_0181: ldelema valuetype [mscorlib]System.Nullable`1 - IL_0186: dup - IL_0187: ldobj valuetype [mscorlib]System.Nullable`1 - IL_018c: stloc.0 - IL_018d: ldarg.1 - IL_018e: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0193: stloc.1 - IL_0194: ldloca.s V_0 - IL_0196: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_019b: brtrue.s IL_01a8 - - IL_019d: ldloca.s V_2 - IL_019f: initobj valuetype [mscorlib]System.Nullable`1 - IL_01a5: ldloc.2 - IL_01a6: br.s IL_01b6 + IL_015a: ldloc.1 + IL_015b: ldloca.s V_0 + IL_015d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0162: xor + IL_0163: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0168: box valuetype [mscorlib]System.Nullable`1 + IL_016d: call void [mscorlib]System.Console::WriteLine(object) + IL_0172: ldc.i4.0 + IL_0173: newarr valuetype [mscorlib]System.Nullable`1 + IL_0178: ldc.i4.0 + IL_0179: ldelema valuetype [mscorlib]System.Nullable`1 + IL_017e: dup + IL_017f: ldobj valuetype [mscorlib]System.Nullable`1 + IL_0184: stloc.0 + IL_0185: ldarg.1 + IL_0186: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_018b: stloc.1 + IL_018c: ldloca.s V_0 + IL_018e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0193: brtrue.s IL_01a0 + + IL_0195: ldloca.s V_2 + IL_0197: initobj valuetype [mscorlib]System.Nullable`1 + IL_019d: ldloc.2 + IL_019e: br.s IL_01ae - IL_01a8: ldloca.s V_0 - IL_01aa: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01af: ldloc.1 - IL_01b0: xor - IL_01b1: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01b6: stobj valuetype [mscorlib]System.Nullable`1 - IL_01bb: ldc.i4.0 - IL_01bc: newarr valuetype [mscorlib]System.Nullable`1 - IL_01c1: ldc.i4.0 - IL_01c2: ldelema valuetype [mscorlib]System.Nullable`1 - IL_01c7: dup - IL_01c8: ldobj valuetype [mscorlib]System.Nullable`1 - IL_01cd: stloc.0 - IL_01ce: ldarg.0 - IL_01cf: stloc.2 - IL_01d0: ldloca.s V_0 - IL_01d2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01d7: ldloca.s V_2 - IL_01d9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01de: and - IL_01df: brtrue.s IL_01ec - - IL_01e1: ldloca.s V_3 - IL_01e3: initobj valuetype [mscorlib]System.Nullable`1 - IL_01e9: ldloc.3 - IL_01ea: br.s IL_0200 - - IL_01ec: ldloca.s V_0 - IL_01ee: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01f3: ldloca.s V_2 - IL_01f5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01fa: xor - IL_01fb: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0200: stobj valuetype [mscorlib]System.Nullable`1 - IL_0205: ret + IL_01a0: ldloca.s V_0 + IL_01a2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01a7: ldloc.1 + IL_01a8: xor + IL_01a9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01ae: stobj valuetype [mscorlib]System.Nullable`1 + IL_01b3: ldc.i4.0 + IL_01b4: newarr valuetype [mscorlib]System.Nullable`1 + IL_01b9: ldc.i4.0 + IL_01ba: ldelema valuetype [mscorlib]System.Nullable`1 + IL_01bf: dup + IL_01c0: ldobj valuetype [mscorlib]System.Nullable`1 + IL_01c5: stloc.0 + IL_01c6: ldarg.0 + IL_01c7: stloc.2 + IL_01c8: ldloca.s V_0 + IL_01ca: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01cf: ldloca.s V_2 + IL_01d1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01d6: and + IL_01d7: brtrue.s IL_01e4 + + IL_01d9: ldloca.s V_3 + IL_01db: initobj valuetype [mscorlib]System.Nullable`1 + IL_01e1: ldloc.3 + IL_01e2: br.s IL_01f8 + + IL_01e4: ldloca.s V_0 + IL_01e6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01eb: ldloca.s V_2 + IL_01ed: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01f2: xor + IL_01f3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01f8: stobj valuetype [mscorlib]System.Nullable`1 + IL_01fd: ret } // end of method LiftedOperators::BoolValueComplex .method public hidebysig static void BoolValueConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 175 (0xaf) + // Code size 167 (0xa7) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, bool V_1) @@ -738,95 +680,83 @@ IL_0004: ldloca.s V_0 IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloc.1 - IL_000c: beq.s IL_0011 - - IL_000e: ldc.i4.0 - IL_000f: br.s IL_0018 - - IL_0011: ldloca.s V_0 - IL_0013: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0018: call void [mscorlib]System.Console::WriteLine(bool) - IL_001d: ldarg.0 - IL_001e: stloc.0 - IL_001f: ldc.i4.1 - IL_0020: stloc.1 - IL_0021: ldloca.s V_0 - IL_0023: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0028: ldloc.1 - IL_0029: beq.s IL_002e - - IL_002b: ldc.i4.1 - IL_002c: br.s IL_0038 - - IL_002e: ldloca.s V_0 - IL_0030: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0035: ldc.i4.0 - IL_0036: ceq - IL_0038: call void [mscorlib]System.Console::WriteLine(bool) - IL_003d: ldarg.0 - IL_003e: stloc.0 - IL_003f: ldc.i4.0 - IL_0040: stloc.1 - IL_0041: ldloca.s V_0 - IL_0043: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0048: ldloc.1 - IL_0049: beq.s IL_004e - - IL_004b: ldc.i4.0 - IL_004c: br.s IL_0055 - - IL_004e: ldloca.s V_0 - IL_0050: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0055: call void [mscorlib]System.Console::WriteLine(bool) - IL_005a: ldarg.0 - IL_005b: stloc.0 - IL_005c: ldc.i4.0 - IL_005d: stloc.1 - IL_005e: ldloca.s V_0 - IL_0060: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0065: ldloc.1 - IL_0066: beq.s IL_006b - - IL_0068: ldc.i4.1 - IL_0069: br.s IL_0075 + IL_000c: ceq + IL_000e: ldloca.s V_0 + IL_0010: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0015: and + IL_0016: call void [mscorlib]System.Console::WriteLine(bool) + IL_001b: ldarg.0 + IL_001c: stloc.0 + IL_001d: ldc.i4.1 + IL_001e: stloc.1 + IL_001f: ldloca.s V_0 + IL_0021: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0026: ldloc.1 + IL_0027: ceq + IL_0029: ldloca.s V_0 + IL_002b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0030: and + IL_0031: ldc.i4.0 + IL_0032: ceq + IL_0034: call void [mscorlib]System.Console::WriteLine(bool) + IL_0039: ldarg.0 + IL_003a: stloc.0 + IL_003b: ldc.i4.0 + IL_003c: stloc.1 + IL_003d: ldloca.s V_0 + IL_003f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0044: ldloc.1 + IL_0045: ceq + IL_0047: ldloca.s V_0 + IL_0049: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004e: and + IL_004f: call void [mscorlib]System.Console::WriteLine(bool) + IL_0054: ldarg.0 + IL_0055: stloc.0 + IL_0056: ldc.i4.0 + IL_0057: stloc.1 + IL_0058: ldloca.s V_0 + IL_005a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_005f: ldloc.1 + IL_0060: ceq + IL_0062: ldloca.s V_0 + IL_0064: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0069: and + IL_006a: ldc.i4.0 + IL_006b: ceq + IL_006d: call void [mscorlib]System.Console::WriteLine(bool) + IL_0072: ldarg.0 + IL_0073: stloc.0 + IL_0074: ldloca.s V_0 + IL_0076: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007b: brtrue.s IL_0080 + + IL_007d: ldc.i4.1 + IL_007e: br.s IL_0087 - IL_006b: ldloca.s V_0 - IL_006d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0072: ldc.i4.0 - IL_0073: ceq - IL_0075: call void [mscorlib]System.Console::WriteLine(bool) - IL_007a: ldarg.0 - IL_007b: stloc.0 - IL_007c: ldloca.s V_0 - IL_007e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0083: brtrue.s IL_0088 + IL_0080: ldloca.s V_0 + IL_0082: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0087: call void [mscorlib]System.Console::WriteLine(bool) + IL_008c: ldarg.0 + IL_008d: stloc.0 + IL_008e: ldloca.s V_0 + IL_0090: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0095: brtrue.s IL_009a - IL_0085: ldc.i4.1 - IL_0086: br.s IL_008f + IL_0097: ldc.i4.0 + IL_0098: br.s IL_00a1 - IL_0088: ldloca.s V_0 - IL_008a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_008f: call void [mscorlib]System.Console::WriteLine(bool) - IL_0094: ldarg.0 - IL_0095: stloc.0 - IL_0096: ldloca.s V_0 - IL_0098: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_009d: brtrue.s IL_00a2 - - IL_009f: ldc.i4.0 - IL_00a0: br.s IL_00a9 - - IL_00a2: ldloca.s V_0 - IL_00a4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a9: call void [mscorlib]System.Console::WriteLine(bool) - IL_00ae: ret + IL_009a: ldloca.s V_0 + IL_009c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00a1: call void [mscorlib]System.Console::WriteLine(bool) + IL_00a6: ret } // end of method LiftedOperators::BoolValueConst .method public hidebysig static void IntBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 366 (0x16e) - .maxstack 2 + // Code size 356 (0x164) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1) IL_0000: ldarg.0 @@ -837,175 +767,155 @@ IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloca.s V_1 IL_000d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0012: beq.s IL_0017 - - IL_0014: ldc.i4.0 - IL_0015: br.s IL_0027 - - IL_0017: ldloca.s V_0 - IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001e: ldloca.s V_1 - IL_0020: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0025: ceq - IL_0027: brfalse.s IL_002e - - IL_0029: call void [mscorlib]System.Console::WriteLine() - IL_002e: ldarg.0 - IL_002f: stloc.1 - IL_0030: ldarg.1 - IL_0031: stloc.0 - IL_0032: ldloca.s V_1 - IL_0034: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0039: ldloca.s V_0 - IL_003b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0040: beq.s IL_0045 - - IL_0042: ldc.i4.1 - IL_0043: br.s IL_0058 - - IL_0045: ldloca.s V_1 - IL_0047: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_004c: ldloca.s V_0 - IL_004e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0053: ceq - IL_0055: ldc.i4.0 - IL_0056: ceq - IL_0058: brfalse.s IL_005f + IL_0012: ceq + IL_0014: ldloca.s V_0 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: ldloca.s V_1 + IL_001d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0022: ceq + IL_0024: and + IL_0025: brfalse.s IL_002c - IL_005a: call void [mscorlib]System.Console::WriteLine() - IL_005f: ldarg.0 - IL_0060: stloc.0 - IL_0061: ldarg.1 - IL_0062: stloc.1 - IL_0063: ldloca.s V_0 + IL_0027: call void [mscorlib]System.Console::WriteLine() + IL_002c: ldarg.0 + IL_002d: stloc.1 + IL_002e: ldarg.1 + IL_002f: stloc.0 + IL_0030: ldloca.s V_1 + IL_0032: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0037: ldloca.s V_0 + IL_0039: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003e: ceq + IL_0040: ldloca.s V_1 + IL_0042: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0047: ldloca.s V_0 + IL_0049: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004e: ceq + IL_0050: and + IL_0051: brtrue.s IL_0058 + + IL_0053: call void [mscorlib]System.Console::WriteLine() + IL_0058: ldarg.0 + IL_0059: stloc.0 + IL_005a: ldarg.1 + IL_005b: stloc.1 + IL_005c: ldloca.s V_0 + IL_005e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0063: ldloca.s V_1 IL_0065: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_006a: ldloca.s V_1 - IL_006c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0071: bgt.s IL_0076 - - IL_0073: ldc.i4.0 - IL_0074: br.s IL_0085 - - IL_0076: ldloca.s V_0 - IL_0078: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_007d: ldloca.s V_1 - IL_007f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0084: and - IL_0085: brfalse.s IL_008c - - IL_0087: call void [mscorlib]System.Console::WriteLine() - IL_008c: ldarg.0 - IL_008d: stloc.1 - IL_008e: ldarg.1 - IL_008f: stloc.0 - IL_0090: ldloca.s V_1 - IL_0092: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0097: ldloca.s V_0 - IL_0099: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_009e: blt.s IL_00a3 - - IL_00a0: ldc.i4.0 - IL_00a1: br.s IL_00b2 - - IL_00a3: ldloca.s V_1 - IL_00a5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00aa: ldloca.s V_0 - IL_00ac: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00b1: and - IL_00b2: brfalse.s IL_00b9 - - IL_00b4: call void [mscorlib]System.Console::WriteLine() - IL_00b9: ldarg.0 - IL_00ba: stloc.0 - IL_00bb: ldarg.1 - IL_00bc: stloc.1 - IL_00bd: ldloca.s V_0 - IL_00bf: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00c4: ldloca.s V_1 - IL_00c6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00cb: bge.s IL_00d0 - - IL_00cd: ldc.i4.0 - IL_00ce: br.s IL_00df - - IL_00d0: ldloca.s V_0 - IL_00d2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00d7: ldloca.s V_1 - IL_00d9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00de: and - IL_00df: brfalse.s IL_00e6 - - IL_00e1: call void [mscorlib]System.Console::WriteLine() - IL_00e6: ldarg.0 - IL_00e7: stloc.1 - IL_00e8: ldarg.1 - IL_00e9: stloc.0 - IL_00ea: ldloca.s V_1 - IL_00ec: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00f1: ldloca.s V_0 - IL_00f3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00f8: ble.s IL_00fd - - IL_00fa: ldc.i4.0 - IL_00fb: br.s IL_010c + IL_006a: cgt + IL_006c: ldloca.s V_0 + IL_006e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0073: ldloca.s V_1 + IL_0075: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007a: and + IL_007b: and + IL_007c: brfalse.s IL_0083 + + IL_007e: call void [mscorlib]System.Console::WriteLine() + IL_0083: ldarg.0 + IL_0084: stloc.1 + IL_0085: ldarg.1 + IL_0086: stloc.0 + IL_0087: ldloca.s V_1 + IL_0089: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_008e: ldloca.s V_0 + IL_0090: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0095: clt + IL_0097: ldloca.s V_1 + IL_0099: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_009e: ldloca.s V_0 + IL_00a0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00a5: and + IL_00a6: and + IL_00a7: brfalse.s IL_00ae + + IL_00a9: call void [mscorlib]System.Console::WriteLine() + IL_00ae: ldarg.0 + IL_00af: stloc.0 + IL_00b0: ldarg.1 + IL_00b1: stloc.1 + IL_00b2: ldloca.s V_0 + IL_00b4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00b9: ldloca.s V_1 + IL_00bb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00c0: clt + IL_00c2: ldc.i4.0 + IL_00c3: ceq + IL_00c5: ldloca.s V_0 + IL_00c7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00cc: ldloca.s V_1 + IL_00ce: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00d3: and + IL_00d4: and + IL_00d5: brfalse.s IL_00dc + + IL_00d7: call void [mscorlib]System.Console::WriteLine() + IL_00dc: ldarg.0 + IL_00dd: stloc.1 + IL_00de: ldarg.1 + IL_00df: stloc.0 + IL_00e0: ldloca.s V_1 + IL_00e2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00e7: ldloca.s V_0 + IL_00e9: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00ee: cgt + IL_00f0: ldc.i4.0 + IL_00f1: ceq + IL_00f3: ldloca.s V_1 + IL_00f5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00fa: ldloca.s V_0 + IL_00fc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0101: and + IL_0102: and + IL_0103: brfalse.s IL_010a + + IL_0105: call void [mscorlib]System.Console::WriteLine() + IL_010a: ldarg.0 + IL_010b: stloc.0 + IL_010c: ldarg.1 + IL_010d: stloc.1 + IL_010e: ldloca.s V_0 + IL_0110: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0115: ldloca.s V_1 + IL_0117: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_011c: cgt + IL_011e: ldloca.s V_0 + IL_0120: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0125: ldloca.s V_1 + IL_0127: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_012c: and + IL_012d: and + IL_012e: brtrue.s IL_0135 + + IL_0130: call void [mscorlib]System.Console::WriteLine() + IL_0135: ldarg.0 + IL_0136: stloc.1 + IL_0137: ldarg.1 + IL_0138: stloc.0 + IL_0139: ldloca.s V_1 + IL_013b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0140: ldloca.s V_0 + IL_0142: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0147: cgt + IL_0149: ldc.i4.0 + IL_014a: ceq + IL_014c: ldloca.s V_1 + IL_014e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0153: ldloca.s V_0 + IL_0155: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_015a: and + IL_015b: and + IL_015c: brtrue.s IL_0163 - IL_00fd: ldloca.s V_1 - IL_00ff: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0104: ldloca.s V_0 - IL_0106: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_010b: and - IL_010c: brfalse.s IL_0113 - - IL_010e: call void [mscorlib]System.Console::WriteLine() - IL_0113: ldarg.0 - IL_0114: stloc.0 - IL_0115: ldarg.1 - IL_0116: stloc.1 - IL_0117: ldloca.s V_0 - IL_0119: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_011e: ldloca.s V_1 - IL_0120: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0125: bgt.s IL_012a - - IL_0127: ldc.i4.0 - IL_0128: br.s IL_0139 - - IL_012a: ldloca.s V_0 - IL_012c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0131: ldloca.s V_1 - IL_0133: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0138: and - IL_0139: brtrue.s IL_0140 - - IL_013b: call void [mscorlib]System.Console::WriteLine() - IL_0140: ldarg.0 - IL_0141: stloc.1 - IL_0142: ldarg.1 - IL_0143: stloc.0 - IL_0144: ldloca.s V_1 - IL_0146: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_014b: ldloca.s V_0 - IL_014d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0152: ble.s IL_0157 - - IL_0154: ldc.i4.0 - IL_0155: br.s IL_0166 - - IL_0157: ldloca.s V_1 - IL_0159: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_015e: ldloca.s V_0 - IL_0160: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0165: and - IL_0166: brtrue.s IL_016d - - IL_0168: call void [mscorlib]System.Console::WriteLine() - IL_016d: ret + IL_015e: call void [mscorlib]System.Console::WriteLine() + IL_0163: ret } // end of method LiftedOperators::IntBasic .method public hidebysig static void IntComplex(valuetype [mscorlib]System.Nullable`1 a, class [mscorlib]System.Func`1 x) cil managed { - // Code size 289 (0x121) + // Code size 270 (0x10e) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int32 V_1) @@ -1015,148 +925,122 @@ IL_0003: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() IL_0008: stloc.1 IL_0009: ldloca.s V_0 - IL_000b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0010: ldloc.1 - IL_0011: beq.s IL_0016 - - IL_0013: ldc.i4.0 - IL_0014: br.s IL_001d - - IL_0016: ldloca.s V_0 - IL_0018: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001d: brfalse.s IL_0024 - - IL_001f: call void [mscorlib]System.Console::WriteLine() - IL_0024: ldarg.0 - IL_0025: stloc.0 - IL_0026: ldarg.1 - IL_0027: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_002c: stloc.1 - IL_002d: ldloca.s V_0 - IL_002f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0034: ldloc.1 - IL_0035: beq.s IL_003a - - IL_0037: ldc.i4.1 - IL_0038: br.s IL_0044 - - IL_003a: ldloca.s V_0 - IL_003c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0041: ldc.i4.0 - IL_0042: ceq - IL_0044: brfalse.s IL_004b - - IL_0046: call void [mscorlib]System.Console::WriteLine() - IL_004b: ldarg.0 - IL_004c: stloc.0 - IL_004d: ldarg.1 - IL_004e: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0053: stloc.1 - IL_0054: ldloca.s V_0 - IL_0056: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_005b: ldloc.1 - IL_005c: bgt.s IL_0061 - - IL_005e: ldc.i4.0 - IL_005f: br.s IL_0068 + IL_000b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0010: ldloc.1 + IL_0011: ceq + IL_0013: ldloca.s V_0 + IL_0015: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001a: and + IL_001b: brfalse.s IL_0022 - IL_0061: ldloca.s V_0 - IL_0063: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0068: brfalse.s IL_006f - - IL_006a: call void [mscorlib]System.Console::WriteLine() - IL_006f: ldarg.1 - IL_0070: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0075: ldarg.0 - IL_0076: stloc.0 + IL_001d: call void [mscorlib]System.Console::WriteLine() + IL_0022: ldarg.0 + IL_0023: stloc.0 + IL_0024: ldarg.1 + IL_0025: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_002a: stloc.1 + IL_002b: ldloca.s V_0 + IL_002d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0032: ldloc.1 + IL_0033: ceq + IL_0035: ldloca.s V_0 + IL_0037: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003c: and + IL_003d: brtrue.s IL_0044 + + IL_003f: call void [mscorlib]System.Console::WriteLine() + IL_0044: ldarg.0 + IL_0045: stloc.0 + IL_0046: ldarg.1 + IL_0047: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_004c: stloc.1 + IL_004d: ldloca.s V_0 + IL_004f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0054: ldloc.1 + IL_0055: cgt + IL_0057: ldloca.s V_0 + IL_0059: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_005e: and + IL_005f: brfalse.s IL_0066 + + IL_0061: call void [mscorlib]System.Console::WriteLine() + IL_0066: ldarg.1 + IL_0067: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_006c: ldarg.0 + IL_006d: stloc.0 + IL_006e: ldloca.s V_0 + IL_0070: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0075: ceq IL_0077: ldloca.s V_0 - IL_0079: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007e: beq.s IL_0083 - - IL_0080: ldc.i4.0 - IL_0081: br.s IL_008a - - IL_0083: ldloca.s V_0 - IL_0085: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_008a: brfalse.s IL_0091 - - IL_008c: call void [mscorlib]System.Console::WriteLine() - IL_0091: ldarg.1 - IL_0092: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0097: ldarg.0 - IL_0098: stloc.0 - IL_0099: ldloca.s V_0 - IL_009b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a0: beq.s IL_00a5 - - IL_00a2: ldc.i4.1 - IL_00a3: br.s IL_00af - - IL_00a5: ldloca.s V_0 - IL_00a7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00ac: ldc.i4.0 - IL_00ad: ceq - IL_00af: brfalse.s IL_00b6 - - IL_00b1: call void [mscorlib]System.Console::WriteLine() - IL_00b6: ldarg.1 - IL_00b7: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00bc: ldarg.0 - IL_00bd: stloc.0 - IL_00be: ldloca.s V_0 - IL_00c0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00c5: bgt.s IL_00ca + IL_0079: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007e: and + IL_007f: brfalse.s IL_0086 - IL_00c7: ldc.i4.0 - IL_00c8: br.s IL_00d1 - - IL_00ca: ldloca.s V_0 - IL_00cc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00d1: brfalse.s IL_00d8 - - IL_00d3: call void [mscorlib]System.Console::WriteLine() - IL_00d8: ldarg.0 - IL_00d9: stloc.0 - IL_00da: ldarg.1 - IL_00db: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00e0: stloc.1 - IL_00e1: ldloca.s V_0 - IL_00e3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00e8: ldloc.1 - IL_00e9: bgt.s IL_00ee - - IL_00eb: ldc.i4.0 - IL_00ec: br.s IL_00f5 - - IL_00ee: ldloca.s V_0 - IL_00f0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f5: brtrue.s IL_00fc - - IL_00f7: call void [mscorlib]System.Console::WriteLine() - IL_00fc: ldarg.0 - IL_00fd: stloc.0 - IL_00fe: ldarg.1 - IL_00ff: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0104: stloc.1 - IL_0105: ldloca.s V_0 - IL_0107: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_010c: ldloc.1 - IL_010d: ble.s IL_0112 - - IL_010f: ldc.i4.0 - IL_0110: br.s IL_0119 - - IL_0112: ldloca.s V_0 - IL_0114: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0119: brtrue.s IL_0120 + IL_0081: call void [mscorlib]System.Console::WriteLine() + IL_0086: ldarg.1 + IL_0087: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_008c: ldarg.0 + IL_008d: stloc.0 + IL_008e: ldloca.s V_0 + IL_0090: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0095: ceq + IL_0097: ldloca.s V_0 + IL_0099: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_009e: and + IL_009f: brtrue.s IL_00a6 - IL_011b: call void [mscorlib]System.Console::WriteLine() - IL_0120: ret + IL_00a1: call void [mscorlib]System.Console::WriteLine() + IL_00a6: ldarg.1 + IL_00a7: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00ac: ldarg.0 + IL_00ad: stloc.0 + IL_00ae: ldloca.s V_0 + IL_00b0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00b5: cgt + IL_00b7: ldloca.s V_0 + IL_00b9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00be: and + IL_00bf: brfalse.s IL_00c6 + + IL_00c1: call void [mscorlib]System.Console::WriteLine() + IL_00c6: ldarg.0 + IL_00c7: stloc.0 + IL_00c8: ldarg.1 + IL_00c9: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00ce: stloc.1 + IL_00cf: ldloca.s V_0 + IL_00d1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00d6: ldloc.1 + IL_00d7: cgt + IL_00d9: ldloca.s V_0 + IL_00db: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00e0: and + IL_00e1: brtrue.s IL_00e8 + + IL_00e3: call void [mscorlib]System.Console::WriteLine() + IL_00e8: ldarg.0 + IL_00e9: stloc.0 + IL_00ea: ldarg.1 + IL_00eb: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00f0: stloc.1 + IL_00f1: ldloca.s V_0 + IL_00f3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00f8: ldloc.1 + IL_00f9: cgt + IL_00fb: ldc.i4.0 + IL_00fc: ceq + IL_00fe: ldloca.s V_0 + IL_0100: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0105: and + IL_0106: brtrue.s IL_010d + + IL_0108: call void [mscorlib]System.Console::WriteLine() + IL_010d: ret } // end of method LiftedOperators::IntComplex .method public hidebysig static void IntConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 187 (0xbb) + // Code size 169 (0xa9) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int32 V_1) @@ -1167,106 +1051,84 @@ IL_0004: ldloca.s V_0 IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloc.1 - IL_000c: beq.s IL_0011 - - IL_000e: ldc.i4.0 - IL_000f: br.s IL_0018 - - IL_0011: ldloca.s V_0 - IL_0013: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0018: brfalse.s IL_001f - - IL_001a: call void [mscorlib]System.Console::WriteLine() - IL_001f: ldarg.0 - IL_0020: stloc.0 - IL_0021: ldc.i4.2 - IL_0022: stloc.1 - IL_0023: ldloca.s V_0 - IL_0025: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_002a: ldloc.1 - IL_002b: beq.s IL_0030 - - IL_002d: ldc.i4.1 - IL_002e: br.s IL_003a - - IL_0030: ldloca.s V_0 - IL_0032: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0037: ldc.i4.0 - IL_0038: ceq - IL_003a: brfalse.s IL_0041 - - IL_003c: call void [mscorlib]System.Console::WriteLine() - IL_0041: ldarg.0 - IL_0042: stloc.0 - IL_0043: ldc.i4.2 - IL_0044: stloc.1 - IL_0045: ldloca.s V_0 - IL_0047: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_004c: ldloc.1 - IL_004d: bgt.s IL_0052 - - IL_004f: ldc.i4.0 - IL_0050: br.s IL_0059 - - IL_0052: ldloca.s V_0 - IL_0054: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0059: brfalse.s IL_0060 + IL_000c: ceq + IL_000e: ldloca.s V_0 + IL_0010: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0015: and + IL_0016: brfalse.s IL_001d - IL_005b: call void [mscorlib]System.Console::WriteLine() - IL_0060: ldc.i4.2 - IL_0061: ldarg.0 - IL_0062: stloc.0 + IL_0018: call void [mscorlib]System.Console::WriteLine() + IL_001d: ldarg.0 + IL_001e: stloc.0 + IL_001f: ldc.i4.2 + IL_0020: stloc.1 + IL_0021: ldloca.s V_0 + IL_0023: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0028: ldloc.1 + IL_0029: ceq + IL_002b: ldloca.s V_0 + IL_002d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0032: and + IL_0033: brtrue.s IL_003a + + IL_0035: call void [mscorlib]System.Console::WriteLine() + IL_003a: ldarg.0 + IL_003b: stloc.0 + IL_003c: ldc.i4.2 + IL_003d: stloc.1 + IL_003e: ldloca.s V_0 + IL_0040: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0045: ldloc.1 + IL_0046: cgt + IL_0048: ldloca.s V_0 + IL_004a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004f: and + IL_0050: brfalse.s IL_0057 + + IL_0052: call void [mscorlib]System.Console::WriteLine() + IL_0057: ldc.i4.2 + IL_0058: ldarg.0 + IL_0059: stloc.0 + IL_005a: ldloca.s V_0 + IL_005c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0061: ceq IL_0063: ldloca.s V_0 - IL_0065: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_006a: beq.s IL_006f - - IL_006c: ldc.i4.0 - IL_006d: br.s IL_0076 + IL_0065: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_006a: and + IL_006b: brfalse.s IL_0072 - IL_006f: ldloca.s V_0 - IL_0071: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0076: brfalse.s IL_007d - - IL_0078: call void [mscorlib]System.Console::WriteLine() - IL_007d: ldc.i4.2 - IL_007e: ldarg.0 - IL_007f: stloc.0 - IL_0080: ldloca.s V_0 - IL_0082: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0087: beq.s IL_008c - - IL_0089: ldc.i4.1 - IL_008a: br.s IL_0096 + IL_006d: call void [mscorlib]System.Console::WriteLine() + IL_0072: ldc.i4.2 + IL_0073: ldarg.0 + IL_0074: stloc.0 + IL_0075: ldloca.s V_0 + IL_0077: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_007c: ceq + IL_007e: ldloca.s V_0 + IL_0080: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0085: and + IL_0086: brtrue.s IL_008d - IL_008c: ldloca.s V_0 - IL_008e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0093: ldc.i4.0 - IL_0094: ceq - IL_0096: brfalse.s IL_009d - - IL_0098: call void [mscorlib]System.Console::WriteLine() - IL_009d: ldc.i4.2 - IL_009e: ldarg.0 - IL_009f: stloc.0 - IL_00a0: ldloca.s V_0 - IL_00a2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a7: bgt.s IL_00ac - - IL_00a9: ldc.i4.0 - IL_00aa: br.s IL_00b3 - - IL_00ac: ldloca.s V_0 - IL_00ae: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00b3: brfalse.s IL_00ba + IL_0088: call void [mscorlib]System.Console::WriteLine() + IL_008d: ldc.i4.2 + IL_008e: ldarg.0 + IL_008f: stloc.0 + IL_0090: ldloca.s V_0 + IL_0092: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0097: cgt + IL_0099: ldloca.s V_0 + IL_009b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00a0: and + IL_00a1: brfalse.s IL_00a8 - IL_00b5: call void [mscorlib]System.Console::WriteLine() - IL_00ba: ret + IL_00a3: call void [mscorlib]System.Console::WriteLine() + IL_00a8: ret } // end of method LiftedOperators::IntConst .method public hidebysig static void IntValueBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 1612 (0x64c) + // Code size 1605 (0x645) .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, @@ -1279,670 +1141,657 @@ IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloca.s V_1 IL_000d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0012: beq.s IL_0017 - - IL_0014: ldc.i4.0 - IL_0015: br.s IL_0027 - - IL_0017: ldloca.s V_0 - IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001e: ldloca.s V_1 - IL_0020: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0025: ceq - IL_0027: call void [mscorlib]System.Console::WriteLine(bool) - IL_002c: ldarg.0 - IL_002d: stloc.1 - IL_002e: ldarg.1 - IL_002f: stloc.0 - IL_0030: ldloca.s V_1 - IL_0032: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0037: ldloca.s V_0 - IL_0039: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_003e: beq.s IL_0043 - - IL_0040: ldc.i4.1 - IL_0041: br.s IL_0056 - - IL_0043: ldloca.s V_1 - IL_0045: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_004a: ldloca.s V_0 - IL_004c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0051: ceq - IL_0053: ldc.i4.0 - IL_0054: ceq - IL_0056: call void [mscorlib]System.Console::WriteLine(bool) - IL_005b: ldarg.0 - IL_005c: stloc.0 - IL_005d: ldarg.1 - IL_005e: stloc.1 - IL_005f: ldloca.s V_0 - IL_0061: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0066: ldloca.s V_1 - IL_0068: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_006d: bgt.s IL_0072 - - IL_006f: ldc.i4.0 - IL_0070: br.s IL_0081 - - IL_0072: ldloca.s V_0 + IL_0012: ceq + IL_0014: ldloca.s V_0 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: ldloca.s V_1 + IL_001d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0022: ceq + IL_0024: and + IL_0025: call void [mscorlib]System.Console::WriteLine(bool) + IL_002a: ldarg.0 + IL_002b: stloc.1 + IL_002c: ldarg.1 + IL_002d: stloc.0 + IL_002e: ldloca.s V_1 + IL_0030: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0035: ldloca.s V_0 + IL_0037: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003c: ceq + IL_003e: ldloca.s V_1 + IL_0040: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0045: ldloca.s V_0 + IL_0047: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004c: ceq + IL_004e: and + IL_004f: ldc.i4.0 + IL_0050: ceq + IL_0052: call void [mscorlib]System.Console::WriteLine(bool) + IL_0057: ldarg.0 + IL_0058: stloc.0 + IL_0059: ldarg.1 + IL_005a: stloc.1 + IL_005b: ldloca.s V_0 + IL_005d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0062: ldloca.s V_1 + IL_0064: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0069: cgt + IL_006b: ldloca.s V_0 + IL_006d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0072: ldloca.s V_1 IL_0074: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0079: ldloca.s V_1 - IL_007b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0080: and - IL_0081: call void [mscorlib]System.Console::WriteLine(bool) - IL_0086: ldarg.0 - IL_0087: stloc.1 - IL_0088: ldarg.1 - IL_0089: stloc.0 - IL_008a: ldloca.s V_1 - IL_008c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0091: ldloca.s V_0 - IL_0093: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0098: bgt.s IL_009d - - IL_009a: ldc.i4.0 - IL_009b: br.s IL_00ac - - IL_009d: ldloca.s V_1 - IL_009f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00a4: ldloca.s V_0 - IL_00a6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00ab: and - IL_00ac: ldc.i4.0 - IL_00ad: ceq - IL_00af: call void [mscorlib]System.Console::WriteLine(bool) - IL_00b4: ldarg.0 - IL_00b5: stloc.0 - IL_00b6: ldarg.1 - IL_00b7: stloc.1 - IL_00b8: ldloca.s V_0 - IL_00ba: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00bf: ldloca.s V_1 - IL_00c1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00c6: bge.s IL_00cb - - IL_00c8: ldc.i4.0 - IL_00c9: br.s IL_00da - - IL_00cb: ldloca.s V_0 - IL_00cd: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00d2: ldloca.s V_1 - IL_00d4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00d9: and - IL_00da: ldc.i4.0 - IL_00db: ceq - IL_00dd: call void [mscorlib]System.Console::WriteLine(bool) - IL_00e2: ldarg.0 - IL_00e3: stloc.1 - IL_00e4: ldarg.1 - IL_00e5: stloc.0 - IL_00e6: ldloca.s V_1 + IL_0079: and + IL_007a: and + IL_007b: call void [mscorlib]System.Console::WriteLine(bool) + IL_0080: ldarg.0 + IL_0081: stloc.1 + IL_0082: ldarg.1 + IL_0083: stloc.0 + IL_0084: ldloca.s V_1 + IL_0086: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_008b: ldloca.s V_0 + IL_008d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0092: cgt + IL_0094: ldloca.s V_1 + IL_0096: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_009b: ldloca.s V_0 + IL_009d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00a2: and + IL_00a3: and + IL_00a4: ldc.i4.0 + IL_00a5: ceq + IL_00a7: call void [mscorlib]System.Console::WriteLine(bool) + IL_00ac: ldarg.0 + IL_00ad: stloc.0 + IL_00ae: ldarg.1 + IL_00af: stloc.1 + IL_00b0: ldloca.s V_0 + IL_00b2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00b7: ldloca.s V_1 + IL_00b9: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00be: clt + IL_00c0: ldc.i4.0 + IL_00c1: ceq + IL_00c3: ldloca.s V_0 + IL_00c5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ca: ldloca.s V_1 + IL_00cc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00d1: and + IL_00d2: and + IL_00d3: ldc.i4.0 + IL_00d4: ceq + IL_00d6: call void [mscorlib]System.Console::WriteLine(bool) + IL_00db: ldarg.0 + IL_00dc: stloc.1 + IL_00dd: ldarg.1 + IL_00de: stloc.0 + IL_00df: ldloca.s V_1 + IL_00e1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00e6: ldloca.s V_0 IL_00e8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00ed: ldloca.s V_0 - IL_00ef: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f4: and - IL_00f5: brtrue.s IL_0102 + IL_00ed: and + IL_00ee: brtrue.s IL_00fb - IL_00f7: ldloca.s V_2 - IL_00f9: initobj valuetype [mscorlib]System.Nullable`1 - IL_00ff: ldloc.2 - IL_0100: br.s IL_0116 + IL_00f0: ldloca.s V_2 + IL_00f2: initobj valuetype [mscorlib]System.Nullable`1 + IL_00f8: ldloc.2 + IL_00f9: br.s IL_010f - IL_0102: ldloca.s V_1 + IL_00fb: ldloca.s V_1 + IL_00fd: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0102: ldloca.s V_0 IL_0104: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0109: ldloca.s V_0 - IL_010b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0110: add - IL_0111: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0116: box valuetype [mscorlib]System.Nullable`1 - IL_011b: call void [mscorlib]System.Console::WriteLine(object) - IL_0120: ldarg.0 - IL_0121: stloc.0 - IL_0122: ldarg.1 - IL_0123: stloc.1 - IL_0124: ldloca.s V_0 + IL_0109: add + IL_010a: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_010f: box valuetype [mscorlib]System.Nullable`1 + IL_0114: call void [mscorlib]System.Console::WriteLine(object) + IL_0119: ldarg.0 + IL_011a: stloc.0 + IL_011b: ldarg.1 + IL_011c: stloc.1 + IL_011d: ldloca.s V_0 + IL_011f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0124: ldloca.s V_1 IL_0126: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_012b: ldloca.s V_1 - IL_012d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0132: and - IL_0133: brtrue.s IL_0140 + IL_012b: and + IL_012c: brtrue.s IL_0139 - IL_0135: ldloca.s V_2 - IL_0137: initobj valuetype [mscorlib]System.Nullable`1 - IL_013d: ldloc.2 - IL_013e: br.s IL_0154 + IL_012e: ldloca.s V_2 + IL_0130: initobj valuetype [mscorlib]System.Nullable`1 + IL_0136: ldloc.2 + IL_0137: br.s IL_014d - IL_0140: ldloca.s V_0 + IL_0139: ldloca.s V_0 + IL_013b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0140: ldloca.s V_1 IL_0142: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0147: ldloca.s V_1 - IL_0149: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_014e: sub - IL_014f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0154: box valuetype [mscorlib]System.Nullable`1 - IL_0159: call void [mscorlib]System.Console::WriteLine(object) - IL_015e: ldarg.0 - IL_015f: stloc.1 - IL_0160: ldarg.1 - IL_0161: stloc.0 - IL_0162: ldloca.s V_1 + IL_0147: sub + IL_0148: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_014d: box valuetype [mscorlib]System.Nullable`1 + IL_0152: call void [mscorlib]System.Console::WriteLine(object) + IL_0157: ldarg.0 + IL_0158: stloc.1 + IL_0159: ldarg.1 + IL_015a: stloc.0 + IL_015b: ldloca.s V_1 + IL_015d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0162: ldloca.s V_0 IL_0164: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0169: ldloca.s V_0 - IL_016b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0170: and - IL_0171: brtrue.s IL_017e + IL_0169: and + IL_016a: brtrue.s IL_0177 - IL_0173: ldloca.s V_2 - IL_0175: initobj valuetype [mscorlib]System.Nullable`1 - IL_017b: ldloc.2 - IL_017c: br.s IL_0192 + IL_016c: ldloca.s V_2 + IL_016e: initobj valuetype [mscorlib]System.Nullable`1 + IL_0174: ldloc.2 + IL_0175: br.s IL_018b - IL_017e: ldloca.s V_1 + IL_0177: ldloca.s V_1 + IL_0179: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_017e: ldloca.s V_0 IL_0180: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0185: ldloca.s V_0 - IL_0187: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_018c: mul - IL_018d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0192: box valuetype [mscorlib]System.Nullable`1 - IL_0197: call void [mscorlib]System.Console::WriteLine(object) - IL_019c: ldarg.0 - IL_019d: stloc.0 - IL_019e: ldarg.1 - IL_019f: stloc.1 - IL_01a0: ldloca.s V_0 + IL_0185: mul + IL_0186: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_018b: box valuetype [mscorlib]System.Nullable`1 + IL_0190: call void [mscorlib]System.Console::WriteLine(object) + IL_0195: ldarg.0 + IL_0196: stloc.0 + IL_0197: ldarg.1 + IL_0198: stloc.1 + IL_0199: ldloca.s V_0 + IL_019b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01a0: ldloca.s V_1 IL_01a2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01a7: ldloca.s V_1 - IL_01a9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01ae: and - IL_01af: brtrue.s IL_01bc + IL_01a7: and + IL_01a8: brtrue.s IL_01b5 - IL_01b1: ldloca.s V_2 - IL_01b3: initobj valuetype [mscorlib]System.Nullable`1 - IL_01b9: ldloc.2 - IL_01ba: br.s IL_01d0 + IL_01aa: ldloca.s V_2 + IL_01ac: initobj valuetype [mscorlib]System.Nullable`1 + IL_01b2: ldloc.2 + IL_01b3: br.s IL_01c9 - IL_01bc: ldloca.s V_0 + IL_01b5: ldloca.s V_0 + IL_01b7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01bc: ldloca.s V_1 IL_01be: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01c3: ldloca.s V_1 - IL_01c5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01ca: div - IL_01cb: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01d0: box valuetype [mscorlib]System.Nullable`1 - IL_01d5: call void [mscorlib]System.Console::WriteLine(object) - IL_01da: ldarg.0 - IL_01db: stloc.1 - IL_01dc: ldarg.1 - IL_01dd: stloc.0 - IL_01de: ldloca.s V_1 + IL_01c3: div + IL_01c4: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01c9: box valuetype [mscorlib]System.Nullable`1 + IL_01ce: call void [mscorlib]System.Console::WriteLine(object) + IL_01d3: ldarg.0 + IL_01d4: stloc.1 + IL_01d5: ldarg.1 + IL_01d6: stloc.0 + IL_01d7: ldloca.s V_1 + IL_01d9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01de: ldloca.s V_0 IL_01e0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01e5: ldloca.s V_0 - IL_01e7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01ec: and - IL_01ed: brtrue.s IL_01fa + IL_01e5: and + IL_01e6: brtrue.s IL_01f3 - IL_01ef: ldloca.s V_2 - IL_01f1: initobj valuetype [mscorlib]System.Nullable`1 - IL_01f7: ldloc.2 - IL_01f8: br.s IL_020e + IL_01e8: ldloca.s V_2 + IL_01ea: initobj valuetype [mscorlib]System.Nullable`1 + IL_01f0: ldloc.2 + IL_01f1: br.s IL_0207 - IL_01fa: ldloca.s V_1 + IL_01f3: ldloca.s V_1 + IL_01f5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01fa: ldloca.s V_0 IL_01fc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0201: ldloca.s V_0 - IL_0203: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0208: rem - IL_0209: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_020e: box valuetype [mscorlib]System.Nullable`1 - IL_0213: call void [mscorlib]System.Console::WriteLine(object) - IL_0218: ldarg.0 - IL_0219: stloc.0 - IL_021a: ldarg.1 - IL_021b: stloc.1 - IL_021c: ldloca.s V_0 + IL_0201: rem + IL_0202: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0207: box valuetype [mscorlib]System.Nullable`1 + IL_020c: call void [mscorlib]System.Console::WriteLine(object) + IL_0211: ldarg.0 + IL_0212: stloc.0 + IL_0213: ldarg.1 + IL_0214: stloc.1 + IL_0215: ldloca.s V_0 + IL_0217: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_021c: ldloca.s V_1 IL_021e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0223: ldloca.s V_1 - IL_0225: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_022a: and - IL_022b: brtrue.s IL_0238 + IL_0223: and + IL_0224: brtrue.s IL_0231 - IL_022d: ldloca.s V_2 - IL_022f: initobj valuetype [mscorlib]System.Nullable`1 - IL_0235: ldloc.2 - IL_0236: br.s IL_024c + IL_0226: ldloca.s V_2 + IL_0228: initobj valuetype [mscorlib]System.Nullable`1 + IL_022e: ldloc.2 + IL_022f: br.s IL_0245 - IL_0238: ldloca.s V_0 + IL_0231: ldloca.s V_0 + IL_0233: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0238: ldloca.s V_1 IL_023a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_023f: ldloca.s V_1 - IL_0241: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0246: and - IL_0247: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_024c: box valuetype [mscorlib]System.Nullable`1 - IL_0251: call void [mscorlib]System.Console::WriteLine(object) - IL_0256: ldarg.0 - IL_0257: stloc.1 - IL_0258: ldarg.1 - IL_0259: stloc.0 - IL_025a: ldloca.s V_1 + IL_023f: and + IL_0240: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0245: box valuetype [mscorlib]System.Nullable`1 + IL_024a: call void [mscorlib]System.Console::WriteLine(object) + IL_024f: ldarg.0 + IL_0250: stloc.1 + IL_0251: ldarg.1 + IL_0252: stloc.0 + IL_0253: ldloca.s V_1 + IL_0255: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_025a: ldloca.s V_0 IL_025c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0261: ldloca.s V_0 - IL_0263: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0268: and - IL_0269: brtrue.s IL_0276 + IL_0261: and + IL_0262: brtrue.s IL_026f - IL_026b: ldloca.s V_2 - IL_026d: initobj valuetype [mscorlib]System.Nullable`1 - IL_0273: ldloc.2 - IL_0274: br.s IL_028a + IL_0264: ldloca.s V_2 + IL_0266: initobj valuetype [mscorlib]System.Nullable`1 + IL_026c: ldloc.2 + IL_026d: br.s IL_0283 - IL_0276: ldloca.s V_1 + IL_026f: ldloca.s V_1 + IL_0271: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0276: ldloca.s V_0 IL_0278: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_027d: ldloca.s V_0 - IL_027f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0284: or - IL_0285: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_028a: box valuetype [mscorlib]System.Nullable`1 - IL_028f: call void [mscorlib]System.Console::WriteLine(object) - IL_0294: ldarg.0 - IL_0295: stloc.0 - IL_0296: ldarg.1 - IL_0297: stloc.1 - IL_0298: ldloca.s V_0 + IL_027d: or + IL_027e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0283: box valuetype [mscorlib]System.Nullable`1 + IL_0288: call void [mscorlib]System.Console::WriteLine(object) + IL_028d: ldarg.0 + IL_028e: stloc.0 + IL_028f: ldarg.1 + IL_0290: stloc.1 + IL_0291: ldloca.s V_0 + IL_0293: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0298: ldloca.s V_1 IL_029a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_029f: ldloca.s V_1 - IL_02a1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02a6: and - IL_02a7: brtrue.s IL_02b4 + IL_029f: and + IL_02a0: brtrue.s IL_02ad - IL_02a9: ldloca.s V_2 - IL_02ab: initobj valuetype [mscorlib]System.Nullable`1 - IL_02b1: ldloc.2 - IL_02b2: br.s IL_02c8 + IL_02a2: ldloca.s V_2 + IL_02a4: initobj valuetype [mscorlib]System.Nullable`1 + IL_02aa: ldloc.2 + IL_02ab: br.s IL_02c1 - IL_02b4: ldloca.s V_0 + IL_02ad: ldloca.s V_0 + IL_02af: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02b4: ldloca.s V_1 IL_02b6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02bb: ldloca.s V_1 - IL_02bd: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02c2: xor - IL_02c3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02c8: box valuetype [mscorlib]System.Nullable`1 - IL_02cd: call void [mscorlib]System.Console::WriteLine(object) - IL_02d2: ldarg.0 - IL_02d3: stloc.1 - IL_02d4: ldarg.1 - IL_02d5: stloc.0 - IL_02d6: ldloca.s V_1 + IL_02bb: xor + IL_02bc: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02c1: box valuetype [mscorlib]System.Nullable`1 + IL_02c6: call void [mscorlib]System.Console::WriteLine(object) + IL_02cb: ldarg.0 + IL_02cc: stloc.1 + IL_02cd: ldarg.1 + IL_02ce: stloc.0 + IL_02cf: ldloca.s V_1 + IL_02d1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02d6: ldloca.s V_0 IL_02d8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02dd: ldloca.s V_0 - IL_02df: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02e4: and - IL_02e5: brtrue.s IL_02f2 + IL_02dd: and + IL_02de: brtrue.s IL_02eb - IL_02e7: ldloca.s V_2 - IL_02e9: initobj valuetype [mscorlib]System.Nullable`1 - IL_02ef: ldloc.2 - IL_02f0: br.s IL_0309 + IL_02e0: ldloca.s V_2 + IL_02e2: initobj valuetype [mscorlib]System.Nullable`1 + IL_02e8: ldloc.2 + IL_02e9: br.s IL_0302 - IL_02f2: ldloca.s V_1 + IL_02eb: ldloca.s V_1 + IL_02ed: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02f2: ldloca.s V_0 IL_02f4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02f9: ldloca.s V_0 - IL_02fb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0300: ldc.i4.s 31 - IL_0302: and - IL_0303: shl - IL_0304: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0309: box valuetype [mscorlib]System.Nullable`1 - IL_030e: call void [mscorlib]System.Console::WriteLine(object) - IL_0313: ldarg.0 - IL_0314: stloc.0 - IL_0315: ldarg.1 - IL_0316: stloc.1 - IL_0317: ldloca.s V_0 + IL_02f9: ldc.i4.s 31 + IL_02fb: and + IL_02fc: shl + IL_02fd: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0302: box valuetype [mscorlib]System.Nullable`1 + IL_0307: call void [mscorlib]System.Console::WriteLine(object) + IL_030c: ldarg.0 + IL_030d: stloc.0 + IL_030e: ldarg.1 + IL_030f: stloc.1 + IL_0310: ldloca.s V_0 + IL_0312: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0317: ldloca.s V_1 IL_0319: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_031e: ldloca.s V_1 - IL_0320: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0325: and - IL_0326: brtrue.s IL_0333 + IL_031e: and + IL_031f: brtrue.s IL_032c - IL_0328: ldloca.s V_2 - IL_032a: initobj valuetype [mscorlib]System.Nullable`1 - IL_0330: ldloc.2 - IL_0331: br.s IL_034a + IL_0321: ldloca.s V_2 + IL_0323: initobj valuetype [mscorlib]System.Nullable`1 + IL_0329: ldloc.2 + IL_032a: br.s IL_0343 - IL_0333: ldloca.s V_0 + IL_032c: ldloca.s V_0 + IL_032e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0333: ldloca.s V_1 IL_0335: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_033a: ldloca.s V_1 - IL_033c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0341: ldc.i4.s 31 - IL_0343: and - IL_0344: shr - IL_0345: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_034a: box valuetype [mscorlib]System.Nullable`1 - IL_034f: call void [mscorlib]System.Console::WriteLine(object) - IL_0354: ldarg.0 - IL_0355: stloc.1 - IL_0356: ldloca.s V_1 - IL_0358: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_035d: brtrue.s IL_0362 - - IL_035f: ldarg.1 - IL_0360: br.s IL_0363 - - IL_0362: ldloc.1 - IL_0363: box valuetype [mscorlib]System.Nullable`1 - IL_0368: call void [mscorlib]System.Console::WriteLine(object) - IL_036d: ldarg.0 - IL_036e: stloc.1 - IL_036f: ldloca.s V_1 - IL_0371: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0376: brtrue.s IL_0383 - - IL_0378: ldloca.s V_0 - IL_037a: initobj valuetype [mscorlib]System.Nullable`1 - IL_0380: ldloc.0 - IL_0381: br.s IL_0390 - - IL_0383: ldloca.s V_1 - IL_0385: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_038a: neg - IL_038b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0390: box valuetype [mscorlib]System.Nullable`1 - IL_0395: call void [mscorlib]System.Console::WriteLine(object) - IL_039a: ldarg.0 - IL_039b: stloc.1 - IL_039c: ldloca.s V_1 - IL_039e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03a3: brtrue.s IL_03b0 - - IL_03a5: ldloca.s V_0 - IL_03a7: initobj valuetype [mscorlib]System.Nullable`1 - IL_03ad: ldloc.0 - IL_03ae: br.s IL_03bd - - IL_03b0: ldloca.s V_1 - IL_03b2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03b7: not - IL_03b8: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03bd: box valuetype [mscorlib]System.Nullable`1 - IL_03c2: call void [mscorlib]System.Console::WriteLine(object) - IL_03c7: ldarg.0 - IL_03c8: stloc.1 - IL_03c9: ldloca.s V_1 - IL_03cb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03d0: brtrue.s IL_03dd - - IL_03d2: ldloca.s V_0 - IL_03d4: initobj valuetype [mscorlib]System.Nullable`1 - IL_03da: ldloc.0 - IL_03db: br.s IL_03eb - - IL_03dd: ldloca.s V_1 - IL_03df: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03e4: ldc.i4.1 - IL_03e5: add - IL_03e6: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03eb: dup - IL_03ec: starg.s a - IL_03ee: box valuetype [mscorlib]System.Nullable`1 - IL_03f3: call void [mscorlib]System.Console::WriteLine(object) - IL_03f8: ldarg.0 - IL_03f9: stloc.1 - IL_03fa: ldloca.s V_1 - IL_03fc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0401: brtrue.s IL_040e - - IL_0403: ldloca.s V_0 - IL_0405: initobj valuetype [mscorlib]System.Nullable`1 - IL_040b: ldloc.0 - IL_040c: br.s IL_041c - - IL_040e: ldloca.s V_1 - IL_0410: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0415: ldc.i4.1 - IL_0416: sub - IL_0417: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_041c: dup - IL_041d: starg.s a - IL_041f: box valuetype [mscorlib]System.Nullable`1 - IL_0424: call void [mscorlib]System.Console::WriteLine(object) - IL_0429: ldarg.0 - IL_042a: stloc.1 - IL_042b: ldarg.1 - IL_042c: stloc.0 - IL_042d: ldloca.s V_1 + IL_033a: ldc.i4.s 31 + IL_033c: and + IL_033d: shr + IL_033e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0343: box valuetype [mscorlib]System.Nullable`1 + IL_0348: call void [mscorlib]System.Console::WriteLine(object) + IL_034d: ldarg.0 + IL_034e: stloc.1 + IL_034f: ldloca.s V_1 + IL_0351: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0356: brtrue.s IL_035b + + IL_0358: ldarg.1 + IL_0359: br.s IL_035c + + IL_035b: ldloc.1 + IL_035c: box valuetype [mscorlib]System.Nullable`1 + IL_0361: call void [mscorlib]System.Console::WriteLine(object) + IL_0366: ldarg.0 + IL_0367: stloc.1 + IL_0368: ldloca.s V_1 + IL_036a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_036f: brtrue.s IL_037c + + IL_0371: ldloca.s V_0 + IL_0373: initobj valuetype [mscorlib]System.Nullable`1 + IL_0379: ldloc.0 + IL_037a: br.s IL_0389 + + IL_037c: ldloca.s V_1 + IL_037e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0383: neg + IL_0384: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0389: box valuetype [mscorlib]System.Nullable`1 + IL_038e: call void [mscorlib]System.Console::WriteLine(object) + IL_0393: ldarg.0 + IL_0394: stloc.1 + IL_0395: ldloca.s V_1 + IL_0397: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_039c: brtrue.s IL_03a9 + + IL_039e: ldloca.s V_0 + IL_03a0: initobj valuetype [mscorlib]System.Nullable`1 + IL_03a6: ldloc.0 + IL_03a7: br.s IL_03b6 + + IL_03a9: ldloca.s V_1 + IL_03ab: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03b0: not + IL_03b1: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03b6: box valuetype [mscorlib]System.Nullable`1 + IL_03bb: call void [mscorlib]System.Console::WriteLine(object) + IL_03c0: ldarg.0 + IL_03c1: stloc.1 + IL_03c2: ldloca.s V_1 + IL_03c4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03c9: brtrue.s IL_03d6 + + IL_03cb: ldloca.s V_0 + IL_03cd: initobj valuetype [mscorlib]System.Nullable`1 + IL_03d3: ldloc.0 + IL_03d4: br.s IL_03e4 + + IL_03d6: ldloca.s V_1 + IL_03d8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03dd: ldc.i4.1 + IL_03de: add + IL_03df: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03e4: dup + IL_03e5: starg.s a + IL_03e7: box valuetype [mscorlib]System.Nullable`1 + IL_03ec: call void [mscorlib]System.Console::WriteLine(object) + IL_03f1: ldarg.0 + IL_03f2: stloc.1 + IL_03f3: ldloca.s V_1 + IL_03f5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03fa: brtrue.s IL_0407 + + IL_03fc: ldloca.s V_0 + IL_03fe: initobj valuetype [mscorlib]System.Nullable`1 + IL_0404: ldloc.0 + IL_0405: br.s IL_0415 + + IL_0407: ldloca.s V_1 + IL_0409: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_040e: ldc.i4.1 + IL_040f: sub + IL_0410: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0415: dup + IL_0416: starg.s a + IL_0418: box valuetype [mscorlib]System.Nullable`1 + IL_041d: call void [mscorlib]System.Console::WriteLine(object) + IL_0422: ldarg.0 + IL_0423: stloc.1 + IL_0424: ldarg.1 + IL_0425: stloc.0 + IL_0426: ldloca.s V_1 + IL_0428: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_042d: ldloca.s V_0 IL_042f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0434: ldloca.s V_0 - IL_0436: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_043b: and - IL_043c: brtrue.s IL_0449 + IL_0434: and + IL_0435: brtrue.s IL_0442 - IL_043e: ldloca.s V_2 - IL_0440: initobj valuetype [mscorlib]System.Nullable`1 - IL_0446: ldloc.2 - IL_0447: br.s IL_045d + IL_0437: ldloca.s V_2 + IL_0439: initobj valuetype [mscorlib]System.Nullable`1 + IL_043f: ldloc.2 + IL_0440: br.s IL_0456 - IL_0449: ldloca.s V_1 + IL_0442: ldloca.s V_1 + IL_0444: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0449: ldloca.s V_0 IL_044b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0450: ldloca.s V_0 - IL_0452: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0457: add - IL_0458: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_045d: starg.s a - IL_045f: ldarg.0 - IL_0460: stloc.0 - IL_0461: ldarg.1 - IL_0462: stloc.1 - IL_0463: ldloca.s V_0 + IL_0450: add + IL_0451: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0456: starg.s a + IL_0458: ldarg.0 + IL_0459: stloc.0 + IL_045a: ldarg.1 + IL_045b: stloc.1 + IL_045c: ldloca.s V_0 + IL_045e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0463: ldloca.s V_1 IL_0465: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_046a: ldloca.s V_1 - IL_046c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0471: and - IL_0472: brtrue.s IL_047f + IL_046a: and + IL_046b: brtrue.s IL_0478 - IL_0474: ldloca.s V_2 - IL_0476: initobj valuetype [mscorlib]System.Nullable`1 - IL_047c: ldloc.2 - IL_047d: br.s IL_0493 + IL_046d: ldloca.s V_2 + IL_046f: initobj valuetype [mscorlib]System.Nullable`1 + IL_0475: ldloc.2 + IL_0476: br.s IL_048c - IL_047f: ldloca.s V_0 + IL_0478: ldloca.s V_0 + IL_047a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_047f: ldloca.s V_1 IL_0481: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0486: ldloca.s V_1 - IL_0488: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_048d: sub - IL_048e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0493: starg.s a - IL_0495: ldarg.0 - IL_0496: stloc.1 - IL_0497: ldarg.1 - IL_0498: stloc.0 - IL_0499: ldloca.s V_1 + IL_0486: sub + IL_0487: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_048c: starg.s a + IL_048e: ldarg.0 + IL_048f: stloc.1 + IL_0490: ldarg.1 + IL_0491: stloc.0 + IL_0492: ldloca.s V_1 + IL_0494: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0499: ldloca.s V_0 IL_049b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04a0: ldloca.s V_0 - IL_04a2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04a7: and - IL_04a8: brtrue.s IL_04b5 + IL_04a0: and + IL_04a1: brtrue.s IL_04ae - IL_04aa: ldloca.s V_2 - IL_04ac: initobj valuetype [mscorlib]System.Nullable`1 - IL_04b2: ldloc.2 - IL_04b3: br.s IL_04c9 + IL_04a3: ldloca.s V_2 + IL_04a5: initobj valuetype [mscorlib]System.Nullable`1 + IL_04ab: ldloc.2 + IL_04ac: br.s IL_04c2 - IL_04b5: ldloca.s V_1 + IL_04ae: ldloca.s V_1 + IL_04b0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_04b5: ldloca.s V_0 IL_04b7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04bc: ldloca.s V_0 - IL_04be: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04c3: mul - IL_04c4: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_04c9: starg.s a - IL_04cb: ldarg.0 - IL_04cc: stloc.0 - IL_04cd: ldarg.1 - IL_04ce: stloc.1 - IL_04cf: ldloca.s V_0 + IL_04bc: mul + IL_04bd: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_04c2: starg.s a + IL_04c4: ldarg.0 + IL_04c5: stloc.0 + IL_04c6: ldarg.1 + IL_04c7: stloc.1 + IL_04c8: ldloca.s V_0 + IL_04ca: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_04cf: ldloca.s V_1 IL_04d1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04d6: ldloca.s V_1 - IL_04d8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04dd: and - IL_04de: brtrue.s IL_04eb + IL_04d6: and + IL_04d7: brtrue.s IL_04e4 - IL_04e0: ldloca.s V_2 - IL_04e2: initobj valuetype [mscorlib]System.Nullable`1 - IL_04e8: ldloc.2 - IL_04e9: br.s IL_04ff + IL_04d9: ldloca.s V_2 + IL_04db: initobj valuetype [mscorlib]System.Nullable`1 + IL_04e1: ldloc.2 + IL_04e2: br.s IL_04f8 - IL_04eb: ldloca.s V_0 + IL_04e4: ldloca.s V_0 + IL_04e6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_04eb: ldloca.s V_1 IL_04ed: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04f2: ldloca.s V_1 - IL_04f4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04f9: div - IL_04fa: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_04ff: starg.s a - IL_0501: ldarg.0 - IL_0502: stloc.1 - IL_0503: ldarg.1 - IL_0504: stloc.0 - IL_0505: ldloca.s V_1 + IL_04f2: div + IL_04f3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_04f8: starg.s a + IL_04fa: ldarg.0 + IL_04fb: stloc.1 + IL_04fc: ldarg.1 + IL_04fd: stloc.0 + IL_04fe: ldloca.s V_1 + IL_0500: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0505: ldloca.s V_0 IL_0507: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_050c: ldloca.s V_0 - IL_050e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0513: and - IL_0514: brtrue.s IL_0521 + IL_050c: and + IL_050d: brtrue.s IL_051a - IL_0516: ldloca.s V_2 - IL_0518: initobj valuetype [mscorlib]System.Nullable`1 - IL_051e: ldloc.2 - IL_051f: br.s IL_0535 + IL_050f: ldloca.s V_2 + IL_0511: initobj valuetype [mscorlib]System.Nullable`1 + IL_0517: ldloc.2 + IL_0518: br.s IL_052e - IL_0521: ldloca.s V_1 + IL_051a: ldloca.s V_1 + IL_051c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0521: ldloca.s V_0 IL_0523: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0528: ldloca.s V_0 - IL_052a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_052f: rem - IL_0530: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0535: starg.s a - IL_0537: ldarg.0 - IL_0538: stloc.0 - IL_0539: ldarg.1 - IL_053a: stloc.1 - IL_053b: ldloca.s V_0 + IL_0528: rem + IL_0529: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_052e: starg.s a + IL_0530: ldarg.0 + IL_0531: stloc.0 + IL_0532: ldarg.1 + IL_0533: stloc.1 + IL_0534: ldloca.s V_0 + IL_0536: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_053b: ldloca.s V_1 IL_053d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0542: ldloca.s V_1 - IL_0544: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0549: and - IL_054a: brtrue.s IL_0557 + IL_0542: and + IL_0543: brtrue.s IL_0550 - IL_054c: ldloca.s V_2 - IL_054e: initobj valuetype [mscorlib]System.Nullable`1 - IL_0554: ldloc.2 - IL_0555: br.s IL_056b + IL_0545: ldloca.s V_2 + IL_0547: initobj valuetype [mscorlib]System.Nullable`1 + IL_054d: ldloc.2 + IL_054e: br.s IL_0564 - IL_0557: ldloca.s V_0 + IL_0550: ldloca.s V_0 + IL_0552: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0557: ldloca.s V_1 IL_0559: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_055e: ldloca.s V_1 - IL_0560: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0565: and - IL_0566: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_056b: starg.s a - IL_056d: ldarg.0 - IL_056e: stloc.1 - IL_056f: ldarg.1 - IL_0570: stloc.0 - IL_0571: ldloca.s V_1 + IL_055e: and + IL_055f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0564: starg.s a + IL_0566: ldarg.0 + IL_0567: stloc.1 + IL_0568: ldarg.1 + IL_0569: stloc.0 + IL_056a: ldloca.s V_1 + IL_056c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0571: ldloca.s V_0 IL_0573: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0578: ldloca.s V_0 - IL_057a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_057f: and - IL_0580: brtrue.s IL_058d + IL_0578: and + IL_0579: brtrue.s IL_0586 - IL_0582: ldloca.s V_2 - IL_0584: initobj valuetype [mscorlib]System.Nullable`1 - IL_058a: ldloc.2 - IL_058b: br.s IL_05a1 + IL_057b: ldloca.s V_2 + IL_057d: initobj valuetype [mscorlib]System.Nullable`1 + IL_0583: ldloc.2 + IL_0584: br.s IL_059a - IL_058d: ldloca.s V_1 + IL_0586: ldloca.s V_1 + IL_0588: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_058d: ldloca.s V_0 IL_058f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0594: ldloca.s V_0 - IL_0596: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_059b: or - IL_059c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_05a1: starg.s a - IL_05a3: ldarg.0 - IL_05a4: stloc.0 - IL_05a5: ldarg.1 - IL_05a6: stloc.1 - IL_05a7: ldloca.s V_0 + IL_0594: or + IL_0595: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_059a: starg.s a + IL_059c: ldarg.0 + IL_059d: stloc.0 + IL_059e: ldarg.1 + IL_059f: stloc.1 + IL_05a0: ldloca.s V_0 + IL_05a2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_05a7: ldloca.s V_1 IL_05a9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_05ae: ldloca.s V_1 - IL_05b0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_05b5: and - IL_05b6: brtrue.s IL_05c3 + IL_05ae: and + IL_05af: brtrue.s IL_05bc - IL_05b8: ldloca.s V_2 - IL_05ba: initobj valuetype [mscorlib]System.Nullable`1 - IL_05c0: ldloc.2 - IL_05c1: br.s IL_05d7 + IL_05b1: ldloca.s V_2 + IL_05b3: initobj valuetype [mscorlib]System.Nullable`1 + IL_05b9: ldloc.2 + IL_05ba: br.s IL_05d0 - IL_05c3: ldloca.s V_0 + IL_05bc: ldloca.s V_0 + IL_05be: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_05c3: ldloca.s V_1 IL_05c5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_05ca: ldloca.s V_1 - IL_05cc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_05d1: xor - IL_05d2: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_05d7: starg.s a - IL_05d9: ldarg.0 - IL_05da: stloc.1 - IL_05db: ldarg.1 - IL_05dc: stloc.0 - IL_05dd: ldloca.s V_1 + IL_05ca: xor + IL_05cb: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_05d0: starg.s a + IL_05d2: ldarg.0 + IL_05d3: stloc.1 + IL_05d4: ldarg.1 + IL_05d5: stloc.0 + IL_05d6: ldloca.s V_1 + IL_05d8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_05dd: ldloca.s V_0 IL_05df: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_05e4: ldloca.s V_0 - IL_05e6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_05eb: and - IL_05ec: brtrue.s IL_05f9 + IL_05e4: and + IL_05e5: brtrue.s IL_05f2 - IL_05ee: ldloca.s V_2 - IL_05f0: initobj valuetype [mscorlib]System.Nullable`1 - IL_05f6: ldloc.2 - IL_05f7: br.s IL_0610 + IL_05e7: ldloca.s V_2 + IL_05e9: initobj valuetype [mscorlib]System.Nullable`1 + IL_05ef: ldloc.2 + IL_05f0: br.s IL_0609 - IL_05f9: ldloca.s V_1 + IL_05f2: ldloca.s V_1 + IL_05f4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_05f9: ldloca.s V_0 IL_05fb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0600: ldloca.s V_0 - IL_0602: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0607: ldc.i4.s 31 - IL_0609: and - IL_060a: shl - IL_060b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0610: starg.s a - IL_0612: ldarg.0 - IL_0613: stloc.0 - IL_0614: ldarg.1 - IL_0615: stloc.1 - IL_0616: ldloca.s V_0 + IL_0600: ldc.i4.s 31 + IL_0602: and + IL_0603: shl + IL_0604: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0609: starg.s a + IL_060b: ldarg.0 + IL_060c: stloc.0 + IL_060d: ldarg.1 + IL_060e: stloc.1 + IL_060f: ldloca.s V_0 + IL_0611: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0616: ldloca.s V_1 IL_0618: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_061d: ldloca.s V_1 - IL_061f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0624: and - IL_0625: brtrue.s IL_0632 + IL_061d: and + IL_061e: brtrue.s IL_062b - IL_0627: ldloca.s V_2 - IL_0629: initobj valuetype [mscorlib]System.Nullable`1 - IL_062f: ldloc.2 - IL_0630: br.s IL_0649 + IL_0620: ldloca.s V_2 + IL_0622: initobj valuetype [mscorlib]System.Nullable`1 + IL_0628: ldloc.2 + IL_0629: br.s IL_0642 - IL_0632: ldloca.s V_0 + IL_062b: ldloca.s V_0 + IL_062d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0632: ldloca.s V_1 IL_0634: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0639: ldloca.s V_1 - IL_063b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0640: ldc.i4.s 31 - IL_0642: and - IL_0643: shr - IL_0644: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0649: starg.s a - IL_064b: ret + IL_0639: ldc.i4.s 31 + IL_063b: and + IL_063c: shr + IL_063d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0642: starg.s a + IL_0644: ret } // end of method LiftedOperators::IntValueBasic .method public hidebysig static void IntValueComplex(valuetype [mscorlib]System.Nullable`1 a, class [mscorlib]System.Func`1 x) cil managed { - // Code size 1346 (0x542) + // Code size 1334 (0x536) .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int32 V_1, @@ -1955,575 +1804,557 @@ IL_0009: ldloca.s V_0 IL_000b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0010: ldloc.1 - IL_0011: beq.s IL_0016 - - IL_0013: ldc.i4.0 - IL_0014: br.s IL_001d - - IL_0016: ldloca.s V_0 - IL_0018: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001d: call void [mscorlib]System.Console::WriteLine(bool) - IL_0022: ldarg.0 - IL_0023: stloc.0 - IL_0024: ldarg.1 - IL_0025: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_002a: stloc.1 - IL_002b: ldloca.s V_0 - IL_002d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0032: ldloc.1 - IL_0033: beq.s IL_0038 - - IL_0035: ldc.i4.1 - IL_0036: br.s IL_0042 - - IL_0038: ldloca.s V_0 - IL_003a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_003f: ldc.i4.0 - IL_0040: ceq - IL_0042: call void [mscorlib]System.Console::WriteLine(bool) - IL_0047: ldarg.0 - IL_0048: stloc.0 - IL_0049: ldarg.1 - IL_004a: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_004f: stloc.1 - IL_0050: ldloca.s V_0 - IL_0052: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0057: ldloc.1 - IL_0058: bgt.s IL_005d - - IL_005a: ldc.i4.0 - IL_005b: br.s IL_0064 - - IL_005d: ldloca.s V_0 - IL_005f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0064: call void [mscorlib]System.Console::WriteLine(bool) - IL_0069: ldarg.1 - IL_006a: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_006f: ldarg.0 - IL_0070: stloc.0 - IL_0071: ldloca.s V_0 - IL_0073: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0078: beq.s IL_007d - - IL_007a: ldc.i4.0 - IL_007b: br.s IL_0084 - - IL_007d: ldloca.s V_0 - IL_007f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0084: call void [mscorlib]System.Console::WriteLine(bool) - IL_0089: ldarg.1 - IL_008a: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_008f: ldarg.0 - IL_0090: stloc.0 - IL_0091: ldloca.s V_0 - IL_0093: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0098: beq.s IL_009d - - IL_009a: ldc.i4.1 - IL_009b: br.s IL_00a7 - - IL_009d: ldloca.s V_0 - IL_009f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00a4: ldc.i4.0 - IL_00a5: ceq - IL_00a7: call void [mscorlib]System.Console::WriteLine(bool) - IL_00ac: ldarg.1 - IL_00ad: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00b2: ldarg.0 - IL_00b3: stloc.0 - IL_00b4: ldloca.s V_0 - IL_00b6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00bb: bgt.s IL_00c0 - - IL_00bd: ldc.i4.0 - IL_00be: br.s IL_00c7 - - IL_00c0: ldloca.s V_0 - IL_00c2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00c7: call void [mscorlib]System.Console::WriteLine(bool) - IL_00cc: ldarg.0 - IL_00cd: stloc.0 - IL_00ce: ldarg.1 - IL_00cf: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00d4: stloc.1 - IL_00d5: ldloca.s V_0 - IL_00d7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00dc: brtrue.s IL_00e9 - - IL_00de: ldloca.s V_2 - IL_00e0: initobj valuetype [mscorlib]System.Nullable`1 - IL_00e6: ldloc.2 - IL_00e7: br.s IL_00f7 - - IL_00e9: ldloca.s V_0 - IL_00eb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00f0: ldloc.1 - IL_00f1: add - IL_00f2: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_00f7: box valuetype [mscorlib]System.Nullable`1 - IL_00fc: call void [mscorlib]System.Console::WriteLine(object) - IL_0101: ldarg.0 - IL_0102: stloc.0 - IL_0103: ldarg.1 - IL_0104: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0109: stloc.1 - IL_010a: ldloca.s V_0 - IL_010c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0111: brtrue.s IL_011e - - IL_0113: ldloca.s V_2 - IL_0115: initobj valuetype [mscorlib]System.Nullable`1 - IL_011b: ldloc.2 - IL_011c: br.s IL_012c + IL_0011: ceq + IL_0013: ldloca.s V_0 + IL_0015: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001a: and + IL_001b: call void [mscorlib]System.Console::WriteLine(bool) + IL_0020: ldarg.0 + IL_0021: stloc.0 + IL_0022: ldarg.1 + IL_0023: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0028: stloc.1 + IL_0029: ldloca.s V_0 + IL_002b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0030: ldloc.1 + IL_0031: ceq + IL_0033: ldloca.s V_0 + IL_0035: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003a: and + IL_003b: ldc.i4.0 + IL_003c: ceq + IL_003e: call void [mscorlib]System.Console::WriteLine(bool) + IL_0043: ldarg.0 + IL_0044: stloc.0 + IL_0045: ldarg.1 + IL_0046: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_004b: stloc.1 + IL_004c: ldloca.s V_0 + IL_004e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0053: ldloc.1 + IL_0054: cgt + IL_0056: ldloca.s V_0 + IL_0058: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_005d: and + IL_005e: call void [mscorlib]System.Console::WriteLine(bool) + IL_0063: ldarg.1 + IL_0064: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0069: ldarg.0 + IL_006a: stloc.0 + IL_006b: ldloca.s V_0 + IL_006d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0072: ceq + IL_0074: ldloca.s V_0 + IL_0076: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007b: and + IL_007c: call void [mscorlib]System.Console::WriteLine(bool) + IL_0081: ldarg.1 + IL_0082: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0087: ldarg.0 + IL_0088: stloc.0 + IL_0089: ldloca.s V_0 + IL_008b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0090: ceq + IL_0092: ldloca.s V_0 + IL_0094: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0099: and + IL_009a: ldc.i4.0 + IL_009b: ceq + IL_009d: call void [mscorlib]System.Console::WriteLine(bool) + IL_00a2: ldarg.1 + IL_00a3: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00a8: ldarg.0 + IL_00a9: stloc.0 + IL_00aa: ldloca.s V_0 + IL_00ac: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00b1: cgt + IL_00b3: ldloca.s V_0 + IL_00b5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ba: and + IL_00bb: call void [mscorlib]System.Console::WriteLine(bool) + IL_00c0: ldarg.0 + IL_00c1: stloc.0 + IL_00c2: ldarg.1 + IL_00c3: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00c8: stloc.1 + IL_00c9: ldloca.s V_0 + IL_00cb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00d0: brtrue.s IL_00dd + + IL_00d2: ldloca.s V_2 + IL_00d4: initobj valuetype [mscorlib]System.Nullable`1 + IL_00da: ldloc.2 + IL_00db: br.s IL_00eb + + IL_00dd: ldloca.s V_0 + IL_00df: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00e4: ldloc.1 + IL_00e5: add + IL_00e6: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_00eb: box valuetype [mscorlib]System.Nullable`1 + IL_00f0: call void [mscorlib]System.Console::WriteLine(object) + IL_00f5: ldarg.0 + IL_00f6: stloc.0 + IL_00f7: ldarg.1 + IL_00f8: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00fd: stloc.1 + IL_00fe: ldloca.s V_0 + IL_0100: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0105: brtrue.s IL_0112 + + IL_0107: ldloca.s V_2 + IL_0109: initobj valuetype [mscorlib]System.Nullable`1 + IL_010f: ldloc.2 + IL_0110: br.s IL_0120 - IL_011e: ldloca.s V_0 - IL_0120: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0125: ldloc.1 - IL_0126: sub - IL_0127: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_012c: box valuetype [mscorlib]System.Nullable`1 - IL_0131: call void [mscorlib]System.Console::WriteLine(object) - IL_0136: ldarg.0 - IL_0137: stloc.0 - IL_0138: ldarg.1 - IL_0139: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_013e: stloc.1 - IL_013f: ldloca.s V_0 - IL_0141: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0146: brtrue.s IL_0153 - - IL_0148: ldloca.s V_2 - IL_014a: initobj valuetype [mscorlib]System.Nullable`1 - IL_0150: ldloc.2 - IL_0151: br.s IL_0161 + IL_0112: ldloca.s V_0 + IL_0114: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0119: ldloc.1 + IL_011a: sub + IL_011b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0120: box valuetype [mscorlib]System.Nullable`1 + IL_0125: call void [mscorlib]System.Console::WriteLine(object) + IL_012a: ldarg.0 + IL_012b: stloc.0 + IL_012c: ldarg.1 + IL_012d: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0132: stloc.1 + IL_0133: ldloca.s V_0 + IL_0135: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_013a: brtrue.s IL_0147 + + IL_013c: ldloca.s V_2 + IL_013e: initobj valuetype [mscorlib]System.Nullable`1 + IL_0144: ldloc.2 + IL_0145: br.s IL_0155 + + IL_0147: ldloca.s V_0 + IL_0149: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_014e: ldloc.1 + IL_014f: mul + IL_0150: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0155: box valuetype [mscorlib]System.Nullable`1 + IL_015a: call void [mscorlib]System.Console::WriteLine(object) + IL_015f: ldarg.0 + IL_0160: stloc.0 + IL_0161: ldarg.1 + IL_0162: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0167: stloc.1 + IL_0168: ldloca.s V_0 + IL_016a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_016f: brtrue.s IL_017c - IL_0153: ldloca.s V_0 - IL_0155: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_015a: ldloc.1 - IL_015b: mul - IL_015c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0161: box valuetype [mscorlib]System.Nullable`1 - IL_0166: call void [mscorlib]System.Console::WriteLine(object) - IL_016b: ldarg.0 - IL_016c: stloc.0 - IL_016d: ldarg.1 - IL_016e: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0173: stloc.1 - IL_0174: ldloca.s V_0 - IL_0176: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_017b: brtrue.s IL_0188 - - IL_017d: ldloca.s V_2 - IL_017f: initobj valuetype [mscorlib]System.Nullable`1 - IL_0185: ldloc.2 - IL_0186: br.s IL_0196 - - IL_0188: ldloca.s V_0 - IL_018a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_018f: ldloc.1 - IL_0190: div - IL_0191: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0196: box valuetype [mscorlib]System.Nullable`1 - IL_019b: call void [mscorlib]System.Console::WriteLine(object) - IL_01a0: ldarg.0 - IL_01a1: stloc.0 - IL_01a2: ldarg.1 - IL_01a3: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_01a8: stloc.1 - IL_01a9: ldloca.s V_0 - IL_01ab: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01b0: brtrue.s IL_01bd - - IL_01b2: ldloca.s V_2 - IL_01b4: initobj valuetype [mscorlib]System.Nullable`1 - IL_01ba: ldloc.2 - IL_01bb: br.s IL_01cb - - IL_01bd: ldloca.s V_0 - IL_01bf: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01c4: ldloc.1 - IL_01c5: rem - IL_01c6: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01cb: box valuetype [mscorlib]System.Nullable`1 - IL_01d0: call void [mscorlib]System.Console::WriteLine(object) - IL_01d5: ldarg.0 - IL_01d6: stloc.0 - IL_01d7: ldarg.1 - IL_01d8: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_01dd: stloc.1 - IL_01de: ldloca.s V_0 - IL_01e0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01e5: brtrue.s IL_01f2 - - IL_01e7: ldloca.s V_2 - IL_01e9: initobj valuetype [mscorlib]System.Nullable`1 - IL_01ef: ldloc.2 - IL_01f0: br.s IL_0200 - - IL_01f2: ldloca.s V_0 - IL_01f4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01f9: ldloc.1 - IL_01fa: and - IL_01fb: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0200: box valuetype [mscorlib]System.Nullable`1 - IL_0205: call void [mscorlib]System.Console::WriteLine(object) - IL_020a: ldarg.0 - IL_020b: stloc.0 - IL_020c: ldarg.1 - IL_020d: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0212: stloc.1 - IL_0213: ldloca.s V_0 - IL_0215: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_021a: brtrue.s IL_0227 - - IL_021c: ldloca.s V_2 - IL_021e: initobj valuetype [mscorlib]System.Nullable`1 - IL_0224: ldloc.2 - IL_0225: br.s IL_0235 - - IL_0227: ldloca.s V_0 - IL_0229: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_022e: ldloc.1 - IL_022f: or - IL_0230: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0235: box valuetype [mscorlib]System.Nullable`1 - IL_023a: call void [mscorlib]System.Console::WriteLine(object) - IL_023f: ldarg.0 - IL_0240: stloc.0 - IL_0241: ldarg.1 - IL_0242: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0247: stloc.1 - IL_0248: ldloca.s V_0 - IL_024a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_024f: brtrue.s IL_025c - - IL_0251: ldloca.s V_2 - IL_0253: initobj valuetype [mscorlib]System.Nullable`1 - IL_0259: ldloc.2 - IL_025a: br.s IL_026a - - IL_025c: ldloca.s V_0 - IL_025e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0263: ldloc.1 - IL_0264: xor - IL_0265: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_026a: box valuetype [mscorlib]System.Nullable`1 - IL_026f: call void [mscorlib]System.Console::WriteLine(object) - IL_0274: ldarg.0 - IL_0275: stloc.0 - IL_0276: ldarg.1 - IL_0277: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_027c: stloc.1 - IL_027d: ldloca.s V_0 - IL_027f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0284: brtrue.s IL_0291 + IL_0171: ldloca.s V_2 + IL_0173: initobj valuetype [mscorlib]System.Nullable`1 + IL_0179: ldloc.2 + IL_017a: br.s IL_018a - IL_0286: ldloca.s V_2 - IL_0288: initobj valuetype [mscorlib]System.Nullable`1 - IL_028e: ldloc.2 - IL_028f: br.s IL_02a2 + IL_017c: ldloca.s V_0 + IL_017e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0183: ldloc.1 + IL_0184: div + IL_0185: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_018a: box valuetype [mscorlib]System.Nullable`1 + IL_018f: call void [mscorlib]System.Console::WriteLine(object) + IL_0194: ldarg.0 + IL_0195: stloc.0 + IL_0196: ldarg.1 + IL_0197: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_019c: stloc.1 + IL_019d: ldloca.s V_0 + IL_019f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01a4: brtrue.s IL_01b1 + + IL_01a6: ldloca.s V_2 + IL_01a8: initobj valuetype [mscorlib]System.Nullable`1 + IL_01ae: ldloc.2 + IL_01af: br.s IL_01bf + + IL_01b1: ldloca.s V_0 + IL_01b3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01b8: ldloc.1 + IL_01b9: rem + IL_01ba: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01bf: box valuetype [mscorlib]System.Nullable`1 + IL_01c4: call void [mscorlib]System.Console::WriteLine(object) + IL_01c9: ldarg.0 + IL_01ca: stloc.0 + IL_01cb: ldarg.1 + IL_01cc: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_01d1: stloc.1 + IL_01d2: ldloca.s V_0 + IL_01d4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01d9: brtrue.s IL_01e6 + + IL_01db: ldloca.s V_2 + IL_01dd: initobj valuetype [mscorlib]System.Nullable`1 + IL_01e3: ldloc.2 + IL_01e4: br.s IL_01f4 + + IL_01e6: ldloca.s V_0 + IL_01e8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01ed: ldloc.1 + IL_01ee: and + IL_01ef: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01f4: box valuetype [mscorlib]System.Nullable`1 + IL_01f9: call void [mscorlib]System.Console::WriteLine(object) + IL_01fe: ldarg.0 + IL_01ff: stloc.0 + IL_0200: ldarg.1 + IL_0201: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0206: stloc.1 + IL_0207: ldloca.s V_0 + IL_0209: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_020e: brtrue.s IL_021b + + IL_0210: ldloca.s V_2 + IL_0212: initobj valuetype [mscorlib]System.Nullable`1 + IL_0218: ldloc.2 + IL_0219: br.s IL_0229 + + IL_021b: ldloca.s V_0 + IL_021d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0222: ldloc.1 + IL_0223: or + IL_0224: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0229: box valuetype [mscorlib]System.Nullable`1 + IL_022e: call void [mscorlib]System.Console::WriteLine(object) + IL_0233: ldarg.0 + IL_0234: stloc.0 + IL_0235: ldarg.1 + IL_0236: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_023b: stloc.1 + IL_023c: ldloca.s V_0 + IL_023e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0243: brtrue.s IL_0250 + + IL_0245: ldloca.s V_2 + IL_0247: initobj valuetype [mscorlib]System.Nullable`1 + IL_024d: ldloc.2 + IL_024e: br.s IL_025e + + IL_0250: ldloca.s V_0 + IL_0252: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0257: ldloc.1 + IL_0258: xor + IL_0259: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_025e: box valuetype [mscorlib]System.Nullable`1 + IL_0263: call void [mscorlib]System.Console::WriteLine(object) + IL_0268: ldarg.0 + IL_0269: stloc.0 + IL_026a: ldarg.1 + IL_026b: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0270: stloc.1 + IL_0271: ldloca.s V_0 + IL_0273: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0278: brtrue.s IL_0285 + + IL_027a: ldloca.s V_2 + IL_027c: initobj valuetype [mscorlib]System.Nullable`1 + IL_0282: ldloc.2 + IL_0283: br.s IL_0296 + + IL_0285: ldloca.s V_0 + IL_0287: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_028c: ldloc.1 + IL_028d: ldc.i4.s 31 + IL_028f: and + IL_0290: shl + IL_0291: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0296: box valuetype [mscorlib]System.Nullable`1 + IL_029b: call void [mscorlib]System.Console::WriteLine(object) + IL_02a0: ldarg.0 + IL_02a1: stloc.0 + IL_02a2: ldarg.1 + IL_02a3: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_02a8: stloc.1 + IL_02a9: ldloca.s V_0 + IL_02ab: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02b0: brtrue.s IL_02bd + + IL_02b2: ldloca.s V_2 + IL_02b4: initobj valuetype [mscorlib]System.Nullable`1 + IL_02ba: ldloc.2 + IL_02bb: br.s IL_02ce + + IL_02bd: ldloca.s V_0 + IL_02bf: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02c4: ldloc.1 + IL_02c5: ldc.i4.s 31 + IL_02c7: and + IL_02c8: shr + IL_02c9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02ce: box valuetype [mscorlib]System.Nullable`1 + IL_02d3: call void [mscorlib]System.Console::WriteLine(object) + IL_02d8: ldarg.0 + IL_02d9: stloc.0 + IL_02da: ldloca.s V_0 + IL_02dc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02e1: brtrue.s IL_02eb - IL_0291: ldloca.s V_0 - IL_0293: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0298: ldloc.1 - IL_0299: ldc.i4.s 31 - IL_029b: and - IL_029c: shl - IL_029d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02a2: box valuetype [mscorlib]System.Nullable`1 - IL_02a7: call void [mscorlib]System.Console::WriteLine(object) - IL_02ac: ldarg.0 - IL_02ad: stloc.0 - IL_02ae: ldarg.1 - IL_02af: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_02b4: stloc.1 - IL_02b5: ldloca.s V_0 - IL_02b7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02bc: brtrue.s IL_02c9 - - IL_02be: ldloca.s V_2 - IL_02c0: initobj valuetype [mscorlib]System.Nullable`1 - IL_02c6: ldloc.2 - IL_02c7: br.s IL_02da - - IL_02c9: ldloca.s V_0 - IL_02cb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02d0: ldloc.1 - IL_02d1: ldc.i4.s 31 - IL_02d3: and - IL_02d4: shr - IL_02d5: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02da: box valuetype [mscorlib]System.Nullable`1 - IL_02df: call void [mscorlib]System.Console::WriteLine(object) - IL_02e4: ldarg.0 - IL_02e5: stloc.0 - IL_02e6: ldloca.s V_0 - IL_02e8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02ed: brtrue.s IL_02f7 - - IL_02ef: ldarg.1 - IL_02f0: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_02f5: br.s IL_02fe - - IL_02f7: ldloca.s V_0 - IL_02f9: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02fe: call void [mscorlib]System.Console::WriteLine(int32) - IL_0303: ldarg.0 - IL_0304: stloc.0 - IL_0305: ldarg.1 - IL_0306: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_030b: stloc.1 - IL_030c: ldloca.s V_0 - IL_030e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0313: brtrue.s IL_0320 - - IL_0315: ldloca.s V_2 - IL_0317: initobj valuetype [mscorlib]System.Nullable`1 - IL_031d: ldloc.2 - IL_031e: br.s IL_032e - - IL_0320: ldloca.s V_0 - IL_0322: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0327: ldloc.1 - IL_0328: add - IL_0329: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_032e: starg.s a - IL_0330: ldarg.0 - IL_0331: stloc.0 - IL_0332: ldarg.1 - IL_0333: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0338: stloc.1 - IL_0339: ldloca.s V_0 - IL_033b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0340: brtrue.s IL_034d - - IL_0342: ldloca.s V_2 - IL_0344: initobj valuetype [mscorlib]System.Nullable`1 - IL_034a: ldloc.2 - IL_034b: br.s IL_035b - - IL_034d: ldloca.s V_0 - IL_034f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0354: ldloc.1 - IL_0355: sub - IL_0356: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_035b: starg.s a - IL_035d: ldarg.0 - IL_035e: stloc.0 - IL_035f: ldarg.1 - IL_0360: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0365: stloc.1 - IL_0366: ldloca.s V_0 - IL_0368: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_036d: brtrue.s IL_037a - - IL_036f: ldloca.s V_2 - IL_0371: initobj valuetype [mscorlib]System.Nullable`1 - IL_0377: ldloc.2 - IL_0378: br.s IL_0388 - - IL_037a: ldloca.s V_0 - IL_037c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0381: ldloc.1 - IL_0382: mul - IL_0383: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0388: starg.s a - IL_038a: ldarg.0 - IL_038b: stloc.0 - IL_038c: ldarg.1 - IL_038d: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0392: stloc.1 - IL_0393: ldloca.s V_0 - IL_0395: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_039a: brtrue.s IL_03a7 - - IL_039c: ldloca.s V_2 - IL_039e: initobj valuetype [mscorlib]System.Nullable`1 - IL_03a4: ldloc.2 - IL_03a5: br.s IL_03b5 - - IL_03a7: ldloca.s V_0 - IL_03a9: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03ae: ldloc.1 - IL_03af: div - IL_03b0: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03b5: starg.s a - IL_03b7: ldarg.0 - IL_03b8: stloc.0 - IL_03b9: ldarg.1 - IL_03ba: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_03bf: stloc.1 - IL_03c0: ldloca.s V_0 - IL_03c2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03c7: brtrue.s IL_03d4 - - IL_03c9: ldloca.s V_2 - IL_03cb: initobj valuetype [mscorlib]System.Nullable`1 - IL_03d1: ldloc.2 - IL_03d2: br.s IL_03e2 - - IL_03d4: ldloca.s V_0 - IL_03d6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03db: ldloc.1 - IL_03dc: rem - IL_03dd: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03e2: starg.s a - IL_03e4: ldarg.0 - IL_03e5: stloc.0 - IL_03e6: ldarg.1 - IL_03e7: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_03ec: stloc.1 - IL_03ed: ldloca.s V_0 - IL_03ef: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03f4: brtrue.s IL_0401 - - IL_03f6: ldloca.s V_2 - IL_03f8: initobj valuetype [mscorlib]System.Nullable`1 - IL_03fe: ldloc.2 - IL_03ff: br.s IL_040f - - IL_0401: ldloca.s V_0 - IL_0403: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0408: ldloc.1 - IL_0409: and - IL_040a: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_040f: starg.s a - IL_0411: ldarg.0 - IL_0412: stloc.0 - IL_0413: ldarg.1 - IL_0414: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0419: stloc.1 - IL_041a: ldloca.s V_0 - IL_041c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0421: brtrue.s IL_042e - - IL_0423: ldloca.s V_2 - IL_0425: initobj valuetype [mscorlib]System.Nullable`1 - IL_042b: ldloc.2 - IL_042c: br.s IL_043c - - IL_042e: ldloca.s V_0 - IL_0430: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0435: ldloc.1 - IL_0436: or - IL_0437: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_043c: starg.s a - IL_043e: ldarg.0 - IL_043f: stloc.0 - IL_0440: ldarg.1 - IL_0441: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0446: stloc.1 - IL_0447: ldloca.s V_0 - IL_0449: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_044e: brtrue.s IL_045b - - IL_0450: ldloca.s V_2 - IL_0452: initobj valuetype [mscorlib]System.Nullable`1 - IL_0458: ldloc.2 - IL_0459: br.s IL_0469 - - IL_045b: ldloca.s V_0 - IL_045d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0462: ldloc.1 - IL_0463: xor - IL_0464: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0469: starg.s a - IL_046b: ldarg.0 - IL_046c: stloc.0 - IL_046d: ldarg.1 - IL_046e: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0473: stloc.1 - IL_0474: ldloca.s V_0 - IL_0476: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_047b: brtrue.s IL_0488 - - IL_047d: ldloca.s V_2 - IL_047f: initobj valuetype [mscorlib]System.Nullable`1 - IL_0485: ldloc.2 - IL_0486: br.s IL_0499 - - IL_0488: ldloca.s V_0 - IL_048a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_048f: ldloc.1 - IL_0490: ldc.i4.s 31 - IL_0492: and - IL_0493: shl - IL_0494: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0499: starg.s a - IL_049b: ldarg.0 - IL_049c: stloc.0 - IL_049d: ldarg.1 - IL_049e: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_04a3: stloc.1 - IL_04a4: ldloca.s V_0 - IL_04a6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04ab: brtrue.s IL_04b8 - - IL_04ad: ldloca.s V_2 - IL_04af: initobj valuetype [mscorlib]System.Nullable`1 - IL_04b5: ldloc.2 - IL_04b6: br.s IL_04c9 - - IL_04b8: ldloca.s V_0 - IL_04ba: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04bf: ldloc.1 - IL_04c0: ldc.i4.s 31 - IL_04c2: and - IL_04c3: shr - IL_04c4: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_04c9: starg.s a - IL_04cb: ldarg.1 - IL_04cc: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_04d1: stloc.1 - IL_04d2: ldarg.0 - IL_04d3: stloc.0 - IL_04d4: ldloca.s V_0 - IL_04d6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04db: brtrue.s IL_04e8 - - IL_04dd: ldloca.s V_2 - IL_04df: initobj valuetype [mscorlib]System.Nullable`1 - IL_04e5: ldloc.2 - IL_04e6: br.s IL_04f6 - - IL_04e8: ldloc.1 - IL_04e9: ldloca.s V_0 - IL_04eb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04f0: add - IL_04f1: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_04f6: box valuetype [mscorlib]System.Nullable`1 - IL_04fb: call void [mscorlib]System.Console::WriteLine(object) - IL_0500: ldc.i4.0 - IL_0501: newarr valuetype [mscorlib]System.Nullable`1 - IL_0506: ldc.i4.0 - IL_0507: ldelema valuetype [mscorlib]System.Nullable`1 - IL_050c: dup - IL_050d: ldobj valuetype [mscorlib]System.Nullable`1 - IL_0512: stloc.0 - IL_0513: ldarg.1 - IL_0514: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0519: stloc.1 - IL_051a: ldloca.s V_0 - IL_051c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0521: brtrue.s IL_052e - - IL_0523: ldloca.s V_2 - IL_0525: initobj valuetype [mscorlib]System.Nullable`1 - IL_052b: ldloc.2 - IL_052c: br.s IL_053c - - IL_052e: ldloca.s V_0 - IL_0530: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0535: ldloc.1 - IL_0536: add - IL_0537: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_053c: stobj valuetype [mscorlib]System.Nullable`1 - IL_0541: ret + IL_02e3: ldarg.1 + IL_02e4: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_02e9: br.s IL_02f2 + + IL_02eb: ldloca.s V_0 + IL_02ed: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02f2: call void [mscorlib]System.Console::WriteLine(int32) + IL_02f7: ldarg.0 + IL_02f8: stloc.0 + IL_02f9: ldarg.1 + IL_02fa: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_02ff: stloc.1 + IL_0300: ldloca.s V_0 + IL_0302: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0307: brtrue.s IL_0314 + + IL_0309: ldloca.s V_2 + IL_030b: initobj valuetype [mscorlib]System.Nullable`1 + IL_0311: ldloc.2 + IL_0312: br.s IL_0322 + + IL_0314: ldloca.s V_0 + IL_0316: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_031b: ldloc.1 + IL_031c: add + IL_031d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0322: starg.s a + IL_0324: ldarg.0 + IL_0325: stloc.0 + IL_0326: ldarg.1 + IL_0327: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_032c: stloc.1 + IL_032d: ldloca.s V_0 + IL_032f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0334: brtrue.s IL_0341 + + IL_0336: ldloca.s V_2 + IL_0338: initobj valuetype [mscorlib]System.Nullable`1 + IL_033e: ldloc.2 + IL_033f: br.s IL_034f + + IL_0341: ldloca.s V_0 + IL_0343: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0348: ldloc.1 + IL_0349: sub + IL_034a: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_034f: starg.s a + IL_0351: ldarg.0 + IL_0352: stloc.0 + IL_0353: ldarg.1 + IL_0354: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0359: stloc.1 + IL_035a: ldloca.s V_0 + IL_035c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0361: brtrue.s IL_036e + + IL_0363: ldloca.s V_2 + IL_0365: initobj valuetype [mscorlib]System.Nullable`1 + IL_036b: ldloc.2 + IL_036c: br.s IL_037c + + IL_036e: ldloca.s V_0 + IL_0370: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0375: ldloc.1 + IL_0376: mul + IL_0377: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_037c: starg.s a + IL_037e: ldarg.0 + IL_037f: stloc.0 + IL_0380: ldarg.1 + IL_0381: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0386: stloc.1 + IL_0387: ldloca.s V_0 + IL_0389: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_038e: brtrue.s IL_039b + + IL_0390: ldloca.s V_2 + IL_0392: initobj valuetype [mscorlib]System.Nullable`1 + IL_0398: ldloc.2 + IL_0399: br.s IL_03a9 + + IL_039b: ldloca.s V_0 + IL_039d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03a2: ldloc.1 + IL_03a3: div + IL_03a4: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03a9: starg.s a + IL_03ab: ldarg.0 + IL_03ac: stloc.0 + IL_03ad: ldarg.1 + IL_03ae: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_03b3: stloc.1 + IL_03b4: ldloca.s V_0 + IL_03b6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03bb: brtrue.s IL_03c8 + + IL_03bd: ldloca.s V_2 + IL_03bf: initobj valuetype [mscorlib]System.Nullable`1 + IL_03c5: ldloc.2 + IL_03c6: br.s IL_03d6 + + IL_03c8: ldloca.s V_0 + IL_03ca: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03cf: ldloc.1 + IL_03d0: rem + IL_03d1: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03d6: starg.s a + IL_03d8: ldarg.0 + IL_03d9: stloc.0 + IL_03da: ldarg.1 + IL_03db: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_03e0: stloc.1 + IL_03e1: ldloca.s V_0 + IL_03e3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03e8: brtrue.s IL_03f5 + + IL_03ea: ldloca.s V_2 + IL_03ec: initobj valuetype [mscorlib]System.Nullable`1 + IL_03f2: ldloc.2 + IL_03f3: br.s IL_0403 + + IL_03f5: ldloca.s V_0 + IL_03f7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03fc: ldloc.1 + IL_03fd: and + IL_03fe: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0403: starg.s a + IL_0405: ldarg.0 + IL_0406: stloc.0 + IL_0407: ldarg.1 + IL_0408: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_040d: stloc.1 + IL_040e: ldloca.s V_0 + IL_0410: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0415: brtrue.s IL_0422 + + IL_0417: ldloca.s V_2 + IL_0419: initobj valuetype [mscorlib]System.Nullable`1 + IL_041f: ldloc.2 + IL_0420: br.s IL_0430 + + IL_0422: ldloca.s V_0 + IL_0424: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0429: ldloc.1 + IL_042a: or + IL_042b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0430: starg.s a + IL_0432: ldarg.0 + IL_0433: stloc.0 + IL_0434: ldarg.1 + IL_0435: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_043a: stloc.1 + IL_043b: ldloca.s V_0 + IL_043d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0442: brtrue.s IL_044f + + IL_0444: ldloca.s V_2 + IL_0446: initobj valuetype [mscorlib]System.Nullable`1 + IL_044c: ldloc.2 + IL_044d: br.s IL_045d + + IL_044f: ldloca.s V_0 + IL_0451: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0456: ldloc.1 + IL_0457: xor + IL_0458: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_045d: starg.s a + IL_045f: ldarg.0 + IL_0460: stloc.0 + IL_0461: ldarg.1 + IL_0462: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0467: stloc.1 + IL_0468: ldloca.s V_0 + IL_046a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_046f: brtrue.s IL_047c + + IL_0471: ldloca.s V_2 + IL_0473: initobj valuetype [mscorlib]System.Nullable`1 + IL_0479: ldloc.2 + IL_047a: br.s IL_048d + + IL_047c: ldloca.s V_0 + IL_047e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0483: ldloc.1 + IL_0484: ldc.i4.s 31 + IL_0486: and + IL_0487: shl + IL_0488: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_048d: starg.s a + IL_048f: ldarg.0 + IL_0490: stloc.0 + IL_0491: ldarg.1 + IL_0492: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0497: stloc.1 + IL_0498: ldloca.s V_0 + IL_049a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_049f: brtrue.s IL_04ac + + IL_04a1: ldloca.s V_2 + IL_04a3: initobj valuetype [mscorlib]System.Nullable`1 + IL_04a9: ldloc.2 + IL_04aa: br.s IL_04bd + + IL_04ac: ldloca.s V_0 + IL_04ae: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_04b3: ldloc.1 + IL_04b4: ldc.i4.s 31 + IL_04b6: and + IL_04b7: shr + IL_04b8: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_04bd: starg.s a + IL_04bf: ldarg.1 + IL_04c0: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_04c5: stloc.1 + IL_04c6: ldarg.0 + IL_04c7: stloc.0 + IL_04c8: ldloca.s V_0 + IL_04ca: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_04cf: brtrue.s IL_04dc + + IL_04d1: ldloca.s V_2 + IL_04d3: initobj valuetype [mscorlib]System.Nullable`1 + IL_04d9: ldloc.2 + IL_04da: br.s IL_04ea + + IL_04dc: ldloc.1 + IL_04dd: ldloca.s V_0 + IL_04df: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_04e4: add + IL_04e5: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_04ea: box valuetype [mscorlib]System.Nullable`1 + IL_04ef: call void [mscorlib]System.Console::WriteLine(object) + IL_04f4: ldc.i4.0 + IL_04f5: newarr valuetype [mscorlib]System.Nullable`1 + IL_04fa: ldc.i4.0 + IL_04fb: ldelema valuetype [mscorlib]System.Nullable`1 + IL_0500: dup + IL_0501: ldobj valuetype [mscorlib]System.Nullable`1 + IL_0506: stloc.0 + IL_0507: ldarg.1 + IL_0508: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_050d: stloc.1 + IL_050e: ldloca.s V_0 + IL_0510: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0515: brtrue.s IL_0522 + + IL_0517: ldloca.s V_2 + IL_0519: initobj valuetype [mscorlib]System.Nullable`1 + IL_051f: ldloc.2 + IL_0520: br.s IL_0530 + + IL_0522: ldloca.s V_0 + IL_0524: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0529: ldloc.1 + IL_052a: add + IL_052b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0530: stobj valuetype [mscorlib]System.Nullable`1 + IL_0535: ret } // end of method LiftedOperators::IntValueComplex .method public hidebysig static void IntValueConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 1087 (0x43f) + // Code size 1075 (0x433) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int32 V_1, @@ -2535,475 +2366,457 @@ IL_0004: ldloca.s V_0 IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloc.1 - IL_000c: beq.s IL_0011 - - IL_000e: ldc.i4.0 - IL_000f: br.s IL_0018 - - IL_0011: ldloca.s V_0 - IL_0013: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0018: call void [mscorlib]System.Console::WriteLine(bool) - IL_001d: ldarg.0 - IL_001e: stloc.0 - IL_001f: ldc.i4.2 - IL_0020: stloc.1 - IL_0021: ldloca.s V_0 - IL_0023: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0028: ldloc.1 - IL_0029: beq.s IL_002e - - IL_002b: ldc.i4.1 - IL_002c: br.s IL_0038 - - IL_002e: ldloca.s V_0 - IL_0030: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0035: ldc.i4.0 - IL_0036: ceq - IL_0038: call void [mscorlib]System.Console::WriteLine(bool) - IL_003d: ldarg.0 - IL_003e: stloc.0 - IL_003f: ldc.i4.2 - IL_0040: stloc.1 - IL_0041: ldloca.s V_0 - IL_0043: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0048: ldloc.1 - IL_0049: bgt.s IL_004e - - IL_004b: ldc.i4.0 - IL_004c: br.s IL_0055 - - IL_004e: ldloca.s V_0 - IL_0050: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0055: call void [mscorlib]System.Console::WriteLine(bool) - IL_005a: ldc.i4.2 - IL_005b: ldarg.0 - IL_005c: stloc.0 - IL_005d: ldloca.s V_0 - IL_005f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0064: beq.s IL_0069 - - IL_0066: ldc.i4.0 - IL_0067: br.s IL_0070 - - IL_0069: ldloca.s V_0 - IL_006b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0070: call void [mscorlib]System.Console::WriteLine(bool) - IL_0075: ldc.i4.2 - IL_0076: ldarg.0 - IL_0077: stloc.0 - IL_0078: ldloca.s V_0 - IL_007a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007f: beq.s IL_0084 - - IL_0081: ldc.i4.1 - IL_0082: br.s IL_008e + IL_000c: ceq + IL_000e: ldloca.s V_0 + IL_0010: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0015: and + IL_0016: call void [mscorlib]System.Console::WriteLine(bool) + IL_001b: ldarg.0 + IL_001c: stloc.0 + IL_001d: ldc.i4.2 + IL_001e: stloc.1 + IL_001f: ldloca.s V_0 + IL_0021: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0026: ldloc.1 + IL_0027: ceq + IL_0029: ldloca.s V_0 + IL_002b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0030: and + IL_0031: ldc.i4.0 + IL_0032: ceq + IL_0034: call void [mscorlib]System.Console::WriteLine(bool) + IL_0039: ldarg.0 + IL_003a: stloc.0 + IL_003b: ldc.i4.2 + IL_003c: stloc.1 + IL_003d: ldloca.s V_0 + IL_003f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0044: ldloc.1 + IL_0045: cgt + IL_0047: ldloca.s V_0 + IL_0049: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004e: and + IL_004f: call void [mscorlib]System.Console::WriteLine(bool) + IL_0054: ldc.i4.2 + IL_0055: ldarg.0 + IL_0056: stloc.0 + IL_0057: ldloca.s V_0 + IL_0059: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_005e: ceq + IL_0060: ldloca.s V_0 + IL_0062: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0067: and + IL_0068: call void [mscorlib]System.Console::WriteLine(bool) + IL_006d: ldc.i4.2 + IL_006e: ldarg.0 + IL_006f: stloc.0 + IL_0070: ldloca.s V_0 + IL_0072: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0077: ceq + IL_0079: ldloca.s V_0 + IL_007b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0080: and + IL_0081: ldc.i4.0 + IL_0082: ceq + IL_0084: call void [mscorlib]System.Console::WriteLine(bool) + IL_0089: ldc.i4.2 + IL_008a: ldarg.0 + IL_008b: stloc.0 + IL_008c: ldloca.s V_0 + IL_008e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0093: cgt + IL_0095: ldloca.s V_0 + IL_0097: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_009c: and + IL_009d: call void [mscorlib]System.Console::WriteLine(bool) + IL_00a2: ldarg.0 + IL_00a3: stloc.0 + IL_00a4: ldloca.s V_0 + IL_00a6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ab: brtrue.s IL_00b8 - IL_0084: ldloca.s V_0 - IL_0086: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_008b: ldc.i4.0 - IL_008c: ceq - IL_008e: call void [mscorlib]System.Console::WriteLine(bool) - IL_0093: ldc.i4.2 - IL_0094: ldarg.0 - IL_0095: stloc.0 - IL_0096: ldloca.s V_0 - IL_0098: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_009d: bgt.s IL_00a2 - - IL_009f: ldc.i4.0 - IL_00a0: br.s IL_00a9 - - IL_00a2: ldloca.s V_0 - IL_00a4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00a9: call void [mscorlib]System.Console::WriteLine(bool) - IL_00ae: ldarg.0 - IL_00af: stloc.0 - IL_00b0: ldloca.s V_0 - IL_00b2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00b7: brtrue.s IL_00c4 - - IL_00b9: ldloca.s V_2 - IL_00bb: initobj valuetype [mscorlib]System.Nullable`1 - IL_00c1: ldloc.2 - IL_00c2: br.s IL_00d2 - - IL_00c4: ldloca.s V_0 - IL_00c6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00cb: ldc.i4.2 - IL_00cc: add - IL_00cd: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_00d2: box valuetype [mscorlib]System.Nullable`1 - IL_00d7: call void [mscorlib]System.Console::WriteLine(object) - IL_00dc: ldarg.0 - IL_00dd: stloc.0 - IL_00de: ldloca.s V_0 - IL_00e0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00e5: brtrue.s IL_00f2 + IL_00ad: ldloca.s V_2 + IL_00af: initobj valuetype [mscorlib]System.Nullable`1 + IL_00b5: ldloc.2 + IL_00b6: br.s IL_00c6 - IL_00e7: ldloca.s V_2 - IL_00e9: initobj valuetype [mscorlib]System.Nullable`1 - IL_00ef: ldloc.2 - IL_00f0: br.s IL_0100 + IL_00b8: ldloca.s V_0 + IL_00ba: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00bf: ldc.i4.2 + IL_00c0: add + IL_00c1: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_00c6: box valuetype [mscorlib]System.Nullable`1 + IL_00cb: call void [mscorlib]System.Console::WriteLine(object) + IL_00d0: ldarg.0 + IL_00d1: stloc.0 + IL_00d2: ldloca.s V_0 + IL_00d4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00d9: brtrue.s IL_00e6 + + IL_00db: ldloca.s V_2 + IL_00dd: initobj valuetype [mscorlib]System.Nullable`1 + IL_00e3: ldloc.2 + IL_00e4: br.s IL_00f4 + + IL_00e6: ldloca.s V_0 + IL_00e8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00ed: ldc.i4.2 + IL_00ee: sub + IL_00ef: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_00f4: box valuetype [mscorlib]System.Nullable`1 + IL_00f9: call void [mscorlib]System.Console::WriteLine(object) + IL_00fe: ldarg.0 + IL_00ff: stloc.0 + IL_0100: ldloca.s V_0 + IL_0102: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0107: brtrue.s IL_0114 + + IL_0109: ldloca.s V_2 + IL_010b: initobj valuetype [mscorlib]System.Nullable`1 + IL_0111: ldloc.2 + IL_0112: br.s IL_0122 + + IL_0114: ldloca.s V_0 + IL_0116: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_011b: ldc.i4.2 + IL_011c: mul + IL_011d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0122: box valuetype [mscorlib]System.Nullable`1 + IL_0127: call void [mscorlib]System.Console::WriteLine(object) + IL_012c: ldarg.0 + IL_012d: stloc.0 + IL_012e: ldloca.s V_0 + IL_0130: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0135: brtrue.s IL_0142 + + IL_0137: ldloca.s V_2 + IL_0139: initobj valuetype [mscorlib]System.Nullable`1 + IL_013f: ldloc.2 + IL_0140: br.s IL_0150 + + IL_0142: ldloca.s V_0 + IL_0144: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0149: ldc.i4.2 + IL_014a: div + IL_014b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0150: box valuetype [mscorlib]System.Nullable`1 + IL_0155: call void [mscorlib]System.Console::WriteLine(object) + IL_015a: ldarg.0 + IL_015b: stloc.0 + IL_015c: ldloca.s V_0 + IL_015e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0163: brtrue.s IL_0170 + + IL_0165: ldloca.s V_2 + IL_0167: initobj valuetype [mscorlib]System.Nullable`1 + IL_016d: ldloc.2 + IL_016e: br.s IL_017e + + IL_0170: ldloca.s V_0 + IL_0172: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0177: ldc.i4.2 + IL_0178: rem + IL_0179: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_017e: box valuetype [mscorlib]System.Nullable`1 + IL_0183: call void [mscorlib]System.Console::WriteLine(object) + IL_0188: ldarg.0 + IL_0189: stloc.0 + IL_018a: ldloca.s V_0 + IL_018c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0191: brtrue.s IL_019e + + IL_0193: ldloca.s V_2 + IL_0195: initobj valuetype [mscorlib]System.Nullable`1 + IL_019b: ldloc.2 + IL_019c: br.s IL_01ac + + IL_019e: ldloca.s V_0 + IL_01a0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01a5: ldc.i4.2 + IL_01a6: and + IL_01a7: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01ac: box valuetype [mscorlib]System.Nullable`1 + IL_01b1: call void [mscorlib]System.Console::WriteLine(object) + IL_01b6: ldarg.0 + IL_01b7: stloc.0 + IL_01b8: ldloca.s V_0 + IL_01ba: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01bf: brtrue.s IL_01cc + + IL_01c1: ldloca.s V_2 + IL_01c3: initobj valuetype [mscorlib]System.Nullable`1 + IL_01c9: ldloc.2 + IL_01ca: br.s IL_01da + + IL_01cc: ldloca.s V_0 + IL_01ce: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01d3: ldc.i4.2 + IL_01d4: or + IL_01d5: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01da: box valuetype [mscorlib]System.Nullable`1 + IL_01df: call void [mscorlib]System.Console::WriteLine(object) + IL_01e4: ldarg.0 + IL_01e5: stloc.0 + IL_01e6: ldloca.s V_0 + IL_01e8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01ed: brtrue.s IL_01fa - IL_00f2: ldloca.s V_0 - IL_00f4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00f9: ldc.i4.2 - IL_00fa: sub - IL_00fb: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0100: box valuetype [mscorlib]System.Nullable`1 - IL_0105: call void [mscorlib]System.Console::WriteLine(object) - IL_010a: ldarg.0 - IL_010b: stloc.0 - IL_010c: ldloca.s V_0 - IL_010e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0113: brtrue.s IL_0120 - - IL_0115: ldloca.s V_2 - IL_0117: initobj valuetype [mscorlib]System.Nullable`1 - IL_011d: ldloc.2 - IL_011e: br.s IL_012e - - IL_0120: ldloca.s V_0 - IL_0122: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0127: ldc.i4.2 - IL_0128: mul - IL_0129: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_012e: box valuetype [mscorlib]System.Nullable`1 - IL_0133: call void [mscorlib]System.Console::WriteLine(object) - IL_0138: ldarg.0 - IL_0139: stloc.0 - IL_013a: ldloca.s V_0 - IL_013c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0141: brtrue.s IL_014e - - IL_0143: ldloca.s V_2 - IL_0145: initobj valuetype [mscorlib]System.Nullable`1 - IL_014b: ldloc.2 - IL_014c: br.s IL_015c - - IL_014e: ldloca.s V_0 - IL_0150: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0155: ldc.i4.2 - IL_0156: div - IL_0157: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_015c: box valuetype [mscorlib]System.Nullable`1 - IL_0161: call void [mscorlib]System.Console::WriteLine(object) - IL_0166: ldarg.0 - IL_0167: stloc.0 - IL_0168: ldloca.s V_0 - IL_016a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_016f: brtrue.s IL_017c + IL_01ef: ldloca.s V_2 + IL_01f1: initobj valuetype [mscorlib]System.Nullable`1 + IL_01f7: ldloc.2 + IL_01f8: br.s IL_0208 - IL_0171: ldloca.s V_2 - IL_0173: initobj valuetype [mscorlib]System.Nullable`1 - IL_0179: ldloc.2 - IL_017a: br.s IL_018a + IL_01fa: ldloca.s V_0 + IL_01fc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0201: ldc.i4.2 + IL_0202: xor + IL_0203: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0208: box valuetype [mscorlib]System.Nullable`1 + IL_020d: call void [mscorlib]System.Console::WriteLine(object) + IL_0212: ldarg.0 + IL_0213: stloc.0 + IL_0214: ldloca.s V_0 + IL_0216: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_021b: brtrue.s IL_0228 + + IL_021d: ldloca.s V_2 + IL_021f: initobj valuetype [mscorlib]System.Nullable`1 + IL_0225: ldloc.2 + IL_0226: br.s IL_0236 + + IL_0228: ldloca.s V_0 + IL_022a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_022f: ldc.i4.2 + IL_0230: shl + IL_0231: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0236: box valuetype [mscorlib]System.Nullable`1 + IL_023b: call void [mscorlib]System.Console::WriteLine(object) + IL_0240: ldarg.0 + IL_0241: stloc.0 + IL_0242: ldloca.s V_0 + IL_0244: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0249: brtrue.s IL_0256 + + IL_024b: ldloca.s V_2 + IL_024d: initobj valuetype [mscorlib]System.Nullable`1 + IL_0253: ldloc.2 + IL_0254: br.s IL_0264 + + IL_0256: ldloca.s V_0 + IL_0258: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_025d: ldc.i4.2 + IL_025e: shr + IL_025f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0264: box valuetype [mscorlib]System.Nullable`1 + IL_0269: call void [mscorlib]System.Console::WriteLine(object) + IL_026e: ldarg.0 + IL_026f: stloc.0 + IL_0270: ldloca.s V_0 + IL_0272: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0277: brtrue.s IL_027c + + IL_0279: ldc.i4.2 + IL_027a: br.s IL_0283 - IL_017c: ldloca.s V_0 - IL_017e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0183: ldc.i4.2 - IL_0184: rem - IL_0185: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_018a: box valuetype [mscorlib]System.Nullable`1 - IL_018f: call void [mscorlib]System.Console::WriteLine(object) - IL_0194: ldarg.0 - IL_0195: stloc.0 - IL_0196: ldloca.s V_0 - IL_0198: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_019d: brtrue.s IL_01aa - - IL_019f: ldloca.s V_2 - IL_01a1: initobj valuetype [mscorlib]System.Nullable`1 - IL_01a7: ldloc.2 - IL_01a8: br.s IL_01b8 - - IL_01aa: ldloca.s V_0 - IL_01ac: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01b1: ldc.i4.2 - IL_01b2: and - IL_01b3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01b8: box valuetype [mscorlib]System.Nullable`1 - IL_01bd: call void [mscorlib]System.Console::WriteLine(object) - IL_01c2: ldarg.0 - IL_01c3: stloc.0 - IL_01c4: ldloca.s V_0 - IL_01c6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01cb: brtrue.s IL_01d8 - - IL_01cd: ldloca.s V_2 - IL_01cf: initobj valuetype [mscorlib]System.Nullable`1 - IL_01d5: ldloc.2 - IL_01d6: br.s IL_01e6 - - IL_01d8: ldloca.s V_0 - IL_01da: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01df: ldc.i4.2 - IL_01e0: or - IL_01e1: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01e6: box valuetype [mscorlib]System.Nullable`1 - IL_01eb: call void [mscorlib]System.Console::WriteLine(object) - IL_01f0: ldarg.0 - IL_01f1: stloc.0 - IL_01f2: ldloca.s V_0 - IL_01f4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01f9: brtrue.s IL_0206 - - IL_01fb: ldloca.s V_2 - IL_01fd: initobj valuetype [mscorlib]System.Nullable`1 - IL_0203: ldloc.2 - IL_0204: br.s IL_0214 - - IL_0206: ldloca.s V_0 - IL_0208: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_020d: ldc.i4.2 - IL_020e: xor - IL_020f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0214: box valuetype [mscorlib]System.Nullable`1 - IL_0219: call void [mscorlib]System.Console::WriteLine(object) - IL_021e: ldarg.0 - IL_021f: stloc.0 - IL_0220: ldloca.s V_0 - IL_0222: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0227: brtrue.s IL_0234 - - IL_0229: ldloca.s V_2 - IL_022b: initobj valuetype [mscorlib]System.Nullable`1 - IL_0231: ldloc.2 - IL_0232: br.s IL_0242 - - IL_0234: ldloca.s V_0 - IL_0236: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_023b: ldc.i4.2 - IL_023c: shl - IL_023d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0242: box valuetype [mscorlib]System.Nullable`1 - IL_0247: call void [mscorlib]System.Console::WriteLine(object) - IL_024c: ldarg.0 - IL_024d: stloc.0 - IL_024e: ldloca.s V_0 - IL_0250: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0255: brtrue.s IL_0262 - - IL_0257: ldloca.s V_2 - IL_0259: initobj valuetype [mscorlib]System.Nullable`1 - IL_025f: ldloc.2 - IL_0260: br.s IL_0270 - - IL_0262: ldloca.s V_0 - IL_0264: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0269: ldc.i4.2 - IL_026a: shr - IL_026b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0270: box valuetype [mscorlib]System.Nullable`1 - IL_0275: call void [mscorlib]System.Console::WriteLine(object) - IL_027a: ldarg.0 - IL_027b: stloc.0 IL_027c: ldloca.s V_0 - IL_027e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0283: brtrue.s IL_0288 - - IL_0285: ldc.i4.2 - IL_0286: br.s IL_028f - - IL_0288: ldloca.s V_0 - IL_028a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_028f: call void [mscorlib]System.Console::WriteLine(int32) - IL_0294: ldarg.0 - IL_0295: stloc.0 - IL_0296: ldloca.s V_0 - IL_0298: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_029d: brtrue.s IL_02aa - - IL_029f: ldloca.s V_2 - IL_02a1: initobj valuetype [mscorlib]System.Nullable`1 - IL_02a7: ldloc.2 - IL_02a8: br.s IL_02b8 - - IL_02aa: ldloca.s V_0 - IL_02ac: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02b1: ldc.i4.2 - IL_02b2: add - IL_02b3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02b8: starg.s a - IL_02ba: ldarg.0 - IL_02bb: stloc.0 - IL_02bc: ldloca.s V_0 - IL_02be: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02c3: brtrue.s IL_02d0 - - IL_02c5: ldloca.s V_2 - IL_02c7: initobj valuetype [mscorlib]System.Nullable`1 - IL_02cd: ldloc.2 - IL_02ce: br.s IL_02de - - IL_02d0: ldloca.s V_0 - IL_02d2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02d7: ldc.i4.2 - IL_02d8: sub - IL_02d9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02de: starg.s a - IL_02e0: ldarg.0 - IL_02e1: stloc.0 - IL_02e2: ldloca.s V_0 - IL_02e4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02e9: brtrue.s IL_02f6 - - IL_02eb: ldloca.s V_2 - IL_02ed: initobj valuetype [mscorlib]System.Nullable`1 - IL_02f3: ldloc.2 - IL_02f4: br.s IL_0304 - - IL_02f6: ldloca.s V_0 - IL_02f8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02fd: ldc.i4.2 - IL_02fe: mul - IL_02ff: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0304: starg.s a - IL_0306: ldarg.0 - IL_0307: stloc.0 - IL_0308: ldloca.s V_0 - IL_030a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_030f: brtrue.s IL_031c - - IL_0311: ldloca.s V_2 - IL_0313: initobj valuetype [mscorlib]System.Nullable`1 - IL_0319: ldloc.2 - IL_031a: br.s IL_032a - - IL_031c: ldloca.s V_0 - IL_031e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0323: ldc.i4.2 - IL_0324: div - IL_0325: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_032a: starg.s a - IL_032c: ldarg.0 - IL_032d: stloc.0 - IL_032e: ldloca.s V_0 - IL_0330: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0335: brtrue.s IL_0342 - - IL_0337: ldloca.s V_2 - IL_0339: initobj valuetype [mscorlib]System.Nullable`1 - IL_033f: ldloc.2 - IL_0340: br.s IL_0350 - - IL_0342: ldloca.s V_0 - IL_0344: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0349: ldc.i4.2 - IL_034a: rem - IL_034b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0350: starg.s a - IL_0352: ldarg.0 - IL_0353: stloc.0 - IL_0354: ldloca.s V_0 - IL_0356: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_035b: brtrue.s IL_0368 - - IL_035d: ldloca.s V_2 - IL_035f: initobj valuetype [mscorlib]System.Nullable`1 - IL_0365: ldloc.2 - IL_0366: br.s IL_0376 - - IL_0368: ldloca.s V_0 - IL_036a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_036f: ldc.i4.2 - IL_0370: and - IL_0371: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0376: starg.s a - IL_0378: ldarg.0 - IL_0379: stloc.0 - IL_037a: ldloca.s V_0 - IL_037c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0381: brtrue.s IL_038e - - IL_0383: ldloca.s V_2 - IL_0385: initobj valuetype [mscorlib]System.Nullable`1 - IL_038b: ldloc.2 - IL_038c: br.s IL_039c - - IL_038e: ldloca.s V_0 - IL_0390: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0395: ldc.i4.2 - IL_0396: or - IL_0397: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_039c: starg.s a - IL_039e: ldarg.0 - IL_039f: stloc.0 - IL_03a0: ldloca.s V_0 - IL_03a2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03a7: brtrue.s IL_03b4 - - IL_03a9: ldloca.s V_2 - IL_03ab: initobj valuetype [mscorlib]System.Nullable`1 - IL_03b1: ldloc.2 - IL_03b2: br.s IL_03c2 - - IL_03b4: ldloca.s V_0 - IL_03b6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03bb: ldc.i4.2 - IL_03bc: xor - IL_03bd: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03c2: starg.s a - IL_03c4: ldarg.0 - IL_03c5: stloc.0 - IL_03c6: ldloca.s V_0 - IL_03c8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03cd: brtrue.s IL_03da - - IL_03cf: ldloca.s V_2 - IL_03d1: initobj valuetype [mscorlib]System.Nullable`1 - IL_03d7: ldloc.2 - IL_03d8: br.s IL_03e8 - - IL_03da: ldloca.s V_0 - IL_03dc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03e1: ldc.i4.2 - IL_03e2: shl - IL_03e3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03e8: starg.s a - IL_03ea: ldarg.0 - IL_03eb: stloc.0 - IL_03ec: ldloca.s V_0 - IL_03ee: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03f3: brtrue.s IL_0400 - - IL_03f5: ldloca.s V_2 - IL_03f7: initobj valuetype [mscorlib]System.Nullable`1 - IL_03fd: ldloc.2 - IL_03fe: br.s IL_040e - - IL_0400: ldloca.s V_0 - IL_0402: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0407: ldc.i4.2 - IL_0408: shr - IL_0409: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_040e: starg.s a - IL_0410: ldarg.0 - IL_0411: stloc.0 - IL_0412: ldloca.s V_0 - IL_0414: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0419: brtrue.s IL_0426 - - IL_041b: ldloca.s V_2 - IL_041d: initobj valuetype [mscorlib]System.Nullable`1 - IL_0423: ldloc.2 - IL_0424: br.s IL_0434 - - IL_0426: ldc.i4.2 - IL_0427: ldloca.s V_0 - IL_0429: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_042e: add - IL_042f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0434: box valuetype [mscorlib]System.Nullable`1 - IL_0439: call void [mscorlib]System.Console::WriteLine(object) - IL_043e: ret + IL_027e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0283: call void [mscorlib]System.Console::WriteLine(int32) + IL_0288: ldarg.0 + IL_0289: stloc.0 + IL_028a: ldloca.s V_0 + IL_028c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0291: brtrue.s IL_029e + + IL_0293: ldloca.s V_2 + IL_0295: initobj valuetype [mscorlib]System.Nullable`1 + IL_029b: ldloc.2 + IL_029c: br.s IL_02ac + + IL_029e: ldloca.s V_0 + IL_02a0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02a5: ldc.i4.2 + IL_02a6: add + IL_02a7: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02ac: starg.s a + IL_02ae: ldarg.0 + IL_02af: stloc.0 + IL_02b0: ldloca.s V_0 + IL_02b2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02b7: brtrue.s IL_02c4 + + IL_02b9: ldloca.s V_2 + IL_02bb: initobj valuetype [mscorlib]System.Nullable`1 + IL_02c1: ldloc.2 + IL_02c2: br.s IL_02d2 + + IL_02c4: ldloca.s V_0 + IL_02c6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02cb: ldc.i4.2 + IL_02cc: sub + IL_02cd: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02d2: starg.s a + IL_02d4: ldarg.0 + IL_02d5: stloc.0 + IL_02d6: ldloca.s V_0 + IL_02d8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02dd: brtrue.s IL_02ea + + IL_02df: ldloca.s V_2 + IL_02e1: initobj valuetype [mscorlib]System.Nullable`1 + IL_02e7: ldloc.2 + IL_02e8: br.s IL_02f8 + + IL_02ea: ldloca.s V_0 + IL_02ec: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02f1: ldc.i4.2 + IL_02f2: mul + IL_02f3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02f8: starg.s a + IL_02fa: ldarg.0 + IL_02fb: stloc.0 + IL_02fc: ldloca.s V_0 + IL_02fe: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0303: brtrue.s IL_0310 + + IL_0305: ldloca.s V_2 + IL_0307: initobj valuetype [mscorlib]System.Nullable`1 + IL_030d: ldloc.2 + IL_030e: br.s IL_031e + + IL_0310: ldloca.s V_0 + IL_0312: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0317: ldc.i4.2 + IL_0318: div + IL_0319: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_031e: starg.s a + IL_0320: ldarg.0 + IL_0321: stloc.0 + IL_0322: ldloca.s V_0 + IL_0324: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0329: brtrue.s IL_0336 + + IL_032b: ldloca.s V_2 + IL_032d: initobj valuetype [mscorlib]System.Nullable`1 + IL_0333: ldloc.2 + IL_0334: br.s IL_0344 + + IL_0336: ldloca.s V_0 + IL_0338: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_033d: ldc.i4.2 + IL_033e: rem + IL_033f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0344: starg.s a + IL_0346: ldarg.0 + IL_0347: stloc.0 + IL_0348: ldloca.s V_0 + IL_034a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_034f: brtrue.s IL_035c + + IL_0351: ldloca.s V_2 + IL_0353: initobj valuetype [mscorlib]System.Nullable`1 + IL_0359: ldloc.2 + IL_035a: br.s IL_036a + + IL_035c: ldloca.s V_0 + IL_035e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0363: ldc.i4.2 + IL_0364: and + IL_0365: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_036a: starg.s a + IL_036c: ldarg.0 + IL_036d: stloc.0 + IL_036e: ldloca.s V_0 + IL_0370: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0375: brtrue.s IL_0382 + + IL_0377: ldloca.s V_2 + IL_0379: initobj valuetype [mscorlib]System.Nullable`1 + IL_037f: ldloc.2 + IL_0380: br.s IL_0390 + + IL_0382: ldloca.s V_0 + IL_0384: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0389: ldc.i4.2 + IL_038a: or + IL_038b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0390: starg.s a + IL_0392: ldarg.0 + IL_0393: stloc.0 + IL_0394: ldloca.s V_0 + IL_0396: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_039b: brtrue.s IL_03a8 + + IL_039d: ldloca.s V_2 + IL_039f: initobj valuetype [mscorlib]System.Nullable`1 + IL_03a5: ldloc.2 + IL_03a6: br.s IL_03b6 + + IL_03a8: ldloca.s V_0 + IL_03aa: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03af: ldc.i4.2 + IL_03b0: xor + IL_03b1: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03b6: starg.s a + IL_03b8: ldarg.0 + IL_03b9: stloc.0 + IL_03ba: ldloca.s V_0 + IL_03bc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03c1: brtrue.s IL_03ce + + IL_03c3: ldloca.s V_2 + IL_03c5: initobj valuetype [mscorlib]System.Nullable`1 + IL_03cb: ldloc.2 + IL_03cc: br.s IL_03dc + + IL_03ce: ldloca.s V_0 + IL_03d0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03d5: ldc.i4.2 + IL_03d6: shl + IL_03d7: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03dc: starg.s a + IL_03de: ldarg.0 + IL_03df: stloc.0 + IL_03e0: ldloca.s V_0 + IL_03e2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03e7: brtrue.s IL_03f4 + + IL_03e9: ldloca.s V_2 + IL_03eb: initobj valuetype [mscorlib]System.Nullable`1 + IL_03f1: ldloc.2 + IL_03f2: br.s IL_0402 + + IL_03f4: ldloca.s V_0 + IL_03f6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03fb: ldc.i4.2 + IL_03fc: shr + IL_03fd: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0402: starg.s a + IL_0404: ldarg.0 + IL_0405: stloc.0 + IL_0406: ldloca.s V_0 + IL_0408: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_040d: brtrue.s IL_041a + + IL_040f: ldloca.s V_2 + IL_0411: initobj valuetype [mscorlib]System.Nullable`1 + IL_0417: ldloc.2 + IL_0418: br.s IL_0428 + + IL_041a: ldc.i4.2 + IL_041b: ldloca.s V_0 + IL_041d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0422: add + IL_0423: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0428: box valuetype [mscorlib]System.Nullable`1 + IL_042d: call void [mscorlib]System.Console::WriteLine(object) + IL_0432: ret } // end of method LiftedOperators::IntValueConst .method public hidebysig static void NumberBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 406 (0x196) - .maxstack 2 + // Code size 371 (0x173) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1) IL_0000: ldarg.0 @@ -3016,183 +2829,149 @@ IL_000d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0012: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0017: brtrue.s IL_001c - - IL_0019: ldc.i4.0 - IL_001a: br.s IL_002c - - IL_001c: ldloca.s V_0 - IL_001e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0023: ldloca.s V_1 - IL_0025: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_002a: ceq - IL_002c: brfalse.s IL_0033 - - IL_002e: call void [mscorlib]System.Console::WriteLine() - IL_0033: ldarg.0 - IL_0034: stloc.1 - IL_0035: ldarg.1 - IL_0036: stloc.0 - IL_0037: ldloca.s V_1 - IL_0039: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_003e: ldloca.s V_0 - IL_0040: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0045: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, + IL_0017: ldloca.s V_0 + IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001e: ldloca.s V_1 + IL_0020: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0025: ceq + IL_0027: and + IL_0028: brfalse.s IL_002f + + IL_002a: call void [mscorlib]System.Console::WriteLine() + IL_002f: ldarg.0 + IL_0030: stloc.1 + IL_0031: ldarg.1 + IL_0032: stloc.0 + IL_0033: ldloca.s V_1 + IL_0035: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003a: ldloca.s V_0 + IL_003c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0041: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_004a: brtrue.s IL_004f - - IL_004c: ldc.i4.1 - IL_004d: br.s IL_0062 - - IL_004f: ldloca.s V_1 - IL_0051: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0056: ldloca.s V_0 - IL_0058: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_005d: ceq - IL_005f: ldc.i4.0 - IL_0060: ceq - IL_0062: brfalse.s IL_0069 - - IL_0064: call void [mscorlib]System.Console::WriteLine() - IL_0069: ldarg.0 - IL_006a: stloc.0 - IL_006b: ldarg.1 - IL_006c: stloc.1 - IL_006d: ldloca.s V_0 - IL_006f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0074: ldloca.s V_1 - IL_0076: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007b: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, + IL_0046: ldloca.s V_1 + IL_0048: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004d: ldloca.s V_0 + IL_004f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0054: ceq + IL_0056: and + IL_0057: brtrue.s IL_005e + + IL_0059: call void [mscorlib]System.Console::WriteLine() + IL_005e: ldarg.0 + IL_005f: stloc.0 + IL_0060: ldarg.1 + IL_0061: stloc.1 + IL_0062: ldloca.s V_0 + IL_0064: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0069: ldloca.s V_1 + IL_006b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0070: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0080: brtrue.s IL_0085 - - IL_0082: ldc.i4.0 - IL_0083: br.s IL_0094 - - IL_0085: ldloca.s V_0 - IL_0087: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_008c: ldloca.s V_1 - IL_008e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0093: and - IL_0094: brfalse.s IL_009b + IL_0075: ldloca.s V_0 + IL_0077: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007c: ldloca.s V_1 + IL_007e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0083: and + IL_0084: and + IL_0085: brfalse.s IL_008c - IL_0096: call void [mscorlib]System.Console::WriteLine() - IL_009b: ldarg.0 - IL_009c: stloc.1 - IL_009d: ldarg.1 - IL_009e: stloc.0 - IL_009f: ldloca.s V_1 - IL_00a1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a6: ldloca.s V_0 - IL_00a8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00ad: call bool [mscorlib]System.Decimal::op_LessThan(valuetype [mscorlib]System.Decimal, + IL_0087: call void [mscorlib]System.Console::WriteLine() + IL_008c: ldarg.0 + IL_008d: stloc.1 + IL_008e: ldarg.1 + IL_008f: stloc.0 + IL_0090: ldloca.s V_1 + IL_0092: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0097: ldloca.s V_0 + IL_0099: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_009e: call bool [mscorlib]System.Decimal::op_LessThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_00b2: brtrue.s IL_00b7 - - IL_00b4: ldc.i4.0 - IL_00b5: br.s IL_00c6 + IL_00a3: ldloca.s V_1 + IL_00a5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00aa: ldloca.s V_0 + IL_00ac: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00b1: and + IL_00b2: and + IL_00b3: brfalse.s IL_00ba - IL_00b7: ldloca.s V_1 - IL_00b9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00b5: call void [mscorlib]System.Console::WriteLine() + IL_00ba: ldarg.0 + IL_00bb: stloc.0 + IL_00bc: ldarg.1 + IL_00bd: stloc.1 IL_00be: ldloca.s V_0 - IL_00c0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00c5: and - IL_00c6: brfalse.s IL_00cd - - IL_00c8: call void [mscorlib]System.Console::WriteLine() - IL_00cd: ldarg.0 - IL_00ce: stloc.0 - IL_00cf: ldarg.1 - IL_00d0: stloc.1 + IL_00c0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00c5: ldloca.s V_1 + IL_00c7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00cc: call bool [mscorlib]System.Decimal::op_GreaterThanOrEqual(valuetype [mscorlib]System.Decimal, + valuetype [mscorlib]System.Decimal) IL_00d1: ldloca.s V_0 - IL_00d3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00d3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() IL_00d8: ldloca.s V_1 - IL_00da: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00df: call bool [mscorlib]System.Decimal::op_GreaterThanOrEqual(valuetype [mscorlib]System.Decimal, - valuetype [mscorlib]System.Decimal) - IL_00e4: brtrue.s IL_00e9 - - IL_00e6: ldc.i4.0 - IL_00e7: br.s IL_00f8 - - IL_00e9: ldloca.s V_0 - IL_00eb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f0: ldloca.s V_1 - IL_00f2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f7: and - IL_00f8: brfalse.s IL_00ff - - IL_00fa: call void [mscorlib]System.Console::WriteLine() - IL_00ff: ldarg.0 - IL_0100: stloc.1 - IL_0101: ldarg.1 - IL_0102: stloc.0 - IL_0103: ldloca.s V_1 - IL_0105: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_010a: ldloca.s V_0 - IL_010c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0111: call bool [mscorlib]System.Decimal::op_LessThanOrEqual(valuetype [mscorlib]System.Decimal, + IL_00da: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00df: and + IL_00e0: and + IL_00e1: brfalse.s IL_00e8 + + IL_00e3: call void [mscorlib]System.Console::WriteLine() + IL_00e8: ldarg.0 + IL_00e9: stloc.1 + IL_00ea: ldarg.1 + IL_00eb: stloc.0 + IL_00ec: ldloca.s V_1 + IL_00ee: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00f3: ldloca.s V_0 + IL_00f5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00fa: call bool [mscorlib]System.Decimal::op_LessThanOrEqual(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0116: brtrue.s IL_011b - - IL_0118: ldc.i4.0 - IL_0119: br.s IL_012a - - IL_011b: ldloca.s V_1 - IL_011d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0122: ldloca.s V_0 - IL_0124: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0129: and - IL_012a: brfalse.s IL_0131 - - IL_012c: call void [mscorlib]System.Console::WriteLine() - IL_0131: ldarg.0 - IL_0132: stloc.0 - IL_0133: ldarg.1 - IL_0134: stloc.1 - IL_0135: ldloca.s V_0 - IL_0137: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_013c: ldloca.s V_1 - IL_013e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0143: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, + IL_00ff: ldloca.s V_1 + IL_0101: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0106: ldloca.s V_0 + IL_0108: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_010d: and + IL_010e: and + IL_010f: brfalse.s IL_0116 + + IL_0111: call void [mscorlib]System.Console::WriteLine() + IL_0116: ldarg.0 + IL_0117: stloc.0 + IL_0118: ldarg.1 + IL_0119: stloc.1 + IL_011a: ldloca.s V_0 + IL_011c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0121: ldloca.s V_1 + IL_0123: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0128: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0148: brtrue.s IL_014d - - IL_014a: ldc.i4.0 - IL_014b: br.s IL_015c - - IL_014d: ldloca.s V_0 - IL_014f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0154: ldloca.s V_1 - IL_0156: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_015b: and - IL_015c: brtrue.s IL_0163 - - IL_015e: call void [mscorlib]System.Console::WriteLine() - IL_0163: ldarg.0 - IL_0164: stloc.1 - IL_0165: ldarg.1 - IL_0166: stloc.0 - IL_0167: ldloca.s V_1 - IL_0169: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_016e: ldloca.s V_0 - IL_0170: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0175: call bool [mscorlib]System.Decimal::op_LessThan(valuetype [mscorlib]System.Decimal, + IL_012d: ldloca.s V_0 + IL_012f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0134: ldloca.s V_1 + IL_0136: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_013b: and + IL_013c: and + IL_013d: brtrue.s IL_0144 + + IL_013f: call void [mscorlib]System.Console::WriteLine() + IL_0144: ldarg.0 + IL_0145: stloc.1 + IL_0146: ldarg.1 + IL_0147: stloc.0 + IL_0148: ldloca.s V_1 + IL_014a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_014f: ldloca.s V_0 + IL_0151: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0156: call bool [mscorlib]System.Decimal::op_LessThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_017a: brtrue.s IL_017f - - IL_017c: ldc.i4.0 - IL_017d: br.s IL_018e - - IL_017f: ldloca.s V_1 - IL_0181: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0186: ldloca.s V_0 - IL_0188: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_018d: and - IL_018e: brtrue.s IL_0195 - - IL_0190: call void [mscorlib]System.Console::WriteLine() - IL_0195: ret + IL_015b: ldloca.s V_1 + IL_015d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0162: ldloca.s V_0 + IL_0164: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0169: and + IL_016a: and + IL_016b: brtrue.s IL_0172 + + IL_016d: call void [mscorlib]System.Console::WriteLine() + IL_0172: ret } // end of method LiftedOperators::NumberBasic .method public hidebysig static void NumberComplex(valuetype [mscorlib]System.Nullable`1 a, @@ -3213,8 +2992,8 @@ .method public hidebysig static void NumberValueBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 946 (0x3b2) - .maxstack 2 + // Code size 926 (0x39e) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2) @@ -3228,382 +3007,362 @@ IL_000d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0012: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0017: brtrue.s IL_001c - - IL_0019: ldc.i4.0 - IL_001a: br.s IL_002c - - IL_001c: ldloca.s V_0 - IL_001e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0023: ldloca.s V_1 - IL_0025: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_002a: ceq - IL_002c: call void [mscorlib]System.Console::WriteLine(bool) - IL_0031: ldarg.0 - IL_0032: stloc.1 - IL_0033: ldarg.1 - IL_0034: stloc.0 - IL_0035: ldloca.s V_1 - IL_0037: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_003c: ldloca.s V_0 - IL_003e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0043: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, + IL_0017: ldloca.s V_0 + IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001e: ldloca.s V_1 + IL_0020: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0025: ceq + IL_0027: and + IL_0028: call void [mscorlib]System.Console::WriteLine(bool) + IL_002d: ldarg.0 + IL_002e: stloc.1 + IL_002f: ldarg.1 + IL_0030: stloc.0 + IL_0031: ldloca.s V_1 + IL_0033: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0038: ldloca.s V_0 + IL_003a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003f: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0048: brtrue.s IL_004d - - IL_004a: ldc.i4.1 - IL_004b: br.s IL_0060 - - IL_004d: ldloca.s V_1 - IL_004f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0054: ldloca.s V_0 - IL_0056: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_005b: ceq - IL_005d: ldc.i4.0 - IL_005e: ceq - IL_0060: call void [mscorlib]System.Console::WriteLine(bool) - IL_0065: ldarg.0 - IL_0066: stloc.0 - IL_0067: ldarg.1 - IL_0068: stloc.1 - IL_0069: ldloca.s V_0 - IL_006b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0070: ldloca.s V_1 - IL_0072: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0077: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, + IL_0044: ldloca.s V_1 + IL_0046: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004b: ldloca.s V_0 + IL_004d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0052: ceq + IL_0054: and + IL_0055: ldc.i4.0 + IL_0056: ceq + IL_0058: call void [mscorlib]System.Console::WriteLine(bool) + IL_005d: ldarg.0 + IL_005e: stloc.0 + IL_005f: ldarg.1 + IL_0060: stloc.1 + IL_0061: ldloca.s V_0 + IL_0063: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0068: ldloca.s V_1 + IL_006a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_006f: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_007c: brtrue.s IL_0081 - - IL_007e: ldc.i4.0 - IL_007f: br.s IL_0090 - - IL_0081: ldloca.s V_0 - IL_0083: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0088: ldloca.s V_1 - IL_008a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_008f: and - IL_0090: call void [mscorlib]System.Console::WriteLine(bool) - IL_0095: ldarg.0 - IL_0096: stloc.1 - IL_0097: ldarg.1 - IL_0098: stloc.0 - IL_0099: ldloca.s V_1 - IL_009b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a0: ldloca.s V_0 - IL_00a2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a7: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, + IL_0074: ldloca.s V_0 + IL_0076: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007b: ldloca.s V_1 + IL_007d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0082: and + IL_0083: and + IL_0084: call void [mscorlib]System.Console::WriteLine(bool) + IL_0089: ldarg.0 + IL_008a: stloc.1 + IL_008b: ldarg.1 + IL_008c: stloc.0 + IL_008d: ldloca.s V_1 + IL_008f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0094: ldloca.s V_0 + IL_0096: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_009b: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_00ac: brtrue.s IL_00b1 - - IL_00ae: ldc.i4.0 - IL_00af: br.s IL_00c0 - - IL_00b1: ldloca.s V_1 - IL_00b3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00b8: ldloca.s V_0 - IL_00ba: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00bf: and - IL_00c0: ldc.i4.0 - IL_00c1: ceq - IL_00c3: call void [mscorlib]System.Console::WriteLine(bool) - IL_00c8: ldarg.0 - IL_00c9: stloc.0 - IL_00ca: ldarg.1 - IL_00cb: stloc.1 - IL_00cc: ldloca.s V_0 - IL_00ce: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00d3: ldloca.s V_1 - IL_00d5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00da: call bool [mscorlib]System.Decimal::op_LessThanOrEqual(valuetype [mscorlib]System.Decimal, + IL_00a0: ldloca.s V_1 + IL_00a2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00a7: ldloca.s V_0 + IL_00a9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ae: and + IL_00af: and + IL_00b0: ldc.i4.0 + IL_00b1: ceq + IL_00b3: call void [mscorlib]System.Console::WriteLine(bool) + IL_00b8: ldarg.0 + IL_00b9: stloc.0 + IL_00ba: ldarg.1 + IL_00bb: stloc.1 + IL_00bc: ldloca.s V_0 + IL_00be: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00c3: ldloca.s V_1 + IL_00c5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00ca: call bool [mscorlib]System.Decimal::op_LessThanOrEqual(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_00df: brtrue.s IL_00e4 - - IL_00e1: ldc.i4.0 - IL_00e2: br.s IL_00f3 - - IL_00e4: ldloca.s V_0 - IL_00e6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00cf: ldloca.s V_0 + IL_00d1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00d6: ldloca.s V_1 + IL_00d8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00dd: and + IL_00de: and + IL_00df: ldc.i4.0 + IL_00e0: ceq + IL_00e2: call void [mscorlib]System.Console::WriteLine(bool) + IL_00e7: ldarg.0 + IL_00e8: stloc.1 + IL_00e9: ldarg.1 + IL_00ea: stloc.0 IL_00eb: ldloca.s V_1 IL_00ed: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f2: and - IL_00f3: ldc.i4.0 - IL_00f4: ceq - IL_00f6: call void [mscorlib]System.Console::WriteLine(bool) - IL_00fb: ldarg.0 - IL_00fc: stloc.1 - IL_00fd: ldarg.1 - IL_00fe: stloc.0 - IL_00ff: ldloca.s V_1 - IL_0101: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0106: ldloca.s V_0 - IL_0108: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_010d: and - IL_010e: brtrue.s IL_011b - - IL_0110: ldloca.s V_2 - IL_0112: initobj valuetype [mscorlib]System.Nullable`1 - IL_0118: ldloc.2 - IL_0119: br.s IL_0133 - - IL_011b: ldloca.s V_1 - IL_011d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0122: ldloca.s V_0 - IL_0124: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0129: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Addition(valuetype [mscorlib]System.Decimal, + IL_00f2: ldloca.s V_0 + IL_00f4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00f9: and + IL_00fa: brtrue.s IL_0107 + + IL_00fc: ldloca.s V_2 + IL_00fe: initobj valuetype [mscorlib]System.Nullable`1 + IL_0104: ldloc.2 + IL_0105: br.s IL_011f + + IL_0107: ldloca.s V_1 + IL_0109: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_010e: ldloca.s V_0 + IL_0110: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0115: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Addition(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_012e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0133: box valuetype [mscorlib]System.Nullable`1 - IL_0138: call void [mscorlib]System.Console::WriteLine(object) - IL_013d: ldarg.0 - IL_013e: stloc.0 - IL_013f: ldarg.1 - IL_0140: stloc.1 - IL_0141: ldloca.s V_0 - IL_0143: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0148: ldloca.s V_1 - IL_014a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_014f: and - IL_0150: brtrue.s IL_015d - - IL_0152: ldloca.s V_2 - IL_0154: initobj valuetype [mscorlib]System.Nullable`1 - IL_015a: ldloc.2 - IL_015b: br.s IL_0175 - - IL_015d: ldloca.s V_0 - IL_015f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0164: ldloca.s V_1 - IL_0166: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_016b: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Subtraction(valuetype [mscorlib]System.Decimal, + IL_011a: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_011f: box valuetype [mscorlib]System.Nullable`1 + IL_0124: call void [mscorlib]System.Console::WriteLine(object) + IL_0129: ldarg.0 + IL_012a: stloc.0 + IL_012b: ldarg.1 + IL_012c: stloc.1 + IL_012d: ldloca.s V_0 + IL_012f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0134: ldloca.s V_1 + IL_0136: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_013b: and + IL_013c: brtrue.s IL_0149 + + IL_013e: ldloca.s V_2 + IL_0140: initobj valuetype [mscorlib]System.Nullable`1 + IL_0146: ldloc.2 + IL_0147: br.s IL_0161 + + IL_0149: ldloca.s V_0 + IL_014b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0150: ldloca.s V_1 + IL_0152: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0157: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Subtraction(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0170: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0175: box valuetype [mscorlib]System.Nullable`1 - IL_017a: call void [mscorlib]System.Console::WriteLine(object) - IL_017f: ldarg.0 - IL_0180: stloc.1 - IL_0181: ldarg.1 - IL_0182: stloc.0 - IL_0183: ldloca.s V_1 - IL_0185: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_018a: ldloca.s V_0 - IL_018c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0191: and - IL_0192: brtrue.s IL_019f - - IL_0194: ldloca.s V_2 - IL_0196: initobj valuetype [mscorlib]System.Nullable`1 - IL_019c: ldloc.2 - IL_019d: br.s IL_01b7 - - IL_019f: ldloca.s V_1 - IL_01a1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01a6: ldloca.s V_0 - IL_01a8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01ad: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Multiply(valuetype [mscorlib]System.Decimal, + IL_015c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0161: box valuetype [mscorlib]System.Nullable`1 + IL_0166: call void [mscorlib]System.Console::WriteLine(object) + IL_016b: ldarg.0 + IL_016c: stloc.1 + IL_016d: ldarg.1 + IL_016e: stloc.0 + IL_016f: ldloca.s V_1 + IL_0171: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0176: ldloca.s V_0 + IL_0178: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_017d: and + IL_017e: brtrue.s IL_018b + + IL_0180: ldloca.s V_2 + IL_0182: initobj valuetype [mscorlib]System.Nullable`1 + IL_0188: ldloc.2 + IL_0189: br.s IL_01a3 + + IL_018b: ldloca.s V_1 + IL_018d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0192: ldloca.s V_0 + IL_0194: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0199: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Multiply(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_01b2: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01b7: box valuetype [mscorlib]System.Nullable`1 - IL_01bc: call void [mscorlib]System.Console::WriteLine(object) - IL_01c1: ldarg.0 - IL_01c2: stloc.0 - IL_01c3: ldarg.1 - IL_01c4: stloc.1 - IL_01c5: ldloca.s V_0 - IL_01c7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01cc: ldloca.s V_1 - IL_01ce: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01d3: and - IL_01d4: brtrue.s IL_01e1 - - IL_01d6: ldloca.s V_2 - IL_01d8: initobj valuetype [mscorlib]System.Nullable`1 - IL_01de: ldloc.2 - IL_01df: br.s IL_01f9 - - IL_01e1: ldloca.s V_0 - IL_01e3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01e8: ldloca.s V_1 - IL_01ea: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01ef: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Division(valuetype [mscorlib]System.Decimal, + IL_019e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01a3: box valuetype [mscorlib]System.Nullable`1 + IL_01a8: call void [mscorlib]System.Console::WriteLine(object) + IL_01ad: ldarg.0 + IL_01ae: stloc.0 + IL_01af: ldarg.1 + IL_01b0: stloc.1 + IL_01b1: ldloca.s V_0 + IL_01b3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01b8: ldloca.s V_1 + IL_01ba: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01bf: and + IL_01c0: brtrue.s IL_01cd + + IL_01c2: ldloca.s V_2 + IL_01c4: initobj valuetype [mscorlib]System.Nullable`1 + IL_01ca: ldloc.2 + IL_01cb: br.s IL_01e5 + + IL_01cd: ldloca.s V_0 + IL_01cf: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01d4: ldloca.s V_1 + IL_01d6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01db: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Division(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_01f4: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01f9: box valuetype [mscorlib]System.Nullable`1 - IL_01fe: call void [mscorlib]System.Console::WriteLine(object) - IL_0203: ldarg.0 - IL_0204: stloc.1 - IL_0205: ldarg.1 - IL_0206: stloc.0 - IL_0207: ldloca.s V_1 - IL_0209: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_020e: ldloca.s V_0 - IL_0210: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0215: and - IL_0216: brtrue.s IL_0223 - - IL_0218: ldloca.s V_2 - IL_021a: initobj valuetype [mscorlib]System.Nullable`1 - IL_0220: ldloc.2 - IL_0221: br.s IL_023b - - IL_0223: ldloca.s V_1 - IL_0225: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_022a: ldloca.s V_0 - IL_022c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0231: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Modulus(valuetype [mscorlib]System.Decimal, + IL_01e0: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01e5: box valuetype [mscorlib]System.Nullable`1 + IL_01ea: call void [mscorlib]System.Console::WriteLine(object) + IL_01ef: ldarg.0 + IL_01f0: stloc.1 + IL_01f1: ldarg.1 + IL_01f2: stloc.0 + IL_01f3: ldloca.s V_1 + IL_01f5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01fa: ldloca.s V_0 + IL_01fc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0201: and + IL_0202: brtrue.s IL_020f + + IL_0204: ldloca.s V_2 + IL_0206: initobj valuetype [mscorlib]System.Nullable`1 + IL_020c: ldloc.2 + IL_020d: br.s IL_0227 + + IL_020f: ldloca.s V_1 + IL_0211: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0216: ldloca.s V_0 + IL_0218: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_021d: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Modulus(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0236: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_023b: box valuetype [mscorlib]System.Nullable`1 - IL_0240: call void [mscorlib]System.Console::WriteLine(object) - IL_0245: ldarg.0 - IL_0246: stloc.0 - IL_0247: ldloca.s V_0 - IL_0249: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_024e: brtrue.s IL_0253 - - IL_0250: ldarg.1 - IL_0251: br.s IL_0254 - - IL_0253: ldloc.0 - IL_0254: box valuetype [mscorlib]System.Nullable`1 - IL_0259: call void [mscorlib]System.Console::WriteLine(object) - IL_025e: ldarg.0 - IL_025f: stloc.0 + IL_0222: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0227: box valuetype [mscorlib]System.Nullable`1 + IL_022c: call void [mscorlib]System.Console::WriteLine(object) + IL_0231: ldarg.0 + IL_0232: stloc.0 + IL_0233: ldloca.s V_0 + IL_0235: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_023a: brtrue.s IL_023f + + IL_023c: ldarg.1 + IL_023d: br.s IL_0240 + + IL_023f: ldloc.0 + IL_0240: box valuetype [mscorlib]System.Nullable`1 + IL_0245: call void [mscorlib]System.Console::WriteLine(object) + IL_024a: ldarg.0 + IL_024b: stloc.0 + IL_024c: ldloca.s V_0 + IL_024e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0253: brtrue.s IL_0260 + + IL_0255: ldloca.s V_1 + IL_0257: initobj valuetype [mscorlib]System.Nullable`1 + IL_025d: ldloc.1 + IL_025e: br.s IL_0271 + IL_0260: ldloca.s V_0 - IL_0262: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0267: brtrue.s IL_0274 - - IL_0269: ldloca.s V_1 - IL_026b: initobj valuetype [mscorlib]System.Nullable`1 - IL_0271: ldloc.1 - IL_0272: br.s IL_0285 - - IL_0274: ldloca.s V_0 - IL_0276: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_027b: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_UnaryNegation(valuetype [mscorlib]System.Decimal) - IL_0280: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0285: box valuetype [mscorlib]System.Nullable`1 - IL_028a: call void [mscorlib]System.Console::WriteLine(object) - IL_028f: ldarg.0 - IL_0290: stloc.0 - IL_0291: ldarg.1 - IL_0292: stloc.1 - IL_0293: ldloca.s V_0 - IL_0295: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_029a: ldloca.s V_1 - IL_029c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02a1: and - IL_02a2: brtrue.s IL_02af - - IL_02a4: ldloca.s V_2 - IL_02a6: initobj valuetype [mscorlib]System.Nullable`1 - IL_02ac: ldloc.2 - IL_02ad: br.s IL_02c7 - - IL_02af: ldloca.s V_0 - IL_02b1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02b6: ldloca.s V_1 - IL_02b8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02bd: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Addition(valuetype [mscorlib]System.Decimal, + IL_0262: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0267: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_UnaryNegation(valuetype [mscorlib]System.Decimal) + IL_026c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0271: box valuetype [mscorlib]System.Nullable`1 + IL_0276: call void [mscorlib]System.Console::WriteLine(object) + IL_027b: ldarg.0 + IL_027c: stloc.0 + IL_027d: ldarg.1 + IL_027e: stloc.1 + IL_027f: ldloca.s V_0 + IL_0281: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0286: ldloca.s V_1 + IL_0288: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_028d: and + IL_028e: brtrue.s IL_029b + + IL_0290: ldloca.s V_2 + IL_0292: initobj valuetype [mscorlib]System.Nullable`1 + IL_0298: ldloc.2 + IL_0299: br.s IL_02b3 + + IL_029b: ldloca.s V_0 + IL_029d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02a2: ldloca.s V_1 + IL_02a4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02a9: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Addition(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_02c2: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02c7: starg.s a - IL_02c9: ldarg.0 - IL_02ca: stloc.1 - IL_02cb: ldarg.1 - IL_02cc: stloc.0 - IL_02cd: ldloca.s V_1 - IL_02cf: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02d4: ldloca.s V_0 - IL_02d6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02db: and - IL_02dc: brtrue.s IL_02e9 - - IL_02de: ldloca.s V_2 - IL_02e0: initobj valuetype [mscorlib]System.Nullable`1 - IL_02e6: ldloc.2 - IL_02e7: br.s IL_0301 - - IL_02e9: ldloca.s V_1 - IL_02eb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02f0: ldloca.s V_0 - IL_02f2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02f7: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Subtraction(valuetype [mscorlib]System.Decimal, + IL_02ae: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02b3: starg.s a + IL_02b5: ldarg.0 + IL_02b6: stloc.1 + IL_02b7: ldarg.1 + IL_02b8: stloc.0 + IL_02b9: ldloca.s V_1 + IL_02bb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02c0: ldloca.s V_0 + IL_02c2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02c7: and + IL_02c8: brtrue.s IL_02d5 + + IL_02ca: ldloca.s V_2 + IL_02cc: initobj valuetype [mscorlib]System.Nullable`1 + IL_02d2: ldloc.2 + IL_02d3: br.s IL_02ed + + IL_02d5: ldloca.s V_1 + IL_02d7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02dc: ldloca.s V_0 + IL_02de: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02e3: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Subtraction(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_02fc: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0301: starg.s a - IL_0303: ldarg.0 - IL_0304: stloc.0 - IL_0305: ldarg.1 - IL_0306: stloc.1 - IL_0307: ldloca.s V_0 - IL_0309: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_030e: ldloca.s V_1 - IL_0310: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0315: and - IL_0316: brtrue.s IL_0323 - - IL_0318: ldloca.s V_2 - IL_031a: initobj valuetype [mscorlib]System.Nullable`1 - IL_0320: ldloc.2 - IL_0321: br.s IL_033b - - IL_0323: ldloca.s V_0 - IL_0325: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_032a: ldloca.s V_1 - IL_032c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0331: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Multiply(valuetype [mscorlib]System.Decimal, + IL_02e8: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02ed: starg.s a + IL_02ef: ldarg.0 + IL_02f0: stloc.0 + IL_02f1: ldarg.1 + IL_02f2: stloc.1 + IL_02f3: ldloca.s V_0 + IL_02f5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02fa: ldloca.s V_1 + IL_02fc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0301: and + IL_0302: brtrue.s IL_030f + + IL_0304: ldloca.s V_2 + IL_0306: initobj valuetype [mscorlib]System.Nullable`1 + IL_030c: ldloc.2 + IL_030d: br.s IL_0327 + + IL_030f: ldloca.s V_0 + IL_0311: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0316: ldloca.s V_1 + IL_0318: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_031d: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Multiply(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0336: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_033b: starg.s a - IL_033d: ldarg.0 - IL_033e: stloc.1 - IL_033f: ldarg.1 - IL_0340: stloc.0 - IL_0341: ldloca.s V_1 - IL_0343: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0348: ldloca.s V_0 - IL_034a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_034f: and - IL_0350: brtrue.s IL_035d - - IL_0352: ldloca.s V_2 - IL_0354: initobj valuetype [mscorlib]System.Nullable`1 - IL_035a: ldloc.2 - IL_035b: br.s IL_0375 - - IL_035d: ldloca.s V_1 - IL_035f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0364: ldloca.s V_0 - IL_0366: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_036b: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Division(valuetype [mscorlib]System.Decimal, + IL_0322: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0327: starg.s a + IL_0329: ldarg.0 + IL_032a: stloc.1 + IL_032b: ldarg.1 + IL_032c: stloc.0 + IL_032d: ldloca.s V_1 + IL_032f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0334: ldloca.s V_0 + IL_0336: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_033b: and + IL_033c: brtrue.s IL_0349 + + IL_033e: ldloca.s V_2 + IL_0340: initobj valuetype [mscorlib]System.Nullable`1 + IL_0346: ldloc.2 + IL_0347: br.s IL_0361 + + IL_0349: ldloca.s V_1 + IL_034b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0350: ldloca.s V_0 + IL_0352: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0357: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Division(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0370: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0375: starg.s a - IL_0377: ldarg.0 - IL_0378: stloc.0 - IL_0379: ldarg.1 - IL_037a: stloc.1 - IL_037b: ldloca.s V_0 - IL_037d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0382: ldloca.s V_1 - IL_0384: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0389: and - IL_038a: brtrue.s IL_0397 - - IL_038c: ldloca.s V_2 - IL_038e: initobj valuetype [mscorlib]System.Nullable`1 - IL_0394: ldloc.2 - IL_0395: br.s IL_03af - - IL_0397: ldloca.s V_0 - IL_0399: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_039e: ldloca.s V_1 - IL_03a0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03a5: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Modulus(valuetype [mscorlib]System.Decimal, + IL_035c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0361: starg.s a + IL_0363: ldarg.0 + IL_0364: stloc.0 + IL_0365: ldarg.1 + IL_0366: stloc.1 + IL_0367: ldloca.s V_0 + IL_0369: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_036e: ldloca.s V_1 + IL_0370: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0375: and + IL_0376: brtrue.s IL_0383 + + IL_0378: ldloca.s V_2 + IL_037a: initobj valuetype [mscorlib]System.Nullable`1 + IL_0380: ldloc.2 + IL_0381: br.s IL_039b + + IL_0383: ldloca.s V_0 + IL_0385: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_038a: ldloca.s V_1 + IL_038c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0391: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Modulus(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_03aa: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03af: starg.s a - IL_03b1: ret + IL_0396: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_039b: starg.s a + IL_039d: ret } // end of method LiftedOperators::NumberValueBasic .method public hidebysig static void NumberValueComplex(valuetype [mscorlib]System.Nullable`1 a, @@ -3624,8 +3383,8 @@ .method public hidebysig static void CompareWithImplictCast(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 160 (0xa0) - .maxstack 2 + // Code size 156 (0x9c) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -3652,62 +3411,56 @@ IL_0028: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_002d: ldloca.s V_1 IL_002f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0034: blt.s IL_0039 - - IL_0036: ldc.i4.0 - IL_0037: br.s IL_0048 + IL_0034: clt + IL_0036: ldloca.s V_0 + IL_0038: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003d: ldloca.s V_1 + IL_003f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0044: and + IL_0045: and + IL_0046: brfalse.s IL_004d + + IL_0048: call void [mscorlib]System.Console::WriteLine() + IL_004d: ldarg.0 + IL_004e: stloc.2 + IL_004f: ldloca.s V_2 + IL_0051: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0056: brtrue.s IL_0063 - IL_0039: ldloca.s V_0 - IL_003b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0040: ldloca.s V_1 - IL_0042: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0047: and - IL_0048: brfalse.s IL_004f - - IL_004a: call void [mscorlib]System.Console::WriteLine() - IL_004f: ldarg.0 - IL_0050: stloc.2 - IL_0051: ldloca.s V_2 - IL_0053: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0058: brtrue.s IL_0065 - - IL_005a: ldloca.s V_3 - IL_005c: initobj valuetype [mscorlib]System.Nullable`1 - IL_0062: ldloc.3 - IL_0063: br.s IL_0072 - - IL_0065: ldloca.s V_2 - IL_0067: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_006c: conv.i8 - IL_006d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0072: stloc.1 - IL_0073: ldarg.1 - IL_0074: stloc.0 - IL_0075: ldloca.s V_1 - IL_0077: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007c: ldloca.s V_0 - IL_007e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0083: beq.s IL_0088 + IL_0058: ldloca.s V_3 + IL_005a: initobj valuetype [mscorlib]System.Nullable`1 + IL_0060: ldloc.3 + IL_0061: br.s IL_0070 - IL_0085: ldc.i4.0 - IL_0086: br.s IL_0098 + IL_0063: ldloca.s V_2 + IL_0065: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_006a: conv.i8 + IL_006b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0070: stloc.1 + IL_0071: ldarg.1 + IL_0072: stloc.0 + IL_0073: ldloca.s V_1 + IL_0075: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_007a: ldloca.s V_0 + IL_007c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0081: ceq + IL_0083: ldloca.s V_1 + IL_0085: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_008a: ldloca.s V_0 + IL_008c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0091: ceq + IL_0093: and + IL_0094: brfalse.s IL_009b - IL_0088: ldloca.s V_1 - IL_008a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_008f: ldloca.s V_0 - IL_0091: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0096: ceq - IL_0098: brfalse.s IL_009f - - IL_009a: call void [mscorlib]System.Console::WriteLine() - IL_009f: ret + IL_0096: call void [mscorlib]System.Console::WriteLine() + IL_009b: ret } // end of method LiftedOperators::CompareWithImplictCast .method public hidebysig static void CompareWithSignChange(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 112 (0x70) - .maxstack 2 + // Code size 110 (0x6e) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -3746,20 +3499,17 @@ IL_0048: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_004d: ldloca.s V_1 IL_004f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0054: blt.un.s IL_0059 - - IL_0056: ldc.i4.0 - IL_0057: br.s IL_0068 - - IL_0059: ldloca.s V_0 - IL_005b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0060: ldloca.s V_1 - IL_0062: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0067: and - IL_0068: brfalse.s IL_006f + IL_0054: clt.un + IL_0056: ldloca.s V_0 + IL_0058: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_005d: ldloca.s V_1 + IL_005f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0064: and + IL_0065: and + IL_0066: brfalse.s IL_006d - IL_006a: call void [mscorlib]System.Console::WriteLine() - IL_006f: ret + IL_0068: call void [mscorlib]System.Console::WriteLine() + IL_006d: ret } // end of method LiftedOperators::CompareWithSignChange .method public hidebysig static void StructBasic(valuetype [mscorlib]System.Nullable`1 a, @@ -4762,8 +4512,8 @@ .method public hidebysig static bool RetEq(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 39 (0x27) - .maxstack 2 + // Code size 38 (0x26) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1) IL_0000: ldarg.0 @@ -4774,24 +4524,21 @@ IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloca.s V_1 IL_000d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0012: beq.s IL_0016 - - IL_0014: ldc.i4.0 - IL_0015: ret - - IL_0016: ldloca.s V_0 - IL_0018: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001d: ldloca.s V_1 - IL_001f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0024: ceq - IL_0026: ret + IL_0012: ceq + IL_0014: ldloca.s V_0 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: ldloca.s V_1 + IL_001d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0022: ceq + IL_0024: and + IL_0025: ret } // end of method LiftedOperators::RetEq .method public hidebysig static bool RetEqConv(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 73 (0x49) - .maxstack 2 + // Code size 72 (0x48) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -4818,22 +4565,19 @@ IL_0028: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_002d: ldloca.s V_1 IL_002f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0034: beq.s IL_0038 - - IL_0036: ldc.i4.0 - IL_0037: ret - - IL_0038: ldloca.s V_0 - IL_003a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_003f: ldloca.s V_1 - IL_0041: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0046: ceq - IL_0048: ret + IL_0034: ceq + IL_0036: ldloca.s V_0 + IL_0038: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003d: ldloca.s V_1 + IL_003f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0044: ceq + IL_0046: and + IL_0047: ret } // end of method LiftedOperators::RetEqConv .method public hidebysig static bool RetEqConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 26 (0x1a) + // Code size 25 (0x19) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int64 V_1) @@ -4845,19 +4589,16 @@ IL_0006: ldloca.s V_0 IL_0008: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000d: ldloc.1 - IL_000e: beq.s IL_0012 - - IL_0010: ldc.i4.0 - IL_0011: ret - - IL_0012: ldloca.s V_0 - IL_0014: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0019: ret + IL_000e: ceq + IL_0010: ldloca.s V_0 + IL_0012: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0017: and + IL_0018: ret } // end of method LiftedOperators::RetEqConst .method public hidebysig static bool RetIneqConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 29 (0x1d) + // Code size 28 (0x1c) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int64 V_1) @@ -4869,23 +4610,20 @@ IL_0006: ldloca.s V_0 IL_0008: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000d: ldloc.1 - IL_000e: beq.s IL_0012 - - IL_0010: ldc.i4.1 - IL_0011: ret - - IL_0012: ldloca.s V_0 - IL_0014: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0019: ldc.i4.0 - IL_001a: ceq - IL_001c: ret + IL_000e: ceq + IL_0010: ldloca.s V_0 + IL_0012: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0017: and + IL_0018: ldc.i4.0 + IL_0019: ceq + IL_001b: ret } // end of method LiftedOperators::RetIneqConst .method public hidebysig static bool RetLt(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 38 (0x26) - .maxstack 2 + // Code size 37 (0x25) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1) IL_0000: ldarg.0 @@ -4896,22 +4634,19 @@ IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloca.s V_1 IL_000d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0012: blt.s IL_0016 - - IL_0014: ldc.i4.0 - IL_0015: ret - - IL_0016: ldloca.s V_0 - IL_0018: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001d: ldloca.s V_1 - IL_001f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0024: and - IL_0025: ret + IL_0012: clt + IL_0014: ldloca.s V_0 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: ldloca.s V_1 + IL_001d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0022: and + IL_0023: and + IL_0024: ret } // end of method LiftedOperators::RetLt .method public hidebysig static bool RetLtConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 25 (0x19) + // Code size 24 (0x18) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int32 V_1) @@ -4922,21 +4657,18 @@ IL_0005: ldloca.s V_0 IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloc.1 - IL_000d: blt.s IL_0011 - - IL_000f: ldc.i4.0 - IL_0010: ret - - IL_0011: ldloca.s V_0 - IL_0013: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0018: ret + IL_000d: clt + IL_000f: ldloca.s V_0 + IL_0011: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0016: and + IL_0017: ret } // end of method LiftedOperators::RetLtConst .method public hidebysig static bool RetLtConv(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 72 (0x48) - .maxstack 2 + // Code size 71 (0x47) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -4963,24 +4695,21 @@ IL_0028: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_002d: ldloca.s V_1 IL_002f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0034: blt.s IL_0038 - - IL_0036: ldc.i4.0 - IL_0037: ret - - IL_0038: ldloca.s V_0 - IL_003a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_003f: ldloca.s V_1 - IL_0041: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0046: and - IL_0047: ret + IL_0034: clt + IL_0036: ldloca.s V_0 + IL_0038: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003d: ldloca.s V_1 + IL_003f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0044: and + IL_0045: and + IL_0046: ret } // end of method LiftedOperators::RetLtConv .method public hidebysig static bool RetNotLt(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 42 (0x2a) - .maxstack 2 + // Code size 40 (0x28) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1) IL_0000: ldarg.0 @@ -4991,19 +4720,16 @@ IL_0006: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000b: ldloca.s V_1 IL_000d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0012: blt.s IL_0017 - - IL_0014: ldc.i4.0 - IL_0015: br.s IL_0026 - - IL_0017: ldloca.s V_0 - IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001e: ldloca.s V_1 - IL_0020: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0025: and - IL_0026: ldc.i4.0 - IL_0027: ceq - IL_0029: ret + IL_0012: clt + IL_0014: ldloca.s V_0 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: ldloca.s V_1 + IL_001d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0022: and + IL_0023: and + IL_0024: ldc.i4.0 + IL_0025: ceq + IL_0027: ret } // end of method LiftedOperators::RetNotLt } // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.LiftedOperators diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.roslyn.il index 37d1cf423..12f2d71b0 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/LiftedOperators.roslyn.il @@ -39,8 +39,8 @@ .method public hidebysig static void BoolBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 107 (0x6b) - .maxstack 2 + // Code size 103 (0x67) + .maxstack 3 .locals init (bool V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -54,59 +54,53 @@ IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloca.s V_2 IL_000e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0013: beq.s IL_0018 - - IL_0015: ldc.i4.0 - IL_0016: br.s IL_0028 - - IL_0018: ldloca.s V_1 - IL_001a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001f: ldloca.s V_2 - IL_0021: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0026: ceq - IL_0028: stloc.0 - IL_0029: ldloc.0 - IL_002a: brfalse.s IL_0034 + IL_0013: ceq + IL_0015: ldloca.s V_1 + IL_0017: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001c: ldloca.s V_2 + IL_001e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0023: ceq + IL_0025: and + IL_0026: stloc.0 + IL_0027: ldloc.0 + IL_0028: brfalse.s IL_0032 - IL_002c: nop - IL_002d: call void [mscorlib]System.Console::WriteLine() - IL_0032: nop - IL_0033: nop - IL_0034: ldarg.0 - IL_0035: stloc.2 - IL_0036: ldarg.1 - IL_0037: stloc.1 - IL_0038: ldloca.s V_2 - IL_003a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_003f: ldloca.s V_1 - IL_0041: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0046: beq.s IL_004b - - IL_0048: ldc.i4.1 - IL_0049: br.s IL_005e - - IL_004b: ldloca.s V_2 - IL_004d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0052: ldloca.s V_1 - IL_0054: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0059: ceq - IL_005b: ldc.i4.0 - IL_005c: ceq - IL_005e: stloc.3 - IL_005f: ldloc.3 - IL_0060: brfalse.s IL_006a - - IL_0062: nop - IL_0063: call void [mscorlib]System.Console::WriteLine() - IL_0068: nop - IL_0069: nop - IL_006a: ret + IL_002a: nop + IL_002b: call void [mscorlib]System.Console::WriteLine() + IL_0030: nop + IL_0031: nop + IL_0032: ldarg.0 + IL_0033: stloc.2 + IL_0034: ldarg.1 + IL_0035: stloc.1 + IL_0036: ldloca.s V_2 + IL_0038: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003d: ldloca.s V_1 + IL_003f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0044: ceq + IL_0046: ldloca.s V_2 + IL_0048: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004d: ldloca.s V_1 + IL_004f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0054: ceq + IL_0056: and + IL_0057: ldc.i4.0 + IL_0058: ceq + IL_005a: stloc.3 + IL_005b: ldloc.3 + IL_005c: brfalse.s IL_0066 + + IL_005e: nop + IL_005f: call void [mscorlib]System.Console::WriteLine() + IL_0064: nop + IL_0065: nop + IL_0066: ret } // end of method LiftedOperators::BoolBasic .method public hidebysig static void BoolComplex(valuetype [mscorlib]System.Nullable`1 a, class [mscorlib]System.Func`1 x) cil managed { - // Code size 172 (0xac) + // Code size 164 (0xa4) .maxstack 2 .locals init (bool V_0, valuetype [mscorlib]System.Nullable`1 V_1, @@ -123,96 +117,84 @@ IL_000a: ldloca.s V_1 IL_000c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0011: ldloc.2 - IL_0012: beq.s IL_0017 - - IL_0014: ldc.i4.0 - IL_0015: br.s IL_001e - - IL_0017: ldloca.s V_1 - IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001e: stloc.0 - IL_001f: ldloc.0 - IL_0020: brfalse.s IL_002a + IL_0012: ceq + IL_0014: ldloca.s V_1 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: and + IL_001c: stloc.0 + IL_001d: ldloc.0 + IL_001e: brfalse.s IL_0028 - IL_0022: nop - IL_0023: call void [mscorlib]System.Console::WriteLine() - IL_0028: nop - IL_0029: nop - IL_002a: ldarg.0 - IL_002b: stloc.1 - IL_002c: ldarg.1 - IL_002d: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0032: stloc.2 - IL_0033: ldloca.s V_1 - IL_0035: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_003a: ldloc.2 - IL_003b: beq.s IL_0040 - - IL_003d: ldc.i4.1 - IL_003e: br.s IL_004a - - IL_0040: ldloca.s V_1 - IL_0042: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0047: ldc.i4.0 - IL_0048: ceq - IL_004a: stloc.3 - IL_004b: ldloc.3 - IL_004c: brfalse.s IL_0056 - - IL_004e: nop - IL_004f: call void [mscorlib]System.Console::WriteLine() - IL_0054: nop - IL_0055: nop - IL_0056: ldarg.1 - IL_0057: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_005c: ldarg.0 - IL_005d: stloc.1 - IL_005e: ldloca.s V_1 - IL_0060: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0065: beq.s IL_006a - - IL_0067: ldc.i4.0 - IL_0068: br.s IL_0071 + IL_0020: nop + IL_0021: call void [mscorlib]System.Console::WriteLine() + IL_0026: nop + IL_0027: nop + IL_0028: ldarg.0 + IL_0029: stloc.1 + IL_002a: ldarg.1 + IL_002b: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0030: stloc.2 + IL_0031: ldloca.s V_1 + IL_0033: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0038: ldloc.2 + IL_0039: ceq + IL_003b: ldloca.s V_1 + IL_003d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0042: and + IL_0043: ldc.i4.0 + IL_0044: ceq + IL_0046: stloc.3 + IL_0047: ldloc.3 + IL_0048: brfalse.s IL_0052 - IL_006a: ldloca.s V_1 - IL_006c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0071: stloc.s V_4 - IL_0073: ldloc.s V_4 - IL_0075: brfalse.s IL_007f + IL_004a: nop + IL_004b: call void [mscorlib]System.Console::WriteLine() + IL_0050: nop + IL_0051: nop + IL_0052: ldarg.1 + IL_0053: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0058: ldarg.0 + IL_0059: stloc.1 + IL_005a: ldloca.s V_1 + IL_005c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0061: ceq + IL_0063: ldloca.s V_1 + IL_0065: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_006a: and + IL_006b: stloc.s V_4 + IL_006d: ldloc.s V_4 + IL_006f: brfalse.s IL_0079 + IL_0071: nop + IL_0072: call void [mscorlib]System.Console::WriteLine() IL_0077: nop - IL_0078: call void [mscorlib]System.Console::WriteLine() - IL_007d: nop - IL_007e: nop - IL_007f: ldarg.1 - IL_0080: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0085: ldarg.0 - IL_0086: stloc.1 - IL_0087: ldloca.s V_1 - IL_0089: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_008e: beq.s IL_0093 - - IL_0090: ldc.i4.1 - IL_0091: br.s IL_009d - - IL_0093: ldloca.s V_1 - IL_0095: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_009a: ldc.i4.0 - IL_009b: ceq - IL_009d: stloc.s V_5 - IL_009f: ldloc.s V_5 - IL_00a1: brfalse.s IL_00ab - - IL_00a3: nop - IL_00a4: call void [mscorlib]System.Console::WriteLine() - IL_00a9: nop - IL_00aa: nop - IL_00ab: ret + IL_0078: nop + IL_0079: ldarg.1 + IL_007a: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_007f: ldarg.0 + IL_0080: stloc.1 + IL_0081: ldloca.s V_1 + IL_0083: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0088: ceq + IL_008a: ldloca.s V_1 + IL_008c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0091: and + IL_0092: ldc.i4.0 + IL_0093: ceq + IL_0095: stloc.s V_5 + IL_0097: ldloc.s V_5 + IL_0099: brfalse.s IL_00a3 + + IL_009b: nop + IL_009c: call void [mscorlib]System.Console::WriteLine() + IL_00a1: nop + IL_00a2: nop + IL_00a3: ret } // end of method LiftedOperators::BoolComplex .method public hidebysig static void BoolConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 226 (0xe2) + // Code size 218 (0xda) .maxstack 2 .locals init (bool V_0, valuetype [mscorlib]System.Nullable`1 V_1, @@ -230,137 +212,125 @@ IL_0005: ldloca.s V_1 IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloc.2 - IL_000d: beq.s IL_0012 + IL_000d: ceq + IL_000f: ldloca.s V_1 + IL_0011: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0016: and + IL_0017: stloc.0 + IL_0018: ldloc.0 + IL_0019: brfalse.s IL_0023 - IL_000f: ldc.i4.0 - IL_0010: br.s IL_0019 - - IL_0012: ldloca.s V_1 - IL_0014: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0019: stloc.0 - IL_001a: ldloc.0 - IL_001b: brfalse.s IL_0025 - - IL_001d: nop - IL_001e: call void [mscorlib]System.Console::WriteLine() - IL_0023: nop - IL_0024: nop - IL_0025: ldarg.0 - IL_0026: stloc.1 - IL_0027: ldc.i4.1 - IL_0028: stloc.2 - IL_0029: ldloca.s V_1 - IL_002b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0030: ldloc.2 - IL_0031: beq.s IL_0036 - - IL_0033: ldc.i4.1 - IL_0034: br.s IL_0040 - - IL_0036: ldloca.s V_1 - IL_0038: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_003d: ldc.i4.0 - IL_003e: ceq - IL_0040: stloc.3 - IL_0041: ldloc.3 - IL_0042: brfalse.s IL_004c - - IL_0044: nop - IL_0045: call void [mscorlib]System.Console::WriteLine() - IL_004a: nop - IL_004b: nop - IL_004c: ldarg.0 - IL_004d: stloc.1 - IL_004e: ldc.i4.0 - IL_004f: stloc.2 - IL_0050: ldloca.s V_1 - IL_0052: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0057: ldloc.2 - IL_0058: beq.s IL_005d + IL_001b: nop + IL_001c: call void [mscorlib]System.Console::WriteLine() + IL_0021: nop + IL_0022: nop + IL_0023: ldarg.0 + IL_0024: stloc.1 + IL_0025: ldc.i4.1 + IL_0026: stloc.2 + IL_0027: ldloca.s V_1 + IL_0029: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_002e: ldloc.2 + IL_002f: ceq + IL_0031: ldloca.s V_1 + IL_0033: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0038: and + IL_0039: ldc.i4.0 + IL_003a: ceq + IL_003c: stloc.3 + IL_003d: ldloc.3 + IL_003e: brfalse.s IL_0048 + + IL_0040: nop + IL_0041: call void [mscorlib]System.Console::WriteLine() + IL_0046: nop + IL_0047: nop + IL_0048: ldarg.0 + IL_0049: stloc.1 + IL_004a: ldc.i4.0 + IL_004b: stloc.2 + IL_004c: ldloca.s V_1 + IL_004e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0053: ldloc.2 + IL_0054: ceq + IL_0056: ldloca.s V_1 + IL_0058: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_005d: and + IL_005e: stloc.s V_4 + IL_0060: ldloc.s V_4 + IL_0062: brfalse.s IL_006c + + IL_0064: nop + IL_0065: call void [mscorlib]System.Console::WriteLine() + IL_006a: nop + IL_006b: nop + IL_006c: ldarg.0 + IL_006d: stloc.1 + IL_006e: ldc.i4.0 + IL_006f: stloc.2 + IL_0070: ldloca.s V_1 + IL_0072: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0077: ldloc.2 + IL_0078: ceq + IL_007a: ldloca.s V_1 + IL_007c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0081: and + IL_0082: ldc.i4.0 + IL_0083: ceq + IL_0085: stloc.s V_5 + IL_0087: ldloc.s V_5 + IL_0089: brfalse.s IL_0093 - IL_005a: ldc.i4.0 - IL_005b: br.s IL_0064 + IL_008b: nop + IL_008c: call void [mscorlib]System.Console::WriteLine() + IL_0091: nop + IL_0092: nop + IL_0093: ldarg.0 + IL_0094: stloc.1 + IL_0095: ldloca.s V_1 + IL_0097: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_009c: brtrue.s IL_00a1 - IL_005d: ldloca.s V_1 - IL_005f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0064: stloc.s V_4 - IL_0066: ldloc.s V_4 - IL_0068: brfalse.s IL_0072 + IL_009e: ldc.i4.1 + IL_009f: br.s IL_00a8 - IL_006a: nop - IL_006b: call void [mscorlib]System.Console::WriteLine() - IL_0070: nop - IL_0071: nop - IL_0072: ldarg.0 - IL_0073: stloc.1 - IL_0074: ldc.i4.0 - IL_0075: stloc.2 - IL_0076: ldloca.s V_1 - IL_0078: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007d: ldloc.2 - IL_007e: beq.s IL_0083 - - IL_0080: ldc.i4.1 - IL_0081: br.s IL_008d + IL_00a1: ldloca.s V_1 + IL_00a3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00a8: stloc.s V_6 + IL_00aa: ldloc.s V_6 + IL_00ac: brfalse.s IL_00b6 - IL_0083: ldloca.s V_1 - IL_0085: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_008a: ldc.i4.0 - IL_008b: ceq - IL_008d: stloc.s V_5 - IL_008f: ldloc.s V_5 - IL_0091: brfalse.s IL_009b - - IL_0093: nop - IL_0094: call void [mscorlib]System.Console::WriteLine() - IL_0099: nop - IL_009a: nop - IL_009b: ldarg.0 - IL_009c: stloc.1 - IL_009d: ldloca.s V_1 - IL_009f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00a4: brtrue.s IL_00a9 + IL_00ae: nop + IL_00af: call void [mscorlib]System.Console::WriteLine() + IL_00b4: nop + IL_00b5: nop + IL_00b6: ldarg.0 + IL_00b7: stloc.1 + IL_00b8: ldloca.s V_1 + IL_00ba: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00bf: brtrue.s IL_00c4 - IL_00a6: ldc.i4.1 - IL_00a7: br.s IL_00b0 + IL_00c1: ldc.i4.0 + IL_00c2: br.s IL_00cb - IL_00a9: ldloca.s V_1 - IL_00ab: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00b0: stloc.s V_6 - IL_00b2: ldloc.s V_6 - IL_00b4: brfalse.s IL_00be + IL_00c4: ldloca.s V_1 + IL_00c6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00cb: stloc.s V_7 + IL_00cd: ldloc.s V_7 + IL_00cf: brfalse.s IL_00d9 - IL_00b6: nop - IL_00b7: call void [mscorlib]System.Console::WriteLine() - IL_00bc: nop - IL_00bd: nop - IL_00be: ldarg.0 - IL_00bf: stloc.1 - IL_00c0: ldloca.s V_1 - IL_00c2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00c7: brtrue.s IL_00cc - - IL_00c9: ldc.i4.0 - IL_00ca: br.s IL_00d3 - - IL_00cc: ldloca.s V_1 - IL_00ce: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00d3: stloc.s V_7 - IL_00d5: ldloc.s V_7 - IL_00d7: brfalse.s IL_00e1 - - IL_00d9: nop - IL_00da: call void [mscorlib]System.Console::WriteLine() - IL_00df: nop - IL_00e0: nop - IL_00e1: ret + IL_00d1: nop + IL_00d2: call void [mscorlib]System.Console::WriteLine() + IL_00d7: nop + IL_00d8: nop + IL_00d9: ret } // end of method LiftedOperators::BoolConst .method public hidebysig static void BoolValueBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 452 (0x1c4) - .maxstack 2 + // Code size 448 (0x1c0) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2) @@ -373,215 +343,209 @@ IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloca.s V_1 IL_000e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0013: beq.s IL_0018 - - IL_0015: ldc.i4.0 - IL_0016: br.s IL_0028 - - IL_0018: ldloca.s V_0 - IL_001a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001f: ldloca.s V_1 - IL_0021: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0026: ceq - IL_0028: call void [mscorlib]System.Console::WriteLine(bool) - IL_002d: nop - IL_002e: ldarg.0 - IL_002f: stloc.1 - IL_0030: ldarg.1 - IL_0031: stloc.0 - IL_0032: ldloca.s V_1 - IL_0034: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0039: ldloca.s V_0 - IL_003b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0040: beq.s IL_0045 - - IL_0042: ldc.i4.1 - IL_0043: br.s IL_0058 - - IL_0045: ldloca.s V_1 - IL_0047: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_004c: ldloca.s V_0 - IL_004e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0053: ceq - IL_0055: ldc.i4.0 - IL_0056: ceq - IL_0058: call void [mscorlib]System.Console::WriteLine(bool) - IL_005d: nop - IL_005e: ldarg.0 - IL_005f: stloc.0 - IL_0060: ldarg.1 - IL_0061: stloc.1 - IL_0062: ldloca.s V_0 - IL_0064: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0069: brtrue.s IL_0080 + IL_0013: ceq + IL_0015: ldloca.s V_0 + IL_0017: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001c: ldloca.s V_1 + IL_001e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0023: ceq + IL_0025: and + IL_0026: call void [mscorlib]System.Console::WriteLine(bool) + IL_002b: nop + IL_002c: ldarg.0 + IL_002d: stloc.1 + IL_002e: ldarg.1 + IL_002f: stloc.0 + IL_0030: ldloca.s V_1 + IL_0032: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0037: ldloca.s V_0 + IL_0039: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003e: ceq + IL_0040: ldloca.s V_1 + IL_0042: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0047: ldloca.s V_0 + IL_0049: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004e: ceq + IL_0050: and + IL_0051: ldc.i4.0 + IL_0052: ceq + IL_0054: call void [mscorlib]System.Console::WriteLine(bool) + IL_0059: nop + IL_005a: ldarg.0 + IL_005b: stloc.0 + IL_005c: ldarg.1 + IL_005d: stloc.1 + IL_005e: ldloca.s V_0 + IL_0060: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0065: brtrue.s IL_007c + + IL_0067: ldloca.s V_1 + IL_0069: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_006e: brtrue.s IL_0079 + + IL_0070: ldloca.s V_0 + IL_0072: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0077: brfalse.s IL_007c + + IL_0079: ldloc.0 + IL_007a: br.s IL_007d + + IL_007c: ldloc.1 + IL_007d: box valuetype [mscorlib]System.Nullable`1 + IL_0082: call void [mscorlib]System.Console::WriteLine(object) + IL_0087: nop + IL_0088: ldarg.0 + IL_0089: stloc.1 + IL_008a: ldarg.1 + IL_008b: stloc.0 + IL_008c: ldloca.s V_1 + IL_008e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0093: brtrue.s IL_00aa - IL_006b: ldloca.s V_1 - IL_006d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0072: brtrue.s IL_007d + IL_0095: ldloca.s V_0 + IL_0097: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_009c: brtrue.s IL_00a7 - IL_0074: ldloca.s V_0 - IL_0076: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_007b: brfalse.s IL_0080 + IL_009e: ldloca.s V_1 + IL_00a0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00a5: brfalse.s IL_00aa - IL_007d: ldloc.0 - IL_007e: br.s IL_0081 + IL_00a7: ldloc.0 + IL_00a8: br.s IL_00ab - IL_0080: ldloc.1 - IL_0081: box valuetype [mscorlib]System.Nullable`1 - IL_0086: call void [mscorlib]System.Console::WriteLine(object) - IL_008b: nop - IL_008c: ldarg.0 - IL_008d: stloc.1 - IL_008e: ldarg.1 - IL_008f: stloc.0 - IL_0090: ldloca.s V_1 - IL_0092: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0097: brtrue.s IL_00ae - - IL_0099: ldloca.s V_0 - IL_009b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a0: brtrue.s IL_00ab - - IL_00a2: ldloca.s V_1 - IL_00a4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00a9: brfalse.s IL_00ae - - IL_00ab: ldloc.0 - IL_00ac: br.s IL_00af - - IL_00ae: ldloc.1 - IL_00af: box valuetype [mscorlib]System.Nullable`1 - IL_00b4: call void [mscorlib]System.Console::WriteLine(object) - IL_00b9: nop - IL_00ba: ldarg.0 - IL_00bb: stloc.0 - IL_00bc: ldarg.1 - IL_00bd: stloc.1 - IL_00be: ldloca.s V_0 - IL_00c0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00c5: ldloca.s V_1 - IL_00c7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00cc: and - IL_00cd: brtrue.s IL_00da - - IL_00cf: ldloca.s V_2 - IL_00d1: initobj valuetype [mscorlib]System.Nullable`1 - IL_00d7: ldloc.2 - IL_00d8: br.s IL_00ee + IL_00aa: ldloc.1 + IL_00ab: box valuetype [mscorlib]System.Nullable`1 + IL_00b0: call void [mscorlib]System.Console::WriteLine(object) + IL_00b5: nop + IL_00b6: ldarg.0 + IL_00b7: stloc.0 + IL_00b8: ldarg.1 + IL_00b9: stloc.1 + IL_00ba: ldloca.s V_0 + IL_00bc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00c1: ldloca.s V_1 + IL_00c3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00c8: and + IL_00c9: brtrue.s IL_00d6 - IL_00da: ldloca.s V_0 - IL_00dc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00e1: ldloca.s V_1 - IL_00e3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00e8: xor - IL_00e9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_00ee: box valuetype [mscorlib]System.Nullable`1 - IL_00f3: call void [mscorlib]System.Console::WriteLine(object) - IL_00f8: nop - IL_00f9: ldarg.0 - IL_00fa: stloc.1 - IL_00fb: ldloca.s V_1 - IL_00fd: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0102: brtrue.s IL_0107 - - IL_0104: ldarg.1 - IL_0105: br.s IL_0108 - - IL_0107: ldloc.1 - IL_0108: box valuetype [mscorlib]System.Nullable`1 - IL_010d: call void [mscorlib]System.Console::WriteLine(object) - IL_0112: nop - IL_0113: ldarg.0 - IL_0114: stloc.1 - IL_0115: ldloca.s V_1 - IL_0117: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_011c: brtrue.s IL_0129 - - IL_011e: ldloca.s V_0 - IL_0120: initobj valuetype [mscorlib]System.Nullable`1 - IL_0126: ldloc.0 - IL_0127: br.s IL_0138 + IL_00cb: ldloca.s V_2 + IL_00cd: initobj valuetype [mscorlib]System.Nullable`1 + IL_00d3: ldloc.2 + IL_00d4: br.s IL_00ea - IL_0129: ldloca.s V_1 - IL_012b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0130: ldc.i4.0 - IL_0131: ceq - IL_0133: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0138: box valuetype [mscorlib]System.Nullable`1 - IL_013d: call void [mscorlib]System.Console::WriteLine(object) - IL_0142: nop - IL_0143: ldarg.0 - IL_0144: stloc.1 - IL_0145: ldarg.1 - IL_0146: stloc.0 - IL_0147: ldloca.s V_1 - IL_0149: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_014e: brtrue.s IL_0165 + IL_00d6: ldloca.s V_0 + IL_00d8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00dd: ldloca.s V_1 + IL_00df: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00e4: xor + IL_00e5: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_00ea: box valuetype [mscorlib]System.Nullable`1 + IL_00ef: call void [mscorlib]System.Console::WriteLine(object) + IL_00f4: nop + IL_00f5: ldarg.0 + IL_00f6: stloc.1 + IL_00f7: ldloca.s V_1 + IL_00f9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00fe: brtrue.s IL_0103 + + IL_0100: ldarg.1 + IL_0101: br.s IL_0104 + + IL_0103: ldloc.1 + IL_0104: box valuetype [mscorlib]System.Nullable`1 + IL_0109: call void [mscorlib]System.Console::WriteLine(object) + IL_010e: nop + IL_010f: ldarg.0 + IL_0110: stloc.1 + IL_0111: ldloca.s V_1 + IL_0113: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0118: brtrue.s IL_0125 + + IL_011a: ldloca.s V_0 + IL_011c: initobj valuetype [mscorlib]System.Nullable`1 + IL_0122: ldloc.0 + IL_0123: br.s IL_0134 + + IL_0125: ldloca.s V_1 + IL_0127: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_012c: ldc.i4.0 + IL_012d: ceq + IL_012f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0134: box valuetype [mscorlib]System.Nullable`1 + IL_0139: call void [mscorlib]System.Console::WriteLine(object) + IL_013e: nop + IL_013f: ldarg.0 + IL_0140: stloc.1 + IL_0141: ldarg.1 + IL_0142: stloc.0 + IL_0143: ldloca.s V_1 + IL_0145: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_014a: brtrue.s IL_0161 - IL_0150: ldloca.s V_0 - IL_0152: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0157: brtrue.s IL_0162 - - IL_0159: ldloca.s V_1 - IL_015b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0160: brfalse.s IL_0165 - - IL_0162: ldloc.1 - IL_0163: br.s IL_0166 - - IL_0165: ldloc.0 - IL_0166: starg.s a - IL_0168: ldarg.0 - IL_0169: stloc.0 - IL_016a: ldarg.1 - IL_016b: stloc.1 - IL_016c: ldloca.s V_0 - IL_016e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0173: brtrue.s IL_018a - - IL_0175: ldloca.s V_1 - IL_0177: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_017c: brtrue.s IL_0187 + IL_014c: ldloca.s V_0 + IL_014e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0153: brtrue.s IL_015e - IL_017e: ldloca.s V_0 - IL_0180: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0185: brfalse.s IL_018a + IL_0155: ldloca.s V_1 + IL_0157: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_015c: brfalse.s IL_0161 - IL_0187: ldloc.1 - IL_0188: br.s IL_018b + IL_015e: ldloc.1 + IL_015f: br.s IL_0162 - IL_018a: ldloc.0 - IL_018b: starg.s a - IL_018d: ldarg.0 - IL_018e: stloc.1 - IL_018f: ldarg.1 - IL_0190: stloc.0 - IL_0191: ldloca.s V_1 - IL_0193: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0198: ldloca.s V_0 - IL_019a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_019f: and - IL_01a0: brtrue.s IL_01ad - - IL_01a2: ldloca.s V_2 - IL_01a4: initobj valuetype [mscorlib]System.Nullable`1 - IL_01aa: ldloc.2 - IL_01ab: br.s IL_01c1 - - IL_01ad: ldloca.s V_1 - IL_01af: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01b4: ldloca.s V_0 - IL_01b6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01bb: xor - IL_01bc: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01c1: starg.s a - IL_01c3: ret + IL_0161: ldloc.0 + IL_0162: starg.s a + IL_0164: ldarg.0 + IL_0165: stloc.0 + IL_0166: ldarg.1 + IL_0167: stloc.1 + IL_0168: ldloca.s V_0 + IL_016a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_016f: brtrue.s IL_0186 + + IL_0171: ldloca.s V_1 + IL_0173: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0178: brtrue.s IL_0183 + + IL_017a: ldloca.s V_0 + IL_017c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0181: brfalse.s IL_0186 + + IL_0183: ldloc.1 + IL_0184: br.s IL_0187 + + IL_0186: ldloc.0 + IL_0187: starg.s a + IL_0189: ldarg.0 + IL_018a: stloc.1 + IL_018b: ldarg.1 + IL_018c: stloc.0 + IL_018d: ldloca.s V_1 + IL_018f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0194: ldloca.s V_0 + IL_0196: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_019b: and + IL_019c: brtrue.s IL_01a9 + + IL_019e: ldloca.s V_2 + IL_01a0: initobj valuetype [mscorlib]System.Nullable`1 + IL_01a6: ldloc.2 + IL_01a7: br.s IL_01bd + + IL_01a9: ldloca.s V_1 + IL_01ab: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01b0: ldloca.s V_0 + IL_01b2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01b7: xor + IL_01b8: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01bd: starg.s a + IL_01bf: ret } // end of method LiftedOperators::BoolValueBasic .method public hidebysig static void BoolValueComplex(valuetype [mscorlib]System.Nullable`1 a, class [mscorlib]System.Func`1 x) cil managed { - // Code size 528 (0x210) + // Code size 520 (0x208) .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, bool V_1, @@ -596,231 +560,219 @@ IL_000a: ldloca.s V_0 IL_000c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0011: ldloc.1 - IL_0012: beq.s IL_0017 + IL_0012: ceq + IL_0014: ldloca.s V_0 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: and + IL_001c: call void [mscorlib]System.Console::WriteLine(bool) + IL_0021: nop + IL_0022: ldarg.0 + IL_0023: stloc.0 + IL_0024: ldarg.1 + IL_0025: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_002a: stloc.1 + IL_002b: ldloca.s V_0 + IL_002d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0032: ldloc.1 + IL_0033: ceq + IL_0035: ldloca.s V_0 + IL_0037: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003c: and + IL_003d: ldc.i4.0 + IL_003e: ceq + IL_0040: call void [mscorlib]System.Console::WriteLine(bool) + IL_0045: nop + IL_0046: ldarg.1 + IL_0047: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_004c: ldarg.0 + IL_004d: stloc.0 + IL_004e: ldloca.s V_0 + IL_0050: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0055: ceq + IL_0057: ldloca.s V_0 + IL_0059: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_005e: and + IL_005f: call void [mscorlib]System.Console::WriteLine(bool) + IL_0064: nop + IL_0065: ldarg.1 + IL_0066: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_006b: ldarg.0 + IL_006c: stloc.0 + IL_006d: ldloca.s V_0 + IL_006f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0074: ceq + IL_0076: ldloca.s V_0 + IL_0078: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007d: and + IL_007e: ldc.i4.0 + IL_007f: ceq + IL_0081: call void [mscorlib]System.Console::WriteLine(bool) + IL_0086: nop + IL_0087: ldarg.0 + IL_0088: stloc.0 + IL_0089: ldarg.1 + IL_008a: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_008f: stloc.1 + IL_0090: ldloca.s V_0 + IL_0092: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0097: brtrue.s IL_00a4 + + IL_0099: ldloca.s V_2 + IL_009b: initobj valuetype [mscorlib]System.Nullable`1 + IL_00a1: ldloc.2 + IL_00a2: br.s IL_00b2 - IL_0014: ldc.i4.0 - IL_0015: br.s IL_001e + IL_00a4: ldloca.s V_0 + IL_00a6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00ab: ldloc.1 + IL_00ac: xor + IL_00ad: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_00b2: box valuetype [mscorlib]System.Nullable`1 + IL_00b7: call void [mscorlib]System.Console::WriteLine(object) + IL_00bc: nop + IL_00bd: ldarg.0 + IL_00be: stloc.0 + IL_00bf: ldloca.s V_0 + IL_00c1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00c6: brtrue.s IL_00d0 - IL_0017: ldloca.s V_0 - IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001e: call void [mscorlib]System.Console::WriteLine(bool) - IL_0023: nop - IL_0024: ldarg.0 - IL_0025: stloc.0 - IL_0026: ldarg.1 - IL_0027: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_002c: stloc.1 - IL_002d: ldloca.s V_0 - IL_002f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0034: ldloc.1 - IL_0035: beq.s IL_003a + IL_00c8: ldarg.1 + IL_00c9: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00ce: br.s IL_00d7 - IL_0037: ldc.i4.1 - IL_0038: br.s IL_0044 + IL_00d0: ldloca.s V_0 + IL_00d2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00d7: call void [mscorlib]System.Console::WriteLine(bool) + IL_00dc: nop + IL_00dd: ldarg.0 + IL_00de: stloc.0 + IL_00df: ldarg.1 + IL_00e0: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00e5: stloc.1 + IL_00e6: ldloca.s V_0 + IL_00e8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ed: brtrue.s IL_00fa - IL_003a: ldloca.s V_0 - IL_003c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0041: ldc.i4.0 - IL_0042: ceq - IL_0044: call void [mscorlib]System.Console::WriteLine(bool) - IL_0049: nop - IL_004a: ldarg.1 - IL_004b: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0050: ldarg.0 - IL_0051: stloc.0 - IL_0052: ldloca.s V_0 - IL_0054: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0059: beq.s IL_005e - - IL_005b: ldc.i4.0 - IL_005c: br.s IL_0065 + IL_00ef: ldloca.s V_2 + IL_00f1: initobj valuetype [mscorlib]System.Nullable`1 + IL_00f7: ldloc.2 + IL_00f8: br.s IL_0108 - IL_005e: ldloca.s V_0 - IL_0060: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0065: call void [mscorlib]System.Console::WriteLine(bool) - IL_006a: nop - IL_006b: ldarg.1 - IL_006c: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0071: ldarg.0 - IL_0072: stloc.0 - IL_0073: ldloca.s V_0 - IL_0075: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007a: beq.s IL_007f - - IL_007c: ldc.i4.1 - IL_007d: br.s IL_0089 - - IL_007f: ldloca.s V_0 - IL_0081: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0086: ldc.i4.0 - IL_0087: ceq - IL_0089: call void [mscorlib]System.Console::WriteLine(bool) - IL_008e: nop - IL_008f: ldarg.0 - IL_0090: stloc.0 - IL_0091: ldarg.1 - IL_0092: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0097: stloc.1 - IL_0098: ldloca.s V_0 - IL_009a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_009f: brtrue.s IL_00ac - - IL_00a1: ldloca.s V_2 - IL_00a3: initobj valuetype [mscorlib]System.Nullable`1 - IL_00a9: ldloc.2 - IL_00aa: br.s IL_00ba - - IL_00ac: ldloca.s V_0 - IL_00ae: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00b3: ldloc.1 - IL_00b4: xor - IL_00b5: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_00ba: box valuetype [mscorlib]System.Nullable`1 - IL_00bf: call void [mscorlib]System.Console::WriteLine(object) - IL_00c4: nop - IL_00c5: ldarg.0 - IL_00c6: stloc.0 - IL_00c7: ldloca.s V_0 - IL_00c9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00ce: brtrue.s IL_00d8 - - IL_00d0: ldarg.1 - IL_00d1: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00d6: br.s IL_00df - - IL_00d8: ldloca.s V_0 - IL_00da: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00df: call void [mscorlib]System.Console::WriteLine(bool) - IL_00e4: nop - IL_00e5: ldarg.0 - IL_00e6: stloc.0 - IL_00e7: ldarg.1 - IL_00e8: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00ed: stloc.1 - IL_00ee: ldloca.s V_0 - IL_00f0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f5: brtrue.s IL_0102 - - IL_00f7: ldloca.s V_2 - IL_00f9: initobj valuetype [mscorlib]System.Nullable`1 - IL_00ff: ldloc.2 - IL_0100: br.s IL_0110 - - IL_0102: ldloca.s V_0 - IL_0104: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0109: ldloc.1 - IL_010a: xor - IL_010b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0110: starg.s a - IL_0112: ldarg.1 - IL_0113: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0118: ldarg.0 - IL_0119: stloc.0 - IL_011a: brtrue.s IL_0124 - - IL_011c: ldc.i4.0 - IL_011d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0122: br.s IL_0125 - - IL_0124: ldloc.0 - IL_0125: box valuetype [mscorlib]System.Nullable`1 - IL_012a: call void [mscorlib]System.Console::WriteLine(object) - IL_012f: nop - IL_0130: ldarg.1 - IL_0131: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0136: ldarg.0 - IL_0137: stloc.0 - IL_0138: brtrue.s IL_013d + IL_00fa: ldloca.s V_0 + IL_00fc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0101: ldloc.1 + IL_0102: xor + IL_0103: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0108: starg.s a + IL_010a: ldarg.1 + IL_010b: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0110: ldarg.0 + IL_0111: stloc.0 + IL_0112: brtrue.s IL_011c + + IL_0114: ldc.i4.0 + IL_0115: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_011a: br.s IL_011d + + IL_011c: ldloc.0 + IL_011d: box valuetype [mscorlib]System.Nullable`1 + IL_0122: call void [mscorlib]System.Console::WriteLine(object) + IL_0127: nop + IL_0128: ldarg.1 + IL_0129: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_012e: ldarg.0 + IL_012f: stloc.0 + IL_0130: brtrue.s IL_0135 + + IL_0132: ldloc.0 + IL_0133: br.s IL_013b + + IL_0135: ldc.i4.1 + IL_0136: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_013b: box valuetype [mscorlib]System.Nullable`1 + IL_0140: call void [mscorlib]System.Console::WriteLine(object) + IL_0145: nop + IL_0146: ldarg.1 + IL_0147: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_014c: stloc.1 + IL_014d: ldarg.0 + IL_014e: stloc.0 + IL_014f: ldloca.s V_0 + IL_0151: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0156: brtrue.s IL_0163 - IL_013a: ldloc.0 - IL_013b: br.s IL_0143 + IL_0158: ldloca.s V_2 + IL_015a: initobj valuetype [mscorlib]System.Nullable`1 + IL_0160: ldloc.2 + IL_0161: br.s IL_0171 - IL_013d: ldc.i4.1 - IL_013e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0143: box valuetype [mscorlib]System.Nullable`1 - IL_0148: call void [mscorlib]System.Console::WriteLine(object) - IL_014d: nop - IL_014e: ldarg.1 - IL_014f: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0154: stloc.1 - IL_0155: ldarg.0 - IL_0156: stloc.0 - IL_0157: ldloca.s V_0 - IL_0159: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_015e: brtrue.s IL_016b - - IL_0160: ldloca.s V_2 - IL_0162: initobj valuetype [mscorlib]System.Nullable`1 - IL_0168: ldloc.2 - IL_0169: br.s IL_0179 - - IL_016b: ldloc.1 - IL_016c: ldloca.s V_0 - IL_016e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0173: xor - IL_0174: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0179: box valuetype [mscorlib]System.Nullable`1 - IL_017e: call void [mscorlib]System.Console::WriteLine(object) - IL_0183: nop - IL_0184: ldc.i4.0 - IL_0185: newarr valuetype [mscorlib]System.Nullable`1 - IL_018a: ldc.i4.0 - IL_018b: ldelema valuetype [mscorlib]System.Nullable`1 - IL_0190: dup - IL_0191: ldobj valuetype [mscorlib]System.Nullable`1 - IL_0196: stloc.0 - IL_0197: ldarg.1 - IL_0198: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_019d: stloc.1 - IL_019e: ldloca.s V_0 - IL_01a0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01a5: brtrue.s IL_01b2 - - IL_01a7: ldloca.s V_2 - IL_01a9: initobj valuetype [mscorlib]System.Nullable`1 - IL_01af: ldloc.2 - IL_01b0: br.s IL_01c0 - - IL_01b2: ldloca.s V_0 - IL_01b4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01b9: ldloc.1 - IL_01ba: xor - IL_01bb: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01c0: stobj valuetype [mscorlib]System.Nullable`1 - IL_01c5: ldc.i4.0 - IL_01c6: newarr valuetype [mscorlib]System.Nullable`1 - IL_01cb: ldc.i4.0 - IL_01cc: ldelema valuetype [mscorlib]System.Nullable`1 - IL_01d1: dup - IL_01d2: ldobj valuetype [mscorlib]System.Nullable`1 - IL_01d7: stloc.0 - IL_01d8: ldarg.0 - IL_01d9: stloc.2 - IL_01da: ldloca.s V_0 - IL_01dc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01e1: ldloca.s V_2 - IL_01e3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01e8: and - IL_01e9: brtrue.s IL_01f6 - - IL_01eb: ldloca.s V_3 - IL_01ed: initobj valuetype [mscorlib]System.Nullable`1 - IL_01f3: ldloc.3 - IL_01f4: br.s IL_020a - - IL_01f6: ldloca.s V_0 - IL_01f8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01fd: ldloca.s V_2 - IL_01ff: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0204: xor - IL_0205: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_020a: stobj valuetype [mscorlib]System.Nullable`1 - IL_020f: ret + IL_0163: ldloc.1 + IL_0164: ldloca.s V_0 + IL_0166: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_016b: xor + IL_016c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0171: box valuetype [mscorlib]System.Nullable`1 + IL_0176: call void [mscorlib]System.Console::WriteLine(object) + IL_017b: nop + IL_017c: ldc.i4.0 + IL_017d: newarr valuetype [mscorlib]System.Nullable`1 + IL_0182: ldc.i4.0 + IL_0183: ldelema valuetype [mscorlib]System.Nullable`1 + IL_0188: dup + IL_0189: ldobj valuetype [mscorlib]System.Nullable`1 + IL_018e: stloc.0 + IL_018f: ldarg.1 + IL_0190: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0195: stloc.1 + IL_0196: ldloca.s V_0 + IL_0198: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_019d: brtrue.s IL_01aa + + IL_019f: ldloca.s V_2 + IL_01a1: initobj valuetype [mscorlib]System.Nullable`1 + IL_01a7: ldloc.2 + IL_01a8: br.s IL_01b8 + + IL_01aa: ldloca.s V_0 + IL_01ac: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01b1: ldloc.1 + IL_01b2: xor + IL_01b3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01b8: stobj valuetype [mscorlib]System.Nullable`1 + IL_01bd: ldc.i4.0 + IL_01be: newarr valuetype [mscorlib]System.Nullable`1 + IL_01c3: ldc.i4.0 + IL_01c4: ldelema valuetype [mscorlib]System.Nullable`1 + IL_01c9: dup + IL_01ca: ldobj valuetype [mscorlib]System.Nullable`1 + IL_01cf: stloc.0 + IL_01d0: ldarg.0 + IL_01d1: stloc.2 + IL_01d2: ldloca.s V_0 + IL_01d4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01d9: ldloca.s V_2 + IL_01db: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01e0: and + IL_01e1: brtrue.s IL_01ee + + IL_01e3: ldloca.s V_3 + IL_01e5: initobj valuetype [mscorlib]System.Nullable`1 + IL_01eb: ldloc.3 + IL_01ec: br.s IL_0202 + + IL_01ee: ldloca.s V_0 + IL_01f0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01f5: ldloca.s V_2 + IL_01f7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01fc: xor + IL_01fd: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0202: stobj valuetype [mscorlib]System.Nullable`1 + IL_0207: ret } // end of method LiftedOperators::BoolValueComplex .method public hidebysig static void BoolValueConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 182 (0xb6) + // Code size 174 (0xae) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, bool V_1) @@ -832,101 +784,89 @@ IL_0005: ldloca.s V_0 IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloc.1 - IL_000d: beq.s IL_0012 - - IL_000f: ldc.i4.0 - IL_0010: br.s IL_0019 - - IL_0012: ldloca.s V_0 - IL_0014: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0019: call void [mscorlib]System.Console::WriteLine(bool) - IL_001e: nop - IL_001f: ldarg.0 - IL_0020: stloc.0 - IL_0021: ldc.i4.1 - IL_0022: stloc.1 - IL_0023: ldloca.s V_0 - IL_0025: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_002a: ldloc.1 - IL_002b: beq.s IL_0030 - - IL_002d: ldc.i4.1 - IL_002e: br.s IL_003a - - IL_0030: ldloca.s V_0 - IL_0032: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0037: ldc.i4.0 - IL_0038: ceq - IL_003a: call void [mscorlib]System.Console::WriteLine(bool) - IL_003f: nop - IL_0040: ldarg.0 - IL_0041: stloc.0 - IL_0042: ldc.i4.0 - IL_0043: stloc.1 - IL_0044: ldloca.s V_0 - IL_0046: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_004b: ldloc.1 - IL_004c: beq.s IL_0051 - - IL_004e: ldc.i4.0 - IL_004f: br.s IL_0058 - - IL_0051: ldloca.s V_0 - IL_0053: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0058: call void [mscorlib]System.Console::WriteLine(bool) - IL_005d: nop - IL_005e: ldarg.0 - IL_005f: stloc.0 - IL_0060: ldc.i4.0 - IL_0061: stloc.1 - IL_0062: ldloca.s V_0 - IL_0064: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0069: ldloc.1 - IL_006a: beq.s IL_006f - - IL_006c: ldc.i4.1 - IL_006d: br.s IL_0079 - - IL_006f: ldloca.s V_0 - IL_0071: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0076: ldc.i4.0 - IL_0077: ceq - IL_0079: call void [mscorlib]System.Console::WriteLine(bool) - IL_007e: nop - IL_007f: ldarg.0 - IL_0080: stloc.0 - IL_0081: ldloca.s V_0 - IL_0083: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0088: brtrue.s IL_008d - - IL_008a: ldc.i4.1 - IL_008b: br.s IL_0094 - - IL_008d: ldloca.s V_0 - IL_008f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0094: call void [mscorlib]System.Console::WriteLine(bool) - IL_0099: nop - IL_009a: ldarg.0 - IL_009b: stloc.0 - IL_009c: ldloca.s V_0 - IL_009e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00a3: brtrue.s IL_00a8 - - IL_00a5: ldc.i4.0 - IL_00a6: br.s IL_00af - - IL_00a8: ldloca.s V_0 - IL_00aa: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00af: call void [mscorlib]System.Console::WriteLine(bool) - IL_00b4: nop - IL_00b5: ret + IL_000d: ceq + IL_000f: ldloca.s V_0 + IL_0011: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0016: and + IL_0017: call void [mscorlib]System.Console::WriteLine(bool) + IL_001c: nop + IL_001d: ldarg.0 + IL_001e: stloc.0 + IL_001f: ldc.i4.1 + IL_0020: stloc.1 + IL_0021: ldloca.s V_0 + IL_0023: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0028: ldloc.1 + IL_0029: ceq + IL_002b: ldloca.s V_0 + IL_002d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0032: and + IL_0033: ldc.i4.0 + IL_0034: ceq + IL_0036: call void [mscorlib]System.Console::WriteLine(bool) + IL_003b: nop + IL_003c: ldarg.0 + IL_003d: stloc.0 + IL_003e: ldc.i4.0 + IL_003f: stloc.1 + IL_0040: ldloca.s V_0 + IL_0042: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0047: ldloc.1 + IL_0048: ceq + IL_004a: ldloca.s V_0 + IL_004c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0051: and + IL_0052: call void [mscorlib]System.Console::WriteLine(bool) + IL_0057: nop + IL_0058: ldarg.0 + IL_0059: stloc.0 + IL_005a: ldc.i4.0 + IL_005b: stloc.1 + IL_005c: ldloca.s V_0 + IL_005e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0063: ldloc.1 + IL_0064: ceq + IL_0066: ldloca.s V_0 + IL_0068: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_006d: and + IL_006e: ldc.i4.0 + IL_006f: ceq + IL_0071: call void [mscorlib]System.Console::WriteLine(bool) + IL_0076: nop + IL_0077: ldarg.0 + IL_0078: stloc.0 + IL_0079: ldloca.s V_0 + IL_007b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0080: brtrue.s IL_0085 + + IL_0082: ldc.i4.1 + IL_0083: br.s IL_008c + + IL_0085: ldloca.s V_0 + IL_0087: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_008c: call void [mscorlib]System.Console::WriteLine(bool) + IL_0091: nop + IL_0092: ldarg.0 + IL_0093: stloc.0 + IL_0094: ldloca.s V_0 + IL_0096: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_009b: brtrue.s IL_00a0 + + IL_009d: ldc.i4.0 + IL_009e: br.s IL_00a7 + + IL_00a0: ldloca.s V_0 + IL_00a2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00a7: call void [mscorlib]System.Console::WriteLine(bool) + IL_00ac: nop + IL_00ad: ret } // end of method LiftedOperators::BoolValueConst .method public hidebysig static void IntBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 425 (0x1a9) - .maxstack 2 + // Code size 418 (0x1a2) + .maxstack 3 .locals init (bool V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -946,219 +886,201 @@ IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloca.s V_2 IL_000e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0013: beq.s IL_0018 - - IL_0015: ldc.i4.0 - IL_0016: br.s IL_0028 - - IL_0018: ldloca.s V_1 - IL_001a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001f: ldloca.s V_2 - IL_0021: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0026: ceq - IL_0028: stloc.0 - IL_0029: ldloc.0 - IL_002a: brfalse.s IL_0034 + IL_0013: ceq + IL_0015: ldloca.s V_1 + IL_0017: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001c: ldloca.s V_2 + IL_001e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0023: ceq + IL_0025: and + IL_0026: stloc.0 + IL_0027: ldloc.0 + IL_0028: brfalse.s IL_0032 - IL_002c: nop - IL_002d: call void [mscorlib]System.Console::WriteLine() - IL_0032: nop - IL_0033: nop - IL_0034: ldarg.0 - IL_0035: stloc.2 - IL_0036: ldarg.1 - IL_0037: stloc.1 - IL_0038: ldloca.s V_2 - IL_003a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_003f: ldloca.s V_1 - IL_0041: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0046: beq.s IL_004b - - IL_0048: ldc.i4.1 - IL_0049: br.s IL_005e - - IL_004b: ldloca.s V_2 - IL_004d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0052: ldloca.s V_1 - IL_0054: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0059: ceq - IL_005b: ldc.i4.0 - IL_005c: ceq - IL_005e: stloc.3 - IL_005f: ldloc.3 - IL_0060: brfalse.s IL_006a - - IL_0062: nop - IL_0063: call void [mscorlib]System.Console::WriteLine() - IL_0068: nop - IL_0069: nop - IL_006a: ldarg.0 - IL_006b: stloc.1 - IL_006c: ldarg.1 - IL_006d: stloc.2 - IL_006e: ldloca.s V_1 - IL_0070: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0075: ldloca.s V_2 - IL_0077: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007c: bgt.s IL_0081 - - IL_007e: ldc.i4.0 - IL_007f: br.s IL_0090 - - IL_0081: ldloca.s V_1 + IL_002a: nop + IL_002b: call void [mscorlib]System.Console::WriteLine() + IL_0030: nop + IL_0031: nop + IL_0032: ldarg.0 + IL_0033: stloc.2 + IL_0034: ldarg.1 + IL_0035: stloc.1 + IL_0036: ldloca.s V_2 + IL_0038: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003d: ldloca.s V_1 + IL_003f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0044: ceq + IL_0046: ldloca.s V_2 + IL_0048: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004d: ldloca.s V_1 + IL_004f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0054: ceq + IL_0056: and + IL_0057: ldc.i4.0 + IL_0058: ceq + IL_005a: stloc.3 + IL_005b: ldloc.3 + IL_005c: brfalse.s IL_0066 + + IL_005e: nop + IL_005f: call void [mscorlib]System.Console::WriteLine() + IL_0064: nop + IL_0065: nop + IL_0066: ldarg.0 + IL_0067: stloc.1 + IL_0068: ldarg.1 + IL_0069: stloc.2 + IL_006a: ldloca.s V_1 + IL_006c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0071: ldloca.s V_2 + IL_0073: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0078: cgt + IL_007a: ldloca.s V_1 + IL_007c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0081: ldloca.s V_2 IL_0083: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0088: ldloca.s V_2 - IL_008a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_008f: and - IL_0090: stloc.s V_4 - IL_0092: ldloc.s V_4 - IL_0094: brfalse.s IL_009e - + IL_0088: and + IL_0089: and + IL_008a: stloc.s V_4 + IL_008c: ldloc.s V_4 + IL_008e: brfalse.s IL_0098 + + IL_0090: nop + IL_0091: call void [mscorlib]System.Console::WriteLine() IL_0096: nop - IL_0097: call void [mscorlib]System.Console::WriteLine() - IL_009c: nop - IL_009d: nop - IL_009e: ldarg.0 - IL_009f: stloc.2 - IL_00a0: ldarg.1 - IL_00a1: stloc.1 - IL_00a2: ldloca.s V_2 - IL_00a4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a9: ldloca.s V_1 - IL_00ab: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00b0: blt.s IL_00b5 - - IL_00b2: ldc.i4.0 - IL_00b3: br.s IL_00c4 - - IL_00b5: ldloca.s V_2 - IL_00b7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00bc: ldloca.s V_1 - IL_00be: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00c3: and - IL_00c4: stloc.s V_5 - IL_00c6: ldloc.s V_5 - IL_00c8: brfalse.s IL_00d2 - - IL_00ca: nop - IL_00cb: call void [mscorlib]System.Console::WriteLine() - IL_00d0: nop - IL_00d1: nop - IL_00d2: ldarg.0 - IL_00d3: stloc.1 - IL_00d4: ldarg.1 - IL_00d5: stloc.2 - IL_00d6: ldloca.s V_1 - IL_00d8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00dd: ldloca.s V_2 - IL_00df: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00e4: bge.s IL_00e9 - - IL_00e6: ldc.i4.0 - IL_00e7: br.s IL_00f8 - - IL_00e9: ldloca.s V_1 - IL_00eb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f0: ldloca.s V_2 - IL_00f2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f7: and - IL_00f8: stloc.s V_6 - IL_00fa: ldloc.s V_6 - IL_00fc: brfalse.s IL_0106 + IL_0097: nop + IL_0098: ldarg.0 + IL_0099: stloc.2 + IL_009a: ldarg.1 + IL_009b: stloc.1 + IL_009c: ldloca.s V_2 + IL_009e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00a3: ldloca.s V_1 + IL_00a5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00aa: clt + IL_00ac: ldloca.s V_2 + IL_00ae: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00b3: ldloca.s V_1 + IL_00b5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ba: and + IL_00bb: and + IL_00bc: stloc.s V_5 + IL_00be: ldloc.s V_5 + IL_00c0: brfalse.s IL_00ca + + IL_00c2: nop + IL_00c3: call void [mscorlib]System.Console::WriteLine() + IL_00c8: nop + IL_00c9: nop + IL_00ca: ldarg.0 + IL_00cb: stloc.1 + IL_00cc: ldarg.1 + IL_00cd: stloc.2 + IL_00ce: ldloca.s V_1 + IL_00d0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00d5: ldloca.s V_2 + IL_00d7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00dc: clt + IL_00de: ldc.i4.0 + IL_00df: ceq + IL_00e1: ldloca.s V_1 + IL_00e3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00e8: ldloca.s V_2 + IL_00ea: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ef: and + IL_00f0: and + IL_00f1: stloc.s V_6 + IL_00f3: ldloc.s V_6 + IL_00f5: brfalse.s IL_00ff + IL_00f7: nop + IL_00f8: call void [mscorlib]System.Console::WriteLine() + IL_00fd: nop IL_00fe: nop - IL_00ff: call void [mscorlib]System.Console::WriteLine() - IL_0104: nop - IL_0105: nop - IL_0106: ldarg.0 - IL_0107: stloc.2 - IL_0108: ldarg.1 - IL_0109: stloc.1 - IL_010a: ldloca.s V_2 + IL_00ff: ldarg.0 + IL_0100: stloc.2 + IL_0101: ldarg.1 + IL_0102: stloc.1 + IL_0103: ldloca.s V_2 + IL_0105: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_010a: ldloca.s V_1 IL_010c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0111: ldloca.s V_1 - IL_0113: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0118: ble.s IL_011d - - IL_011a: ldc.i4.0 - IL_011b: br.s IL_012c - - IL_011d: ldloca.s V_2 + IL_0111: cgt + IL_0113: ldc.i4.0 + IL_0114: ceq + IL_0116: ldloca.s V_2 + IL_0118: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_011d: ldloca.s V_1 IL_011f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0124: ldloca.s V_1 - IL_0126: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_012b: and - IL_012c: stloc.s V_7 - IL_012e: ldloc.s V_7 - IL_0130: brfalse.s IL_013a + IL_0124: and + IL_0125: and + IL_0126: stloc.s V_7 + IL_0128: ldloc.s V_7 + IL_012a: brfalse.s IL_0134 + IL_012c: nop + IL_012d: call void [mscorlib]System.Console::WriteLine() IL_0132: nop - IL_0133: call void [mscorlib]System.Console::WriteLine() - IL_0138: nop - IL_0139: nop - IL_013a: ldarg.0 - IL_013b: stloc.1 - IL_013c: ldarg.1 - IL_013d: stloc.2 - IL_013e: ldloca.s V_1 - IL_0140: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0145: ldloca.s V_2 - IL_0147: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_014c: bgt.s IL_0151 - - IL_014e: ldc.i4.0 - IL_014f: br.s IL_0160 - - IL_0151: ldloca.s V_1 - IL_0153: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0158: ldloca.s V_2 - IL_015a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_015f: and - IL_0160: ldc.i4.0 - IL_0161: ceq - IL_0163: stloc.s V_8 - IL_0165: ldloc.s V_8 - IL_0167: brfalse.s IL_0171 - - IL_0169: nop - IL_016a: call void [mscorlib]System.Console::WriteLine() - IL_016f: nop - IL_0170: nop - IL_0171: ldarg.0 - IL_0172: stloc.2 - IL_0173: ldarg.1 - IL_0174: stloc.1 - IL_0175: ldloca.s V_2 - IL_0177: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_017c: ldloca.s V_1 - IL_017e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0183: ble.s IL_0188 - - IL_0185: ldc.i4.0 - IL_0186: br.s IL_0197 - - IL_0188: ldloca.s V_2 - IL_018a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_018f: ldloca.s V_1 - IL_0191: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0196: and - IL_0197: ldc.i4.0 - IL_0198: ceq - IL_019a: stloc.s V_9 - IL_019c: ldloc.s V_9 - IL_019e: brfalse.s IL_01a8 + IL_0133: nop + IL_0134: ldarg.0 + IL_0135: stloc.1 + IL_0136: ldarg.1 + IL_0137: stloc.2 + IL_0138: ldloca.s V_1 + IL_013a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_013f: ldloca.s V_2 + IL_0141: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0146: cgt + IL_0148: ldloca.s V_1 + IL_014a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_014f: ldloca.s V_2 + IL_0151: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0156: and + IL_0157: and + IL_0158: ldc.i4.0 + IL_0159: ceq + IL_015b: stloc.s V_8 + IL_015d: ldloc.s V_8 + IL_015f: brfalse.s IL_0169 + IL_0161: nop + IL_0162: call void [mscorlib]System.Console::WriteLine() + IL_0167: nop + IL_0168: nop + IL_0169: ldarg.0 + IL_016a: stloc.2 + IL_016b: ldarg.1 + IL_016c: stloc.1 + IL_016d: ldloca.s V_2 + IL_016f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0174: ldloca.s V_1 + IL_0176: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_017b: cgt + IL_017d: ldc.i4.0 + IL_017e: ceq + IL_0180: ldloca.s V_2 + IL_0182: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0187: ldloca.s V_1 + IL_0189: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_018e: and + IL_018f: and + IL_0190: ldc.i4.0 + IL_0191: ceq + IL_0193: stloc.s V_9 + IL_0195: ldloc.s V_9 + IL_0197: brfalse.s IL_01a1 + + IL_0199: nop + IL_019a: call void [mscorlib]System.Console::WriteLine() + IL_019f: nop IL_01a0: nop - IL_01a1: call void [mscorlib]System.Console::WriteLine() - IL_01a6: nop - IL_01a7: nop - IL_01a8: ret + IL_01a1: ret } // end of method LiftedOperators::IntBasic .method public hidebysig static void IntComplex(valuetype [mscorlib]System.Nullable`1 a, class [mscorlib]System.Func`1 x) cil managed { - // Code size 348 (0x15c) + // Code size 335 (0x14f) .maxstack 2 .locals init (bool V_0, valuetype [mscorlib]System.Nullable`1 V_1, @@ -1179,190 +1101,168 @@ IL_000a: ldloca.s V_1 IL_000c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0011: ldloc.2 - IL_0012: beq.s IL_0017 + IL_0012: ceq + IL_0014: ldloca.s V_1 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: and + IL_001c: stloc.0 + IL_001d: ldloc.0 + IL_001e: brfalse.s IL_0028 - IL_0014: ldc.i4.0 - IL_0015: br.s IL_001e - - IL_0017: ldloca.s V_1 - IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001e: stloc.0 - IL_001f: ldloc.0 - IL_0020: brfalse.s IL_002a - - IL_0022: nop - IL_0023: call void [mscorlib]System.Console::WriteLine() - IL_0028: nop - IL_0029: nop - IL_002a: ldarg.0 - IL_002b: stloc.1 - IL_002c: ldarg.1 - IL_002d: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0032: stloc.2 - IL_0033: ldloca.s V_1 - IL_0035: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_003a: ldloc.2 - IL_003b: beq.s IL_0040 - - IL_003d: ldc.i4.1 - IL_003e: br.s IL_004a + IL_0020: nop + IL_0021: call void [mscorlib]System.Console::WriteLine() + IL_0026: nop + IL_0027: nop + IL_0028: ldarg.0 + IL_0029: stloc.1 + IL_002a: ldarg.1 + IL_002b: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0030: stloc.2 + IL_0031: ldloca.s V_1 + IL_0033: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0038: ldloc.2 + IL_0039: ceq + IL_003b: ldloca.s V_1 + IL_003d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0042: and + IL_0043: ldc.i4.0 + IL_0044: ceq + IL_0046: stloc.3 + IL_0047: ldloc.3 + IL_0048: brfalse.s IL_0052 - IL_0040: ldloca.s V_1 - IL_0042: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0047: ldc.i4.0 - IL_0048: ceq - IL_004a: stloc.3 - IL_004b: ldloc.3 - IL_004c: brfalse.s IL_0056 - - IL_004e: nop - IL_004f: call void [mscorlib]System.Console::WriteLine() - IL_0054: nop - IL_0055: nop - IL_0056: ldarg.0 - IL_0057: stloc.1 - IL_0058: ldarg.1 - IL_0059: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_005e: stloc.2 - IL_005f: ldloca.s V_1 - IL_0061: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0066: ldloc.2 - IL_0067: bgt.s IL_006c - - IL_0069: ldc.i4.0 - IL_006a: br.s IL_0073 - - IL_006c: ldloca.s V_1 - IL_006e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0073: stloc.s V_4 - IL_0075: ldloc.s V_4 - IL_0077: brfalse.s IL_0081 + IL_004a: nop + IL_004b: call void [mscorlib]System.Console::WriteLine() + IL_0050: nop + IL_0051: nop + IL_0052: ldarg.0 + IL_0053: stloc.1 + IL_0054: ldarg.1 + IL_0055: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_005a: stloc.2 + IL_005b: ldloca.s V_1 + IL_005d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0062: ldloc.2 + IL_0063: cgt + IL_0065: ldloca.s V_1 + IL_0067: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_006c: and + IL_006d: stloc.s V_4 + IL_006f: ldloc.s V_4 + IL_0071: brfalse.s IL_007b + IL_0073: nop + IL_0074: call void [mscorlib]System.Console::WriteLine() IL_0079: nop - IL_007a: call void [mscorlib]System.Console::WriteLine() - IL_007f: nop - IL_0080: nop - IL_0081: ldarg.1 - IL_0082: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0087: ldarg.0 - IL_0088: stloc.1 - IL_0089: ldloca.s V_1 - IL_008b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0090: beq.s IL_0095 - - IL_0092: ldc.i4.0 - IL_0093: br.s IL_009c - - IL_0095: ldloca.s V_1 - IL_0097: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_009c: stloc.s V_5 - IL_009e: ldloc.s V_5 - IL_00a0: brfalse.s IL_00aa - - IL_00a2: nop - IL_00a3: call void [mscorlib]System.Console::WriteLine() - IL_00a8: nop - IL_00a9: nop - IL_00aa: ldarg.1 - IL_00ab: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00b0: ldarg.0 - IL_00b1: stloc.1 - IL_00b2: ldloca.s V_1 - IL_00b4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00b9: beq.s IL_00be - - IL_00bb: ldc.i4.1 - IL_00bc: br.s IL_00c8 - - IL_00be: ldloca.s V_1 - IL_00c0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00c5: ldc.i4.0 - IL_00c6: ceq - IL_00c8: stloc.s V_6 - IL_00ca: ldloc.s V_6 - IL_00cc: brfalse.s IL_00d6 - - IL_00ce: nop - IL_00cf: call void [mscorlib]System.Console::WriteLine() - IL_00d4: nop - IL_00d5: nop - IL_00d6: ldarg.1 - IL_00d7: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00dc: ldarg.0 - IL_00dd: stloc.1 - IL_00de: ldloca.s V_1 - IL_00e0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00e5: bgt.s IL_00ea - - IL_00e7: ldc.i4.0 - IL_00e8: br.s IL_00f1 - - IL_00ea: ldloca.s V_1 - IL_00ec: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f1: stloc.s V_7 - IL_00f3: ldloc.s V_7 - IL_00f5: brfalse.s IL_00ff + IL_007a: nop + IL_007b: ldarg.1 + IL_007c: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0081: ldarg.0 + IL_0082: stloc.1 + IL_0083: ldloca.s V_1 + IL_0085: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_008a: ceq + IL_008c: ldloca.s V_1 + IL_008e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0093: and + IL_0094: stloc.s V_5 + IL_0096: ldloc.s V_5 + IL_0098: brfalse.s IL_00a2 - IL_00f7: nop - IL_00f8: call void [mscorlib]System.Console::WriteLine() - IL_00fd: nop - IL_00fe: nop - IL_00ff: ldarg.0 - IL_0100: stloc.1 - IL_0101: ldarg.1 - IL_0102: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0107: stloc.2 - IL_0108: ldloca.s V_1 - IL_010a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_010f: ldloc.2 - IL_0110: bgt.s IL_0115 - - IL_0112: ldc.i4.0 - IL_0113: br.s IL_011c - - IL_0115: ldloca.s V_1 - IL_0117: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_011c: ldc.i4.0 - IL_011d: ceq - IL_011f: stloc.s V_8 - IL_0121: ldloc.s V_8 - IL_0123: brfalse.s IL_012d - - IL_0125: nop - IL_0126: call void [mscorlib]System.Console::WriteLine() - IL_012b: nop - IL_012c: nop - IL_012d: ldarg.0 - IL_012e: stloc.1 - IL_012f: ldarg.1 - IL_0130: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0135: stloc.2 - IL_0136: ldloca.s V_1 - IL_0138: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_013d: ldloc.2 - IL_013e: ble.s IL_0143 + IL_009a: nop + IL_009b: call void [mscorlib]System.Console::WriteLine() + IL_00a0: nop + IL_00a1: nop + IL_00a2: ldarg.1 + IL_00a3: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00a8: ldarg.0 + IL_00a9: stloc.1 + IL_00aa: ldloca.s V_1 + IL_00ac: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00b1: ceq + IL_00b3: ldloca.s V_1 + IL_00b5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ba: and + IL_00bb: ldc.i4.0 + IL_00bc: ceq + IL_00be: stloc.s V_6 + IL_00c0: ldloc.s V_6 + IL_00c2: brfalse.s IL_00cc - IL_0140: ldc.i4.0 - IL_0141: br.s IL_014a + IL_00c4: nop + IL_00c5: call void [mscorlib]System.Console::WriteLine() + IL_00ca: nop + IL_00cb: nop + IL_00cc: ldarg.1 + IL_00cd: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00d2: ldarg.0 + IL_00d3: stloc.1 + IL_00d4: ldloca.s V_1 + IL_00d6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00db: cgt + IL_00dd: ldloca.s V_1 + IL_00df: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00e4: and + IL_00e5: stloc.s V_7 + IL_00e7: ldloc.s V_7 + IL_00e9: brfalse.s IL_00f3 + + IL_00eb: nop + IL_00ec: call void [mscorlib]System.Console::WriteLine() + IL_00f1: nop + IL_00f2: nop + IL_00f3: ldarg.0 + IL_00f4: stloc.1 + IL_00f5: ldarg.1 + IL_00f6: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00fb: stloc.2 + IL_00fc: ldloca.s V_1 + IL_00fe: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0103: ldloc.2 + IL_0104: cgt + IL_0106: ldloca.s V_1 + IL_0108: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_010d: and + IL_010e: ldc.i4.0 + IL_010f: ceq + IL_0111: stloc.s V_8 + IL_0113: ldloc.s V_8 + IL_0115: brfalse.s IL_011f - IL_0143: ldloca.s V_1 - IL_0145: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_014a: ldc.i4.0 - IL_014b: ceq - IL_014d: stloc.s V_9 - IL_014f: ldloc.s V_9 - IL_0151: brfalse.s IL_015b - - IL_0153: nop - IL_0154: call void [mscorlib]System.Console::WriteLine() - IL_0159: nop - IL_015a: nop - IL_015b: ret + IL_0117: nop + IL_0118: call void [mscorlib]System.Console::WriteLine() + IL_011d: nop + IL_011e: nop + IL_011f: ldarg.0 + IL_0120: stloc.1 + IL_0121: ldarg.1 + IL_0122: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0127: stloc.2 + IL_0128: ldloca.s V_1 + IL_012a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_012f: ldloc.2 + IL_0130: cgt + IL_0132: ldc.i4.0 + IL_0133: ceq + IL_0135: ldloca.s V_1 + IL_0137: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_013c: and + IL_013d: ldc.i4.0 + IL_013e: ceq + IL_0140: stloc.s V_9 + IL_0142: ldloc.s V_9 + IL_0144: brfalse.s IL_014e + + IL_0146: nop + IL_0147: call void [mscorlib]System.Console::WriteLine() + IL_014c: nop + IL_014d: nop + IL_014e: ret } // end of method LiftedOperators::IntComplex .method public hidebysig static void IntConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 226 (0xe2) + // Code size 214 (0xd6) .maxstack 2 .locals init (bool V_0, valuetype [mscorlib]System.Nullable`1 V_1, @@ -1380,136 +1280,118 @@ IL_0005: ldloca.s V_1 IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloc.2 - IL_000d: beq.s IL_0012 - - IL_000f: ldc.i4.0 - IL_0010: br.s IL_0019 - - IL_0012: ldloca.s V_1 - IL_0014: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0019: stloc.0 - IL_001a: ldloc.0 - IL_001b: brfalse.s IL_0025 + IL_000d: ceq + IL_000f: ldloca.s V_1 + IL_0011: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0016: and + IL_0017: stloc.0 + IL_0018: ldloc.0 + IL_0019: brfalse.s IL_0023 - IL_001d: nop - IL_001e: call void [mscorlib]System.Console::WriteLine() - IL_0023: nop - IL_0024: nop - IL_0025: ldarg.0 - IL_0026: stloc.1 - IL_0027: ldc.i4.2 - IL_0028: stloc.2 - IL_0029: ldloca.s V_1 - IL_002b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0030: ldloc.2 - IL_0031: beq.s IL_0036 - - IL_0033: ldc.i4.1 - IL_0034: br.s IL_0040 - - IL_0036: ldloca.s V_1 - IL_0038: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_003d: ldc.i4.0 - IL_003e: ceq - IL_0040: stloc.3 - IL_0041: ldloc.3 - IL_0042: brfalse.s IL_004c - - IL_0044: nop - IL_0045: call void [mscorlib]System.Console::WriteLine() - IL_004a: nop - IL_004b: nop - IL_004c: ldarg.0 - IL_004d: stloc.1 - IL_004e: ldc.i4.2 - IL_004f: stloc.2 - IL_0050: ldloca.s V_1 - IL_0052: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0057: ldloc.2 - IL_0058: bgt.s IL_005d - - IL_005a: ldc.i4.0 - IL_005b: br.s IL_0064 - - IL_005d: ldloca.s V_1 - IL_005f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0064: stloc.s V_4 - IL_0066: ldloc.s V_4 - IL_0068: brfalse.s IL_0072 + IL_001b: nop + IL_001c: call void [mscorlib]System.Console::WriteLine() + IL_0021: nop + IL_0022: nop + IL_0023: ldarg.0 + IL_0024: stloc.1 + IL_0025: ldc.i4.2 + IL_0026: stloc.2 + IL_0027: ldloca.s V_1 + IL_0029: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_002e: ldloc.2 + IL_002f: ceq + IL_0031: ldloca.s V_1 + IL_0033: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0038: and + IL_0039: ldc.i4.0 + IL_003a: ceq + IL_003c: stloc.3 + IL_003d: ldloc.3 + IL_003e: brfalse.s IL_0048 + + IL_0040: nop + IL_0041: call void [mscorlib]System.Console::WriteLine() + IL_0046: nop + IL_0047: nop + IL_0048: ldarg.0 + IL_0049: stloc.1 + IL_004a: ldc.i4.2 + IL_004b: stloc.2 + IL_004c: ldloca.s V_1 + IL_004e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0053: ldloc.2 + IL_0054: cgt + IL_0056: ldloca.s V_1 + IL_0058: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_005d: and + IL_005e: stloc.s V_4 + IL_0060: ldloc.s V_4 + IL_0062: brfalse.s IL_006c + IL_0064: nop + IL_0065: call void [mscorlib]System.Console::WriteLine() IL_006a: nop - IL_006b: call void [mscorlib]System.Console::WriteLine() - IL_0070: nop - IL_0071: nop - IL_0072: ldc.i4.2 - IL_0073: ldarg.0 - IL_0074: stloc.1 - IL_0075: ldloca.s V_1 - IL_0077: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007c: beq.s IL_0081 - - IL_007e: ldc.i4.0 - IL_007f: br.s IL_0088 - - IL_0081: ldloca.s V_1 - IL_0083: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0088: stloc.s V_5 - IL_008a: ldloc.s V_5 - IL_008c: brfalse.s IL_0096 - - IL_008e: nop - IL_008f: call void [mscorlib]System.Console::WriteLine() - IL_0094: nop - IL_0095: nop - IL_0096: ldc.i4.2 - IL_0097: ldarg.0 - IL_0098: stloc.1 - IL_0099: ldloca.s V_1 - IL_009b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a0: beq.s IL_00a5 - - IL_00a2: ldc.i4.1 - IL_00a3: br.s IL_00af - - IL_00a5: ldloca.s V_1 - IL_00a7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00ac: ldc.i4.0 - IL_00ad: ceq - IL_00af: stloc.s V_6 - IL_00b1: ldloc.s V_6 - IL_00b3: brfalse.s IL_00bd + IL_006b: nop + IL_006c: ldc.i4.2 + IL_006d: ldarg.0 + IL_006e: stloc.1 + IL_006f: ldloca.s V_1 + IL_0071: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0076: ceq + IL_0078: ldloca.s V_1 + IL_007a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007f: and + IL_0080: stloc.s V_5 + IL_0082: ldloc.s V_5 + IL_0084: brfalse.s IL_008e + + IL_0086: nop + IL_0087: call void [mscorlib]System.Console::WriteLine() + IL_008c: nop + IL_008d: nop + IL_008e: ldc.i4.2 + IL_008f: ldarg.0 + IL_0090: stloc.1 + IL_0091: ldloca.s V_1 + IL_0093: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0098: ceq + IL_009a: ldloca.s V_1 + IL_009c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00a1: and + IL_00a2: ldc.i4.0 + IL_00a3: ceq + IL_00a5: stloc.s V_6 + IL_00a7: ldloc.s V_6 + IL_00a9: brfalse.s IL_00b3 - IL_00b5: nop - IL_00b6: call void [mscorlib]System.Console::WriteLine() - IL_00bb: nop - IL_00bc: nop - IL_00bd: ldc.i4.2 - IL_00be: ldarg.0 - IL_00bf: stloc.1 - IL_00c0: ldloca.s V_1 - IL_00c2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00c7: bgt.s IL_00cc - - IL_00c9: ldc.i4.0 - IL_00ca: br.s IL_00d3 - - IL_00cc: ldloca.s V_1 - IL_00ce: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00d3: stloc.s V_7 - IL_00d5: ldloc.s V_7 - IL_00d7: brfalse.s IL_00e1 - - IL_00d9: nop - IL_00da: call void [mscorlib]System.Console::WriteLine() - IL_00df: nop - IL_00e0: nop - IL_00e1: ret + IL_00ab: nop + IL_00ac: call void [mscorlib]System.Console::WriteLine() + IL_00b1: nop + IL_00b2: nop + IL_00b3: ldc.i4.2 + IL_00b4: ldarg.0 + IL_00b5: stloc.1 + IL_00b6: ldloca.s V_1 + IL_00b8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00bd: cgt + IL_00bf: ldloca.s V_1 + IL_00c1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00c6: and + IL_00c7: stloc.s V_7 + IL_00c9: ldloc.s V_7 + IL_00cb: brfalse.s IL_00d5 + + IL_00cd: nop + IL_00ce: call void [mscorlib]System.Console::WriteLine() + IL_00d3: nop + IL_00d4: nop + IL_00d5: ret } // end of method LiftedOperators::IntConst .method public hidebysig static void IntValueBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 1633 (0x661) + // Code size 1626 (0x65a) .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, @@ -1523,690 +1405,677 @@ IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloca.s V_1 IL_000e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0013: beq.s IL_0018 - - IL_0015: ldc.i4.0 - IL_0016: br.s IL_0028 - - IL_0018: ldloca.s V_0 - IL_001a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001f: ldloca.s V_1 - IL_0021: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0026: ceq - IL_0028: call void [mscorlib]System.Console::WriteLine(bool) - IL_002d: nop - IL_002e: ldarg.0 - IL_002f: stloc.1 - IL_0030: ldarg.1 - IL_0031: stloc.0 - IL_0032: ldloca.s V_1 - IL_0034: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0039: ldloca.s V_0 - IL_003b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0040: beq.s IL_0045 - - IL_0042: ldc.i4.1 - IL_0043: br.s IL_0058 - - IL_0045: ldloca.s V_1 - IL_0047: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_004c: ldloca.s V_0 - IL_004e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0053: ceq - IL_0055: ldc.i4.0 - IL_0056: ceq - IL_0058: call void [mscorlib]System.Console::WriteLine(bool) - IL_005d: nop - IL_005e: ldarg.0 - IL_005f: stloc.0 - IL_0060: ldarg.1 - IL_0061: stloc.1 - IL_0062: ldloca.s V_0 - IL_0064: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0069: ldloca.s V_1 - IL_006b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0070: bgt.s IL_0075 - - IL_0072: ldc.i4.0 - IL_0073: br.s IL_0084 - - IL_0075: ldloca.s V_0 + IL_0013: ceq + IL_0015: ldloca.s V_0 + IL_0017: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001c: ldloca.s V_1 + IL_001e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0023: ceq + IL_0025: and + IL_0026: call void [mscorlib]System.Console::WriteLine(bool) + IL_002b: nop + IL_002c: ldarg.0 + IL_002d: stloc.1 + IL_002e: ldarg.1 + IL_002f: stloc.0 + IL_0030: ldloca.s V_1 + IL_0032: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0037: ldloca.s V_0 + IL_0039: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003e: ceq + IL_0040: ldloca.s V_1 + IL_0042: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0047: ldloca.s V_0 + IL_0049: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004e: ceq + IL_0050: and + IL_0051: ldc.i4.0 + IL_0052: ceq + IL_0054: call void [mscorlib]System.Console::WriteLine(bool) + IL_0059: nop + IL_005a: ldarg.0 + IL_005b: stloc.0 + IL_005c: ldarg.1 + IL_005d: stloc.1 + IL_005e: ldloca.s V_0 + IL_0060: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0065: ldloca.s V_1 + IL_0067: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_006c: cgt + IL_006e: ldloca.s V_0 + IL_0070: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0075: ldloca.s V_1 IL_0077: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_007c: ldloca.s V_1 - IL_007e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0083: and - IL_0084: call void [mscorlib]System.Console::WriteLine(bool) - IL_0089: nop - IL_008a: ldarg.0 - IL_008b: stloc.1 - IL_008c: ldarg.1 - IL_008d: stloc.0 - IL_008e: ldloca.s V_1 - IL_0090: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0095: ldloca.s V_0 - IL_0097: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_009c: bgt.s IL_00a1 - - IL_009e: ldc.i4.0 - IL_009f: br.s IL_00b0 - - IL_00a1: ldloca.s V_1 - IL_00a3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00a8: ldloca.s V_0 - IL_00aa: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00af: and - IL_00b0: ldc.i4.0 - IL_00b1: ceq - IL_00b3: call void [mscorlib]System.Console::WriteLine(bool) - IL_00b8: nop - IL_00b9: ldarg.0 - IL_00ba: stloc.0 - IL_00bb: ldarg.1 - IL_00bc: stloc.1 - IL_00bd: ldloca.s V_0 - IL_00bf: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00c4: ldloca.s V_1 - IL_00c6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00cb: bge.s IL_00d0 - - IL_00cd: ldc.i4.0 - IL_00ce: br.s IL_00df - - IL_00d0: ldloca.s V_0 - IL_00d2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00d7: ldloca.s V_1 - IL_00d9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00de: and - IL_00df: ldc.i4.0 - IL_00e0: ceq - IL_00e2: call void [mscorlib]System.Console::WriteLine(bool) - IL_00e7: nop - IL_00e8: ldarg.0 - IL_00e9: stloc.1 - IL_00ea: ldarg.1 - IL_00eb: stloc.0 - IL_00ec: ldloca.s V_1 + IL_007c: and + IL_007d: and + IL_007e: call void [mscorlib]System.Console::WriteLine(bool) + IL_0083: nop + IL_0084: ldarg.0 + IL_0085: stloc.1 + IL_0086: ldarg.1 + IL_0087: stloc.0 + IL_0088: ldloca.s V_1 + IL_008a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_008f: ldloca.s V_0 + IL_0091: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0096: cgt + IL_0098: ldloca.s V_1 + IL_009a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_009f: ldloca.s V_0 + IL_00a1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00a6: and + IL_00a7: and + IL_00a8: ldc.i4.0 + IL_00a9: ceq + IL_00ab: call void [mscorlib]System.Console::WriteLine(bool) + IL_00b0: nop + IL_00b1: ldarg.0 + IL_00b2: stloc.0 + IL_00b3: ldarg.1 + IL_00b4: stloc.1 + IL_00b5: ldloca.s V_0 + IL_00b7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00bc: ldloca.s V_1 + IL_00be: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00c3: clt + IL_00c5: ldc.i4.0 + IL_00c6: ceq + IL_00c8: ldloca.s V_0 + IL_00ca: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00cf: ldloca.s V_1 + IL_00d1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00d6: and + IL_00d7: and + IL_00d8: ldc.i4.0 + IL_00d9: ceq + IL_00db: call void [mscorlib]System.Console::WriteLine(bool) + IL_00e0: nop + IL_00e1: ldarg.0 + IL_00e2: stloc.1 + IL_00e3: ldarg.1 + IL_00e4: stloc.0 + IL_00e5: ldloca.s V_1 + IL_00e7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ec: ldloca.s V_0 IL_00ee: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f3: ldloca.s V_0 - IL_00f5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00fa: and - IL_00fb: brtrue.s IL_0108 + IL_00f3: and + IL_00f4: brtrue.s IL_0101 - IL_00fd: ldloca.s V_2 - IL_00ff: initobj valuetype [mscorlib]System.Nullable`1 - IL_0105: ldloc.2 - IL_0106: br.s IL_011c + IL_00f6: ldloca.s V_2 + IL_00f8: initobj valuetype [mscorlib]System.Nullable`1 + IL_00fe: ldloc.2 + IL_00ff: br.s IL_0115 - IL_0108: ldloca.s V_1 + IL_0101: ldloca.s V_1 + IL_0103: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0108: ldloca.s V_0 IL_010a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_010f: ldloca.s V_0 - IL_0111: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0116: add - IL_0117: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_011c: box valuetype [mscorlib]System.Nullable`1 - IL_0121: call void [mscorlib]System.Console::WriteLine(object) - IL_0126: nop - IL_0127: ldarg.0 - IL_0128: stloc.0 - IL_0129: ldarg.1 - IL_012a: stloc.1 - IL_012b: ldloca.s V_0 + IL_010f: add + IL_0110: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0115: box valuetype [mscorlib]System.Nullable`1 + IL_011a: call void [mscorlib]System.Console::WriteLine(object) + IL_011f: nop + IL_0120: ldarg.0 + IL_0121: stloc.0 + IL_0122: ldarg.1 + IL_0123: stloc.1 + IL_0124: ldloca.s V_0 + IL_0126: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_012b: ldloca.s V_1 IL_012d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0132: ldloca.s V_1 - IL_0134: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0139: and - IL_013a: brtrue.s IL_0147 + IL_0132: and + IL_0133: brtrue.s IL_0140 - IL_013c: ldloca.s V_2 - IL_013e: initobj valuetype [mscorlib]System.Nullable`1 - IL_0144: ldloc.2 - IL_0145: br.s IL_015b + IL_0135: ldloca.s V_2 + IL_0137: initobj valuetype [mscorlib]System.Nullable`1 + IL_013d: ldloc.2 + IL_013e: br.s IL_0154 - IL_0147: ldloca.s V_0 + IL_0140: ldloca.s V_0 + IL_0142: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0147: ldloca.s V_1 IL_0149: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_014e: ldloca.s V_1 - IL_0150: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0155: sub - IL_0156: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_015b: box valuetype [mscorlib]System.Nullable`1 - IL_0160: call void [mscorlib]System.Console::WriteLine(object) - IL_0165: nop - IL_0166: ldarg.0 - IL_0167: stloc.1 - IL_0168: ldarg.1 - IL_0169: stloc.0 - IL_016a: ldloca.s V_1 + IL_014e: sub + IL_014f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0154: box valuetype [mscorlib]System.Nullable`1 + IL_0159: call void [mscorlib]System.Console::WriteLine(object) + IL_015e: nop + IL_015f: ldarg.0 + IL_0160: stloc.1 + IL_0161: ldarg.1 + IL_0162: stloc.0 + IL_0163: ldloca.s V_1 + IL_0165: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_016a: ldloca.s V_0 IL_016c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0171: ldloca.s V_0 - IL_0173: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0178: and - IL_0179: brtrue.s IL_0186 + IL_0171: and + IL_0172: brtrue.s IL_017f - IL_017b: ldloca.s V_2 - IL_017d: initobj valuetype [mscorlib]System.Nullable`1 - IL_0183: ldloc.2 - IL_0184: br.s IL_019a + IL_0174: ldloca.s V_2 + IL_0176: initobj valuetype [mscorlib]System.Nullable`1 + IL_017c: ldloc.2 + IL_017d: br.s IL_0193 - IL_0186: ldloca.s V_1 + IL_017f: ldloca.s V_1 + IL_0181: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0186: ldloca.s V_0 IL_0188: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_018d: ldloca.s V_0 - IL_018f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0194: mul - IL_0195: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_019a: box valuetype [mscorlib]System.Nullable`1 - IL_019f: call void [mscorlib]System.Console::WriteLine(object) - IL_01a4: nop - IL_01a5: ldarg.0 - IL_01a6: stloc.0 - IL_01a7: ldarg.1 - IL_01a8: stloc.1 - IL_01a9: ldloca.s V_0 + IL_018d: mul + IL_018e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0193: box valuetype [mscorlib]System.Nullable`1 + IL_0198: call void [mscorlib]System.Console::WriteLine(object) + IL_019d: nop + IL_019e: ldarg.0 + IL_019f: stloc.0 + IL_01a0: ldarg.1 + IL_01a1: stloc.1 + IL_01a2: ldloca.s V_0 + IL_01a4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01a9: ldloca.s V_1 IL_01ab: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01b0: ldloca.s V_1 - IL_01b2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01b7: and - IL_01b8: brtrue.s IL_01c5 + IL_01b0: and + IL_01b1: brtrue.s IL_01be - IL_01ba: ldloca.s V_2 - IL_01bc: initobj valuetype [mscorlib]System.Nullable`1 - IL_01c2: ldloc.2 - IL_01c3: br.s IL_01d9 + IL_01b3: ldloca.s V_2 + IL_01b5: initobj valuetype [mscorlib]System.Nullable`1 + IL_01bb: ldloc.2 + IL_01bc: br.s IL_01d2 - IL_01c5: ldloca.s V_0 + IL_01be: ldloca.s V_0 + IL_01c0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01c5: ldloca.s V_1 IL_01c7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01cc: ldloca.s V_1 - IL_01ce: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01d3: div - IL_01d4: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01d9: box valuetype [mscorlib]System.Nullable`1 - IL_01de: call void [mscorlib]System.Console::WriteLine(object) - IL_01e3: nop - IL_01e4: ldarg.0 - IL_01e5: stloc.1 - IL_01e6: ldarg.1 - IL_01e7: stloc.0 - IL_01e8: ldloca.s V_1 + IL_01cc: div + IL_01cd: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01d2: box valuetype [mscorlib]System.Nullable`1 + IL_01d7: call void [mscorlib]System.Console::WriteLine(object) + IL_01dc: nop + IL_01dd: ldarg.0 + IL_01de: stloc.1 + IL_01df: ldarg.1 + IL_01e0: stloc.0 + IL_01e1: ldloca.s V_1 + IL_01e3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01e8: ldloca.s V_0 IL_01ea: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01ef: ldloca.s V_0 - IL_01f1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01f6: and - IL_01f7: brtrue.s IL_0204 + IL_01ef: and + IL_01f0: brtrue.s IL_01fd - IL_01f9: ldloca.s V_2 - IL_01fb: initobj valuetype [mscorlib]System.Nullable`1 - IL_0201: ldloc.2 - IL_0202: br.s IL_0218 + IL_01f2: ldloca.s V_2 + IL_01f4: initobj valuetype [mscorlib]System.Nullable`1 + IL_01fa: ldloc.2 + IL_01fb: br.s IL_0211 - IL_0204: ldloca.s V_1 + IL_01fd: ldloca.s V_1 + IL_01ff: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0204: ldloca.s V_0 IL_0206: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_020b: ldloca.s V_0 - IL_020d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0212: rem - IL_0213: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0218: box valuetype [mscorlib]System.Nullable`1 - IL_021d: call void [mscorlib]System.Console::WriteLine(object) - IL_0222: nop - IL_0223: ldarg.0 - IL_0224: stloc.0 - IL_0225: ldarg.1 - IL_0226: stloc.1 - IL_0227: ldloca.s V_0 + IL_020b: rem + IL_020c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0211: box valuetype [mscorlib]System.Nullable`1 + IL_0216: call void [mscorlib]System.Console::WriteLine(object) + IL_021b: nop + IL_021c: ldarg.0 + IL_021d: stloc.0 + IL_021e: ldarg.1 + IL_021f: stloc.1 + IL_0220: ldloca.s V_0 + IL_0222: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0227: ldloca.s V_1 IL_0229: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_022e: ldloca.s V_1 - IL_0230: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0235: and - IL_0236: brtrue.s IL_0243 + IL_022e: and + IL_022f: brtrue.s IL_023c - IL_0238: ldloca.s V_2 - IL_023a: initobj valuetype [mscorlib]System.Nullable`1 - IL_0240: ldloc.2 - IL_0241: br.s IL_0257 + IL_0231: ldloca.s V_2 + IL_0233: initobj valuetype [mscorlib]System.Nullable`1 + IL_0239: ldloc.2 + IL_023a: br.s IL_0250 - IL_0243: ldloca.s V_0 + IL_023c: ldloca.s V_0 + IL_023e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0243: ldloca.s V_1 IL_0245: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_024a: ldloca.s V_1 - IL_024c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0251: and - IL_0252: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0257: box valuetype [mscorlib]System.Nullable`1 - IL_025c: call void [mscorlib]System.Console::WriteLine(object) - IL_0261: nop - IL_0262: ldarg.0 - IL_0263: stloc.1 - IL_0264: ldarg.1 - IL_0265: stloc.0 - IL_0266: ldloca.s V_1 + IL_024a: and + IL_024b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0250: box valuetype [mscorlib]System.Nullable`1 + IL_0255: call void [mscorlib]System.Console::WriteLine(object) + IL_025a: nop + IL_025b: ldarg.0 + IL_025c: stloc.1 + IL_025d: ldarg.1 + IL_025e: stloc.0 + IL_025f: ldloca.s V_1 + IL_0261: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0266: ldloca.s V_0 IL_0268: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_026d: ldloca.s V_0 - IL_026f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0274: and - IL_0275: brtrue.s IL_0282 + IL_026d: and + IL_026e: brtrue.s IL_027b - IL_0277: ldloca.s V_2 - IL_0279: initobj valuetype [mscorlib]System.Nullable`1 - IL_027f: ldloc.2 - IL_0280: br.s IL_0296 + IL_0270: ldloca.s V_2 + IL_0272: initobj valuetype [mscorlib]System.Nullable`1 + IL_0278: ldloc.2 + IL_0279: br.s IL_028f - IL_0282: ldloca.s V_1 + IL_027b: ldloca.s V_1 + IL_027d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0282: ldloca.s V_0 IL_0284: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0289: ldloca.s V_0 - IL_028b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0290: or - IL_0291: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0296: box valuetype [mscorlib]System.Nullable`1 - IL_029b: call void [mscorlib]System.Console::WriteLine(object) - IL_02a0: nop - IL_02a1: ldarg.0 - IL_02a2: stloc.0 - IL_02a3: ldarg.1 - IL_02a4: stloc.1 - IL_02a5: ldloca.s V_0 + IL_0289: or + IL_028a: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_028f: box valuetype [mscorlib]System.Nullable`1 + IL_0294: call void [mscorlib]System.Console::WriteLine(object) + IL_0299: nop + IL_029a: ldarg.0 + IL_029b: stloc.0 + IL_029c: ldarg.1 + IL_029d: stloc.1 + IL_029e: ldloca.s V_0 + IL_02a0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02a5: ldloca.s V_1 IL_02a7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02ac: ldloca.s V_1 - IL_02ae: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02b3: and - IL_02b4: brtrue.s IL_02c1 + IL_02ac: and + IL_02ad: brtrue.s IL_02ba - IL_02b6: ldloca.s V_2 - IL_02b8: initobj valuetype [mscorlib]System.Nullable`1 - IL_02be: ldloc.2 - IL_02bf: br.s IL_02d5 + IL_02af: ldloca.s V_2 + IL_02b1: initobj valuetype [mscorlib]System.Nullable`1 + IL_02b7: ldloc.2 + IL_02b8: br.s IL_02ce - IL_02c1: ldloca.s V_0 + IL_02ba: ldloca.s V_0 + IL_02bc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02c1: ldloca.s V_1 IL_02c3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02c8: ldloca.s V_1 - IL_02ca: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02cf: xor - IL_02d0: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02d5: box valuetype [mscorlib]System.Nullable`1 - IL_02da: call void [mscorlib]System.Console::WriteLine(object) - IL_02df: nop - IL_02e0: ldarg.0 - IL_02e1: stloc.1 - IL_02e2: ldarg.1 - IL_02e3: stloc.0 - IL_02e4: ldloca.s V_1 + IL_02c8: xor + IL_02c9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02ce: box valuetype [mscorlib]System.Nullable`1 + IL_02d3: call void [mscorlib]System.Console::WriteLine(object) + IL_02d8: nop + IL_02d9: ldarg.0 + IL_02da: stloc.1 + IL_02db: ldarg.1 + IL_02dc: stloc.0 + IL_02dd: ldloca.s V_1 + IL_02df: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02e4: ldloca.s V_0 IL_02e6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02eb: ldloca.s V_0 - IL_02ed: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02f2: and - IL_02f3: brtrue.s IL_0300 + IL_02eb: and + IL_02ec: brtrue.s IL_02f9 - IL_02f5: ldloca.s V_2 - IL_02f7: initobj valuetype [mscorlib]System.Nullable`1 - IL_02fd: ldloc.2 - IL_02fe: br.s IL_0317 + IL_02ee: ldloca.s V_2 + IL_02f0: initobj valuetype [mscorlib]System.Nullable`1 + IL_02f6: ldloc.2 + IL_02f7: br.s IL_0310 - IL_0300: ldloca.s V_1 + IL_02f9: ldloca.s V_1 + IL_02fb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0300: ldloca.s V_0 IL_0302: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0307: ldloca.s V_0 - IL_0309: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_030e: ldc.i4.s 31 - IL_0310: and - IL_0311: shl - IL_0312: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0317: box valuetype [mscorlib]System.Nullable`1 - IL_031c: call void [mscorlib]System.Console::WriteLine(object) - IL_0321: nop - IL_0322: ldarg.0 - IL_0323: stloc.0 - IL_0324: ldarg.1 - IL_0325: stloc.1 - IL_0326: ldloca.s V_0 + IL_0307: ldc.i4.s 31 + IL_0309: and + IL_030a: shl + IL_030b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0310: box valuetype [mscorlib]System.Nullable`1 + IL_0315: call void [mscorlib]System.Console::WriteLine(object) + IL_031a: nop + IL_031b: ldarg.0 + IL_031c: stloc.0 + IL_031d: ldarg.1 + IL_031e: stloc.1 + IL_031f: ldloca.s V_0 + IL_0321: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0326: ldloca.s V_1 IL_0328: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_032d: ldloca.s V_1 - IL_032f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0334: and - IL_0335: brtrue.s IL_0342 + IL_032d: and + IL_032e: brtrue.s IL_033b - IL_0337: ldloca.s V_2 - IL_0339: initobj valuetype [mscorlib]System.Nullable`1 - IL_033f: ldloc.2 - IL_0340: br.s IL_0359 + IL_0330: ldloca.s V_2 + IL_0332: initobj valuetype [mscorlib]System.Nullable`1 + IL_0338: ldloc.2 + IL_0339: br.s IL_0352 - IL_0342: ldloca.s V_0 + IL_033b: ldloca.s V_0 + IL_033d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0342: ldloca.s V_1 IL_0344: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0349: ldloca.s V_1 - IL_034b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0350: ldc.i4.s 31 - IL_0352: and - IL_0353: shr - IL_0354: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0359: box valuetype [mscorlib]System.Nullable`1 - IL_035e: call void [mscorlib]System.Console::WriteLine(object) - IL_0363: nop - IL_0364: ldarg.0 - IL_0365: stloc.1 - IL_0366: ldloca.s V_1 - IL_0368: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_036d: brtrue.s IL_0372 - - IL_036f: ldarg.1 - IL_0370: br.s IL_0373 - - IL_0372: ldloc.1 - IL_0373: box valuetype [mscorlib]System.Nullable`1 - IL_0378: call void [mscorlib]System.Console::WriteLine(object) - IL_037d: nop - IL_037e: ldarg.0 - IL_037f: stloc.1 - IL_0380: ldloca.s V_1 - IL_0382: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0387: brtrue.s IL_0394 - - IL_0389: ldloca.s V_0 - IL_038b: initobj valuetype [mscorlib]System.Nullable`1 - IL_0391: ldloc.0 - IL_0392: br.s IL_03a1 - - IL_0394: ldloca.s V_1 - IL_0396: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_039b: neg - IL_039c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03a1: box valuetype [mscorlib]System.Nullable`1 - IL_03a6: call void [mscorlib]System.Console::WriteLine(object) - IL_03ab: nop - IL_03ac: ldarg.0 - IL_03ad: stloc.1 - IL_03ae: ldloca.s V_1 - IL_03b0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03b5: brtrue.s IL_03c2 - - IL_03b7: ldloca.s V_0 - IL_03b9: initobj valuetype [mscorlib]System.Nullable`1 - IL_03bf: ldloc.0 - IL_03c0: br.s IL_03cf - - IL_03c2: ldloca.s V_1 - IL_03c4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03c9: not - IL_03ca: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03cf: box valuetype [mscorlib]System.Nullable`1 - IL_03d4: call void [mscorlib]System.Console::WriteLine(object) - IL_03d9: nop - IL_03da: ldarg.0 - IL_03db: stloc.1 - IL_03dc: ldloca.s V_1 - IL_03de: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03e3: brtrue.s IL_03f0 - - IL_03e5: ldloca.s V_0 - IL_03e7: initobj valuetype [mscorlib]System.Nullable`1 - IL_03ed: ldloc.0 - IL_03ee: br.s IL_03fe - - IL_03f0: ldloca.s V_1 - IL_03f2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03f7: ldc.i4.1 - IL_03f8: add - IL_03f9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03fe: dup - IL_03ff: starg.s a - IL_0401: box valuetype [mscorlib]System.Nullable`1 - IL_0406: call void [mscorlib]System.Console::WriteLine(object) - IL_040b: nop - IL_040c: ldarg.0 - IL_040d: stloc.1 - IL_040e: ldloca.s V_1 - IL_0410: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0415: brtrue.s IL_0422 - - IL_0417: ldloca.s V_0 - IL_0419: initobj valuetype [mscorlib]System.Nullable`1 - IL_041f: ldloc.0 - IL_0420: br.s IL_0430 - - IL_0422: ldloca.s V_1 - IL_0424: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0429: ldc.i4.1 - IL_042a: sub - IL_042b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0430: dup - IL_0431: starg.s a - IL_0433: box valuetype [mscorlib]System.Nullable`1 - IL_0438: call void [mscorlib]System.Console::WriteLine(object) - IL_043d: nop - IL_043e: ldarg.0 - IL_043f: stloc.1 - IL_0440: ldarg.1 - IL_0441: stloc.0 - IL_0442: ldloca.s V_1 + IL_0349: ldc.i4.s 31 + IL_034b: and + IL_034c: shr + IL_034d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0352: box valuetype [mscorlib]System.Nullable`1 + IL_0357: call void [mscorlib]System.Console::WriteLine(object) + IL_035c: nop + IL_035d: ldarg.0 + IL_035e: stloc.1 + IL_035f: ldloca.s V_1 + IL_0361: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0366: brtrue.s IL_036b + + IL_0368: ldarg.1 + IL_0369: br.s IL_036c + + IL_036b: ldloc.1 + IL_036c: box valuetype [mscorlib]System.Nullable`1 + IL_0371: call void [mscorlib]System.Console::WriteLine(object) + IL_0376: nop + IL_0377: ldarg.0 + IL_0378: stloc.1 + IL_0379: ldloca.s V_1 + IL_037b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0380: brtrue.s IL_038d + + IL_0382: ldloca.s V_0 + IL_0384: initobj valuetype [mscorlib]System.Nullable`1 + IL_038a: ldloc.0 + IL_038b: br.s IL_039a + + IL_038d: ldloca.s V_1 + IL_038f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0394: neg + IL_0395: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_039a: box valuetype [mscorlib]System.Nullable`1 + IL_039f: call void [mscorlib]System.Console::WriteLine(object) + IL_03a4: nop + IL_03a5: ldarg.0 + IL_03a6: stloc.1 + IL_03a7: ldloca.s V_1 + IL_03a9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03ae: brtrue.s IL_03bb + + IL_03b0: ldloca.s V_0 + IL_03b2: initobj valuetype [mscorlib]System.Nullable`1 + IL_03b8: ldloc.0 + IL_03b9: br.s IL_03c8 + + IL_03bb: ldloca.s V_1 + IL_03bd: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03c2: not + IL_03c3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03c8: box valuetype [mscorlib]System.Nullable`1 + IL_03cd: call void [mscorlib]System.Console::WriteLine(object) + IL_03d2: nop + IL_03d3: ldarg.0 + IL_03d4: stloc.1 + IL_03d5: ldloca.s V_1 + IL_03d7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03dc: brtrue.s IL_03e9 + + IL_03de: ldloca.s V_0 + IL_03e0: initobj valuetype [mscorlib]System.Nullable`1 + IL_03e6: ldloc.0 + IL_03e7: br.s IL_03f7 + + IL_03e9: ldloca.s V_1 + IL_03eb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03f0: ldc.i4.1 + IL_03f1: add + IL_03f2: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03f7: dup + IL_03f8: starg.s a + IL_03fa: box valuetype [mscorlib]System.Nullable`1 + IL_03ff: call void [mscorlib]System.Console::WriteLine(object) + IL_0404: nop + IL_0405: ldarg.0 + IL_0406: stloc.1 + IL_0407: ldloca.s V_1 + IL_0409: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_040e: brtrue.s IL_041b + + IL_0410: ldloca.s V_0 + IL_0412: initobj valuetype [mscorlib]System.Nullable`1 + IL_0418: ldloc.0 + IL_0419: br.s IL_0429 + + IL_041b: ldloca.s V_1 + IL_041d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0422: ldc.i4.1 + IL_0423: sub + IL_0424: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0429: dup + IL_042a: starg.s a + IL_042c: box valuetype [mscorlib]System.Nullable`1 + IL_0431: call void [mscorlib]System.Console::WriteLine(object) + IL_0436: nop + IL_0437: ldarg.0 + IL_0438: stloc.1 + IL_0439: ldarg.1 + IL_043a: stloc.0 + IL_043b: ldloca.s V_1 + IL_043d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0442: ldloca.s V_0 IL_0444: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0449: ldloca.s V_0 - IL_044b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0450: and - IL_0451: brtrue.s IL_045e + IL_0449: and + IL_044a: brtrue.s IL_0457 - IL_0453: ldloca.s V_2 - IL_0455: initobj valuetype [mscorlib]System.Nullable`1 - IL_045b: ldloc.2 - IL_045c: br.s IL_0472 + IL_044c: ldloca.s V_2 + IL_044e: initobj valuetype [mscorlib]System.Nullable`1 + IL_0454: ldloc.2 + IL_0455: br.s IL_046b - IL_045e: ldloca.s V_1 + IL_0457: ldloca.s V_1 + IL_0459: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_045e: ldloca.s V_0 IL_0460: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0465: ldloca.s V_0 - IL_0467: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_046c: add - IL_046d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0472: starg.s a - IL_0474: ldarg.0 - IL_0475: stloc.0 - IL_0476: ldarg.1 - IL_0477: stloc.1 - IL_0478: ldloca.s V_0 + IL_0465: add + IL_0466: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_046b: starg.s a + IL_046d: ldarg.0 + IL_046e: stloc.0 + IL_046f: ldarg.1 + IL_0470: stloc.1 + IL_0471: ldloca.s V_0 + IL_0473: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0478: ldloca.s V_1 IL_047a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_047f: ldloca.s V_1 - IL_0481: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0486: and - IL_0487: brtrue.s IL_0494 + IL_047f: and + IL_0480: brtrue.s IL_048d - IL_0489: ldloca.s V_2 - IL_048b: initobj valuetype [mscorlib]System.Nullable`1 - IL_0491: ldloc.2 - IL_0492: br.s IL_04a8 + IL_0482: ldloca.s V_2 + IL_0484: initobj valuetype [mscorlib]System.Nullable`1 + IL_048a: ldloc.2 + IL_048b: br.s IL_04a1 - IL_0494: ldloca.s V_0 + IL_048d: ldloca.s V_0 + IL_048f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0494: ldloca.s V_1 IL_0496: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_049b: ldloca.s V_1 - IL_049d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04a2: sub - IL_04a3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_04a8: starg.s a - IL_04aa: ldarg.0 - IL_04ab: stloc.1 - IL_04ac: ldarg.1 - IL_04ad: stloc.0 - IL_04ae: ldloca.s V_1 + IL_049b: sub + IL_049c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_04a1: starg.s a + IL_04a3: ldarg.0 + IL_04a4: stloc.1 + IL_04a5: ldarg.1 + IL_04a6: stloc.0 + IL_04a7: ldloca.s V_1 + IL_04a9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_04ae: ldloca.s V_0 IL_04b0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04b5: ldloca.s V_0 - IL_04b7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04bc: and - IL_04bd: brtrue.s IL_04ca + IL_04b5: and + IL_04b6: brtrue.s IL_04c3 - IL_04bf: ldloca.s V_2 - IL_04c1: initobj valuetype [mscorlib]System.Nullable`1 - IL_04c7: ldloc.2 - IL_04c8: br.s IL_04de + IL_04b8: ldloca.s V_2 + IL_04ba: initobj valuetype [mscorlib]System.Nullable`1 + IL_04c0: ldloc.2 + IL_04c1: br.s IL_04d7 - IL_04ca: ldloca.s V_1 + IL_04c3: ldloca.s V_1 + IL_04c5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_04ca: ldloca.s V_0 IL_04cc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04d1: ldloca.s V_0 - IL_04d3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04d8: mul - IL_04d9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_04de: starg.s a - IL_04e0: ldarg.0 - IL_04e1: stloc.0 - IL_04e2: ldarg.1 - IL_04e3: stloc.1 - IL_04e4: ldloca.s V_0 + IL_04d1: mul + IL_04d2: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_04d7: starg.s a + IL_04d9: ldarg.0 + IL_04da: stloc.0 + IL_04db: ldarg.1 + IL_04dc: stloc.1 + IL_04dd: ldloca.s V_0 + IL_04df: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_04e4: ldloca.s V_1 IL_04e6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04eb: ldloca.s V_1 - IL_04ed: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04f2: and - IL_04f3: brtrue.s IL_0500 + IL_04eb: and + IL_04ec: brtrue.s IL_04f9 - IL_04f5: ldloca.s V_2 - IL_04f7: initobj valuetype [mscorlib]System.Nullable`1 - IL_04fd: ldloc.2 - IL_04fe: br.s IL_0514 + IL_04ee: ldloca.s V_2 + IL_04f0: initobj valuetype [mscorlib]System.Nullable`1 + IL_04f6: ldloc.2 + IL_04f7: br.s IL_050d - IL_0500: ldloca.s V_0 + IL_04f9: ldloca.s V_0 + IL_04fb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0500: ldloca.s V_1 IL_0502: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0507: ldloca.s V_1 - IL_0509: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_050e: div - IL_050f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0514: starg.s a - IL_0516: ldarg.0 - IL_0517: stloc.1 - IL_0518: ldarg.1 - IL_0519: stloc.0 - IL_051a: ldloca.s V_1 + IL_0507: div + IL_0508: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_050d: starg.s a + IL_050f: ldarg.0 + IL_0510: stloc.1 + IL_0511: ldarg.1 + IL_0512: stloc.0 + IL_0513: ldloca.s V_1 + IL_0515: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_051a: ldloca.s V_0 IL_051c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0521: ldloca.s V_0 - IL_0523: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0528: and - IL_0529: brtrue.s IL_0536 + IL_0521: and + IL_0522: brtrue.s IL_052f - IL_052b: ldloca.s V_2 - IL_052d: initobj valuetype [mscorlib]System.Nullable`1 - IL_0533: ldloc.2 - IL_0534: br.s IL_054a + IL_0524: ldloca.s V_2 + IL_0526: initobj valuetype [mscorlib]System.Nullable`1 + IL_052c: ldloc.2 + IL_052d: br.s IL_0543 - IL_0536: ldloca.s V_1 + IL_052f: ldloca.s V_1 + IL_0531: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0536: ldloca.s V_0 IL_0538: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_053d: ldloca.s V_0 - IL_053f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0544: rem - IL_0545: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_054a: starg.s a - IL_054c: ldarg.0 - IL_054d: stloc.0 - IL_054e: ldarg.1 - IL_054f: stloc.1 - IL_0550: ldloca.s V_0 + IL_053d: rem + IL_053e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0543: starg.s a + IL_0545: ldarg.0 + IL_0546: stloc.0 + IL_0547: ldarg.1 + IL_0548: stloc.1 + IL_0549: ldloca.s V_0 + IL_054b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0550: ldloca.s V_1 IL_0552: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0557: ldloca.s V_1 - IL_0559: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_055e: and - IL_055f: brtrue.s IL_056c + IL_0557: and + IL_0558: brtrue.s IL_0565 - IL_0561: ldloca.s V_2 - IL_0563: initobj valuetype [mscorlib]System.Nullable`1 - IL_0569: ldloc.2 - IL_056a: br.s IL_0580 + IL_055a: ldloca.s V_2 + IL_055c: initobj valuetype [mscorlib]System.Nullable`1 + IL_0562: ldloc.2 + IL_0563: br.s IL_0579 - IL_056c: ldloca.s V_0 + IL_0565: ldloca.s V_0 + IL_0567: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_056c: ldloca.s V_1 IL_056e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0573: ldloca.s V_1 - IL_0575: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_057a: and - IL_057b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0580: starg.s a - IL_0582: ldarg.0 - IL_0583: stloc.1 - IL_0584: ldarg.1 - IL_0585: stloc.0 - IL_0586: ldloca.s V_1 + IL_0573: and + IL_0574: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0579: starg.s a + IL_057b: ldarg.0 + IL_057c: stloc.1 + IL_057d: ldarg.1 + IL_057e: stloc.0 + IL_057f: ldloca.s V_1 + IL_0581: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0586: ldloca.s V_0 IL_0588: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_058d: ldloca.s V_0 - IL_058f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0594: and - IL_0595: brtrue.s IL_05a2 + IL_058d: and + IL_058e: brtrue.s IL_059b - IL_0597: ldloca.s V_2 - IL_0599: initobj valuetype [mscorlib]System.Nullable`1 - IL_059f: ldloc.2 - IL_05a0: br.s IL_05b6 + IL_0590: ldloca.s V_2 + IL_0592: initobj valuetype [mscorlib]System.Nullable`1 + IL_0598: ldloc.2 + IL_0599: br.s IL_05af - IL_05a2: ldloca.s V_1 + IL_059b: ldloca.s V_1 + IL_059d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_05a2: ldloca.s V_0 IL_05a4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_05a9: ldloca.s V_0 - IL_05ab: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_05b0: or - IL_05b1: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_05b6: starg.s a - IL_05b8: ldarg.0 - IL_05b9: stloc.0 - IL_05ba: ldarg.1 - IL_05bb: stloc.1 - IL_05bc: ldloca.s V_0 + IL_05a9: or + IL_05aa: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_05af: starg.s a + IL_05b1: ldarg.0 + IL_05b2: stloc.0 + IL_05b3: ldarg.1 + IL_05b4: stloc.1 + IL_05b5: ldloca.s V_0 + IL_05b7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_05bc: ldloca.s V_1 IL_05be: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_05c3: ldloca.s V_1 - IL_05c5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_05ca: and - IL_05cb: brtrue.s IL_05d8 + IL_05c3: and + IL_05c4: brtrue.s IL_05d1 - IL_05cd: ldloca.s V_2 - IL_05cf: initobj valuetype [mscorlib]System.Nullable`1 - IL_05d5: ldloc.2 - IL_05d6: br.s IL_05ec + IL_05c6: ldloca.s V_2 + IL_05c8: initobj valuetype [mscorlib]System.Nullable`1 + IL_05ce: ldloc.2 + IL_05cf: br.s IL_05e5 - IL_05d8: ldloca.s V_0 + IL_05d1: ldloca.s V_0 + IL_05d3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_05d8: ldloca.s V_1 IL_05da: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_05df: ldloca.s V_1 - IL_05e1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_05e6: xor - IL_05e7: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_05ec: starg.s a - IL_05ee: ldarg.0 - IL_05ef: stloc.1 - IL_05f0: ldarg.1 - IL_05f1: stloc.0 - IL_05f2: ldloca.s V_1 + IL_05df: xor + IL_05e0: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_05e5: starg.s a + IL_05e7: ldarg.0 + IL_05e8: stloc.1 + IL_05e9: ldarg.1 + IL_05ea: stloc.0 + IL_05eb: ldloca.s V_1 + IL_05ed: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_05f2: ldloca.s V_0 IL_05f4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_05f9: ldloca.s V_0 - IL_05fb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0600: and - IL_0601: brtrue.s IL_060e + IL_05f9: and + IL_05fa: brtrue.s IL_0607 - IL_0603: ldloca.s V_2 - IL_0605: initobj valuetype [mscorlib]System.Nullable`1 - IL_060b: ldloc.2 - IL_060c: br.s IL_0625 + IL_05fc: ldloca.s V_2 + IL_05fe: initobj valuetype [mscorlib]System.Nullable`1 + IL_0604: ldloc.2 + IL_0605: br.s IL_061e - IL_060e: ldloca.s V_1 + IL_0607: ldloca.s V_1 + IL_0609: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_060e: ldloca.s V_0 IL_0610: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0615: ldloca.s V_0 - IL_0617: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_061c: ldc.i4.s 31 - IL_061e: and - IL_061f: shl - IL_0620: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0625: starg.s a - IL_0627: ldarg.0 - IL_0628: stloc.0 - IL_0629: ldarg.1 - IL_062a: stloc.1 - IL_062b: ldloca.s V_0 + IL_0615: ldc.i4.s 31 + IL_0617: and + IL_0618: shl + IL_0619: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_061e: starg.s a + IL_0620: ldarg.0 + IL_0621: stloc.0 + IL_0622: ldarg.1 + IL_0623: stloc.1 + IL_0624: ldloca.s V_0 + IL_0626: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_062b: ldloca.s V_1 IL_062d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0632: ldloca.s V_1 - IL_0634: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0639: and - IL_063a: brtrue.s IL_0647 + IL_0632: and + IL_0633: brtrue.s IL_0640 - IL_063c: ldloca.s V_2 - IL_063e: initobj valuetype [mscorlib]System.Nullable`1 - IL_0644: ldloc.2 - IL_0645: br.s IL_065e + IL_0635: ldloca.s V_2 + IL_0637: initobj valuetype [mscorlib]System.Nullable`1 + IL_063d: ldloc.2 + IL_063e: br.s IL_0657 - IL_0647: ldloca.s V_0 + IL_0640: ldloca.s V_0 + IL_0642: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0647: ldloca.s V_1 IL_0649: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_064e: ldloca.s V_1 - IL_0650: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0655: ldc.i4.s 31 - IL_0657: and - IL_0658: shr - IL_0659: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_065e: starg.s a - IL_0660: ret + IL_064e: ldc.i4.s 31 + IL_0650: and + IL_0651: shr + IL_0652: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0657: starg.s a + IL_0659: ret } // end of method LiftedOperators::IntValueBasic .method public hidebysig static void IntValueComplex(valuetype [mscorlib]System.Nullable`1 a, class [mscorlib]System.Func`1 x) cil managed { - // Code size 1365 (0x555) + // Code size 1353 (0x549) .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int32 V_1, @@ -2220,593 +2089,575 @@ IL_000a: ldloca.s V_0 IL_000c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0011: ldloc.1 - IL_0012: beq.s IL_0017 - - IL_0014: ldc.i4.0 - IL_0015: br.s IL_001e - - IL_0017: ldloca.s V_0 - IL_0019: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001e: call void [mscorlib]System.Console::WriteLine(bool) - IL_0023: nop - IL_0024: ldarg.0 - IL_0025: stloc.0 - IL_0026: ldarg.1 - IL_0027: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_002c: stloc.1 - IL_002d: ldloca.s V_0 - IL_002f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0034: ldloc.1 - IL_0035: beq.s IL_003a - - IL_0037: ldc.i4.1 - IL_0038: br.s IL_0044 + IL_0012: ceq + IL_0014: ldloca.s V_0 + IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001b: and + IL_001c: call void [mscorlib]System.Console::WriteLine(bool) + IL_0021: nop + IL_0022: ldarg.0 + IL_0023: stloc.0 + IL_0024: ldarg.1 + IL_0025: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_002a: stloc.1 + IL_002b: ldloca.s V_0 + IL_002d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0032: ldloc.1 + IL_0033: ceq + IL_0035: ldloca.s V_0 + IL_0037: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003c: and + IL_003d: ldc.i4.0 + IL_003e: ceq + IL_0040: call void [mscorlib]System.Console::WriteLine(bool) + IL_0045: nop + IL_0046: ldarg.0 + IL_0047: stloc.0 + IL_0048: ldarg.1 + IL_0049: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_004e: stloc.1 + IL_004f: ldloca.s V_0 + IL_0051: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0056: ldloc.1 + IL_0057: cgt + IL_0059: ldloca.s V_0 + IL_005b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0060: and + IL_0061: call void [mscorlib]System.Console::WriteLine(bool) + IL_0066: nop + IL_0067: ldarg.1 + IL_0068: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_006d: ldarg.0 + IL_006e: stloc.0 + IL_006f: ldloca.s V_0 + IL_0071: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0076: ceq + IL_0078: ldloca.s V_0 + IL_007a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007f: and + IL_0080: call void [mscorlib]System.Console::WriteLine(bool) + IL_0085: nop + IL_0086: ldarg.1 + IL_0087: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_008c: ldarg.0 + IL_008d: stloc.0 + IL_008e: ldloca.s V_0 + IL_0090: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0095: ceq + IL_0097: ldloca.s V_0 + IL_0099: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_009e: and + IL_009f: ldc.i4.0 + IL_00a0: ceq + IL_00a2: call void [mscorlib]System.Console::WriteLine(bool) + IL_00a7: nop + IL_00a8: ldarg.1 + IL_00a9: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00ae: ldarg.0 + IL_00af: stloc.0 + IL_00b0: ldloca.s V_0 + IL_00b2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00b7: cgt + IL_00b9: ldloca.s V_0 + IL_00bb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00c0: and + IL_00c1: call void [mscorlib]System.Console::WriteLine(bool) + IL_00c6: nop + IL_00c7: ldarg.0 + IL_00c8: stloc.0 + IL_00c9: ldarg.1 + IL_00ca: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_00cf: stloc.1 + IL_00d0: ldloca.s V_0 + IL_00d2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00d7: brtrue.s IL_00e4 + + IL_00d9: ldloca.s V_2 + IL_00db: initobj valuetype [mscorlib]System.Nullable`1 + IL_00e1: ldloc.2 + IL_00e2: br.s IL_00f2 + + IL_00e4: ldloca.s V_0 + IL_00e6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00eb: ldloc.1 + IL_00ec: add + IL_00ed: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_00f2: box valuetype [mscorlib]System.Nullable`1 + IL_00f7: call void [mscorlib]System.Console::WriteLine(object) + IL_00fc: nop + IL_00fd: ldarg.0 + IL_00fe: stloc.0 + IL_00ff: ldarg.1 + IL_0100: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0105: stloc.1 + IL_0106: ldloca.s V_0 + IL_0108: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_010d: brtrue.s IL_011a + + IL_010f: ldloca.s V_2 + IL_0111: initobj valuetype [mscorlib]System.Nullable`1 + IL_0117: ldloc.2 + IL_0118: br.s IL_0128 + + IL_011a: ldloca.s V_0 + IL_011c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0121: ldloc.1 + IL_0122: sub + IL_0123: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0128: box valuetype [mscorlib]System.Nullable`1 + IL_012d: call void [mscorlib]System.Console::WriteLine(object) + IL_0132: nop + IL_0133: ldarg.0 + IL_0134: stloc.0 + IL_0135: ldarg.1 + IL_0136: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_013b: stloc.1 + IL_013c: ldloca.s V_0 + IL_013e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0143: brtrue.s IL_0150 - IL_003a: ldloca.s V_0 - IL_003c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0041: ldc.i4.0 - IL_0042: ceq - IL_0044: call void [mscorlib]System.Console::WriteLine(bool) - IL_0049: nop - IL_004a: ldarg.0 - IL_004b: stloc.0 - IL_004c: ldarg.1 - IL_004d: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0052: stloc.1 - IL_0053: ldloca.s V_0 - IL_0055: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_005a: ldloc.1 - IL_005b: bgt.s IL_0060 + IL_0145: ldloca.s V_2 + IL_0147: initobj valuetype [mscorlib]System.Nullable`1 + IL_014d: ldloc.2 + IL_014e: br.s IL_015e - IL_005d: ldc.i4.0 - IL_005e: br.s IL_0067 + IL_0150: ldloca.s V_0 + IL_0152: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0157: ldloc.1 + IL_0158: mul + IL_0159: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_015e: box valuetype [mscorlib]System.Nullable`1 + IL_0163: call void [mscorlib]System.Console::WriteLine(object) + IL_0168: nop + IL_0169: ldarg.0 + IL_016a: stloc.0 + IL_016b: ldarg.1 + IL_016c: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0171: stloc.1 + IL_0172: ldloca.s V_0 + IL_0174: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0179: brtrue.s IL_0186 - IL_0060: ldloca.s V_0 - IL_0062: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0067: call void [mscorlib]System.Console::WriteLine(bool) - IL_006c: nop - IL_006d: ldarg.1 - IL_006e: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0073: ldarg.0 - IL_0074: stloc.0 - IL_0075: ldloca.s V_0 - IL_0077: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007c: beq.s IL_0081 + IL_017b: ldloca.s V_2 + IL_017d: initobj valuetype [mscorlib]System.Nullable`1 + IL_0183: ldloc.2 + IL_0184: br.s IL_0194 - IL_007e: ldc.i4.0 - IL_007f: br.s IL_0088 + IL_0186: ldloca.s V_0 + IL_0188: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_018d: ldloc.1 + IL_018e: div + IL_018f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0194: box valuetype [mscorlib]System.Nullable`1 + IL_0199: call void [mscorlib]System.Console::WriteLine(object) + IL_019e: nop + IL_019f: ldarg.0 + IL_01a0: stloc.0 + IL_01a1: ldarg.1 + IL_01a2: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_01a7: stloc.1 + IL_01a8: ldloca.s V_0 + IL_01aa: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01af: brtrue.s IL_01bc + + IL_01b1: ldloca.s V_2 + IL_01b3: initobj valuetype [mscorlib]System.Nullable`1 + IL_01b9: ldloc.2 + IL_01ba: br.s IL_01ca + + IL_01bc: ldloca.s V_0 + IL_01be: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01c3: ldloc.1 + IL_01c4: rem + IL_01c5: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01ca: box valuetype [mscorlib]System.Nullable`1 + IL_01cf: call void [mscorlib]System.Console::WriteLine(object) + IL_01d4: nop + IL_01d5: ldarg.0 + IL_01d6: stloc.0 + IL_01d7: ldarg.1 + IL_01d8: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_01dd: stloc.1 + IL_01de: ldloca.s V_0 + IL_01e0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01e5: brtrue.s IL_01f2 + + IL_01e7: ldloca.s V_2 + IL_01e9: initobj valuetype [mscorlib]System.Nullable`1 + IL_01ef: ldloc.2 + IL_01f0: br.s IL_0200 + + IL_01f2: ldloca.s V_0 + IL_01f4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01f9: ldloc.1 + IL_01fa: and + IL_01fb: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0200: box valuetype [mscorlib]System.Nullable`1 + IL_0205: call void [mscorlib]System.Console::WriteLine(object) + IL_020a: nop + IL_020b: ldarg.0 + IL_020c: stloc.0 + IL_020d: ldarg.1 + IL_020e: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0213: stloc.1 + IL_0214: ldloca.s V_0 + IL_0216: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_021b: brtrue.s IL_0228 + + IL_021d: ldloca.s V_2 + IL_021f: initobj valuetype [mscorlib]System.Nullable`1 + IL_0225: ldloc.2 + IL_0226: br.s IL_0236 + + IL_0228: ldloca.s V_0 + IL_022a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_022f: ldloc.1 + IL_0230: or + IL_0231: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0236: box valuetype [mscorlib]System.Nullable`1 + IL_023b: call void [mscorlib]System.Console::WriteLine(object) + IL_0240: nop + IL_0241: ldarg.0 + IL_0242: stloc.0 + IL_0243: ldarg.1 + IL_0244: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0249: stloc.1 + IL_024a: ldloca.s V_0 + IL_024c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0251: brtrue.s IL_025e + + IL_0253: ldloca.s V_2 + IL_0255: initobj valuetype [mscorlib]System.Nullable`1 + IL_025b: ldloc.2 + IL_025c: br.s IL_026c - IL_0081: ldloca.s V_0 - IL_0083: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0088: call void [mscorlib]System.Console::WriteLine(bool) - IL_008d: nop - IL_008e: ldarg.1 - IL_008f: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0094: ldarg.0 - IL_0095: stloc.0 - IL_0096: ldloca.s V_0 - IL_0098: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_009d: beq.s IL_00a2 - - IL_009f: ldc.i4.1 - IL_00a0: br.s IL_00ac - - IL_00a2: ldloca.s V_0 - IL_00a4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00a9: ldc.i4.0 - IL_00aa: ceq - IL_00ac: call void [mscorlib]System.Console::WriteLine(bool) - IL_00b1: nop - IL_00b2: ldarg.1 - IL_00b3: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00b8: ldarg.0 - IL_00b9: stloc.0 - IL_00ba: ldloca.s V_0 - IL_00bc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00c1: bgt.s IL_00c6 - - IL_00c3: ldc.i4.0 - IL_00c4: br.s IL_00cd - - IL_00c6: ldloca.s V_0 - IL_00c8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00cd: call void [mscorlib]System.Console::WriteLine(bool) - IL_00d2: nop - IL_00d3: ldarg.0 - IL_00d4: stloc.0 - IL_00d5: ldarg.1 - IL_00d6: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_00db: stloc.1 - IL_00dc: ldloca.s V_0 - IL_00de: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00e3: brtrue.s IL_00f0 - - IL_00e5: ldloca.s V_2 - IL_00e7: initobj valuetype [mscorlib]System.Nullable`1 - IL_00ed: ldloc.2 - IL_00ee: br.s IL_00fe - - IL_00f0: ldloca.s V_0 - IL_00f2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00f7: ldloc.1 - IL_00f8: add - IL_00f9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_00fe: box valuetype [mscorlib]System.Nullable`1 - IL_0103: call void [mscorlib]System.Console::WriteLine(object) - IL_0108: nop - IL_0109: ldarg.0 - IL_010a: stloc.0 - IL_010b: ldarg.1 - IL_010c: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0111: stloc.1 - IL_0112: ldloca.s V_0 - IL_0114: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0119: brtrue.s IL_0126 - - IL_011b: ldloca.s V_2 - IL_011d: initobj valuetype [mscorlib]System.Nullable`1 - IL_0123: ldloc.2 - IL_0124: br.s IL_0134 - - IL_0126: ldloca.s V_0 - IL_0128: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_012d: ldloc.1 - IL_012e: sub - IL_012f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0134: box valuetype [mscorlib]System.Nullable`1 - IL_0139: call void [mscorlib]System.Console::WriteLine(object) - IL_013e: nop - IL_013f: ldarg.0 - IL_0140: stloc.0 - IL_0141: ldarg.1 - IL_0142: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0147: stloc.1 - IL_0148: ldloca.s V_0 - IL_014a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_014f: brtrue.s IL_015c + IL_025e: ldloca.s V_0 + IL_0260: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0265: ldloc.1 + IL_0266: xor + IL_0267: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_026c: box valuetype [mscorlib]System.Nullable`1 + IL_0271: call void [mscorlib]System.Console::WriteLine(object) + IL_0276: nop + IL_0277: ldarg.0 + IL_0278: stloc.0 + IL_0279: ldarg.1 + IL_027a: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_027f: stloc.1 + IL_0280: ldloca.s V_0 + IL_0282: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0287: brtrue.s IL_0294 + + IL_0289: ldloca.s V_2 + IL_028b: initobj valuetype [mscorlib]System.Nullable`1 + IL_0291: ldloc.2 + IL_0292: br.s IL_02a5 + + IL_0294: ldloca.s V_0 + IL_0296: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_029b: ldloc.1 + IL_029c: ldc.i4.s 31 + IL_029e: and + IL_029f: shl + IL_02a0: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02a5: box valuetype [mscorlib]System.Nullable`1 + IL_02aa: call void [mscorlib]System.Console::WriteLine(object) + IL_02af: nop + IL_02b0: ldarg.0 + IL_02b1: stloc.0 + IL_02b2: ldarg.1 + IL_02b3: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_02b8: stloc.1 + IL_02b9: ldloca.s V_0 + IL_02bb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02c0: brtrue.s IL_02cd + + IL_02c2: ldloca.s V_2 + IL_02c4: initobj valuetype [mscorlib]System.Nullable`1 + IL_02ca: ldloc.2 + IL_02cb: br.s IL_02de + + IL_02cd: ldloca.s V_0 + IL_02cf: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02d4: ldloc.1 + IL_02d5: ldc.i4.s 31 + IL_02d7: and + IL_02d8: shr + IL_02d9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02de: box valuetype [mscorlib]System.Nullable`1 + IL_02e3: call void [mscorlib]System.Console::WriteLine(object) + IL_02e8: nop + IL_02e9: ldarg.0 + IL_02ea: stloc.0 + IL_02eb: ldloca.s V_0 + IL_02ed: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02f2: brtrue.s IL_02fc + + IL_02f4: ldarg.1 + IL_02f5: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_02fa: br.s IL_0303 + + IL_02fc: ldloca.s V_0 + IL_02fe: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0303: call void [mscorlib]System.Console::WriteLine(int32) + IL_0308: nop + IL_0309: ldarg.0 + IL_030a: stloc.0 + IL_030b: ldarg.1 + IL_030c: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0311: stloc.1 + IL_0312: ldloca.s V_0 + IL_0314: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0319: brtrue.s IL_0326 + + IL_031b: ldloca.s V_2 + IL_031d: initobj valuetype [mscorlib]System.Nullable`1 + IL_0323: ldloc.2 + IL_0324: br.s IL_0334 - IL_0151: ldloca.s V_2 - IL_0153: initobj valuetype [mscorlib]System.Nullable`1 - IL_0159: ldloc.2 - IL_015a: br.s IL_016a + IL_0326: ldloca.s V_0 + IL_0328: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_032d: ldloc.1 + IL_032e: add + IL_032f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0334: starg.s a + IL_0336: ldarg.0 + IL_0337: stloc.0 + IL_0338: ldarg.1 + IL_0339: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_033e: stloc.1 + IL_033f: ldloca.s V_0 + IL_0341: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0346: brtrue.s IL_0353 + + IL_0348: ldloca.s V_2 + IL_034a: initobj valuetype [mscorlib]System.Nullable`1 + IL_0350: ldloc.2 + IL_0351: br.s IL_0361 + + IL_0353: ldloca.s V_0 + IL_0355: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_035a: ldloc.1 + IL_035b: sub + IL_035c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0361: starg.s a + IL_0363: ldarg.0 + IL_0364: stloc.0 + IL_0365: ldarg.1 + IL_0366: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_036b: stloc.1 + IL_036c: ldloca.s V_0 + IL_036e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0373: brtrue.s IL_0380 + + IL_0375: ldloca.s V_2 + IL_0377: initobj valuetype [mscorlib]System.Nullable`1 + IL_037d: ldloc.2 + IL_037e: br.s IL_038e + + IL_0380: ldloca.s V_0 + IL_0382: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0387: ldloc.1 + IL_0388: mul + IL_0389: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_038e: starg.s a + IL_0390: ldarg.0 + IL_0391: stloc.0 + IL_0392: ldarg.1 + IL_0393: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0398: stloc.1 + IL_0399: ldloca.s V_0 + IL_039b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03a0: brtrue.s IL_03ad + + IL_03a2: ldloca.s V_2 + IL_03a4: initobj valuetype [mscorlib]System.Nullable`1 + IL_03aa: ldloc.2 + IL_03ab: br.s IL_03bb + + IL_03ad: ldloca.s V_0 + IL_03af: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03b4: ldloc.1 + IL_03b5: div + IL_03b6: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03bb: starg.s a + IL_03bd: ldarg.0 + IL_03be: stloc.0 + IL_03bf: ldarg.1 + IL_03c0: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_03c5: stloc.1 + IL_03c6: ldloca.s V_0 + IL_03c8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03cd: brtrue.s IL_03da + + IL_03cf: ldloca.s V_2 + IL_03d1: initobj valuetype [mscorlib]System.Nullable`1 + IL_03d7: ldloc.2 + IL_03d8: br.s IL_03e8 + + IL_03da: ldloca.s V_0 + IL_03dc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03e1: ldloc.1 + IL_03e2: rem + IL_03e3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03e8: starg.s a + IL_03ea: ldarg.0 + IL_03eb: stloc.0 + IL_03ec: ldarg.1 + IL_03ed: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_03f2: stloc.1 + IL_03f3: ldloca.s V_0 + IL_03f5: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03fa: brtrue.s IL_0407 + + IL_03fc: ldloca.s V_2 + IL_03fe: initobj valuetype [mscorlib]System.Nullable`1 + IL_0404: ldloc.2 + IL_0405: br.s IL_0415 + + IL_0407: ldloca.s V_0 + IL_0409: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_040e: ldloc.1 + IL_040f: and + IL_0410: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0415: starg.s a + IL_0417: ldarg.0 + IL_0418: stloc.0 + IL_0419: ldarg.1 + IL_041a: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_041f: stloc.1 + IL_0420: ldloca.s V_0 + IL_0422: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0427: brtrue.s IL_0434 + + IL_0429: ldloca.s V_2 + IL_042b: initobj valuetype [mscorlib]System.Nullable`1 + IL_0431: ldloc.2 + IL_0432: br.s IL_0442 + + IL_0434: ldloca.s V_0 + IL_0436: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_043b: ldloc.1 + IL_043c: or + IL_043d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0442: starg.s a + IL_0444: ldarg.0 + IL_0445: stloc.0 + IL_0446: ldarg.1 + IL_0447: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_044c: stloc.1 + IL_044d: ldloca.s V_0 + IL_044f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0454: brtrue.s IL_0461 + + IL_0456: ldloca.s V_2 + IL_0458: initobj valuetype [mscorlib]System.Nullable`1 + IL_045e: ldloc.2 + IL_045f: br.s IL_046f + + IL_0461: ldloca.s V_0 + IL_0463: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0468: ldloc.1 + IL_0469: xor + IL_046a: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_046f: starg.s a + IL_0471: ldarg.0 + IL_0472: stloc.0 + IL_0473: ldarg.1 + IL_0474: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0479: stloc.1 + IL_047a: ldloca.s V_0 + IL_047c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0481: brtrue.s IL_048e - IL_015c: ldloca.s V_0 - IL_015e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0163: ldloc.1 - IL_0164: mul - IL_0165: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_016a: box valuetype [mscorlib]System.Nullable`1 - IL_016f: call void [mscorlib]System.Console::WriteLine(object) - IL_0174: nop - IL_0175: ldarg.0 - IL_0176: stloc.0 - IL_0177: ldarg.1 - IL_0178: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_017d: stloc.1 - IL_017e: ldloca.s V_0 - IL_0180: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0185: brtrue.s IL_0192 - - IL_0187: ldloca.s V_2 - IL_0189: initobj valuetype [mscorlib]System.Nullable`1 - IL_018f: ldloc.2 - IL_0190: br.s IL_01a0 - - IL_0192: ldloca.s V_0 - IL_0194: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0199: ldloc.1 - IL_019a: div - IL_019b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01a0: box valuetype [mscorlib]System.Nullable`1 - IL_01a5: call void [mscorlib]System.Console::WriteLine(object) - IL_01aa: nop - IL_01ab: ldarg.0 - IL_01ac: stloc.0 - IL_01ad: ldarg.1 - IL_01ae: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_01b3: stloc.1 - IL_01b4: ldloca.s V_0 - IL_01b6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01bb: brtrue.s IL_01c8 - - IL_01bd: ldloca.s V_2 - IL_01bf: initobj valuetype [mscorlib]System.Nullable`1 - IL_01c5: ldloc.2 - IL_01c6: br.s IL_01d6 - - IL_01c8: ldloca.s V_0 - IL_01ca: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01cf: ldloc.1 - IL_01d0: rem - IL_01d1: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01d6: box valuetype [mscorlib]System.Nullable`1 - IL_01db: call void [mscorlib]System.Console::WriteLine(object) - IL_01e0: nop - IL_01e1: ldarg.0 - IL_01e2: stloc.0 - IL_01e3: ldarg.1 - IL_01e4: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_01e9: stloc.1 - IL_01ea: ldloca.s V_0 - IL_01ec: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01f1: brtrue.s IL_01fe - - IL_01f3: ldloca.s V_2 - IL_01f5: initobj valuetype [mscorlib]System.Nullable`1 - IL_01fb: ldloc.2 - IL_01fc: br.s IL_020c - - IL_01fe: ldloca.s V_0 - IL_0200: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0205: ldloc.1 - IL_0206: and - IL_0207: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_020c: box valuetype [mscorlib]System.Nullable`1 - IL_0211: call void [mscorlib]System.Console::WriteLine(object) - IL_0216: nop - IL_0217: ldarg.0 - IL_0218: stloc.0 - IL_0219: ldarg.1 - IL_021a: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_021f: stloc.1 - IL_0220: ldloca.s V_0 - IL_0222: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0227: brtrue.s IL_0234 - - IL_0229: ldloca.s V_2 - IL_022b: initobj valuetype [mscorlib]System.Nullable`1 - IL_0231: ldloc.2 - IL_0232: br.s IL_0242 - - IL_0234: ldloca.s V_0 - IL_0236: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_023b: ldloc.1 - IL_023c: or - IL_023d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0242: box valuetype [mscorlib]System.Nullable`1 - IL_0247: call void [mscorlib]System.Console::WriteLine(object) - IL_024c: nop - IL_024d: ldarg.0 - IL_024e: stloc.0 - IL_024f: ldarg.1 - IL_0250: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0255: stloc.1 - IL_0256: ldloca.s V_0 - IL_0258: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_025d: brtrue.s IL_026a - - IL_025f: ldloca.s V_2 - IL_0261: initobj valuetype [mscorlib]System.Nullable`1 - IL_0267: ldloc.2 - IL_0268: br.s IL_0278 - - IL_026a: ldloca.s V_0 - IL_026c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0271: ldloc.1 - IL_0272: xor - IL_0273: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0278: box valuetype [mscorlib]System.Nullable`1 - IL_027d: call void [mscorlib]System.Console::WriteLine(object) - IL_0282: nop - IL_0283: ldarg.0 - IL_0284: stloc.0 - IL_0285: ldarg.1 - IL_0286: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_028b: stloc.1 - IL_028c: ldloca.s V_0 - IL_028e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0293: brtrue.s IL_02a0 - - IL_0295: ldloca.s V_2 - IL_0297: initobj valuetype [mscorlib]System.Nullable`1 - IL_029d: ldloc.2 - IL_029e: br.s IL_02b1 - - IL_02a0: ldloca.s V_0 - IL_02a2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02a7: ldloc.1 - IL_02a8: ldc.i4.s 31 - IL_02aa: and - IL_02ab: shl - IL_02ac: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02b1: box valuetype [mscorlib]System.Nullable`1 - IL_02b6: call void [mscorlib]System.Console::WriteLine(object) - IL_02bb: nop - IL_02bc: ldarg.0 - IL_02bd: stloc.0 - IL_02be: ldarg.1 - IL_02bf: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_02c4: stloc.1 - IL_02c5: ldloca.s V_0 - IL_02c7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02cc: brtrue.s IL_02d9 - - IL_02ce: ldloca.s V_2 - IL_02d0: initobj valuetype [mscorlib]System.Nullable`1 - IL_02d6: ldloc.2 - IL_02d7: br.s IL_02ea - - IL_02d9: ldloca.s V_0 - IL_02db: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02e0: ldloc.1 - IL_02e1: ldc.i4.s 31 - IL_02e3: and - IL_02e4: shr - IL_02e5: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02ea: box valuetype [mscorlib]System.Nullable`1 - IL_02ef: call void [mscorlib]System.Console::WriteLine(object) - IL_02f4: nop - IL_02f5: ldarg.0 - IL_02f6: stloc.0 - IL_02f7: ldloca.s V_0 - IL_02f9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02fe: brtrue.s IL_0308 - - IL_0300: ldarg.1 - IL_0301: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0306: br.s IL_030f - - IL_0308: ldloca.s V_0 - IL_030a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_030f: call void [mscorlib]System.Console::WriteLine(int32) - IL_0314: nop - IL_0315: ldarg.0 - IL_0316: stloc.0 - IL_0317: ldarg.1 - IL_0318: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_031d: stloc.1 - IL_031e: ldloca.s V_0 - IL_0320: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0325: brtrue.s IL_0332 - - IL_0327: ldloca.s V_2 - IL_0329: initobj valuetype [mscorlib]System.Nullable`1 - IL_032f: ldloc.2 - IL_0330: br.s IL_0340 - - IL_0332: ldloca.s V_0 - IL_0334: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0339: ldloc.1 - IL_033a: add - IL_033b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0340: starg.s a - IL_0342: ldarg.0 - IL_0343: stloc.0 - IL_0344: ldarg.1 - IL_0345: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_034a: stloc.1 - IL_034b: ldloca.s V_0 - IL_034d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0352: brtrue.s IL_035f - - IL_0354: ldloca.s V_2 - IL_0356: initobj valuetype [mscorlib]System.Nullable`1 - IL_035c: ldloc.2 - IL_035d: br.s IL_036d - - IL_035f: ldloca.s V_0 - IL_0361: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0366: ldloc.1 - IL_0367: sub - IL_0368: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_036d: starg.s a - IL_036f: ldarg.0 - IL_0370: stloc.0 - IL_0371: ldarg.1 - IL_0372: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0377: stloc.1 - IL_0378: ldloca.s V_0 - IL_037a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_037f: brtrue.s IL_038c - - IL_0381: ldloca.s V_2 - IL_0383: initobj valuetype [mscorlib]System.Nullable`1 - IL_0389: ldloc.2 - IL_038a: br.s IL_039a - - IL_038c: ldloca.s V_0 - IL_038e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0393: ldloc.1 - IL_0394: mul - IL_0395: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_039a: starg.s a - IL_039c: ldarg.0 - IL_039d: stloc.0 - IL_039e: ldarg.1 - IL_039f: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_03a4: stloc.1 - IL_03a5: ldloca.s V_0 - IL_03a7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03ac: brtrue.s IL_03b9 - - IL_03ae: ldloca.s V_2 - IL_03b0: initobj valuetype [mscorlib]System.Nullable`1 - IL_03b6: ldloc.2 - IL_03b7: br.s IL_03c7 - - IL_03b9: ldloca.s V_0 - IL_03bb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03c0: ldloc.1 - IL_03c1: div - IL_03c2: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03c7: starg.s a - IL_03c9: ldarg.0 - IL_03ca: stloc.0 - IL_03cb: ldarg.1 - IL_03cc: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_03d1: stloc.1 - IL_03d2: ldloca.s V_0 - IL_03d4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03d9: brtrue.s IL_03e6 - - IL_03db: ldloca.s V_2 - IL_03dd: initobj valuetype [mscorlib]System.Nullable`1 - IL_03e3: ldloc.2 - IL_03e4: br.s IL_03f4 - - IL_03e6: ldloca.s V_0 - IL_03e8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03ed: ldloc.1 - IL_03ee: rem - IL_03ef: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03f4: starg.s a - IL_03f6: ldarg.0 - IL_03f7: stloc.0 - IL_03f8: ldarg.1 - IL_03f9: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_03fe: stloc.1 - IL_03ff: ldloca.s V_0 - IL_0401: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0406: brtrue.s IL_0413 - - IL_0408: ldloca.s V_2 - IL_040a: initobj valuetype [mscorlib]System.Nullable`1 - IL_0410: ldloc.2 - IL_0411: br.s IL_0421 - - IL_0413: ldloca.s V_0 - IL_0415: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_041a: ldloc.1 - IL_041b: and - IL_041c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0421: starg.s a - IL_0423: ldarg.0 - IL_0424: stloc.0 - IL_0425: ldarg.1 - IL_0426: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_042b: stloc.1 - IL_042c: ldloca.s V_0 - IL_042e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0433: brtrue.s IL_0440 - - IL_0435: ldloca.s V_2 - IL_0437: initobj valuetype [mscorlib]System.Nullable`1 - IL_043d: ldloc.2 - IL_043e: br.s IL_044e - - IL_0440: ldloca.s V_0 - IL_0442: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0447: ldloc.1 - IL_0448: or - IL_0449: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_044e: starg.s a - IL_0450: ldarg.0 - IL_0451: stloc.0 - IL_0452: ldarg.1 - IL_0453: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0458: stloc.1 - IL_0459: ldloca.s V_0 - IL_045b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0460: brtrue.s IL_046d - - IL_0462: ldloca.s V_2 - IL_0464: initobj valuetype [mscorlib]System.Nullable`1 - IL_046a: ldloc.2 - IL_046b: br.s IL_047b - - IL_046d: ldloca.s V_0 - IL_046f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0474: ldloc.1 - IL_0475: xor - IL_0476: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_047b: starg.s a - IL_047d: ldarg.0 - IL_047e: stloc.0 - IL_047f: ldarg.1 - IL_0480: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_0485: stloc.1 - IL_0486: ldloca.s V_0 - IL_0488: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_048d: brtrue.s IL_049a - - IL_048f: ldloca.s V_2 - IL_0491: initobj valuetype [mscorlib]System.Nullable`1 - IL_0497: ldloc.2 - IL_0498: br.s IL_04ab - - IL_049a: ldloca.s V_0 - IL_049c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04a1: ldloc.1 - IL_04a2: ldc.i4.s 31 - IL_04a4: and - IL_04a5: shl - IL_04a6: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_04ab: starg.s a - IL_04ad: ldarg.0 - IL_04ae: stloc.0 - IL_04af: ldarg.1 - IL_04b0: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_04b5: stloc.1 - IL_04b6: ldloca.s V_0 - IL_04b8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04bd: brtrue.s IL_04ca - - IL_04bf: ldloca.s V_2 - IL_04c1: initobj valuetype [mscorlib]System.Nullable`1 - IL_04c7: ldloc.2 - IL_04c8: br.s IL_04db + IL_0483: ldloca.s V_2 + IL_0485: initobj valuetype [mscorlib]System.Nullable`1 + IL_048b: ldloc.2 + IL_048c: br.s IL_049f - IL_04ca: ldloca.s V_0 - IL_04cc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_04d1: ldloc.1 - IL_04d2: ldc.i4.s 31 - IL_04d4: and - IL_04d5: shr - IL_04d6: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_04db: starg.s a - IL_04dd: ldarg.1 - IL_04de: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_04e3: stloc.1 - IL_04e4: ldarg.0 - IL_04e5: stloc.0 - IL_04e6: ldloca.s V_0 - IL_04e8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_04ed: brtrue.s IL_04fa - - IL_04ef: ldloca.s V_2 - IL_04f1: initobj valuetype [mscorlib]System.Nullable`1 - IL_04f7: ldloc.2 - IL_04f8: br.s IL_0508 - - IL_04fa: ldloc.1 - IL_04fb: ldloca.s V_0 - IL_04fd: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0502: add - IL_0503: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0508: box valuetype [mscorlib]System.Nullable`1 - IL_050d: call void [mscorlib]System.Console::WriteLine(object) - IL_0512: nop - IL_0513: ldc.i4.0 - IL_0514: newarr valuetype [mscorlib]System.Nullable`1 - IL_0519: ldc.i4.0 - IL_051a: ldelema valuetype [mscorlib]System.Nullable`1 - IL_051f: dup - IL_0520: ldobj valuetype [mscorlib]System.Nullable`1 - IL_0525: stloc.0 - IL_0526: ldarg.1 - IL_0527: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() - IL_052c: stloc.1 - IL_052d: ldloca.s V_0 - IL_052f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0534: brtrue.s IL_0541 - - IL_0536: ldloca.s V_2 - IL_0538: initobj valuetype [mscorlib]System.Nullable`1 - IL_053e: ldloc.2 - IL_053f: br.s IL_054f - - IL_0541: ldloca.s V_0 - IL_0543: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0548: ldloc.1 - IL_0549: add - IL_054a: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_054f: stobj valuetype [mscorlib]System.Nullable`1 - IL_0554: ret + IL_048e: ldloca.s V_0 + IL_0490: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0495: ldloc.1 + IL_0496: ldc.i4.s 31 + IL_0498: and + IL_0499: shl + IL_049a: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_049f: starg.s a + IL_04a1: ldarg.0 + IL_04a2: stloc.0 + IL_04a3: ldarg.1 + IL_04a4: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_04a9: stloc.1 + IL_04aa: ldloca.s V_0 + IL_04ac: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_04b1: brtrue.s IL_04be + + IL_04b3: ldloca.s V_2 + IL_04b5: initobj valuetype [mscorlib]System.Nullable`1 + IL_04bb: ldloc.2 + IL_04bc: br.s IL_04cf + + IL_04be: ldloca.s V_0 + IL_04c0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_04c5: ldloc.1 + IL_04c6: ldc.i4.s 31 + IL_04c8: and + IL_04c9: shr + IL_04ca: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_04cf: starg.s a + IL_04d1: ldarg.1 + IL_04d2: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_04d7: stloc.1 + IL_04d8: ldarg.0 + IL_04d9: stloc.0 + IL_04da: ldloca.s V_0 + IL_04dc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_04e1: brtrue.s IL_04ee + + IL_04e3: ldloca.s V_2 + IL_04e5: initobj valuetype [mscorlib]System.Nullable`1 + IL_04eb: ldloc.2 + IL_04ec: br.s IL_04fc + + IL_04ee: ldloc.1 + IL_04ef: ldloca.s V_0 + IL_04f1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_04f6: add + IL_04f7: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_04fc: box valuetype [mscorlib]System.Nullable`1 + IL_0501: call void [mscorlib]System.Console::WriteLine(object) + IL_0506: nop + IL_0507: ldc.i4.0 + IL_0508: newarr valuetype [mscorlib]System.Nullable`1 + IL_050d: ldc.i4.0 + IL_050e: ldelema valuetype [mscorlib]System.Nullable`1 + IL_0513: dup + IL_0514: ldobj valuetype [mscorlib]System.Nullable`1 + IL_0519: stloc.0 + IL_051a: ldarg.1 + IL_051b: callvirt instance !0 class [mscorlib]System.Func`1::Invoke() + IL_0520: stloc.1 + IL_0521: ldloca.s V_0 + IL_0523: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0528: brtrue.s IL_0535 + + IL_052a: ldloca.s V_2 + IL_052c: initobj valuetype [mscorlib]System.Nullable`1 + IL_0532: ldloc.2 + IL_0533: br.s IL_0543 + + IL_0535: ldloca.s V_0 + IL_0537: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_053c: ldloc.1 + IL_053d: add + IL_053e: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0543: stobj valuetype [mscorlib]System.Nullable`1 + IL_0548: ret } // end of method LiftedOperators::IntValueComplex .method public hidebysig static void IntValueConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 1106 (0x452) + // Code size 1094 (0x446) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int32 V_1, @@ -2819,493 +2670,475 @@ IL_0005: ldloca.s V_0 IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloc.1 - IL_000d: beq.s IL_0012 - - IL_000f: ldc.i4.0 - IL_0010: br.s IL_0019 - - IL_0012: ldloca.s V_0 - IL_0014: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0019: call void [mscorlib]System.Console::WriteLine(bool) - IL_001e: nop - IL_001f: ldarg.0 - IL_0020: stloc.0 - IL_0021: ldc.i4.2 - IL_0022: stloc.1 - IL_0023: ldloca.s V_0 - IL_0025: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_002a: ldloc.1 - IL_002b: beq.s IL_0030 - - IL_002d: ldc.i4.1 - IL_002e: br.s IL_003a - - IL_0030: ldloca.s V_0 - IL_0032: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0037: ldc.i4.0 - IL_0038: ceq - IL_003a: call void [mscorlib]System.Console::WriteLine(bool) - IL_003f: nop - IL_0040: ldarg.0 - IL_0041: stloc.0 - IL_0042: ldc.i4.2 - IL_0043: stloc.1 - IL_0044: ldloca.s V_0 - IL_0046: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_004b: ldloc.1 - IL_004c: bgt.s IL_0051 - - IL_004e: ldc.i4.0 - IL_004f: br.s IL_0058 - - IL_0051: ldloca.s V_0 - IL_0053: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0058: call void [mscorlib]System.Console::WriteLine(bool) - IL_005d: nop - IL_005e: ldc.i4.2 - IL_005f: ldarg.0 - IL_0060: stloc.0 - IL_0061: ldloca.s V_0 - IL_0063: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0068: beq.s IL_006d - - IL_006a: ldc.i4.0 - IL_006b: br.s IL_0074 - - IL_006d: ldloca.s V_0 - IL_006f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0074: call void [mscorlib]System.Console::WriteLine(bool) - IL_0079: nop - IL_007a: ldc.i4.2 - IL_007b: ldarg.0 - IL_007c: stloc.0 - IL_007d: ldloca.s V_0 - IL_007f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0084: beq.s IL_0089 - - IL_0086: ldc.i4.1 - IL_0087: br.s IL_0093 - - IL_0089: ldloca.s V_0 - IL_008b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0090: ldc.i4.0 - IL_0091: ceq - IL_0093: call void [mscorlib]System.Console::WriteLine(bool) - IL_0098: nop - IL_0099: ldc.i4.2 - IL_009a: ldarg.0 - IL_009b: stloc.0 - IL_009c: ldloca.s V_0 - IL_009e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a3: bgt.s IL_00a8 - - IL_00a5: ldc.i4.0 - IL_00a6: br.s IL_00af - - IL_00a8: ldloca.s V_0 - IL_00aa: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00af: call void [mscorlib]System.Console::WriteLine(bool) - IL_00b4: nop - IL_00b5: ldarg.0 - IL_00b6: stloc.0 - IL_00b7: ldloca.s V_0 - IL_00b9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00be: brtrue.s IL_00cb - - IL_00c0: ldloca.s V_2 - IL_00c2: initobj valuetype [mscorlib]System.Nullable`1 - IL_00c8: ldloc.2 - IL_00c9: br.s IL_00d9 + IL_000d: ceq + IL_000f: ldloca.s V_0 + IL_0011: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0016: and + IL_0017: call void [mscorlib]System.Console::WriteLine(bool) + IL_001c: nop + IL_001d: ldarg.0 + IL_001e: stloc.0 + IL_001f: ldc.i4.2 + IL_0020: stloc.1 + IL_0021: ldloca.s V_0 + IL_0023: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0028: ldloc.1 + IL_0029: ceq + IL_002b: ldloca.s V_0 + IL_002d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0032: and + IL_0033: ldc.i4.0 + IL_0034: ceq + IL_0036: call void [mscorlib]System.Console::WriteLine(bool) + IL_003b: nop + IL_003c: ldarg.0 + IL_003d: stloc.0 + IL_003e: ldc.i4.2 + IL_003f: stloc.1 + IL_0040: ldloca.s V_0 + IL_0042: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0047: ldloc.1 + IL_0048: cgt + IL_004a: ldloca.s V_0 + IL_004c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0051: and + IL_0052: call void [mscorlib]System.Console::WriteLine(bool) + IL_0057: nop + IL_0058: ldc.i4.2 + IL_0059: ldarg.0 + IL_005a: stloc.0 + IL_005b: ldloca.s V_0 + IL_005d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0062: ceq + IL_0064: ldloca.s V_0 + IL_0066: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_006b: and + IL_006c: call void [mscorlib]System.Console::WriteLine(bool) + IL_0071: nop + IL_0072: ldc.i4.2 + IL_0073: ldarg.0 + IL_0074: stloc.0 + IL_0075: ldloca.s V_0 + IL_0077: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_007c: ceq + IL_007e: ldloca.s V_0 + IL_0080: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0085: and + IL_0086: ldc.i4.0 + IL_0087: ceq + IL_0089: call void [mscorlib]System.Console::WriteLine(bool) + IL_008e: nop + IL_008f: ldc.i4.2 + IL_0090: ldarg.0 + IL_0091: stloc.0 + IL_0092: ldloca.s V_0 + IL_0094: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0099: cgt + IL_009b: ldloca.s V_0 + IL_009d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00a2: and + IL_00a3: call void [mscorlib]System.Console::WriteLine(bool) + IL_00a8: nop + IL_00a9: ldarg.0 + IL_00aa: stloc.0 + IL_00ab: ldloca.s V_0 + IL_00ad: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00b2: brtrue.s IL_00bf + + IL_00b4: ldloca.s V_2 + IL_00b6: initobj valuetype [mscorlib]System.Nullable`1 + IL_00bc: ldloc.2 + IL_00bd: br.s IL_00cd + + IL_00bf: ldloca.s V_0 + IL_00c1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00c6: ldc.i4.2 + IL_00c7: add + IL_00c8: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_00cd: box valuetype [mscorlib]System.Nullable`1 + IL_00d2: call void [mscorlib]System.Console::WriteLine(object) + IL_00d7: nop + IL_00d8: ldarg.0 + IL_00d9: stloc.0 + IL_00da: ldloca.s V_0 + IL_00dc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00e1: brtrue.s IL_00ee - IL_00cb: ldloca.s V_0 - IL_00cd: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00d2: ldc.i4.2 - IL_00d3: add - IL_00d4: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_00d9: box valuetype [mscorlib]System.Nullable`1 - IL_00de: call void [mscorlib]System.Console::WriteLine(object) - IL_00e3: nop - IL_00e4: ldarg.0 - IL_00e5: stloc.0 - IL_00e6: ldloca.s V_0 - IL_00e8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00ed: brtrue.s IL_00fa + IL_00e3: ldloca.s V_2 + IL_00e5: initobj valuetype [mscorlib]System.Nullable`1 + IL_00eb: ldloc.2 + IL_00ec: br.s IL_00fc - IL_00ef: ldloca.s V_2 - IL_00f1: initobj valuetype [mscorlib]System.Nullable`1 - IL_00f7: ldloc.2 - IL_00f8: br.s IL_0108 + IL_00ee: ldloca.s V_0 + IL_00f0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00f5: ldc.i4.2 + IL_00f6: sub + IL_00f7: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_00fc: box valuetype [mscorlib]System.Nullable`1 + IL_0101: call void [mscorlib]System.Console::WriteLine(object) + IL_0106: nop + IL_0107: ldarg.0 + IL_0108: stloc.0 + IL_0109: ldloca.s V_0 + IL_010b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0110: brtrue.s IL_011d + + IL_0112: ldloca.s V_2 + IL_0114: initobj valuetype [mscorlib]System.Nullable`1 + IL_011a: ldloc.2 + IL_011b: br.s IL_012b + + IL_011d: ldloca.s V_0 + IL_011f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0124: ldc.i4.2 + IL_0125: mul + IL_0126: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_012b: box valuetype [mscorlib]System.Nullable`1 + IL_0130: call void [mscorlib]System.Console::WriteLine(object) + IL_0135: nop + IL_0136: ldarg.0 + IL_0137: stloc.0 + IL_0138: ldloca.s V_0 + IL_013a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_013f: brtrue.s IL_014c + + IL_0141: ldloca.s V_2 + IL_0143: initobj valuetype [mscorlib]System.Nullable`1 + IL_0149: ldloc.2 + IL_014a: br.s IL_015a + + IL_014c: ldloca.s V_0 + IL_014e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0153: ldc.i4.2 + IL_0154: div + IL_0155: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_015a: box valuetype [mscorlib]System.Nullable`1 + IL_015f: call void [mscorlib]System.Console::WriteLine(object) + IL_0164: nop + IL_0165: ldarg.0 + IL_0166: stloc.0 + IL_0167: ldloca.s V_0 + IL_0169: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_016e: brtrue.s IL_017b + + IL_0170: ldloca.s V_2 + IL_0172: initobj valuetype [mscorlib]System.Nullable`1 + IL_0178: ldloc.2 + IL_0179: br.s IL_0189 + + IL_017b: ldloca.s V_0 + IL_017d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0182: ldc.i4.2 + IL_0183: rem + IL_0184: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0189: box valuetype [mscorlib]System.Nullable`1 + IL_018e: call void [mscorlib]System.Console::WriteLine(object) + IL_0193: nop + IL_0194: ldarg.0 + IL_0195: stloc.0 + IL_0196: ldloca.s V_0 + IL_0198: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_019d: brtrue.s IL_01aa - IL_00fa: ldloca.s V_0 - IL_00fc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0101: ldc.i4.2 - IL_0102: sub - IL_0103: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0108: box valuetype [mscorlib]System.Nullable`1 - IL_010d: call void [mscorlib]System.Console::WriteLine(object) - IL_0112: nop - IL_0113: ldarg.0 - IL_0114: stloc.0 - IL_0115: ldloca.s V_0 - IL_0117: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_011c: brtrue.s IL_0129 - - IL_011e: ldloca.s V_2 - IL_0120: initobj valuetype [mscorlib]System.Nullable`1 - IL_0126: ldloc.2 - IL_0127: br.s IL_0137 - - IL_0129: ldloca.s V_0 - IL_012b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0130: ldc.i4.2 - IL_0131: mul - IL_0132: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0137: box valuetype [mscorlib]System.Nullable`1 - IL_013c: call void [mscorlib]System.Console::WriteLine(object) - IL_0141: nop - IL_0142: ldarg.0 - IL_0143: stloc.0 - IL_0144: ldloca.s V_0 - IL_0146: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_014b: brtrue.s IL_0158 - - IL_014d: ldloca.s V_2 - IL_014f: initobj valuetype [mscorlib]System.Nullable`1 - IL_0155: ldloc.2 - IL_0156: br.s IL_0166 - - IL_0158: ldloca.s V_0 - IL_015a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_015f: ldc.i4.2 - IL_0160: div - IL_0161: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0166: box valuetype [mscorlib]System.Nullable`1 - IL_016b: call void [mscorlib]System.Console::WriteLine(object) - IL_0170: nop - IL_0171: ldarg.0 - IL_0172: stloc.0 - IL_0173: ldloca.s V_0 - IL_0175: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_017a: brtrue.s IL_0187 + IL_019f: ldloca.s V_2 + IL_01a1: initobj valuetype [mscorlib]System.Nullable`1 + IL_01a7: ldloc.2 + IL_01a8: br.s IL_01b8 - IL_017c: ldloca.s V_2 - IL_017e: initobj valuetype [mscorlib]System.Nullable`1 - IL_0184: ldloc.2 - IL_0185: br.s IL_0195 - - IL_0187: ldloca.s V_0 - IL_0189: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_018e: ldc.i4.2 - IL_018f: rem - IL_0190: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0195: box valuetype [mscorlib]System.Nullable`1 - IL_019a: call void [mscorlib]System.Console::WriteLine(object) - IL_019f: nop - IL_01a0: ldarg.0 - IL_01a1: stloc.0 - IL_01a2: ldloca.s V_0 - IL_01a4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01a9: brtrue.s IL_01b6 - - IL_01ab: ldloca.s V_2 - IL_01ad: initobj valuetype [mscorlib]System.Nullable`1 - IL_01b3: ldloc.2 - IL_01b4: br.s IL_01c4 - - IL_01b6: ldloca.s V_0 - IL_01b8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01bd: ldc.i4.2 - IL_01be: and - IL_01bf: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01c4: box valuetype [mscorlib]System.Nullable`1 - IL_01c9: call void [mscorlib]System.Console::WriteLine(object) - IL_01ce: nop - IL_01cf: ldarg.0 - IL_01d0: stloc.0 - IL_01d1: ldloca.s V_0 - IL_01d3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01d8: brtrue.s IL_01e5 - - IL_01da: ldloca.s V_2 - IL_01dc: initobj valuetype [mscorlib]System.Nullable`1 - IL_01e2: ldloc.2 - IL_01e3: br.s IL_01f3 - - IL_01e5: ldloca.s V_0 - IL_01e7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01ec: ldc.i4.2 - IL_01ed: or - IL_01ee: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01f3: box valuetype [mscorlib]System.Nullable`1 - IL_01f8: call void [mscorlib]System.Console::WriteLine(object) - IL_01fd: nop - IL_01fe: ldarg.0 - IL_01ff: stloc.0 - IL_0200: ldloca.s V_0 - IL_0202: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0207: brtrue.s IL_0214 - - IL_0209: ldloca.s V_2 - IL_020b: initobj valuetype [mscorlib]System.Nullable`1 - IL_0211: ldloc.2 - IL_0212: br.s IL_0222 + IL_01aa: ldloca.s V_0 + IL_01ac: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01b1: ldc.i4.2 + IL_01b2: and + IL_01b3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01b8: box valuetype [mscorlib]System.Nullable`1 + IL_01bd: call void [mscorlib]System.Console::WriteLine(object) + IL_01c2: nop + IL_01c3: ldarg.0 + IL_01c4: stloc.0 + IL_01c5: ldloca.s V_0 + IL_01c7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01cc: brtrue.s IL_01d9 + + IL_01ce: ldloca.s V_2 + IL_01d0: initobj valuetype [mscorlib]System.Nullable`1 + IL_01d6: ldloc.2 + IL_01d7: br.s IL_01e7 + + IL_01d9: ldloca.s V_0 + IL_01db: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01e0: ldc.i4.2 + IL_01e1: or + IL_01e2: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01e7: box valuetype [mscorlib]System.Nullable`1 + IL_01ec: call void [mscorlib]System.Console::WriteLine(object) + IL_01f1: nop + IL_01f2: ldarg.0 + IL_01f3: stloc.0 + IL_01f4: ldloca.s V_0 + IL_01f6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01fb: brtrue.s IL_0208 + + IL_01fd: ldloca.s V_2 + IL_01ff: initobj valuetype [mscorlib]System.Nullable`1 + IL_0205: ldloc.2 + IL_0206: br.s IL_0216 + + IL_0208: ldloca.s V_0 + IL_020a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_020f: ldc.i4.2 + IL_0210: xor + IL_0211: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0216: box valuetype [mscorlib]System.Nullable`1 + IL_021b: call void [mscorlib]System.Console::WriteLine(object) + IL_0220: nop + IL_0221: ldarg.0 + IL_0222: stloc.0 + IL_0223: ldloca.s V_0 + IL_0225: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_022a: brtrue.s IL_0237 + + IL_022c: ldloca.s V_2 + IL_022e: initobj valuetype [mscorlib]System.Nullable`1 + IL_0234: ldloc.2 + IL_0235: br.s IL_0245 + + IL_0237: ldloca.s V_0 + IL_0239: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_023e: ldc.i4.2 + IL_023f: shl + IL_0240: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0245: box valuetype [mscorlib]System.Nullable`1 + IL_024a: call void [mscorlib]System.Console::WriteLine(object) + IL_024f: nop + IL_0250: ldarg.0 + IL_0251: stloc.0 + IL_0252: ldloca.s V_0 + IL_0254: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0259: brtrue.s IL_0266 + + IL_025b: ldloca.s V_2 + IL_025d: initobj valuetype [mscorlib]System.Nullable`1 + IL_0263: ldloc.2 + IL_0264: br.s IL_0274 + + IL_0266: ldloca.s V_0 + IL_0268: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_026d: ldc.i4.2 + IL_026e: shr + IL_026f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0274: box valuetype [mscorlib]System.Nullable`1 + IL_0279: call void [mscorlib]System.Console::WriteLine(object) + IL_027e: nop + IL_027f: ldarg.0 + IL_0280: stloc.0 + IL_0281: ldloca.s V_0 + IL_0283: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0288: brtrue.s IL_028d + + IL_028a: ldc.i4.2 + IL_028b: br.s IL_0294 - IL_0214: ldloca.s V_0 - IL_0216: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_021b: ldc.i4.2 - IL_021c: xor - IL_021d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0222: box valuetype [mscorlib]System.Nullable`1 - IL_0227: call void [mscorlib]System.Console::WriteLine(object) - IL_022c: nop - IL_022d: ldarg.0 - IL_022e: stloc.0 - IL_022f: ldloca.s V_0 - IL_0231: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0236: brtrue.s IL_0243 - - IL_0238: ldloca.s V_2 - IL_023a: initobj valuetype [mscorlib]System.Nullable`1 - IL_0240: ldloc.2 - IL_0241: br.s IL_0251 - - IL_0243: ldloca.s V_0 - IL_0245: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_024a: ldc.i4.2 - IL_024b: shl - IL_024c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0251: box valuetype [mscorlib]System.Nullable`1 - IL_0256: call void [mscorlib]System.Console::WriteLine(object) - IL_025b: nop - IL_025c: ldarg.0 - IL_025d: stloc.0 - IL_025e: ldloca.s V_0 - IL_0260: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0265: brtrue.s IL_0272 - - IL_0267: ldloca.s V_2 - IL_0269: initobj valuetype [mscorlib]System.Nullable`1 - IL_026f: ldloc.2 - IL_0270: br.s IL_0280 - - IL_0272: ldloca.s V_0 - IL_0274: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0279: ldc.i4.2 - IL_027a: shr - IL_027b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0280: box valuetype [mscorlib]System.Nullable`1 - IL_0285: call void [mscorlib]System.Console::WriteLine(object) - IL_028a: nop - IL_028b: ldarg.0 - IL_028c: stloc.0 IL_028d: ldloca.s V_0 - IL_028f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0294: brtrue.s IL_0299 - - IL_0296: ldc.i4.2 - IL_0297: br.s IL_02a0 - - IL_0299: ldloca.s V_0 - IL_029b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02a0: call void [mscorlib]System.Console::WriteLine(int32) - IL_02a5: nop - IL_02a6: ldarg.0 - IL_02a7: stloc.0 - IL_02a8: ldloca.s V_0 - IL_02aa: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02af: brtrue.s IL_02bc - - IL_02b1: ldloca.s V_2 - IL_02b3: initobj valuetype [mscorlib]System.Nullable`1 - IL_02b9: ldloc.2 - IL_02ba: br.s IL_02ca - - IL_02bc: ldloca.s V_0 - IL_02be: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02c3: ldc.i4.2 - IL_02c4: add - IL_02c5: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02ca: starg.s a - IL_02cc: ldarg.0 - IL_02cd: stloc.0 - IL_02ce: ldloca.s V_0 - IL_02d0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02d5: brtrue.s IL_02e2 + IL_028f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0294: call void [mscorlib]System.Console::WriteLine(int32) + IL_0299: nop + IL_029a: ldarg.0 + IL_029b: stloc.0 + IL_029c: ldloca.s V_0 + IL_029e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02a3: brtrue.s IL_02b0 + + IL_02a5: ldloca.s V_2 + IL_02a7: initobj valuetype [mscorlib]System.Nullable`1 + IL_02ad: ldloc.2 + IL_02ae: br.s IL_02be + + IL_02b0: ldloca.s V_0 + IL_02b2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02b7: ldc.i4.2 + IL_02b8: add + IL_02b9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02be: starg.s a + IL_02c0: ldarg.0 + IL_02c1: stloc.0 + IL_02c2: ldloca.s V_0 + IL_02c4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02c9: brtrue.s IL_02d6 + + IL_02cb: ldloca.s V_2 + IL_02cd: initobj valuetype [mscorlib]System.Nullable`1 + IL_02d3: ldloc.2 + IL_02d4: br.s IL_02e4 + + IL_02d6: ldloca.s V_0 + IL_02d8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02dd: ldc.i4.2 + IL_02de: sub + IL_02df: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02e4: starg.s a + IL_02e6: ldarg.0 + IL_02e7: stloc.0 + IL_02e8: ldloca.s V_0 + IL_02ea: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02ef: brtrue.s IL_02fc + + IL_02f1: ldloca.s V_2 + IL_02f3: initobj valuetype [mscorlib]System.Nullable`1 + IL_02f9: ldloc.2 + IL_02fa: br.s IL_030a + + IL_02fc: ldloca.s V_0 + IL_02fe: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0303: ldc.i4.2 + IL_0304: mul + IL_0305: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_030a: starg.s a + IL_030c: ldarg.0 + IL_030d: stloc.0 + IL_030e: ldloca.s V_0 + IL_0310: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0315: brtrue.s IL_0322 + + IL_0317: ldloca.s V_2 + IL_0319: initobj valuetype [mscorlib]System.Nullable`1 + IL_031f: ldloc.2 + IL_0320: br.s IL_0330 + + IL_0322: ldloca.s V_0 + IL_0324: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0329: ldc.i4.2 + IL_032a: div + IL_032b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0330: starg.s a + IL_0332: ldarg.0 + IL_0333: stloc.0 + IL_0334: ldloca.s V_0 + IL_0336: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_033b: brtrue.s IL_0348 + + IL_033d: ldloca.s V_2 + IL_033f: initobj valuetype [mscorlib]System.Nullable`1 + IL_0345: ldloc.2 + IL_0346: br.s IL_0356 + + IL_0348: ldloca.s V_0 + IL_034a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_034f: ldc.i4.2 + IL_0350: rem + IL_0351: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0356: starg.s a + IL_0358: ldarg.0 + IL_0359: stloc.0 + IL_035a: ldloca.s V_0 + IL_035c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0361: brtrue.s IL_036e + + IL_0363: ldloca.s V_2 + IL_0365: initobj valuetype [mscorlib]System.Nullable`1 + IL_036b: ldloc.2 + IL_036c: br.s IL_037c + + IL_036e: ldloca.s V_0 + IL_0370: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0375: ldc.i4.2 + IL_0376: and + IL_0377: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_037c: starg.s a + IL_037e: ldarg.0 + IL_037f: stloc.0 + IL_0380: ldloca.s V_0 + IL_0382: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0387: brtrue.s IL_0394 - IL_02d7: ldloca.s V_2 - IL_02d9: initobj valuetype [mscorlib]System.Nullable`1 - IL_02df: ldloc.2 - IL_02e0: br.s IL_02f0 - - IL_02e2: ldloca.s V_0 - IL_02e4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02e9: ldc.i4.2 - IL_02ea: sub - IL_02eb: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02f0: starg.s a - IL_02f2: ldarg.0 - IL_02f3: stloc.0 - IL_02f4: ldloca.s V_0 - IL_02f6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02fb: brtrue.s IL_0308 - - IL_02fd: ldloca.s V_2 - IL_02ff: initobj valuetype [mscorlib]System.Nullable`1 - IL_0305: ldloc.2 - IL_0306: br.s IL_0316 - - IL_0308: ldloca.s V_0 - IL_030a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_030f: ldc.i4.2 - IL_0310: mul - IL_0311: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0316: starg.s a - IL_0318: ldarg.0 - IL_0319: stloc.0 - IL_031a: ldloca.s V_0 - IL_031c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0321: brtrue.s IL_032e - - IL_0323: ldloca.s V_2 - IL_0325: initobj valuetype [mscorlib]System.Nullable`1 - IL_032b: ldloc.2 - IL_032c: br.s IL_033c - - IL_032e: ldloca.s V_0 - IL_0330: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0335: ldc.i4.2 - IL_0336: div - IL_0337: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_033c: starg.s a - IL_033e: ldarg.0 - IL_033f: stloc.0 - IL_0340: ldloca.s V_0 - IL_0342: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0347: brtrue.s IL_0354 - - IL_0349: ldloca.s V_2 - IL_034b: initobj valuetype [mscorlib]System.Nullable`1 - IL_0351: ldloc.2 - IL_0352: br.s IL_0362 - - IL_0354: ldloca.s V_0 - IL_0356: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_035b: ldc.i4.2 - IL_035c: rem - IL_035d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0362: starg.s a - IL_0364: ldarg.0 - IL_0365: stloc.0 - IL_0366: ldloca.s V_0 - IL_0368: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_036d: brtrue.s IL_037a - - IL_036f: ldloca.s V_2 - IL_0371: initobj valuetype [mscorlib]System.Nullable`1 - IL_0377: ldloc.2 - IL_0378: br.s IL_0388 - - IL_037a: ldloca.s V_0 - IL_037c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0381: ldc.i4.2 - IL_0382: and - IL_0383: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0388: starg.s a - IL_038a: ldarg.0 - IL_038b: stloc.0 - IL_038c: ldloca.s V_0 - IL_038e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0393: brtrue.s IL_03a0 - - IL_0395: ldloca.s V_2 - IL_0397: initobj valuetype [mscorlib]System.Nullable`1 - IL_039d: ldloc.2 - IL_039e: br.s IL_03ae - - IL_03a0: ldloca.s V_0 - IL_03a2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03a7: ldc.i4.2 - IL_03a8: or - IL_03a9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03ae: starg.s a - IL_03b0: ldarg.0 - IL_03b1: stloc.0 - IL_03b2: ldloca.s V_0 - IL_03b4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03b9: brtrue.s IL_03c6 - - IL_03bb: ldloca.s V_2 - IL_03bd: initobj valuetype [mscorlib]System.Nullable`1 - IL_03c3: ldloc.2 - IL_03c4: br.s IL_03d4 + IL_0389: ldloca.s V_2 + IL_038b: initobj valuetype [mscorlib]System.Nullable`1 + IL_0391: ldloc.2 + IL_0392: br.s IL_03a2 - IL_03c6: ldloca.s V_0 - IL_03c8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03cd: ldc.i4.2 - IL_03ce: xor - IL_03cf: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03d4: starg.s a - IL_03d6: ldarg.0 - IL_03d7: stloc.0 - IL_03d8: ldloca.s V_0 - IL_03da: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_03df: brtrue.s IL_03ec - - IL_03e1: ldloca.s V_2 - IL_03e3: initobj valuetype [mscorlib]System.Nullable`1 - IL_03e9: ldloc.2 - IL_03ea: br.s IL_03fa - - IL_03ec: ldloca.s V_0 - IL_03ee: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03f3: ldc.i4.2 - IL_03f4: shl - IL_03f5: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03fa: starg.s a - IL_03fc: ldarg.0 - IL_03fd: stloc.0 - IL_03fe: ldloca.s V_0 - IL_0400: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0405: brtrue.s IL_0412 - - IL_0407: ldloca.s V_2 - IL_0409: initobj valuetype [mscorlib]System.Nullable`1 - IL_040f: ldloc.2 - IL_0410: br.s IL_0420 - - IL_0412: ldloca.s V_0 - IL_0414: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0419: ldc.i4.2 - IL_041a: shr - IL_041b: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0420: starg.s a - IL_0422: ldarg.0 - IL_0423: stloc.0 - IL_0424: ldloca.s V_0 - IL_0426: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_042b: brtrue.s IL_0438 - - IL_042d: ldloca.s V_2 - IL_042f: initobj valuetype [mscorlib]System.Nullable`1 - IL_0435: ldloc.2 - IL_0436: br.s IL_0446 - - IL_0438: ldc.i4.2 - IL_0439: ldloca.s V_0 - IL_043b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0440: add - IL_0441: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0446: box valuetype [mscorlib]System.Nullable`1 - IL_044b: call void [mscorlib]System.Console::WriteLine(object) - IL_0450: nop - IL_0451: ret + IL_0394: ldloca.s V_0 + IL_0396: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_039b: ldc.i4.2 + IL_039c: or + IL_039d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03a2: starg.s a + IL_03a4: ldarg.0 + IL_03a5: stloc.0 + IL_03a6: ldloca.s V_0 + IL_03a8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03ad: brtrue.s IL_03ba + + IL_03af: ldloca.s V_2 + IL_03b1: initobj valuetype [mscorlib]System.Nullable`1 + IL_03b7: ldloc.2 + IL_03b8: br.s IL_03c8 + + IL_03ba: ldloca.s V_0 + IL_03bc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03c1: ldc.i4.2 + IL_03c2: xor + IL_03c3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03c8: starg.s a + IL_03ca: ldarg.0 + IL_03cb: stloc.0 + IL_03cc: ldloca.s V_0 + IL_03ce: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03d3: brtrue.s IL_03e0 + + IL_03d5: ldloca.s V_2 + IL_03d7: initobj valuetype [mscorlib]System.Nullable`1 + IL_03dd: ldloc.2 + IL_03de: br.s IL_03ee + + IL_03e0: ldloca.s V_0 + IL_03e2: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_03e7: ldc.i4.2 + IL_03e8: shl + IL_03e9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03ee: starg.s a + IL_03f0: ldarg.0 + IL_03f1: stloc.0 + IL_03f2: ldloca.s V_0 + IL_03f4: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_03f9: brtrue.s IL_0406 + + IL_03fb: ldloca.s V_2 + IL_03fd: initobj valuetype [mscorlib]System.Nullable`1 + IL_0403: ldloc.2 + IL_0404: br.s IL_0414 + + IL_0406: ldloca.s V_0 + IL_0408: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_040d: ldc.i4.2 + IL_040e: shr + IL_040f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0414: starg.s a + IL_0416: ldarg.0 + IL_0417: stloc.0 + IL_0418: ldloca.s V_0 + IL_041a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_041f: brtrue.s IL_042c + + IL_0421: ldloca.s V_2 + IL_0423: initobj valuetype [mscorlib]System.Nullable`1 + IL_0429: ldloc.2 + IL_042a: br.s IL_043a + + IL_042c: ldc.i4.2 + IL_042d: ldloca.s V_0 + IL_042f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0434: add + IL_0435: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_043a: box valuetype [mscorlib]System.Nullable`1 + IL_043f: call void [mscorlib]System.Console::WriteLine(object) + IL_0444: nop + IL_0445: ret } // end of method LiftedOperators::IntValueConst .method public hidebysig static void NumberBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 465 (0x1d1) - .maxstack 2 + // Code size 433 (0x1b1) + .maxstack 3 .locals init (bool V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -3327,227 +3160,195 @@ IL_000e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0013: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0018: brtrue.s IL_001d - - IL_001a: ldc.i4.0 - IL_001b: br.s IL_002d - - IL_001d: ldloca.s V_1 - IL_001f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0024: ldloca.s V_2 - IL_0026: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_002b: ceq - IL_002d: stloc.0 - IL_002e: ldloc.0 - IL_002f: brfalse.s IL_0039 + IL_0018: ldloca.s V_1 + IL_001a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001f: ldloca.s V_2 + IL_0021: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0026: ceq + IL_0028: and + IL_0029: stloc.0 + IL_002a: ldloc.0 + IL_002b: brfalse.s IL_0035 - IL_0031: nop - IL_0032: call void [mscorlib]System.Console::WriteLine() - IL_0037: nop - IL_0038: nop - IL_0039: ldarg.0 - IL_003a: stloc.2 - IL_003b: ldarg.1 - IL_003c: stloc.1 - IL_003d: ldloca.s V_2 - IL_003f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0044: ldloca.s V_1 - IL_0046: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_004b: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, + IL_002d: nop + IL_002e: call void [mscorlib]System.Console::WriteLine() + IL_0033: nop + IL_0034: nop + IL_0035: ldarg.0 + IL_0036: stloc.2 + IL_0037: ldarg.1 + IL_0038: stloc.1 + IL_0039: ldloca.s V_2 + IL_003b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0040: ldloca.s V_1 + IL_0042: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0047: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0050: brtrue.s IL_0055 - - IL_0052: ldc.i4.1 - IL_0053: br.s IL_0068 - - IL_0055: ldloca.s V_2 - IL_0057: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_005c: ldloca.s V_1 - IL_005e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0063: ceq - IL_0065: ldc.i4.0 - IL_0066: ceq - IL_0068: stloc.3 - IL_0069: ldloc.3 - IL_006a: brfalse.s IL_0074 - - IL_006c: nop - IL_006d: call void [mscorlib]System.Console::WriteLine() - IL_0072: nop - IL_0073: nop - IL_0074: ldarg.0 - IL_0075: stloc.1 - IL_0076: ldarg.1 - IL_0077: stloc.2 - IL_0078: ldloca.s V_1 - IL_007a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007f: ldloca.s V_2 - IL_0081: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0086: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, - valuetype [mscorlib]System.Decimal) - IL_008b: brtrue.s IL_0090 - - IL_008d: ldc.i4.0 - IL_008e: br.s IL_009f + IL_004c: ldloca.s V_2 + IL_004e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0053: ldloca.s V_1 + IL_0055: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_005a: ceq + IL_005c: and + IL_005d: ldc.i4.0 + IL_005e: ceq + IL_0060: stloc.3 + IL_0061: ldloc.3 + IL_0062: brfalse.s IL_006c - IL_0090: ldloca.s V_1 - IL_0092: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0097: ldloca.s V_2 - IL_0099: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_009e: and - IL_009f: stloc.s V_4 - IL_00a1: ldloc.s V_4 - IL_00a3: brfalse.s IL_00ad + IL_0064: nop + IL_0065: call void [mscorlib]System.Console::WriteLine() + IL_006a: nop + IL_006b: nop + IL_006c: ldarg.0 + IL_006d: stloc.1 + IL_006e: ldarg.1 + IL_006f: stloc.2 + IL_0070: ldloca.s V_1 + IL_0072: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0077: ldloca.s V_2 + IL_0079: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_007e: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, + valuetype [mscorlib]System.Decimal) + IL_0083: ldloca.s V_1 + IL_0085: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_008a: ldloca.s V_2 + IL_008c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0091: and + IL_0092: and + IL_0093: stloc.s V_4 + IL_0095: ldloc.s V_4 + IL_0097: brfalse.s IL_00a1 - IL_00a5: nop - IL_00a6: call void [mscorlib]System.Console::WriteLine() - IL_00ab: nop - IL_00ac: nop - IL_00ad: ldarg.0 - IL_00ae: stloc.2 - IL_00af: ldarg.1 - IL_00b0: stloc.1 - IL_00b1: ldloca.s V_2 - IL_00b3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00b8: ldloca.s V_1 - IL_00ba: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00bf: call bool [mscorlib]System.Decimal::op_LessThan(valuetype [mscorlib]System.Decimal, + IL_0099: nop + IL_009a: call void [mscorlib]System.Console::WriteLine() + IL_009f: nop + IL_00a0: nop + IL_00a1: ldarg.0 + IL_00a2: stloc.2 + IL_00a3: ldarg.1 + IL_00a4: stloc.1 + IL_00a5: ldloca.s V_2 + IL_00a7: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00ac: ldloca.s V_1 + IL_00ae: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00b3: call bool [mscorlib]System.Decimal::op_LessThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_00c4: brtrue.s IL_00c9 - - IL_00c6: ldc.i4.0 - IL_00c7: br.s IL_00d8 + IL_00b8: ldloca.s V_2 + IL_00ba: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00bf: ldloca.s V_1 + IL_00c1: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00c6: and + IL_00c7: and + IL_00c8: stloc.s V_5 + IL_00ca: ldloc.s V_5 + IL_00cc: brfalse.s IL_00d6 - IL_00c9: ldloca.s V_2 - IL_00cb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00d0: ldloca.s V_1 - IL_00d2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00d7: and - IL_00d8: stloc.s V_5 - IL_00da: ldloc.s V_5 - IL_00dc: brfalse.s IL_00e6 - - IL_00de: nop - IL_00df: call void [mscorlib]System.Console::WriteLine() - IL_00e4: nop - IL_00e5: nop - IL_00e6: ldarg.0 - IL_00e7: stloc.1 - IL_00e8: ldarg.1 - IL_00e9: stloc.2 - IL_00ea: ldloca.s V_1 - IL_00ec: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00f1: ldloca.s V_2 - IL_00f3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00f8: call bool [mscorlib]System.Decimal::op_GreaterThanOrEqual(valuetype [mscorlib]System.Decimal, + IL_00ce: nop + IL_00cf: call void [mscorlib]System.Console::WriteLine() + IL_00d4: nop + IL_00d5: nop + IL_00d6: ldarg.0 + IL_00d7: stloc.1 + IL_00d8: ldarg.1 + IL_00d9: stloc.2 + IL_00da: ldloca.s V_1 + IL_00dc: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00e1: ldloca.s V_2 + IL_00e3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00e8: call bool [mscorlib]System.Decimal::op_GreaterThanOrEqual(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_00fd: brtrue.s IL_0102 - - IL_00ff: ldc.i4.0 - IL_0100: br.s IL_0111 - - IL_0102: ldloca.s V_1 - IL_0104: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0109: ldloca.s V_2 - IL_010b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0110: and - IL_0111: stloc.s V_6 - IL_0113: ldloc.s V_6 - IL_0115: brfalse.s IL_011f - - IL_0117: nop - IL_0118: call void [mscorlib]System.Console::WriteLine() - IL_011d: nop - IL_011e: nop - IL_011f: ldarg.0 - IL_0120: stloc.2 - IL_0121: ldarg.1 - IL_0122: stloc.1 - IL_0123: ldloca.s V_2 - IL_0125: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_012a: ldloca.s V_1 - IL_012c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0131: call bool [mscorlib]System.Decimal::op_LessThanOrEqual(valuetype [mscorlib]System.Decimal, + IL_00ed: ldloca.s V_1 + IL_00ef: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00f4: ldloca.s V_2 + IL_00f6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00fb: and + IL_00fc: and + IL_00fd: stloc.s V_6 + IL_00ff: ldloc.s V_6 + IL_0101: brfalse.s IL_010b + + IL_0103: nop + IL_0104: call void [mscorlib]System.Console::WriteLine() + IL_0109: nop + IL_010a: nop + IL_010b: ldarg.0 + IL_010c: stloc.2 + IL_010d: ldarg.1 + IL_010e: stloc.1 + IL_010f: ldloca.s V_2 + IL_0111: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0116: ldloca.s V_1 + IL_0118: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_011d: call bool [mscorlib]System.Decimal::op_LessThanOrEqual(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0136: brtrue.s IL_013b - - IL_0138: ldc.i4.0 - IL_0139: br.s IL_014a + IL_0122: ldloca.s V_2 + IL_0124: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0129: ldloca.s V_1 + IL_012b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0130: and + IL_0131: and + IL_0132: stloc.s V_7 + IL_0134: ldloc.s V_7 + IL_0136: brfalse.s IL_0140 - IL_013b: ldloca.s V_2 - IL_013d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0142: ldloca.s V_1 - IL_0144: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0149: and - IL_014a: stloc.s V_7 - IL_014c: ldloc.s V_7 - IL_014e: brfalse.s IL_0158 - - IL_0150: nop - IL_0151: call void [mscorlib]System.Console::WriteLine() - IL_0156: nop - IL_0157: nop - IL_0158: ldarg.0 - IL_0159: stloc.1 - IL_015a: ldarg.1 - IL_015b: stloc.2 - IL_015c: ldloca.s V_1 - IL_015e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0163: ldloca.s V_2 - IL_0165: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_016a: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, + IL_0138: nop + IL_0139: call void [mscorlib]System.Console::WriteLine() + IL_013e: nop + IL_013f: nop + IL_0140: ldarg.0 + IL_0141: stloc.1 + IL_0142: ldarg.1 + IL_0143: stloc.2 + IL_0144: ldloca.s V_1 + IL_0146: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_014b: ldloca.s V_2 + IL_014d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0152: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_016f: brtrue.s IL_0174 + IL_0157: ldloca.s V_1 + IL_0159: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_015e: ldloca.s V_2 + IL_0160: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0165: and + IL_0166: and + IL_0167: ldc.i4.0 + IL_0168: ceq + IL_016a: stloc.s V_8 + IL_016c: ldloc.s V_8 + IL_016e: brfalse.s IL_0178 - IL_0171: ldc.i4.0 - IL_0172: br.s IL_0183 - - IL_0174: ldloca.s V_1 - IL_0176: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_017b: ldloca.s V_2 - IL_017d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0182: and - IL_0183: ldc.i4.0 - IL_0184: ceq - IL_0186: stloc.s V_8 - IL_0188: ldloc.s V_8 - IL_018a: brfalse.s IL_0194 - - IL_018c: nop - IL_018d: call void [mscorlib]System.Console::WriteLine() - IL_0192: nop - IL_0193: nop - IL_0194: ldarg.0 - IL_0195: stloc.2 - IL_0196: ldarg.1 - IL_0197: stloc.1 - IL_0198: ldloca.s V_2 - IL_019a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_019f: ldloca.s V_1 - IL_01a1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01a6: call bool [mscorlib]System.Decimal::op_LessThan(valuetype [mscorlib]System.Decimal, + IL_0170: nop + IL_0171: call void [mscorlib]System.Console::WriteLine() + IL_0176: nop + IL_0177: nop + IL_0178: ldarg.0 + IL_0179: stloc.2 + IL_017a: ldarg.1 + IL_017b: stloc.1 + IL_017c: ldloca.s V_2 + IL_017e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0183: ldloca.s V_1 + IL_0185: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_018a: call bool [mscorlib]System.Decimal::op_LessThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_01ab: brtrue.s IL_01b0 - - IL_01ad: ldc.i4.0 - IL_01ae: br.s IL_01bf - - IL_01b0: ldloca.s V_2 - IL_01b2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01b7: ldloca.s V_1 - IL_01b9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01be: and - IL_01bf: ldc.i4.0 - IL_01c0: ceq - IL_01c2: stloc.s V_9 - IL_01c4: ldloc.s V_9 - IL_01c6: brfalse.s IL_01d0 - - IL_01c8: nop - IL_01c9: call void [mscorlib]System.Console::WriteLine() - IL_01ce: nop - IL_01cf: nop - IL_01d0: ret + IL_018f: ldloca.s V_2 + IL_0191: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0196: ldloca.s V_1 + IL_0198: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_019d: and + IL_019e: and + IL_019f: ldc.i4.0 + IL_01a0: ceq + IL_01a2: stloc.s V_9 + IL_01a4: ldloc.s V_9 + IL_01a6: brfalse.s IL_01b0 + + IL_01a8: nop + IL_01a9: call void [mscorlib]System.Console::WriteLine() + IL_01ae: nop + IL_01af: nop + IL_01b0: ret } // end of method LiftedOperators::NumberBasic .method public hidebysig static void NumberComplex(valuetype [mscorlib]System.Nullable`1 a, @@ -3570,8 +3371,8 @@ .method public hidebysig static void NumberValueBasic(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 959 (0x3bf) - .maxstack 2 + // Code size 939 (0x3ab) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2) @@ -3586,394 +3387,374 @@ IL_000e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0013: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0018: brtrue.s IL_001d - - IL_001a: ldc.i4.0 - IL_001b: br.s IL_002d - - IL_001d: ldloca.s V_0 - IL_001f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0024: ldloca.s V_1 - IL_0026: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_002b: ceq - IL_002d: call void [mscorlib]System.Console::WriteLine(bool) - IL_0032: nop - IL_0033: ldarg.0 - IL_0034: stloc.1 - IL_0035: ldarg.1 - IL_0036: stloc.0 - IL_0037: ldloca.s V_1 - IL_0039: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_003e: ldloca.s V_0 - IL_0040: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0045: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, + IL_0018: ldloca.s V_0 + IL_001a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001f: ldloca.s V_1 + IL_0021: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0026: ceq + IL_0028: and + IL_0029: call void [mscorlib]System.Console::WriteLine(bool) + IL_002e: nop + IL_002f: ldarg.0 + IL_0030: stloc.1 + IL_0031: ldarg.1 + IL_0032: stloc.0 + IL_0033: ldloca.s V_1 + IL_0035: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_003a: ldloca.s V_0 + IL_003c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0041: call bool [mscorlib]System.Decimal::op_Equality(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_004a: brtrue.s IL_004f - - IL_004c: ldc.i4.1 - IL_004d: br.s IL_0062 - - IL_004f: ldloca.s V_1 - IL_0051: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0056: ldloca.s V_0 - IL_0058: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_005d: ceq - IL_005f: ldc.i4.0 - IL_0060: ceq - IL_0062: call void [mscorlib]System.Console::WriteLine(bool) - IL_0067: nop - IL_0068: ldarg.0 - IL_0069: stloc.0 - IL_006a: ldarg.1 - IL_006b: stloc.1 - IL_006c: ldloca.s V_0 - IL_006e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0073: ldloca.s V_1 - IL_0075: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_007a: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, + IL_0046: ldloca.s V_1 + IL_0048: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_004d: ldloca.s V_0 + IL_004f: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0054: ceq + IL_0056: and + IL_0057: ldc.i4.0 + IL_0058: ceq + IL_005a: call void [mscorlib]System.Console::WriteLine(bool) + IL_005f: nop + IL_0060: ldarg.0 + IL_0061: stloc.0 + IL_0062: ldarg.1 + IL_0063: stloc.1 + IL_0064: ldloca.s V_0 + IL_0066: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_006b: ldloca.s V_1 + IL_006d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0072: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_007f: brtrue.s IL_0084 - - IL_0081: ldc.i4.0 - IL_0082: br.s IL_0093 - - IL_0084: ldloca.s V_0 - IL_0086: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_008b: ldloca.s V_1 - IL_008d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0092: and - IL_0093: call void [mscorlib]System.Console::WriteLine(bool) - IL_0098: nop - IL_0099: ldarg.0 - IL_009a: stloc.1 - IL_009b: ldarg.1 - IL_009c: stloc.0 - IL_009d: ldloca.s V_1 - IL_009f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00a4: ldloca.s V_0 - IL_00a6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00ab: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, + IL_0077: ldloca.s V_0 + IL_0079: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_007e: ldloca.s V_1 + IL_0080: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0085: and + IL_0086: and + IL_0087: call void [mscorlib]System.Console::WriteLine(bool) + IL_008c: nop + IL_008d: ldarg.0 + IL_008e: stloc.1 + IL_008f: ldarg.1 + IL_0090: stloc.0 + IL_0091: ldloca.s V_1 + IL_0093: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0098: ldloca.s V_0 + IL_009a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_009f: call bool [mscorlib]System.Decimal::op_GreaterThan(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_00b0: brtrue.s IL_00b5 - - IL_00b2: ldc.i4.0 - IL_00b3: br.s IL_00c4 - - IL_00b5: ldloca.s V_1 - IL_00b7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00bc: ldloca.s V_0 - IL_00be: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00c3: and - IL_00c4: ldc.i4.0 - IL_00c5: ceq - IL_00c7: call void [mscorlib]System.Console::WriteLine(bool) - IL_00cc: nop - IL_00cd: ldarg.0 - IL_00ce: stloc.0 - IL_00cf: ldarg.1 - IL_00d0: stloc.1 - IL_00d1: ldloca.s V_0 - IL_00d3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00d8: ldloca.s V_1 - IL_00da: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_00df: call bool [mscorlib]System.Decimal::op_LessThanOrEqual(valuetype [mscorlib]System.Decimal, + IL_00a4: ldloca.s V_1 + IL_00a6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ab: ldloca.s V_0 + IL_00ad: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00b2: and + IL_00b3: and + IL_00b4: ldc.i4.0 + IL_00b5: ceq + IL_00b7: call void [mscorlib]System.Console::WriteLine(bool) + IL_00bc: nop + IL_00bd: ldarg.0 + IL_00be: stloc.0 + IL_00bf: ldarg.1 + IL_00c0: stloc.1 + IL_00c1: ldloca.s V_0 + IL_00c3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00c8: ldloca.s V_1 + IL_00ca: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_00cf: call bool [mscorlib]System.Decimal::op_LessThanOrEqual(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_00e4: brtrue.s IL_00e9 - - IL_00e6: ldc.i4.0 - IL_00e7: br.s IL_00f8 - - IL_00e9: ldloca.s V_0 - IL_00eb: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f0: ldloca.s V_1 - IL_00f2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_00f7: and - IL_00f8: ldc.i4.0 - IL_00f9: ceq - IL_00fb: call void [mscorlib]System.Console::WriteLine(bool) - IL_0100: nop - IL_0101: ldarg.0 - IL_0102: stloc.1 - IL_0103: ldarg.1 - IL_0104: stloc.0 - IL_0105: ldloca.s V_1 - IL_0107: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_010c: ldloca.s V_0 - IL_010e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0113: and - IL_0114: brtrue.s IL_0121 + IL_00d4: ldloca.s V_0 + IL_00d6: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00db: ldloca.s V_1 + IL_00dd: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00e2: and + IL_00e3: and + IL_00e4: ldc.i4.0 + IL_00e5: ceq + IL_00e7: call void [mscorlib]System.Console::WriteLine(bool) + IL_00ec: nop + IL_00ed: ldarg.0 + IL_00ee: stloc.1 + IL_00ef: ldarg.1 + IL_00f0: stloc.0 + IL_00f1: ldloca.s V_1 + IL_00f3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00f8: ldloca.s V_0 + IL_00fa: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_00ff: and + IL_0100: brtrue.s IL_010d - IL_0116: ldloca.s V_2 - IL_0118: initobj valuetype [mscorlib]System.Nullable`1 - IL_011e: ldloc.2 - IL_011f: br.s IL_0139 - - IL_0121: ldloca.s V_1 - IL_0123: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0128: ldloca.s V_0 - IL_012a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_012f: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Addition(valuetype [mscorlib]System.Decimal, + IL_0102: ldloca.s V_2 + IL_0104: initobj valuetype [mscorlib]System.Nullable`1 + IL_010a: ldloc.2 + IL_010b: br.s IL_0125 + + IL_010d: ldloca.s V_1 + IL_010f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0114: ldloca.s V_0 + IL_0116: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_011b: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Addition(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0134: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0139: box valuetype [mscorlib]System.Nullable`1 - IL_013e: call void [mscorlib]System.Console::WriteLine(object) - IL_0143: nop - IL_0144: ldarg.0 - IL_0145: stloc.0 - IL_0146: ldarg.1 - IL_0147: stloc.1 - IL_0148: ldloca.s V_0 - IL_014a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_014f: ldloca.s V_1 - IL_0151: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0156: and - IL_0157: brtrue.s IL_0164 + IL_0120: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0125: box valuetype [mscorlib]System.Nullable`1 + IL_012a: call void [mscorlib]System.Console::WriteLine(object) + IL_012f: nop + IL_0130: ldarg.0 + IL_0131: stloc.0 + IL_0132: ldarg.1 + IL_0133: stloc.1 + IL_0134: ldloca.s V_0 + IL_0136: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_013b: ldloca.s V_1 + IL_013d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0142: and + IL_0143: brtrue.s IL_0150 - IL_0159: ldloca.s V_2 - IL_015b: initobj valuetype [mscorlib]System.Nullable`1 - IL_0161: ldloc.2 - IL_0162: br.s IL_017c + IL_0145: ldloca.s V_2 + IL_0147: initobj valuetype [mscorlib]System.Nullable`1 + IL_014d: ldloc.2 + IL_014e: br.s IL_0168 - IL_0164: ldloca.s V_0 - IL_0166: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_016b: ldloca.s V_1 - IL_016d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0172: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Subtraction(valuetype [mscorlib]System.Decimal, + IL_0150: ldloca.s V_0 + IL_0152: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0157: ldloca.s V_1 + IL_0159: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_015e: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Subtraction(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0177: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_017c: box valuetype [mscorlib]System.Nullable`1 - IL_0181: call void [mscorlib]System.Console::WriteLine(object) - IL_0186: nop - IL_0187: ldarg.0 - IL_0188: stloc.1 - IL_0189: ldarg.1 - IL_018a: stloc.0 - IL_018b: ldloca.s V_1 - IL_018d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0192: ldloca.s V_0 - IL_0194: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0199: and - IL_019a: brtrue.s IL_01a7 - - IL_019c: ldloca.s V_2 - IL_019e: initobj valuetype [mscorlib]System.Nullable`1 - IL_01a4: ldloc.2 - IL_01a5: br.s IL_01bf - - IL_01a7: ldloca.s V_1 - IL_01a9: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01ae: ldloca.s V_0 - IL_01b0: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01b5: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Multiply(valuetype [mscorlib]System.Decimal, + IL_0163: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0168: box valuetype [mscorlib]System.Nullable`1 + IL_016d: call void [mscorlib]System.Console::WriteLine(object) + IL_0172: nop + IL_0173: ldarg.0 + IL_0174: stloc.1 + IL_0175: ldarg.1 + IL_0176: stloc.0 + IL_0177: ldloca.s V_1 + IL_0179: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_017e: ldloca.s V_0 + IL_0180: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0185: and + IL_0186: brtrue.s IL_0193 + + IL_0188: ldloca.s V_2 + IL_018a: initobj valuetype [mscorlib]System.Nullable`1 + IL_0190: ldloc.2 + IL_0191: br.s IL_01ab + + IL_0193: ldloca.s V_1 + IL_0195: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_019a: ldloca.s V_0 + IL_019c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01a1: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Multiply(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_01ba: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_01bf: box valuetype [mscorlib]System.Nullable`1 - IL_01c4: call void [mscorlib]System.Console::WriteLine(object) - IL_01c9: nop - IL_01ca: ldarg.0 - IL_01cb: stloc.0 - IL_01cc: ldarg.1 - IL_01cd: stloc.1 - IL_01ce: ldloca.s V_0 - IL_01d0: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01d5: ldloca.s V_1 - IL_01d7: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_01dc: and - IL_01dd: brtrue.s IL_01ea - - IL_01df: ldloca.s V_2 - IL_01e1: initobj valuetype [mscorlib]System.Nullable`1 - IL_01e7: ldloc.2 - IL_01e8: br.s IL_0202 - - IL_01ea: ldloca.s V_0 - IL_01ec: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01f1: ldloca.s V_1 - IL_01f3: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_01f8: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Division(valuetype [mscorlib]System.Decimal, + IL_01a6: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01ab: box valuetype [mscorlib]System.Nullable`1 + IL_01b0: call void [mscorlib]System.Console::WriteLine(object) + IL_01b5: nop + IL_01b6: ldarg.0 + IL_01b7: stloc.0 + IL_01b8: ldarg.1 + IL_01b9: stloc.1 + IL_01ba: ldloca.s V_0 + IL_01bc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01c1: ldloca.s V_1 + IL_01c3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_01c8: and + IL_01c9: brtrue.s IL_01d6 + + IL_01cb: ldloca.s V_2 + IL_01cd: initobj valuetype [mscorlib]System.Nullable`1 + IL_01d3: ldloc.2 + IL_01d4: br.s IL_01ee + + IL_01d6: ldloca.s V_0 + IL_01d8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01dd: ldloca.s V_1 + IL_01df: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_01e4: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Division(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_01fd: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0202: box valuetype [mscorlib]System.Nullable`1 - IL_0207: call void [mscorlib]System.Console::WriteLine(object) - IL_020c: nop - IL_020d: ldarg.0 - IL_020e: stloc.1 - IL_020f: ldarg.1 - IL_0210: stloc.0 - IL_0211: ldloca.s V_1 - IL_0213: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0218: ldloca.s V_0 - IL_021a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_021f: and - IL_0220: brtrue.s IL_022d - - IL_0222: ldloca.s V_2 - IL_0224: initobj valuetype [mscorlib]System.Nullable`1 - IL_022a: ldloc.2 - IL_022b: br.s IL_0245 - - IL_022d: ldloca.s V_1 - IL_022f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0234: ldloca.s V_0 - IL_0236: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_023b: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Modulus(valuetype [mscorlib]System.Decimal, + IL_01e9: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_01ee: box valuetype [mscorlib]System.Nullable`1 + IL_01f3: call void [mscorlib]System.Console::WriteLine(object) + IL_01f8: nop + IL_01f9: ldarg.0 + IL_01fa: stloc.1 + IL_01fb: ldarg.1 + IL_01fc: stloc.0 + IL_01fd: ldloca.s V_1 + IL_01ff: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0204: ldloca.s V_0 + IL_0206: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_020b: and + IL_020c: brtrue.s IL_0219 + + IL_020e: ldloca.s V_2 + IL_0210: initobj valuetype [mscorlib]System.Nullable`1 + IL_0216: ldloc.2 + IL_0217: br.s IL_0231 + + IL_0219: ldloca.s V_1 + IL_021b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0220: ldloca.s V_0 + IL_0222: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0227: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Modulus(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0240: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0245: box valuetype [mscorlib]System.Nullable`1 - IL_024a: call void [mscorlib]System.Console::WriteLine(object) - IL_024f: nop - IL_0250: ldarg.0 - IL_0251: stloc.0 - IL_0252: ldloca.s V_0 - IL_0254: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0259: brtrue.s IL_025e - - IL_025b: ldarg.1 - IL_025c: br.s IL_025f - - IL_025e: ldloc.0 - IL_025f: box valuetype [mscorlib]System.Nullable`1 - IL_0264: call void [mscorlib]System.Console::WriteLine(object) - IL_0269: nop - IL_026a: ldarg.0 - IL_026b: stloc.0 + IL_022c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0231: box valuetype [mscorlib]System.Nullable`1 + IL_0236: call void [mscorlib]System.Console::WriteLine(object) + IL_023b: nop + IL_023c: ldarg.0 + IL_023d: stloc.0 + IL_023e: ldloca.s V_0 + IL_0240: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0245: brtrue.s IL_024a + + IL_0247: ldarg.1 + IL_0248: br.s IL_024b + + IL_024a: ldloc.0 + IL_024b: box valuetype [mscorlib]System.Nullable`1 + IL_0250: call void [mscorlib]System.Console::WriteLine(object) + IL_0255: nop + IL_0256: ldarg.0 + IL_0257: stloc.0 + IL_0258: ldloca.s V_0 + IL_025a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_025f: brtrue.s IL_026c + + IL_0261: ldloca.s V_1 + IL_0263: initobj valuetype [mscorlib]System.Nullable`1 + IL_0269: ldloc.1 + IL_026a: br.s IL_027d + IL_026c: ldloca.s V_0 - IL_026e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0273: brtrue.s IL_0280 + IL_026e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0273: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_UnaryNegation(valuetype [mscorlib]System.Decimal) + IL_0278: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_027d: box valuetype [mscorlib]System.Nullable`1 + IL_0282: call void [mscorlib]System.Console::WriteLine(object) + IL_0287: nop + IL_0288: ldarg.0 + IL_0289: stloc.0 + IL_028a: ldarg.1 + IL_028b: stloc.1 + IL_028c: ldloca.s V_0 + IL_028e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0293: ldloca.s V_1 + IL_0295: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_029a: and + IL_029b: brtrue.s IL_02a8 - IL_0275: ldloca.s V_1 - IL_0277: initobj valuetype [mscorlib]System.Nullable`1 - IL_027d: ldloc.1 - IL_027e: br.s IL_0291 + IL_029d: ldloca.s V_2 + IL_029f: initobj valuetype [mscorlib]System.Nullable`1 + IL_02a5: ldloc.2 + IL_02a6: br.s IL_02c0 - IL_0280: ldloca.s V_0 - IL_0282: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0287: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_UnaryNegation(valuetype [mscorlib]System.Decimal) - IL_028c: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0291: box valuetype [mscorlib]System.Nullable`1 - IL_0296: call void [mscorlib]System.Console::WriteLine(object) - IL_029b: nop - IL_029c: ldarg.0 - IL_029d: stloc.0 - IL_029e: ldarg.1 - IL_029f: stloc.1 - IL_02a0: ldloca.s V_0 - IL_02a2: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02a7: ldloca.s V_1 - IL_02a9: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02ae: and - IL_02af: brtrue.s IL_02bc - - IL_02b1: ldloca.s V_2 - IL_02b3: initobj valuetype [mscorlib]System.Nullable`1 - IL_02b9: ldloc.2 - IL_02ba: br.s IL_02d4 - - IL_02bc: ldloca.s V_0 - IL_02be: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02c3: ldloca.s V_1 - IL_02c5: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02ca: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Addition(valuetype [mscorlib]System.Decimal, + IL_02a8: ldloca.s V_0 + IL_02aa: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02af: ldloca.s V_1 + IL_02b1: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02b6: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Addition(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_02cf: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_02d4: starg.s a - IL_02d6: ldarg.0 - IL_02d7: stloc.1 - IL_02d8: ldarg.1 - IL_02d9: stloc.0 - IL_02da: ldloca.s V_1 - IL_02dc: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02e1: ldloca.s V_0 - IL_02e3: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_02e8: and - IL_02e9: brtrue.s IL_02f6 - - IL_02eb: ldloca.s V_2 - IL_02ed: initobj valuetype [mscorlib]System.Nullable`1 - IL_02f3: ldloc.2 - IL_02f4: br.s IL_030e - - IL_02f6: ldloca.s V_1 - IL_02f8: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_02fd: ldloca.s V_0 - IL_02ff: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0304: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Subtraction(valuetype [mscorlib]System.Decimal, + IL_02bb: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02c0: starg.s a + IL_02c2: ldarg.0 + IL_02c3: stloc.1 + IL_02c4: ldarg.1 + IL_02c5: stloc.0 + IL_02c6: ldloca.s V_1 + IL_02c8: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02cd: ldloca.s V_0 + IL_02cf: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_02d4: and + IL_02d5: brtrue.s IL_02e2 + + IL_02d7: ldloca.s V_2 + IL_02d9: initobj valuetype [mscorlib]System.Nullable`1 + IL_02df: ldloc.2 + IL_02e0: br.s IL_02fa + + IL_02e2: ldloca.s V_1 + IL_02e4: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02e9: ldloca.s V_0 + IL_02eb: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_02f0: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Subtraction(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0309: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_030e: starg.s a - IL_0310: ldarg.0 - IL_0311: stloc.0 - IL_0312: ldarg.1 - IL_0313: stloc.1 - IL_0314: ldloca.s V_0 - IL_0316: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_031b: ldloca.s V_1 - IL_031d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0322: and - IL_0323: brtrue.s IL_0330 - - IL_0325: ldloca.s V_2 - IL_0327: initobj valuetype [mscorlib]System.Nullable`1 - IL_032d: ldloc.2 - IL_032e: br.s IL_0348 - - IL_0330: ldloca.s V_0 - IL_0332: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0337: ldloca.s V_1 - IL_0339: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_033e: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Multiply(valuetype [mscorlib]System.Decimal, + IL_02f5: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_02fa: starg.s a + IL_02fc: ldarg.0 + IL_02fd: stloc.0 + IL_02fe: ldarg.1 + IL_02ff: stloc.1 + IL_0300: ldloca.s V_0 + IL_0302: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0307: ldloca.s V_1 + IL_0309: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_030e: and + IL_030f: brtrue.s IL_031c + + IL_0311: ldloca.s V_2 + IL_0313: initobj valuetype [mscorlib]System.Nullable`1 + IL_0319: ldloc.2 + IL_031a: br.s IL_0334 + + IL_031c: ldloca.s V_0 + IL_031e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0323: ldloca.s V_1 + IL_0325: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_032a: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Multiply(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_0343: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0348: starg.s a - IL_034a: ldarg.0 - IL_034b: stloc.1 - IL_034c: ldarg.1 - IL_034d: stloc.0 - IL_034e: ldloca.s V_1 - IL_0350: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0355: ldloca.s V_0 - IL_0357: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_035c: and - IL_035d: brtrue.s IL_036a - - IL_035f: ldloca.s V_2 - IL_0361: initobj valuetype [mscorlib]System.Nullable`1 - IL_0367: ldloc.2 - IL_0368: br.s IL_0382 - - IL_036a: ldloca.s V_1 - IL_036c: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0371: ldloca.s V_0 - IL_0373: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0378: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Division(valuetype [mscorlib]System.Decimal, + IL_032f: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0334: starg.s a + IL_0336: ldarg.0 + IL_0337: stloc.1 + IL_0338: ldarg.1 + IL_0339: stloc.0 + IL_033a: ldloca.s V_1 + IL_033c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0341: ldloca.s V_0 + IL_0343: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0348: and + IL_0349: brtrue.s IL_0356 + + IL_034b: ldloca.s V_2 + IL_034d: initobj valuetype [mscorlib]System.Nullable`1 + IL_0353: ldloc.2 + IL_0354: br.s IL_036e + + IL_0356: ldloca.s V_1 + IL_0358: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_035d: ldloca.s V_0 + IL_035f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0364: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Division(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_037d: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_0382: starg.s a - IL_0384: ldarg.0 - IL_0385: stloc.0 - IL_0386: ldarg.1 - IL_0387: stloc.1 - IL_0388: ldloca.s V_0 - IL_038a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_038f: ldloca.s V_1 - IL_0391: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0396: and - IL_0397: brtrue.s IL_03a4 - - IL_0399: ldloca.s V_2 - IL_039b: initobj valuetype [mscorlib]System.Nullable`1 - IL_03a1: ldloc.2 - IL_03a2: br.s IL_03bc - - IL_03a4: ldloca.s V_0 - IL_03a6: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03ab: ldloca.s V_1 - IL_03ad: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_03b2: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Modulus(valuetype [mscorlib]System.Decimal, + IL_0369: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_036e: starg.s a + IL_0370: ldarg.0 + IL_0371: stloc.0 + IL_0372: ldarg.1 + IL_0373: stloc.1 + IL_0374: ldloca.s V_0 + IL_0376: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_037b: ldloca.s V_1 + IL_037d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0382: and + IL_0383: brtrue.s IL_0390 + + IL_0385: ldloca.s V_2 + IL_0387: initobj valuetype [mscorlib]System.Nullable`1 + IL_038d: ldloc.2 + IL_038e: br.s IL_03a8 + + IL_0390: ldloca.s V_0 + IL_0392: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0397: ldloca.s V_1 + IL_0399: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_039e: call valuetype [mscorlib]System.Decimal [mscorlib]System.Decimal::op_Modulus(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal) - IL_03b7: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_03bc: starg.s a - IL_03be: ret + IL_03a3: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_03a8: starg.s a + IL_03aa: ret } // end of method LiftedOperators::NumberValueBasic .method public hidebysig static void NumberValueComplex(valuetype [mscorlib]System.Nullable`1 a, @@ -3996,8 +3777,8 @@ .method public hidebysig static void CompareWithImplictCast(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 175 (0xaf) - .maxstack 2 + // Code size 171 (0xab) + .maxstack 3 .locals init (bool V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -4027,72 +3808,66 @@ IL_002a: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_002f: ldloca.s V_2 IL_0031: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0036: blt.s IL_003b - - IL_0038: ldc.i4.0 - IL_0039: br.s IL_004a - - IL_003b: ldloca.s V_1 - IL_003d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0042: ldloca.s V_2 - IL_0044: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0049: and - IL_004a: stloc.0 - IL_004b: ldloc.0 - IL_004c: brfalse.s IL_0056 - - IL_004e: nop - IL_004f: call void [mscorlib]System.Console::WriteLine() - IL_0054: nop - IL_0055: nop - IL_0056: ldarg.0 - IL_0057: stloc.3 - IL_0058: ldloca.s V_3 - IL_005a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_005f: brtrue.s IL_006d - - IL_0061: ldloca.s V_4 - IL_0063: initobj valuetype [mscorlib]System.Nullable`1 - IL_0069: ldloc.s V_4 - IL_006b: br.s IL_007a - - IL_006d: ldloca.s V_3 - IL_006f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0074: conv.i8 - IL_0075: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) - IL_007a: stloc.2 - IL_007b: ldarg.1 - IL_007c: stloc.1 - IL_007d: ldloca.s V_2 - IL_007f: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0084: ldloca.s V_1 - IL_0086: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_008b: beq.s IL_0090 - - IL_008d: ldc.i4.0 - IL_008e: br.s IL_00a0 - - IL_0090: ldloca.s V_2 - IL_0092: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0097: ldloca.s V_1 - IL_0099: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_009e: ceq - IL_00a0: stloc.s V_5 - IL_00a2: ldloc.s V_5 - IL_00a4: brfalse.s IL_00ae + IL_0036: clt + IL_0038: ldloca.s V_1 + IL_003a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003f: ldloca.s V_2 + IL_0041: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0046: and + IL_0047: and + IL_0048: stloc.0 + IL_0049: ldloc.0 + IL_004a: brfalse.s IL_0054 + + IL_004c: nop + IL_004d: call void [mscorlib]System.Console::WriteLine() + IL_0052: nop + IL_0053: nop + IL_0054: ldarg.0 + IL_0055: stloc.3 + IL_0056: ldloca.s V_3 + IL_0058: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_005d: brtrue.s IL_006b + + IL_005f: ldloca.s V_4 + IL_0061: initobj valuetype [mscorlib]System.Nullable`1 + IL_0067: ldloc.s V_4 + IL_0069: br.s IL_0078 + + IL_006b: ldloca.s V_3 + IL_006d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0072: conv.i8 + IL_0073: newobj instance void valuetype [mscorlib]System.Nullable`1::.ctor(!0) + IL_0078: stloc.2 + IL_0079: ldarg.1 + IL_007a: stloc.1 + IL_007b: ldloca.s V_2 + IL_007d: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0082: ldloca.s V_1 + IL_0084: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() + IL_0089: ceq + IL_008b: ldloca.s V_2 + IL_008d: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0092: ldloca.s V_1 + IL_0094: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0099: ceq + IL_009b: and + IL_009c: stloc.s V_5 + IL_009e: ldloc.s V_5 + IL_00a0: brfalse.s IL_00aa - IL_00a6: nop - IL_00a7: call void [mscorlib]System.Console::WriteLine() - IL_00ac: nop - IL_00ad: nop - IL_00ae: ret + IL_00a2: nop + IL_00a3: call void [mscorlib]System.Console::WriteLine() + IL_00a8: nop + IL_00a9: nop + IL_00aa: ret } // end of method LiftedOperators::CompareWithImplictCast .method public hidebysig static void CompareWithSignChange(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 120 (0x78) - .maxstack 2 + // Code size 118 (0x76) + .maxstack 3 .locals init (bool V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -4133,25 +3908,22 @@ IL_004b: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_0050: ldloca.s V_2 IL_0052: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0057: blt.un.s IL_005c - - IL_0059: ldc.i4.0 - IL_005a: br.s IL_006b - - IL_005c: ldloca.s V_1 - IL_005e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0063: ldloca.s V_2 - IL_0065: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_006a: and - IL_006b: stloc.0 - IL_006c: ldloc.0 - IL_006d: brfalse.s IL_0077 + IL_0057: clt.un + IL_0059: ldloca.s V_1 + IL_005b: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0060: ldloca.s V_2 + IL_0062: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0067: and + IL_0068: and + IL_0069: stloc.0 + IL_006a: ldloc.0 + IL_006b: brfalse.s IL_0075 - IL_006f: nop - IL_0070: call void [mscorlib]System.Console::WriteLine() - IL_0075: nop - IL_0076: nop - IL_0077: ret + IL_006d: nop + IL_006e: call void [mscorlib]System.Console::WriteLine() + IL_0073: nop + IL_0074: nop + IL_0075: ret } // end of method LiftedOperators::CompareWithSignChange .method public hidebysig static void StructBasic(valuetype [mscorlib]System.Nullable`1 a, @@ -5239,8 +5011,8 @@ .method public hidebysig static bool RetEq(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 45 (0x2d) - .maxstack 2 + // Code size 43 (0x2b) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, bool V_2) @@ -5253,28 +5025,25 @@ IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloca.s V_1 IL_000e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0013: beq.s IL_0018 - - IL_0015: ldc.i4.0 - IL_0016: br.s IL_0028 - - IL_0018: ldloca.s V_0 - IL_001a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001f: ldloca.s V_1 - IL_0021: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0026: ceq - IL_0028: stloc.2 - IL_0029: br.s IL_002b - - IL_002b: ldloc.2 - IL_002c: ret + IL_0013: ceq + IL_0015: ldloca.s V_0 + IL_0017: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001c: ldloca.s V_1 + IL_001e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0023: ceq + IL_0025: and + IL_0026: stloc.2 + IL_0027: br.s IL_0029 + + IL_0029: ldloc.2 + IL_002a: ret } // end of method LiftedOperators::RetEq .method public hidebysig static bool RetEqConv(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 81 (0x51) - .maxstack 2 + // Code size 79 (0x4f) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -5303,26 +5072,23 @@ IL_0029: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_002e: ldloca.s V_1 IL_0030: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0035: beq.s IL_003a - - IL_0037: ldc.i4.0 - IL_0038: br.s IL_004a - - IL_003a: ldloca.s V_0 - IL_003c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0041: ldloca.s V_1 - IL_0043: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0048: ceq - IL_004a: stloc.s V_4 - IL_004c: br.s IL_004e - - IL_004e: ldloc.s V_4 - IL_0050: ret + IL_0035: ceq + IL_0037: ldloca.s V_0 + IL_0039: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003e: ldloca.s V_1 + IL_0040: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0045: ceq + IL_0047: and + IL_0048: stloc.s V_4 + IL_004a: br.s IL_004c + + IL_004c: ldloc.s V_4 + IL_004e: ret } // end of method LiftedOperators::RetEqConv .method public hidebysig static bool RetEqConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 32 (0x20) + // Code size 30 (0x1e) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int64 V_1, @@ -5336,23 +5102,20 @@ IL_0007: ldloca.s V_0 IL_0009: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000e: ldloc.1 - IL_000f: beq.s IL_0014 - - IL_0011: ldc.i4.0 - IL_0012: br.s IL_001b - - IL_0014: ldloca.s V_0 - IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001b: stloc.2 - IL_001c: br.s IL_001e - - IL_001e: ldloc.2 - IL_001f: ret + IL_000f: ceq + IL_0011: ldloca.s V_0 + IL_0013: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0018: and + IL_0019: stloc.2 + IL_001a: br.s IL_001c + + IL_001c: ldloc.2 + IL_001d: ret } // end of method LiftedOperators::RetEqConst .method public hidebysig static bool RetIneqConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 35 (0x23) + // Code size 33 (0x21) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int64 V_1, @@ -5366,27 +5129,24 @@ IL_0007: ldloca.s V_0 IL_0009: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000e: ldloc.1 - IL_000f: beq.s IL_0014 - - IL_0011: ldc.i4.1 - IL_0012: br.s IL_001e - - IL_0014: ldloca.s V_0 - IL_0016: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001b: ldc.i4.0 - IL_001c: ceq - IL_001e: stloc.2 - IL_001f: br.s IL_0021 - - IL_0021: ldloc.2 - IL_0022: ret + IL_000f: ceq + IL_0011: ldloca.s V_0 + IL_0013: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0018: and + IL_0019: ldc.i4.0 + IL_001a: ceq + IL_001c: stloc.2 + IL_001d: br.s IL_001f + + IL_001f: ldloc.2 + IL_0020: ret } // end of method LiftedOperators::RetIneqConst .method public hidebysig static bool RetLt(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 44 (0x2c) - .maxstack 2 + // Code size 42 (0x2a) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, bool V_2) @@ -5399,26 +5159,23 @@ IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloca.s V_1 IL_000e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0013: blt.s IL_0018 - - IL_0015: ldc.i4.0 - IL_0016: br.s IL_0027 - - IL_0018: ldloca.s V_0 - IL_001a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001f: ldloca.s V_1 - IL_0021: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0026: and - IL_0027: stloc.2 - IL_0028: br.s IL_002a - - IL_002a: ldloc.2 - IL_002b: ret + IL_0013: clt + IL_0015: ldloca.s V_0 + IL_0017: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001c: ldloca.s V_1 + IL_001e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0023: and + IL_0024: and + IL_0025: stloc.2 + IL_0026: br.s IL_0028 + + IL_0028: ldloc.2 + IL_0029: ret } // end of method LiftedOperators::RetLt .method public hidebysig static bool RetLtConst(valuetype [mscorlib]System.Nullable`1 a) cil managed { - // Code size 31 (0x1f) + // Code size 29 (0x1d) .maxstack 2 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, int32 V_1, @@ -5431,25 +5188,22 @@ IL_0006: ldloca.s V_0 IL_0008: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000d: ldloc.1 - IL_000e: blt.s IL_0013 - - IL_0010: ldc.i4.0 - IL_0011: br.s IL_001a - - IL_0013: ldloca.s V_0 - IL_0015: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001a: stloc.2 - IL_001b: br.s IL_001d + IL_000e: clt + IL_0010: ldloca.s V_0 + IL_0012: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0017: and + IL_0018: stloc.2 + IL_0019: br.s IL_001b - IL_001d: ldloc.2 - IL_001e: ret + IL_001b: ldloc.2 + IL_001c: ret } // end of method LiftedOperators::RetLtConst .method public hidebysig static bool RetLtConv(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 80 (0x50) - .maxstack 2 + // Code size 78 (0x4e) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, valuetype [mscorlib]System.Nullable`1 V_2, @@ -5478,28 +5232,25 @@ IL_0029: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_002e: ldloca.s V_1 IL_0030: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0035: blt.s IL_003a - - IL_0037: ldc.i4.0 - IL_0038: br.s IL_0049 - - IL_003a: ldloca.s V_0 - IL_003c: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0041: ldloca.s V_1 - IL_0043: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0048: and - IL_0049: stloc.s V_4 - IL_004b: br.s IL_004d - - IL_004d: ldloc.s V_4 - IL_004f: ret + IL_0035: clt + IL_0037: ldloca.s V_0 + IL_0039: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_003e: ldloca.s V_1 + IL_0040: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0045: and + IL_0046: and + IL_0047: stloc.s V_4 + IL_0049: br.s IL_004b + + IL_004b: ldloc.s V_4 + IL_004d: ret } // end of method LiftedOperators::RetLtConv .method public hidebysig static bool RetNotLt(valuetype [mscorlib]System.Nullable`1 a, valuetype [mscorlib]System.Nullable`1 b) cil managed { - // Code size 47 (0x2f) - .maxstack 2 + // Code size 45 (0x2d) + .maxstack 3 .locals init (valuetype [mscorlib]System.Nullable`1 V_0, valuetype [mscorlib]System.Nullable`1 V_1, bool V_2) @@ -5512,23 +5263,20 @@ IL_0007: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() IL_000c: ldloca.s V_1 IL_000e: call instance !0 valuetype [mscorlib]System.Nullable`1::GetValueOrDefault() - IL_0013: blt.s IL_0018 - - IL_0015: ldc.i4.0 - IL_0016: br.s IL_0027 + IL_0013: clt + IL_0015: ldloca.s V_0 + IL_0017: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_001c: ldloca.s V_1 + IL_001e: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() + IL_0023: and + IL_0024: and + IL_0025: ldc.i4.0 + IL_0026: ceq + IL_0028: stloc.2 + IL_0029: br.s IL_002b - IL_0018: ldloca.s V_0 - IL_001a: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_001f: ldloca.s V_1 - IL_0021: call instance bool valuetype [mscorlib]System.Nullable`1::get_HasValue() - IL_0026: and - IL_0027: ldc.i4.0 - IL_0028: ceq - IL_002a: stloc.2 - IL_002b: br.s IL_002d - - IL_002d: ldloc.2 - IL_002e: ret + IL_002b: ldloc.2 + IL_002c: ret } // end of method LiftedOperators::RetNotLt } // end of class ICSharpCode.Decompiler.Tests.TestCases.Pretty.LiftedOperators diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/Loops.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/Loops.il index b17ddd9ff..74e00afb6 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/Loops.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/Loops.il @@ -2938,7 +2938,7 @@ NestedForeach(class [mscorlib]System.Collections.Generic.List`1 items1, class [mscorlib]System.Collections.Generic.List`1 items2) cil managed { - // Code size 150 (0x96) + // Code size 152 (0x98) .maxstack 2 .locals init (object V_0, bool V_1, @@ -2953,7 +2953,7 @@ IL_0008: stloc.3 .try { - IL_0009: br.s IL_006b + IL_0009: br.s IL_006d IL_000b: ldloca.s V_3 IL_000d: call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator::get_Current() @@ -3009,47 +3009,49 @@ IL_005c: ldloc.1 IL_005d: stloc.s V_5 IL_005f: ldloc.s V_5 - IL_0061: brtrue.s IL_006a + IL_0061: brtrue.s IL_006c - IL_0063: ldloc.0 - IL_0064: call void [mscorlib]System.Console::WriteLine(object) - IL_0069: nop + IL_0063: nop + IL_0064: ldloc.0 + IL_0065: call void [mscorlib]System.Console::WriteLine(object) IL_006a: nop - IL_006b: ldloca.s V_3 - IL_006d: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator::MoveNext() - IL_0072: stloc.s V_5 - IL_0074: ldloc.s V_5 - IL_0076: brtrue.s IL_000b + IL_006b: nop + IL_006c: nop + IL_006d: ldloca.s V_3 + IL_006f: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator::MoveNext() + IL_0074: stloc.s V_5 + IL_0076: ldloc.s V_5 + IL_0078: brtrue.s IL_000b - IL_0078: leave.s IL_0089 + IL_007a: leave.s IL_008b } // end .try finally { - IL_007a: ldloca.s V_3 - IL_007c: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator - IL_0082: callvirt instance void [mscorlib]System.IDisposable::Dispose() - IL_0087: nop - IL_0088: endfinally + IL_007c: ldloca.s V_3 + IL_007e: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator + IL_0084: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_0089: nop + IL_008a: endfinally } // end handler - IL_0089: nop - IL_008a: ldstr "end" - IL_008f: call void [mscorlib]System.Console::WriteLine(string) - IL_0094: nop - IL_0095: ret + IL_008b: nop + IL_008c: ldstr "end" + IL_0091: call void [mscorlib]System.Console::WriteLine(string) + IL_0096: nop + IL_0097: ret } // end of method Loops::NestedForeach .method public hidebysig instance void MergeAroundContinue() cil managed { - // Code size 137 (0x89) + // Code size 140 (0x8c) .maxstack 2 .locals init (int32 V_0, bool V_1) IL_0000: nop IL_0001: ldc.i4.0 IL_0002: stloc.0 - IL_0003: br.s IL_0074 + IL_0003: br.s IL_0077 IL_0005: nop IL_0006: ldloc.0 @@ -3061,7 +3063,7 @@ IL_000d: ceq IL_000f: stloc.1 IL_0010: ldloc.1 - IL_0011: brtrue.s IL_0021 + IL_0011: brtrue.s IL_0022 IL_0013: nop IL_0014: ldloc.0 @@ -3069,94 +3071,97 @@ IL_0016: ceq IL_0018: stloc.1 IL_0019: ldloc.1 - IL_001a: brtrue.s IL_001e + IL_001a: brtrue.s IL_001f - IL_001c: br.s IL_0070 + IL_001c: nop + IL_001d: br.s IL_0073 - IL_001e: nop - IL_001f: br.s IL_0068 - - IL_0021: ldloc.0 - IL_0022: ldc.i4.5 - IL_0023: rem - IL_0024: ldc.i4.0 - IL_0025: ceq - IL_0027: ldc.i4.0 - IL_0028: ceq - IL_002a: stloc.1 - IL_002b: ldloc.1 - IL_002c: brtrue.s IL_003c - - IL_002e: nop - IL_002f: ldloc.0 - IL_0030: ldc.i4.5 - IL_0031: ceq - IL_0033: stloc.1 - IL_0034: ldloc.1 - IL_0035: brtrue.s IL_0039 + IL_001f: nop + IL_0020: br.s IL_006b + + IL_0022: ldloc.0 + IL_0023: ldc.i4.5 + IL_0024: rem + IL_0025: ldc.i4.0 + IL_0026: ceq + IL_0028: ldc.i4.0 + IL_0029: ceq + IL_002b: stloc.1 + IL_002c: ldloc.1 + IL_002d: brtrue.s IL_003e - IL_0037: br.s IL_0070 + IL_002f: nop + IL_0030: ldloc.0 + IL_0031: ldc.i4.5 + IL_0032: ceq + IL_0034: stloc.1 + IL_0035: ldloc.1 + IL_0036: brtrue.s IL_003b - IL_0039: nop - IL_003a: br.s IL_0068 + IL_0038: nop + IL_0039: br.s IL_0073 - IL_003c: ldloc.0 - IL_003d: ldc.i4.7 - IL_003e: rem - IL_003f: ldc.i4.0 - IL_0040: ceq - IL_0042: ldc.i4.0 - IL_0043: ceq - IL_0045: stloc.1 - IL_0046: ldloc.1 - IL_0047: brtrue.s IL_0057 + IL_003b: nop + IL_003c: br.s IL_006b - IL_0049: nop - IL_004a: ldloc.0 - IL_004b: ldc.i4.7 - IL_004c: ceq - IL_004e: stloc.1 - IL_004f: ldloc.1 - IL_0050: brtrue.s IL_0054 + IL_003e: ldloc.0 + IL_003f: ldc.i4.7 + IL_0040: rem + IL_0041: ldc.i4.0 + IL_0042: ceq + IL_0044: ldc.i4.0 + IL_0045: ceq + IL_0047: stloc.1 + IL_0048: ldloc.1 + IL_0049: brtrue.s IL_005a - IL_0052: br.s IL_0070 + IL_004b: nop + IL_004c: ldloc.0 + IL_004d: ldc.i4.7 + IL_004e: ceq + IL_0050: stloc.1 + IL_0051: ldloc.1 + IL_0052: brtrue.s IL_0057 IL_0054: nop - IL_0055: br.s IL_0068 + IL_0055: br.s IL_0073 + + IL_0057: nop + IL_0058: br.s IL_006b - IL_0057: ldloc.0 - IL_0058: ldc.i4.s 11 - IL_005a: rem - IL_005b: ldc.i4.0 - IL_005c: ceq + IL_005a: ldloc.0 + IL_005b: ldc.i4.s 11 + IL_005d: rem IL_005e: ldc.i4.0 IL_005f: ceq - IL_0061: stloc.1 - IL_0062: ldloc.1 - IL_0063: brtrue.s IL_0068 + IL_0061: ldc.i4.0 + IL_0062: ceq + IL_0064: stloc.1 + IL_0065: ldloc.1 + IL_0066: brtrue.s IL_006b - IL_0065: nop - IL_0066: br.s IL_0070 + IL_0068: nop + IL_0069: br.s IL_0073 - IL_0068: ldloc.0 - IL_0069: call void [mscorlib]System.Console::WriteLine(int32) - IL_006e: nop - IL_006f: nop - IL_0070: ldloc.0 - IL_0071: ldc.i4.1 - IL_0072: add - IL_0073: stloc.0 - IL_0074: ldloc.0 - IL_0075: ldc.i4.s 20 - IL_0077: clt - IL_0079: stloc.1 - IL_007a: ldloc.1 - IL_007b: brtrue.s IL_0005 - - IL_007d: ldstr "end" - IL_0082: call void [mscorlib]System.Console::WriteLine(string) - IL_0087: nop - IL_0088: ret + IL_006b: ldloc.0 + IL_006c: call void [mscorlib]System.Console::WriteLine(int32) + IL_0071: nop + IL_0072: nop + IL_0073: ldloc.0 + IL_0074: ldc.i4.1 + IL_0075: add + IL_0076: stloc.0 + IL_0077: ldloc.0 + IL_0078: ldc.i4.s 20 + IL_007a: clt + IL_007c: stloc.1 + IL_007d: ldloc.1 + IL_007e: brtrue.s IL_0005 + + IL_0080: ldstr "end" + IL_0085: call void [mscorlib]System.Console::WriteLine(string) + IL_008a: nop + IL_008b: ret } // end of method Loops::MergeAroundContinue .method public hidebysig specialname rtspecialname diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/Loops.roslyn.il b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/Loops.roslyn.il index 40e3f3412..5bb292564 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/Loops.roslyn.il +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/Loops.roslyn.il @@ -2756,7 +2756,7 @@ NestedForeach(class [mscorlib]System.Collections.Generic.List`1 items1, class [mscorlib]System.Collections.Generic.List`1 items2) cil managed { - // Code size 141 (0x8d) + // Code size 143 (0x8f) .maxstack 2 .locals init (valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator V_0, object V_1, @@ -2772,7 +2772,7 @@ IL_0008: stloc.0 .try { - IL_0009: br.s IL_0067 + IL_0009: br.s IL_0069 IL_000b: ldloca.s V_0 IL_000d: call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator::get_Current() @@ -2825,37 +2825,39 @@ IL_0057: ceq IL_0059: stloc.s V_6 IL_005b: ldloc.s V_6 - IL_005d: brfalse.s IL_0066 + IL_005d: brfalse.s IL_0068 - IL_005f: ldloc.1 - IL_0060: call void [mscorlib]System.Console::WriteLine(object) - IL_0065: nop + IL_005f: nop + IL_0060: ldloc.1 + IL_0061: call void [mscorlib]System.Console::WriteLine(object) IL_0066: nop - IL_0067: ldloca.s V_0 - IL_0069: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator::MoveNext() - IL_006e: brtrue.s IL_000b + IL_0067: nop + IL_0068: nop + IL_0069: ldloca.s V_0 + IL_006b: call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator::MoveNext() + IL_0070: brtrue.s IL_000b - IL_0070: leave.s IL_0081 + IL_0072: leave.s IL_0083 } // end .try finally { - IL_0072: ldloca.s V_0 - IL_0074: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator - IL_007a: callvirt instance void [mscorlib]System.IDisposable::Dispose() - IL_007f: nop - IL_0080: endfinally + IL_0074: ldloca.s V_0 + IL_0076: constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator + IL_007c: callvirt instance void [mscorlib]System.IDisposable::Dispose() + IL_0081: nop + IL_0082: endfinally } // end handler - IL_0081: ldstr "end" - IL_0086: call void [mscorlib]System.Console::WriteLine(string) - IL_008b: nop - IL_008c: ret + IL_0083: ldstr "end" + IL_0088: call void [mscorlib]System.Console::WriteLine(string) + IL_008d: nop + IL_008e: ret } // end of method Loops::NestedForeach .method public hidebysig instance void MergeAroundContinue() cil managed { - // Code size 144 (0x90) + // Code size 150 (0x96) .maxstack 2 .locals init (int32 V_0, bool V_1, @@ -2869,7 +2871,7 @@ IL_0000: nop IL_0001: ldc.i4.0 IL_0002: stloc.0 - IL_0003: br.s IL_0079 + IL_0003: br.s IL_007c IL_0005: nop IL_0006: ldloc.0 @@ -2879,7 +2881,7 @@ IL_000a: ceq IL_000c: stloc.1 IL_000d: ldloc.1 - IL_000e: brfalse.s IL_0021 + IL_000e: brfalse.s IL_0022 IL_0010: nop IL_0011: ldloc.0 @@ -2889,92 +2891,95 @@ IL_0016: ceq IL_0018: stloc.2 IL_0019: ldloc.2 - IL_001a: brfalse.s IL_001e + IL_001a: brfalse.s IL_001f - IL_001c: br.s IL_0075 + IL_001c: nop + IL_001d: br.s IL_0078 - IL_001e: nop - IL_001f: br.s IL_006d + IL_001f: nop + IL_0020: br.s IL_0070 - IL_0021: ldloc.0 - IL_0022: ldc.i4.5 - IL_0023: rem - IL_0024: ldc.i4.0 - IL_0025: ceq - IL_0027: stloc.3 - IL_0028: ldloc.3 - IL_0029: brfalse.s IL_003e + IL_0022: ldloc.0 + IL_0023: ldc.i4.5 + IL_0024: rem + IL_0025: ldc.i4.0 + IL_0026: ceq + IL_0028: stloc.3 + IL_0029: ldloc.3 + IL_002a: brfalse.s IL_0040 - IL_002b: nop - IL_002c: ldloc.0 - IL_002d: ldc.i4.5 - IL_002e: ceq - IL_0030: ldc.i4.0 - IL_0031: ceq - IL_0033: stloc.s V_4 - IL_0035: ldloc.s V_4 - IL_0037: brfalse.s IL_003b + IL_002c: nop + IL_002d: ldloc.0 + IL_002e: ldc.i4.5 + IL_002f: ceq + IL_0031: ldc.i4.0 + IL_0032: ceq + IL_0034: stloc.s V_4 + IL_0036: ldloc.s V_4 + IL_0038: brfalse.s IL_003d - IL_0039: br.s IL_0075 + IL_003a: nop + IL_003b: br.s IL_0078 - IL_003b: nop - IL_003c: br.s IL_006d - - IL_003e: ldloc.0 - IL_003f: ldc.i4.7 - IL_0040: rem - IL_0041: ldc.i4.0 - IL_0042: ceq - IL_0044: stloc.s V_5 - IL_0046: ldloc.s V_5 - IL_0048: brfalse.s IL_005d - - IL_004a: nop - IL_004b: ldloc.0 - IL_004c: ldc.i4.7 - IL_004d: ceq - IL_004f: ldc.i4.0 - IL_0050: ceq - IL_0052: stloc.s V_6 - IL_0054: ldloc.s V_6 - IL_0056: brfalse.s IL_005a - - IL_0058: br.s IL_0075 + IL_003d: nop + IL_003e: br.s IL_0070 + + IL_0040: ldloc.0 + IL_0041: ldc.i4.7 + IL_0042: rem + IL_0043: ldc.i4.0 + IL_0044: ceq + IL_0046: stloc.s V_5 + IL_0048: ldloc.s V_5 + IL_004a: brfalse.s IL_0060 + + IL_004c: nop + IL_004d: ldloc.0 + IL_004e: ldc.i4.7 + IL_004f: ceq + IL_0051: ldc.i4.0 + IL_0052: ceq + IL_0054: stloc.s V_6 + IL_0056: ldloc.s V_6 + IL_0058: brfalse.s IL_005d IL_005a: nop - IL_005b: br.s IL_006d + IL_005b: br.s IL_0078 - IL_005d: ldloc.0 - IL_005e: ldc.i4.s 11 - IL_0060: rem - IL_0061: ldc.i4.0 - IL_0062: ceq - IL_0064: stloc.s V_7 - IL_0066: ldloc.s V_7 - IL_0068: brfalse.s IL_006d + IL_005d: nop + IL_005e: br.s IL_0070 - IL_006a: nop - IL_006b: br.s IL_0075 - - IL_006d: ldloc.0 - IL_006e: call void [mscorlib]System.Console::WriteLine(int32) - IL_0073: nop - IL_0074: nop - IL_0075: ldloc.0 - IL_0076: ldc.i4.1 - IL_0077: add - IL_0078: stloc.0 - IL_0079: ldloc.0 - IL_007a: ldc.i4.s 20 - IL_007c: clt - IL_007e: stloc.s V_8 - IL_0080: ldloc.s V_8 - IL_0082: brtrue.s IL_0005 - - IL_0084: ldstr "end" - IL_0089: call void [mscorlib]System.Console::WriteLine(string) - IL_008e: nop - IL_008f: ret + IL_0060: ldloc.0 + IL_0061: ldc.i4.s 11 + IL_0063: rem + IL_0064: ldc.i4.0 + IL_0065: ceq + IL_0067: stloc.s V_7 + IL_0069: ldloc.s V_7 + IL_006b: brfalse.s IL_0070 + + IL_006d: nop + IL_006e: br.s IL_0078 + + IL_0070: ldloc.0 + IL_0071: call void [mscorlib]System.Console::WriteLine(int32) + IL_0076: nop + IL_0077: nop + IL_0078: ldloc.0 + IL_0079: ldc.i4.1 + IL_007a: add + IL_007b: stloc.0 + IL_007c: ldloc.0 + IL_007d: ldc.i4.s 20 + IL_007f: clt + IL_0081: stloc.s V_8 + IL_0083: ldloc.s V_8 + IL_0085: brtrue IL_0005 + + IL_008a: ldstr "end" + IL_008f: call void [mscorlib]System.Console::WriteLine(string) + IL_0094: nop + IL_0095: ret } // end of method Loops::MergeAroundContinue .method public hidebysig specialname rtspecialname diff --git a/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj b/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj index 1c57853f4..f390eeaf5 100644 --- a/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj +++ b/ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj @@ -51,8 +51,8 @@ - - + + diff --git a/ICSharpCode.Decompiler/IL/ILTypeExtensions.cs b/ICSharpCode.Decompiler/IL/ILTypeExtensions.cs index afe7d6c18..592458441 100644 --- a/ICSharpCode.Decompiler/IL/ILTypeExtensions.cs +++ b/ICSharpCode.Decompiler/IL/ILTypeExtensions.cs @@ -177,6 +177,22 @@ namespace ICSharpCode.Decompiler.IL default: return SpecialType.UnknownType; } + case BinaryNumericInstruction bni: + if (bni.IsLifted) + return SpecialType.UnknownType; + switch (bni.Operator) { + case BinaryNumericOperator.BitAnd: + case BinaryNumericOperator.BitOr: + case BinaryNumericOperator.BitXor: + var left = bni.Left.InferType(compilation); + var right = bni.Right.InferType(compilation); + if (left.Equals(right) && (left.IsCSharpPrimitiveIntegerType() || left.IsKnownType(KnownTypeCode.Boolean))) + return left; + else + return SpecialType.UnknownType; + default: + return SpecialType.UnknownType; + } default: return SpecialType.UnknownType; } diff --git a/ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs b/ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs index 19263dbdf..2baede38e 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs @@ -499,13 +499,16 @@ namespace ICSharpCode.Decompiler.IL.Transforms break; case BinaryNumericOperator.BitAnd: if (inst.Left.InferType(context.TypeSystem).IsKnownType(KnownTypeCode.Boolean) - && inst.Right.InferType(context.TypeSystem).IsKnownType(KnownTypeCode.Boolean) - && SemanticHelper.IsPure(inst.Right.Flags)) + && inst.Right.InferType(context.TypeSystem).IsKnownType(KnownTypeCode.Boolean)) { - context.Step("Replace bit.and with logic.and", inst); - var expr = IfInstruction.LogicAnd(inst.Left, inst.Right); - inst.ReplaceWith(expr); - expr.AcceptVisitor(this); + if (new NullableLiftingTransform(context).Run(inst)) { + // e.g. "(a.GetValueOrDefault() == b.GetValueOrDefault()) & (a.HasValue & b.HasValue)" + } else if (SemanticHelper.IsPure(inst.Right.Flags)) { + context.Step("Replace bit.and with logic.and", inst); + var expr = IfInstruction.LogicAnd(inst.Left, inst.Right); + inst.ReplaceWith(expr); + expr.AcceptVisitor(this); + } } break; } diff --git a/ICSharpCode.Decompiler/IL/Transforms/NullPropagationTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/NullPropagationTransform.cs index 6737b6ac9..7f0b6f428 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/NullPropagationTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/NullPropagationTransform.cs @@ -39,7 +39,8 @@ namespace ICSharpCode.Decompiler.IL.Transforms // We exclude logic.and to avoid turning // "logic.and(comp(interfaces != ldnull), call get_Count(interfaces))" // into "if ((interfaces?.Count ?? 0) != 0)". - return (ifInst.MatchLogicAnd(out _, out _) || ifInst.MatchLogicOr(out _, out _)) + return ifInst != null + && (ifInst.MatchLogicAnd(out _, out _) || ifInst.MatchLogicOr(out _, out _)) && IfInstruction.IsInConditionSlot(ifInst); } diff --git a/ICSharpCode.Decompiler/IL/Transforms/NullableLiftingTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/NullableLiftingTransform.cs index deb8f7da4..6879392fd 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/NullableLiftingTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/NullableLiftingTransform.cs @@ -56,7 +56,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms /// public bool Run(IfInstruction ifInst) { - var lifted = Lift(ifInst, ifInst.TrueInst, ifInst.FalseInst); + var lifted = Lift(ifInst, ifInst.Condition, ifInst.TrueInst, ifInst.FalseInst); if (lifted != null) { ifInst.ReplaceWith(lifted); return true; @@ -64,6 +64,25 @@ namespace ICSharpCode.Decompiler.IL.Transforms return false; } + /// + /// VS2017.8 / Roslyn 2.9 started optimizing some cases of + /// "a.GetValueOrDefault() == b.GetValueOrDefault() && (a.HasValue & b.HasValue)" + /// to + /// "(a.GetValueOrDefault() == b.GetValueOrDefault()) & (a.HasValue & b.HasValue)" + /// so this secondary entry point analyses logic.and as-if it was a short-circuting &&. + /// + public bool Run(BinaryNumericInstruction bni) + { + Debug.Assert(!bni.IsLifted && bni.Operator == BinaryNumericOperator.BitAnd); + // caller ensures that bni.Left/bni.Right are booleans + var lifted = Lift(bni, bni.Left, bni.Right, new LdcI4(0)); + if (lifted != null) { + bni.ReplaceWith(lifted); + return true; + } + return false; + } + public bool RunStatements(Block block, int pos) { /// e.g.: @@ -85,7 +104,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms if (elseLeave.TargetContainer != thenLeave.TargetContainer) return false; - var lifted = Lift(ifInst, thenLeave.Value, elseLeave.Value); + var lifted = Lift(ifInst, ifInst.Condition, thenLeave.Value, elseLeave.Value); if (lifted != null) { thenLeave.Value = lifted; ifInst.ReplaceWith(thenLeave); @@ -118,14 +137,15 @@ namespace ICSharpCode.Decompiler.IL.Transforms /// Main entry point for lifting; called by both the expression-transform /// and the block transform. /// - ILInstruction Lift(IfInstruction ifInst, ILInstruction trueInst, ILInstruction falseInst) + ILInstruction Lift(ILInstruction ifInst, ILInstruction condition, ILInstruction trueInst, ILInstruction falseInst) { - ILInstruction condition = ifInst.Condition; + // ifInst is usually the IfInstruction to which condition belongs; + // but can also be a BinaryNumericInstruction. while (condition.MatchLogicNot(out var arg)) { condition = arg; ExtensionMethods.Swap(ref trueInst, ref falseInst); } - if (context.Settings.NullPropagation && !NullPropagationTransform.IsProtectedIfInst(ifInst)) { + if (context.Settings.NullPropagation && !NullPropagationTransform.IsProtectedIfInst(ifInst as IfInstruction)) { var nullPropagated = new NullPropagationTransform(context) .Run(condition, trueInst, falseInst, ifInst.ILRange); if (nullPropagated != null) diff --git a/ILSpy.Tests/ILSpy.Tests.csproj b/ILSpy.Tests/ILSpy.Tests.csproj index e2383bb4e..ec7958a66 100644 --- a/ILSpy.Tests/ILSpy.Tests.csproj +++ b/ILSpy.Tests/ILSpy.Tests.csproj @@ -42,10 +42,10 @@ - - + + - +