@@ -164,8 +164,8 @@ class Perfolizer.Horology.IClock clock
164164 var ilBuilder = actionMethodBuilder . GetILGenerator ( ) ;
165165
166166 // init locals
167- var argLocals = runnableEmitter . EmitDeclareArgLocals ( ilBuilder ) ;
168167 var valueLocal = ilBuilder . DeclareLocal ( ConsumableInfo . OverheadMethodReturnType ) ;
168+ var argLocals = runnableEmitter . EmitDeclareArgLocals ( ilBuilder ) ;
169169 var indexLocal = ilBuilder . DeclareLocal ( typeof ( long ) ) ;
170170
171171 /*
@@ -215,7 +215,7 @@ class Perfolizer.Horology.IClock clock
215215 */
216216 ilBuilder . Emit ( OpCodes . Ldarg_0 ) ;
217217 ilBuilder . Emit ( OpCodes . Ldfld , actionDelegateField ) ;
218- ilBuilder . Emit ( OpCodes . Callvirt , actionInvokeMethod ) ;
218+ ilBuilder . EmitInstanceCallThisValueOnStack ( null , actionInvokeMethod , argLocals ) ;
219219 ilBuilder . EmitStloc ( valueLocal ) ;
220220 }
221221 ilBuilder . EmitLoopEndFromFldTo0 ( loopStartLabel , loopHeadLabel , repeatsRemainingField , indexLocal ) ;
@@ -367,8 +367,8 @@ instance void __RunTask () cil managed
367367 // [1] int64,
368368 // [2] class [System.Private.CoreLib]System.Exception e
369369 //)
370- var argLocals = runnableEmitter . EmitDeclareArgLocals ( ilBuilder ) ;
371370 var clockspanLocal = ilBuilder . DeclareLocal ( typeof ( ClockSpan ) ) ;
371+ var argLocals = runnableEmitter . EmitDeclareArgLocals ( ilBuilder ) ;
372372 LocalBuilder maybeValueTaskLocal = actionInvokeMethod . ReturnType . IsValueType
373373 ? ilBuilder . DeclareLocal ( actionInvokeMethod . ReturnType )
374374 : null ;
@@ -417,7 +417,7 @@ instance void __RunTask () cil managed
417417 ilBuilder . Emit ( OpCodes . Ldarg_0 ) ;
418418 ilBuilder . Emit ( OpCodes . Ldflda , currentAwaiterField ) ;
419419 ilBuilder . Emit ( OpCodes . Call , currentAwaiterField . FieldType . GetProperty ( nameof ( TaskAwaiter . IsCompleted ) , BindingFlagsAllInstance ) . GetGetMethod ( true ) ) ;
420- ilBuilder . Emit ( OpCodes . Brtrue_S , isCompletedLabel ) ;
420+ ilBuilder . Emit ( OpCodes . Brtrue , isCompletedLabel ) ;
421421 {
422422 /*
423423 // currentAwaiter.UnsafeOnCompleted(continuation);
@@ -433,7 +433,7 @@ instance void __RunTask () cil managed
433433 ilBuilder . Emit ( OpCodes . Ldfld , continuationField ) ;
434434 ilBuilder . Emit ( OpCodes . Call , currentAwaiterField . FieldType . GetMethod ( nameof ( TaskAwaiter . UnsafeOnCompleted ) , BindingFlagsAllInstance ) ) ;
435435 // return;
436- ilBuilder . Emit ( OpCodes . Leave_S , returnLabel ) ;
436+ ilBuilder . Emit ( OpCodes . Leave , returnLabel ) ;
437437 }
438438 ilBuilder . MarkLabel ( isCompletedLabel ) ;
439439 /*
@@ -468,7 +468,7 @@ instance void __RunTask () cil managed
468468 ilBuilder . EmitLdloc ( exceptionLocal ) ;
469469 ilBuilder . Emit ( OpCodes . Call , setExceptionMethod ) ;
470470 // return;
471- ilBuilder . Emit ( OpCodes . Leave_S , returnLabel ) ;
471+ ilBuilder . Emit ( OpCodes . Leave , returnLabel ) ;
472472 }
473473 ilBuilder . EndExceptionBlock ( ) ;
474474
@@ -570,7 +570,7 @@ instance void __Continuation () cil managed
570570 ilBuilder . EmitLdloc ( exceptionLocal ) ;
571571 ilBuilder . Emit ( OpCodes . Call , setExceptionMethod ) ;
572572 // return;
573- ilBuilder . Emit ( OpCodes . Leave_S , returnLabel ) ;
573+ ilBuilder . Emit ( OpCodes . Leave , returnLabel ) ;
574574 }
575575 ilBuilder . EndExceptionBlock ( ) ;
576576
0 commit comments