// Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. .file alignment 512 .assembly extern mscorlib { } .assembly extern System.Console { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) .ver 4:0:0:0 } .assembly jumper // as "jumper" { // bool) = ( 01 00 00 01 00 00 ) } .module jumper.exe // MVID: {2E4A2D77-5614-4325-A9DC-CBB90842669E} .namespace MS { .class value private auto ansi sealed VT extends [mscorlib]System.ValueType { .field private int32 m_n .field private value class MS.VT[] m_dummyGCRef .method private hidebysig specialname rtspecialname instance void .ctor(int32 n) il managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: stfld int32 MS.VT::m_n IL_0007: ldarg.0 IL_0008: ldc.i4.s 10 IL_000a: newarr MS.VT IL_000f: stfld value class MS.VT[] MS.VT::m_dummyGCRef IL_0014: ret } // end of method VT::.ctor .method private hidebysig instance value class MS.VT 'add'(value class MS.VT what) il managed { .maxstack 8 .locals (value class MS.VT V_0) ldarg.0 dup ldfld int32 MS.VT::m_n ldarga.s what ldfld int32 MS.VT::m_n add stfld int32 MS.VT::m_n ldarg.0 ldobj MS.VT ret } // end of method VT::'add' .method private hidebysig instance value class MS.VT 'sub'(value class MS.VT what) il managed { .maxstack 8 .locals (value class MS.VT V_0) ldarga.s what dup ldfld int32 MS.VT::m_n neg stfld int32 MS.VT::m_n ldarg.0 ldarg.1 ldftn instance value class MS.VT MS.VT::'add'(value class MS.VT) calli instance value class MS.VT(value class MS.VT) ret } // end of method VT::'sub' .method private hidebysig static int32 Main() il managed { .entrypoint // Code size 96 (0x60) .maxstack 2 .locals (value class MS.VT V_0, value class MS.VT V_1, value class MS.VT V_2, int32 V_3) IL_0000: ldloca.s V_0 IL_0002: ldc.i4.s 100 IL_0004: call instance void MS.VT::.ctor(int32) IL_0009: ldloca.s V_1 IL_000b: ldc.i4.s 99 IL_000d: call instance void MS.VT::.ctor(int32) IL_0012: ldloca.s V_0 IL_0014: ldloc.1 IL_0015: call instance value class MS.VT MS.VT::'add'(value class MS.VT) IL_001a: stloc.0 IL_001b: ldloca.s V_0 IL_001d: ldloc.1 IL_001e: call instance value class MS.VT MS.VT::'sub'(value class MS.VT) IL_0023: stloc.0 IL_0024: ldloca.s V_0 IL_0026: ldfld int32 MS.VT::m_n IL_002b: ldc.i4.s 100 IL_002d: beq.s IL_0039 IL_002f: ldloca.s V_0 IL_0031: ldfld int32 MS.VT::m_n IL_0036: stloc.3 IL_0037: br.s IL_005e IL_0039: ldloca.s V_2 IL_003b: ldc.i4.s 96 IL_003d: call instance void MS.VT::.ctor(int32) IL_0042: ldloca.s V_0 IL_0044: ldloc.2 IL_0045: call instance value class MS.VT MS.VT::'add'(value class MS.VT) IL_004a: pop IL_004b: ldloca.s V_0 IL_004d: ldloc.2 IL_004e: call instance value class MS.VT MS.VT::'sub'(value class MS.VT) IL_0053: pop IL_0054: ldloca.s V_0 IL_0056: ldfld int32 MS.VT::m_n IL_005b: stloc.3 IL_005c: br.s IL_005e IL_005e: ldloc.3 IL_005f: ret } // end of method VT::Main } // end of class VT } // end of namespace MS //*********** DISASSEMBLY COMPLETE ***********************