1 .assembly extern mscorlib
4 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )
6 .assembly 'gsharing-valuetype-layout'
8 .hash algorithm 0x00008004
11 .module 'gsharing-valuetype-layout.exe'
14 .namespace TestMonoAsyncGenerics
16 .class private auto ansi beforefieldinit TestMonoAsyncGenerics extends [mscorlib]System.Object
19 .field public static int32 ldfld_res
21 .method public static hidebysig default class [mscorlib]System.Threading.Tasks.Task`1<!!METHOD_ARG> AsyncWithAwait<METHOD_ARG> (int32 a) cil managed
25 valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!!METHOD_ARG> V_0,
26 valuetype [mscorlib]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<!!METHOD_ARG> V_1)
29 stfld int32 valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!!0>::special_field
31 call valuetype [mscorlib]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<!0> valuetype [mscorlib]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<!!METHOD_ARG>::Create()
32 stfld valuetype [mscorlib]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<!0> valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!!0>::'<>t__builder'
35 stfld int32 valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!!0>::'<>1__state'
37 ldfld valuetype [mscorlib]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<!0> valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!!0>::'<>t__builder'
41 call instance void valuetype [mscorlib]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<!!METHOD_ARG>::Start<valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!!0>> ([out] !!0&)
43 ldflda valuetype [mscorlib]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<!0> valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!!0>::'<>t__builder'
44 call instance class [mscorlib]System.Threading.Tasks.Task`1<!0> valuetype [mscorlib]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<!!METHOD_ARG>::get_Task()
48 .method private static hidebysig default int32 Main (string[] args) cil managed
53 call class [mscorlib]System.Threading.Tasks.Task`1<!!0> class TestMonoAsyncGenerics.TestMonoAsyncGenerics::AsyncWithAwait<object> (int32)
56 ldsfld int32 TestMonoAsyncGenerics.TestMonoAsyncGenerics::ldfld_res
64 .method public hidebysig specialname rtspecialname instance default void '.ctor' () cil managed
68 call instance void object::'.ctor'()
72 .class nested private auto ansi sealed beforefieldinit '<AsyncWithAwait>d__0`1'<TYPE_ARG> extends [mscorlib]System.ValueType
73 implements [mscorlib]System.Runtime.CompilerServices.IAsyncStateMachine {
75 .field public int32 '<>1__state'
76 .field public valuetype [mscorlib]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<!0> '<>t__builder'
78 //we store/load from this field from very different contexts and thus triggering the runtime codepath that gives them
79 //different runtime layouts.
80 .field public int32 special_field
81 .field private valuetype [mscorlib]System.Runtime.CompilerServices.TaskAwaiter '<>u__$awaiter1'
82 .field private object '<>t__stack'
84 .method private final virtual hidebysig newslot instance default void MoveNext () cil managed
86 .override class [mscorlib]System.Runtime.CompilerServices.IAsyncStateMachine::MoveNext
91 class [mscorlib]System.Exception V_2,
93 valuetype [mscorlib]System.Runtime.CompilerServices.TaskAwaiter V_4,
94 valuetype [mscorlib]System.Runtime.CompilerServices.TaskAwaiter V_5,
100 ldfld int32 valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!0>::'<>1__state'
106 ldstr "AsyncWithAwait {0}"
108 ldfld int32 valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!0>::special_field
110 stsfld int32 TestMonoAsyncGenerics.TestMonoAsyncGenerics::ldfld_res
111 box [mscorlib]System.Int32
112 call void class [mscorlib]System.Console::WriteLine(string, object)
114 call class [mscorlib]System.Threading.Tasks.Task class [mscorlib]System.Threading.Tasks.Task::Delay(int32)
115 callvirt instance valuetype [mscorlib]System.Runtime.CompilerServices.TaskAwaiter class [mscorlib]System.Threading.Tasks.Task::GetAwaiter()
118 call instance bool valuetype [mscorlib]System.Runtime.CompilerServices.TaskAwaiter::get_IsCompleted()
123 stfld int32 valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!0>::'<>1__state'
126 stfld valuetype [mscorlib]System.Runtime.CompilerServices.TaskAwaiter valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!0>::'<>u__$awaiter1'
128 ldflda valuetype [mscorlib]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<!0> valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!0>::'<>t__builder'
131 call instance void valuetype [mscorlib]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<!TYPE_ARG>::AwaitUnsafeOnCompleted<valuetype [mscorlib]System.Runtime.CompilerServices.TaskAwaiter, valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!0>> ([out] !!0&, [out] !!1&)
137 ldfld valuetype [mscorlib]System.Runtime.CompilerServices.TaskAwaiter valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!0>::'<>u__$awaiter1'
141 initobj [mscorlib]System.Runtime.CompilerServices.TaskAwaiter
143 stfld valuetype [mscorlib]System.Runtime.CompilerServices.TaskAwaiter valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!0>::'<>u__$awaiter1'
146 stfld int32 valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!0>::'<>1__state'
149 call instance void valuetype [mscorlib]System.Runtime.CompilerServices.TaskAwaiter::GetResult()
151 initobj [mscorlib]System.Runtime.CompilerServices.TaskAwaiter
158 catch class [mscorlib]System.Exception {
162 stfld int32 valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!0>::'<>1__state'
164 ldflda valuetype [mscorlib]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<!0> valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!0>::'<>t__builder'
166 call instance void valuetype [mscorlib]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<!TYPE_ARG>::SetException(class [mscorlib]System.Exception)
171 stfld int32 valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!0>::'<>1__state'
173 ldflda valuetype [mscorlib]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<!0> valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!0>::'<>t__builder'
175 call instance void valuetype [mscorlib]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<!TYPE_ARG>::SetResult(!0)
180 .method private final virtual hidebysig newslot instance default void SetStateMachine (class [mscorlib]System.Runtime.CompilerServices.IAsyncStateMachine param0) cil managed
182 .override class [mscorlib]System.Runtime.CompilerServices.IAsyncStateMachine::SetStateMachine
185 ldflda valuetype [mscorlib]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<!0> valuetype TestMonoAsyncGenerics.TestMonoAsyncGenerics/'<AsyncWithAwait>d__0`1'<!0>::'<>t__builder'
187 call instance void valuetype [mscorlib]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<!TYPE_ARG>::SetStateMachine(class [mscorlib]System.Runtime.CompilerServices.IAsyncStateMachine)