.NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

70 lines
2.3 KiB

// Metadata version: v4.0.30319
.assembly extern System.Runtime
{
.publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....:
.ver 9:0:0:0
}
.assembly StackAllocDuplicateStore
{
.ver 1:0:0:0
}
.module StackAllocDuplicateStore.dll
.corflags 0x00000001 // ILONLY
// A stackalloc initializer that writes the first element twice. The sequential-store
// initializer transform must not fold this into a 'stackalloc int[] { ... }': the earlier
// store would be dropped, which is observable when its value has side effects.
.class public abstract auto ansi sealed beforefieldinit ICSharpCode.Decompiler.Tests.TestCases.ILPretty.StackAllocDuplicateStore
extends [System.Runtime]System.Object
{
.method public hidebysig static int32 Seq(int32 a,
int32 b,
int32 c) cil managed
{
.maxstack 4
.locals init (valuetype [System.Runtime]System.Span`1<int32> V_0)
IL_0000: ldc.i4.s 12
IL_0002: conv.u
IL_0003: localloc
IL_0005: dup
IL_0006: ldarg.0
IL_0007: stind.i4
IL_0008: dup
IL_0009: ldc.i4.s 99
IL_000b: stind.i4
IL_000c: dup
IL_000d: ldc.i4.4
IL_000e: add
IL_000f: ldarg.1
IL_0010: stind.i4
IL_0011: dup
IL_0012: ldc.i4.2
IL_0013: conv.i
IL_0014: ldc.i4.4
IL_0015: mul
IL_0016: add
IL_0017: ldarg.2
IL_0018: stind.i4
IL_0019: ldc.i4.3
IL_001a: newobj instance void valuetype [System.Runtime]System.Span`1<int32>::.ctor(void*,
int32)
IL_001f: stloc.0
IL_0020: ldloca.s V_0
IL_0022: ldc.i4.0
IL_0023: call instance !0& valuetype [System.Runtime]System.Span`1<int32>::get_Item(int32)
IL_0028: ldind.i4
IL_0029: ldloca.s V_0
IL_002b: ldc.i4.1
IL_002c: call instance !0& valuetype [System.Runtime]System.Span`1<int32>::get_Item(int32)
IL_0031: ldind.i4
IL_0032: add
IL_0033: ldloca.s V_0
IL_0035: ldc.i4.2
IL_0036: call instance !0& valuetype [System.Runtime]System.Span`1<int32>::get_Item(int32)
IL_003b: ldind.i4
IL_003c: add
IL_003d: ret
} // end of method StackAllocDuplicateStore::Seq
} // end of class StackAllocDuplicateStore