2818 references to ILOpcode
ilc (2)
parent\parent\Common\TypeSystem\IL\HelperExtensions.cs (2)
66codeStream.Emit(ILOpcode.call, emitter.NewToken(method)); 67codeStream.Emit(ILOpcode.br, label);
ILCompiler.Compiler (1946)
Compiler\BodySubstitution.cs (2)
44codestream.Emit(ILOpcode.ret); 50codestream.Emit(ILOpcode.ret);
Compiler\CompilerTypeSystemContext.InterfaceThunks.cs (7)
238codeStream.Emit(ILOpcode.call, emit.NewToken(getCurrentContext)); 243codeStream.Emit(ILOpcode.ldfld, emit.NewToken(eeTypeField)); 249codeStream.Emit(ILOpcode.call, emit.NewToken(getOrdinalInterfaceMethod)); 252codeStream.Emit(ILOpcode.call, emit.NewToken(Context.GetCoreLibEntryPoint("System.Runtime.CompilerServices"u8, "RuntimeHelpers"u8, "SetNextCallGenericContext"u8, null))); 262codeStream.Emit(ILOpcode.call, emit.NewToken(Context.GetCoreLibEntryPoint("System.Runtime.CompilerServices"u8, "AsyncHelpers"u8, "TailAwait"u8, null))); 265codeStream.Emit(ILOpcode.call, emit.NewToken(_targetMethod)); 266codeStream.Emit(ILOpcode.ret);
Compiler\Dataflow\CompilerGeneratedState.cs (16)
166ILOpcode opcode = reader.ReadILOpcode(); 169case ILOpcode.ldftn: 170case ILOpcode.ldtoken: 171case ILOpcode.call: 172case ILOpcode.callvirt: 173case ILOpcode.newobj: 213case ILOpcode.stsfld: 214case ILOpcode.ldsfld: 466ILOpcode opcode = reader.ReadILOpcode(); 471case ILOpcode.newobj: 483case ILOpcode.ldftn: 484case ILOpcode.ldtoken: 485case ILOpcode.call: 486case ILOpcode.callvirt: 490case ILOpcode.stsfld: 491case ILOpcode.ldsfld:
Compiler\Dataflow\FlowAnnotations.cs (5)
692ILOpcode opcode = ilReader.ReadILOpcode(); 695case ILOpcode.ldsfld when !isWriteAccessor: 696case ILOpcode.ldfld when !isWriteAccessor: 697case ILOpcode.stsfld when isWriteAccessor: 698case ILOpcode.stfld when isWriteAccessor:
Compiler\Dataflow\HandleCallAction.cs (4)
29private ILOpcode _operation; 35ILOpcode operation, 43_isNewObj = operation == ILOpcode.newobj; 227if (_operation == ILOpcode.newobj)
Compiler\Dataflow\MethodBodyScanner.cs (251)
190ILOpcode opcode = reader.ReadILOpcode(); 379ILOpcode opcode = reader.ReadILOpcode(); 383case ILOpcode.add: 384case ILOpcode.add_ovf: 385case ILOpcode.add_ovf_un: 386case ILOpcode.and: 387case ILOpcode.div: 388case ILOpcode.div_un: 389case ILOpcode.mul: 390case ILOpcode.mul_ovf: 391case ILOpcode.mul_ovf_un: 392case ILOpcode.or: 393case ILOpcode.rem: 394case ILOpcode.rem_un: 395case ILOpcode.sub: 396case ILOpcode.sub_ovf: 397case ILOpcode.sub_ovf_un: 398case ILOpcode.xor: 399case ILOpcode.cgt: 400case ILOpcode.cgt_un: 401case ILOpcode.clt: 402case ILOpcode.clt_un: 403case ILOpcode.shl: 404case ILOpcode.shr: 405case ILOpcode.shr_un: 406case ILOpcode.ceq: 412case ILOpcode.dup: 416case ILOpcode.ldnull: 421case ILOpcode.ldc_i4_0: 422case ILOpcode.ldc_i4_1: 423case ILOpcode.ldc_i4_2: 424case ILOpcode.ldc_i4_3: 425case ILOpcode.ldc_i4_4: 426case ILOpcode.ldc_i4_5: 427case ILOpcode.ldc_i4_6: 428case ILOpcode.ldc_i4_7: 429case ILOpcode.ldc_i4_8: 431int value = opcode - ILOpcode.ldc_i4_0; 438case ILOpcode.ldc_i4_m1: 446case ILOpcode.ldc_i4: 455case ILOpcode.ldc_i4_s: 464case ILOpcode.arglist: 465case ILOpcode.sizeof_: 466case ILOpcode.ldc_i8: 467case ILOpcode.ldc_r4: 468case ILOpcode.ldc_r8: 473case ILOpcode.ldftn: 485case ILOpcode.ldarg: 486case ILOpcode.ldarg_0: 487case ILOpcode.ldarg_1: 488case ILOpcode.ldarg_2: 489case ILOpcode.ldarg_3: 490case ILOpcode.ldarg_s: 491case ILOpcode.ldarga: 492case ILOpcode.ldarga_s: 495ILOpcode.ldarg => reader.ReadILUInt16(), 496ILOpcode.ldarga => reader.ReadILUInt16(), 497ILOpcode.ldarg_s => reader.ReadILByte(), 498ILOpcode.ldarga_s => reader.ReadILByte(), 499_ => opcode - ILOpcode.ldarg_0 503case ILOpcode.ldloc: 504case ILOpcode.ldloc_0: 505case ILOpcode.ldloc_1: 506case ILOpcode.ldloc_2: 507case ILOpcode.ldloc_3: 508case ILOpcode.ldloc_s: 509case ILOpcode.ldloca: 510case ILOpcode.ldloca_s: 513ILOpcode.ldloc => reader.ReadILUInt16(), 514ILOpcode.ldloca => reader.ReadILUInt16(), 515ILOpcode.ldloc_s => reader.ReadILByte(), 516ILOpcode.ldloca_s => reader.ReadILByte(), 517_ => opcode - ILOpcode.ldloc_0 522case ILOpcode.ldstr: 529case ILOpcode.ldtoken: 534case ILOpcode.ldvirtftn: 546case ILOpcode.ldind_i: 547case ILOpcode.ldind_i1: 548case ILOpcode.ldind_i2: 549case ILOpcode.ldind_i4: 550case ILOpcode.ldind_i8: 551case ILOpcode.ldind_r4: 552case ILOpcode.ldind_r8: 553case ILOpcode.ldind_u1: 554case ILOpcode.ldind_u2: 555case ILOpcode.ldind_u4: 556case ILOpcode.ldlen: 557case ILOpcode.localloc: 558case ILOpcode.refanytype: 559case ILOpcode.refanyval: 560case ILOpcode.conv_i1: 561case ILOpcode.conv_i2: 562case ILOpcode.conv_i4: 563case ILOpcode.conv_ovf_i1: 564case ILOpcode.conv_ovf_i1_un: 565case ILOpcode.conv_ovf_i2: 566case ILOpcode.conv_ovf_i2_un: 567case ILOpcode.conv_ovf_i4: 568case ILOpcode.conv_ovf_i4_un: 569case ILOpcode.conv_ovf_u: 570case ILOpcode.conv_ovf_u_un: 571case ILOpcode.conv_ovf_u1: 572case ILOpcode.conv_ovf_u1_un: 573case ILOpcode.conv_ovf_u2: 574case ILOpcode.conv_ovf_u2_un: 575case ILOpcode.conv_ovf_u4: 576case ILOpcode.conv_ovf_u4_un: 577case ILOpcode.conv_u1: 578case ILOpcode.conv_u2: 579case ILOpcode.conv_u4: 580case ILOpcode.conv_i8: 581case ILOpcode.conv_ovf_i8: 582case ILOpcode.conv_ovf_i8_un: 583case ILOpcode.conv_ovf_u8: 584case ILOpcode.conv_ovf_u8_un: 585case ILOpcode.conv_u8: 586case ILOpcode.conv_i: 587case ILOpcode.conv_ovf_i: 588case ILOpcode.conv_ovf_i_un: 589case ILOpcode.conv_u: 590case ILOpcode.conv_r_un: 591case ILOpcode.conv_r4: 592case ILOpcode.conv_r8: 593case ILOpcode.ldind_ref: 594case ILOpcode.ldobj: 595case ILOpcode.unbox: 596case ILOpcode.unbox_any: 597case ILOpcode.neg: 598case ILOpcode.not: 604case ILOpcode.box: 605case ILOpcode.mkrefany: 611case ILOpcode.isinst: 612case ILOpcode.castclass: 619case ILOpcode.ldfld: 620case ILOpcode.ldsfld: 621case ILOpcode.ldflda: 622case ILOpcode.ldsflda: 626case ILOpcode.newarr: 635case ILOpcode.stelem_i: 636case ILOpcode.stelem_i1: 637case ILOpcode.stelem_i2: 638case ILOpcode.stelem_i4: 639case ILOpcode.stelem_i8: 640case ILOpcode.stelem_r4: 641case ILOpcode.stelem_r8: 642case ILOpcode.stelem: 643case ILOpcode.stelem_ref: 648case ILOpcode.ldelem_i: 649case ILOpcode.ldelem_i1: 650case ILOpcode.ldelem_i2: 651case ILOpcode.ldelem_i4: 652case ILOpcode.ldelem_i8: 653case ILOpcode.ldelem_r4: 654case ILOpcode.ldelem_r8: 655case ILOpcode.ldelem_u1: 656case ILOpcode.ldelem_u2: 657case ILOpcode.ldelem_u4: 658case ILOpcode.ldelem: 659case ILOpcode.ldelem_ref: 660case ILOpcode.ldelema: 665case ILOpcode.cpblk: 666case ILOpcode.initblk: 671case ILOpcode.stfld: 672case ILOpcode.stsfld: 676case ILOpcode.cpobj: 681case ILOpcode.stind_i: 682case ILOpcode.stind_i1: 683case ILOpcode.stind_i2: 684case ILOpcode.stind_i4: 685case ILOpcode.stind_i8: 686case ILOpcode.stind_r4: 687case ILOpcode.stind_r8: 688case ILOpcode.stind_ref: 689case ILOpcode.stobj: 695case ILOpcode.initobj: 696case ILOpcode.pop: 701case ILOpcode.starg: 702case ILOpcode.starg_s: 703ScanStarg(methodIL, offset, opcode == ILOpcode.starg ? reader.ReadILUInt16() : reader.ReadILByte(), currentStack); 706case ILOpcode.stloc: 707case ILOpcode.stloc_s: 708case ILOpcode.stloc_0: 709case ILOpcode.stloc_1: 710case ILOpcode.stloc_2: 711case ILOpcode.stloc_3: 714ILOpcode.stloc => reader.ReadILUInt16(), 715ILOpcode.stloc_s => reader.ReadILByte(), 716_ => opcode - ILOpcode.stloc_0, 721case ILOpcode.constrained: 722case ILOpcode.no: 723case ILOpcode.readonly_: 724case ILOpcode.tail: 725case ILOpcode.unaligned: 726case ILOpcode.volatile_: 730case ILOpcode.brfalse: 731case ILOpcode.brfalse_s: 732case ILOpcode.brtrue: 733case ILOpcode.brtrue_s: 738case ILOpcode.calli: 759case ILOpcode.call: 760case ILOpcode.callvirt: 761case ILOpcode.newobj: 770case ILOpcode.jmp: 775case ILOpcode.br: 776case ILOpcode.br_s: 781case ILOpcode.leave: 782case ILOpcode.leave_s: 787case ILOpcode.endfilter: 788case ILOpcode.endfinally: 789case ILOpcode.rethrow: 790case ILOpcode.throw_: 794case ILOpcode.ret: 818case ILOpcode.switch_: 831case ILOpcode.beq: 832case ILOpcode.beq_s: 833case ILOpcode.bne_un: 834case ILOpcode.bne_un_s: 835case ILOpcode.bge: 836case ILOpcode.bge_s: 837case ILOpcode.bge_un: 838case ILOpcode.bge_un_s: 839case ILOpcode.bgt: 840case ILOpcode.bgt_s: 841case ILOpcode.bgt_un: 842case ILOpcode.bgt_un_s: 843case ILOpcode.ble: 844case ILOpcode.ble_s: 845case ILOpcode.ble_un: 846case ILOpcode.ble_un_s: 847case ILOpcode.blt: 848case ILOpcode.blt_s: 849case ILOpcode.blt_un: 850case ILOpcode.blt_un_s: 884private void ScanLdarg(ILOpcode opcode, int parameterIndex, Stack<StackSlot> currentStack, MethodDesc thisMethod) 890bool isByRef = opcode == ILOpcode.ldarga || opcode == ILOpcode.ldarga_s; 920ILOpcode operation, 925bool isByRef = operation == ILOpcode.ldloca || operation == ILOpcode.ldloca_s; 1094ILOpcode opcode, 1099if (opcode == ILOpcode.ldfld || opcode == ILOpcode.ldflda) 1102bool isByRef = opcode == ILOpcode.ldflda || opcode == ILOpcode.ldsflda; 1135ILOpcode opcode, 1142if (opcode == ILOpcode.stfld) 1274ILOpcode opcode, 1282bool isNewObj = opcode == ILOpcode.newobj; 1328ILOpcode operation, 1378ILOpcode opcode, 1387bool isByRef = opcode == ILOpcode.ldelema;
Compiler\Dataflow\ReflectionMethodBodyScanner.cs (3)
289public override MultiValue HandleCall(MethodIL callingMethodIL, MethodDesc calledMethod, ILOpcode operation, int offset, ValueNodeList methodParams) 334ILOpcode operation, 343bool isNewObj = operation == ILOpcode.newobj;
Compiler\Dataflow\ScannerExtensions.cs (38)
12public static bool IsControlFlowInstruction(this ILOpcode opcode) 16case ILOpcode.br_s: 17case ILOpcode.br: 18case ILOpcode.brfalse_s: 19case ILOpcode.brtrue_s: 20case ILOpcode.beq_s: 21case ILOpcode.bge_s: 22case ILOpcode.bgt_s: 23case ILOpcode.ble_s: 24case ILOpcode.blt_s: 25case ILOpcode.bne_un_s: 26case ILOpcode.bge_un_s: 27case ILOpcode.bgt_un_s: 28case ILOpcode.ble_un_s: 29case ILOpcode.blt_un_s: 30case ILOpcode.brfalse: 31case ILOpcode.brtrue: 32case ILOpcode.beq: 33case ILOpcode.bge: 34case ILOpcode.bgt: 35case ILOpcode.ble: 36case ILOpcode.blt: 37case ILOpcode.bne_un: 38case ILOpcode.bge_un: 39case ILOpcode.bgt_un: 40case ILOpcode.ble_un: 41case ILOpcode.blt_un: 42case ILOpcode.switch_: 43case ILOpcode.leave: 44case ILOpcode.leave_s: 45case ILOpcode.endfilter: 46case ILOpcode.endfinally: 47case ILOpcode.throw_: 48case ILOpcode.rethrow: 60ILOpcode opcode = reader.ReadILOpcode(); 61if (opcode >= ILOpcode.br_s && opcode <= ILOpcode.blt_un) 65else if (opcode == ILOpcode.switch_)
Compiler\Dataflow\TrimAnalysisMethodCallPattern.cs (2)
20public readonly ILOpcode Operation; 29ILOpcode operation,
Compiler\HardwareIntrinsicHelpers.Aot.cs (8)
59codeStream.Emit(ILOpcode.ldsfld, emit.NewToken(isSupportedField)); 61codeStream.Emit(ILOpcode.and); 63codeStream.Emit(ILOpcode.ceq); 64codeStream.Emit(ILOpcode.ret); 69codeStream.Emit(ILOpcode.ldsfld, emit.NewToken(isSupportedField)); 71codeStream.Emit(ILOpcode.and); 73codeStream.Emit(ILOpcode.cgt_un); 74codeStream.Emit(ILOpcode.ret);
Compiler\HardwareIntrinsicILProvider.cs (4)
58ILOpcode flag = isSupported ? ILOpcode.ldc_i4_1 : ILOpcode.ldc_i4_0; 60new byte[] { (byte)flag, (byte)ILOpcode.ret },
Compiler\ReachabilityInstrumentationProvider.cs (7)
112newBytes[0] = (byte)ILOpcode.ldc_i4_1; 113newBytes[1] = (byte)ILOpcode.stsfld; 252codeStream.Emit(ILOpcode.ldsflda, dataFieldToken); 253codeStream.Emit(ILOpcode.ldsflda, dataFieldToken); 254codeStream.Emit(ILOpcode.ldind_i4); 257codeStream.Emit(ILOpcode.call, emitter.NewToken(registerMethod)); 259codeStream.Emit(ILOpcode.ret);
Compiler\SubstitutedILProvider.cs (123)
185ILOpcode opcode = reader.ReadILOpcode(); 186if (opcode >= ILOpcode.br_s && opcode <= ILOpcode.blt_un 187|| opcode == ILOpcode.leave || opcode == ILOpcode.leave_s) 192if (opcode != ILOpcode.leave && opcode != ILOpcode.leave_s 193&& opcode != ILOpcode.br && opcode != ILOpcode.br_s) 201else if (opcode == ILOpcode.ret 202|| opcode == ILOpcode.endfilter 203|| opcode == ILOpcode.endfinally 204|| opcode == ILOpcode.throw_ 205|| opcode == ILOpcode.rethrow 206|| opcode == ILOpcode.jmp) 213else if (opcode == ILOpcode.switch_) 275ILOpcode opcode = reader.ReadILOpcode(); 295&& methodBytes[expectedEndfilterLocation] == (byte)ILOpcode.prefix1 296&& methodBytes[expectedEndfilterLocation + 1] == unchecked((byte)ILOpcode.endfilter); 314if (opcode == ILOpcode.brfalse || opcode == ILOpcode.brfalse_s 315|| opcode == ILOpcode.brtrue || opcode == ILOpcode.brtrue_s) 326else if ((constant == 0 && (opcode == ILOpcode.brfalse || opcode == ILOpcode.brfalse_s)) 327|| (constant != 0 && (opcode == ILOpcode.brtrue || opcode == ILOpcode.brtrue_s))) 342else if (opcode == ILOpcode.beq || opcode == ILOpcode.beq_s 343|| opcode == ILOpcode.bne_un || opcode == ILOpcode.bne_un_s) 353else if ((left == right && (opcode == ILOpcode.beq || opcode == ILOpcode.beq_s) 354|| (left != right) && (opcode == ILOpcode.bne_un || opcode == ILOpcode.bne_un_s))) 369else if (opcode >= ILOpcode.br_s && opcode <= ILOpcode.blt_un 370|| opcode == ILOpcode.leave || opcode == ILOpcode.leave_s) 374if (opcode != ILOpcode.leave && opcode != ILOpcode.leave_s 375&& opcode != ILOpcode.br && opcode != ILOpcode.br_s) 388else if (opcode == ILOpcode.switch_) 399else if (opcode == ILOpcode.ret 400|| opcode == ILOpcode.endfilter 401|| opcode == ILOpcode.endfinally 402|| opcode == ILOpcode.throw_ 403|| opcode == ILOpcode.rethrow 404|| opcode == ILOpcode.jmp) 413else if (shouldInlineResourceStrings && opcode == ILOpcode.call) 490ILOpcode opcode = reader.ReadILOpcode(); 493>= ILOpcode.br_s and <= ILOpcode.blt_un_s => 3, 494ILOpcode.leave_s => 3, 549ILOpcode opcode = reader.ReadILOpcode(); 551if (opcode == ILOpcode.switch_) 564else if (opcode is >= ILOpcode.br_s and <= ILOpcode.blt_un || opcode is ILOpcode.leave or ILOpcode.leave_s) 568if (opcode is >= ILOpcode.br_s and <= ILOpcode.blt_un_s || opcode == ILOpcode.leave_s) 571if (opcode == ILOpcode.leave_s) 572opcode = ILOpcode.leave; 574opcode += ILOpcode.br - ILOpcode.br_s; 649Debug.Assert(newBody[offset] == (byte)ILOpcode.call); 664newBody[offset] = (byte)ILOpcode.ldstr; 699var opcode = reader.ReadILOpcode(); 702case ILOpcode.ldc_i4: stack.Push((int)reader.ReadILUInt32()); break; 703case ILOpcode.ldc_i4_s: stack.Push((sbyte)reader.ReadILByte()); break; 704case >= ILOpcode.ldc_i4_0 and <= ILOpcode.ldc_i4_8: stack.Push(opcode - ILOpcode.ldc_i4_0); break; 705case ILOpcode.ldc_i4_m1: stack.Push(-1); break; 707case ILOpcode.ldsfld: 714case ILOpcode.brtrue: 715case ILOpcode.brtrue_s: 716case ILOpcode.brfalse: 717case ILOpcode.brfalse_s: 722bool taken = ((opcode is ILOpcode.brtrue or ILOpcode.brtrue_s) && val.Value != 0) 723|| ((opcode is ILOpcode.brfalse or ILOpcode.brfalse_s) && val.Value == 0); 731case ILOpcode.br: 732case ILOpcode.br_s: 739case ILOpcode.callvirt: 740case ILOpcode.call: 743if (opcode == ILOpcode.callvirt && callee.IsVirtual) 765case ILOpcode.ret: 807ILOpcode opcode = reader.ReadILOpcode(); 808if (opcode == ILOpcode.call || opcode == ILOpcode.callvirt) 815&& ((opcode != ILOpcode.callvirt && !method.Signature.IsStatic) || !method.IsVirtual)) 820if (((opcode != ILOpcode.callvirt && !method.Signature.IsStatic) || !method.IsVirtual) 852else if (opcode == ILOpcode.ldsfld) 872else if (opcode >= ILOpcode.ldc_i4_0 && opcode <= ILOpcode.ldc_i4_8) 876constant = opcode - ILOpcode.ldc_i4_0; 882else if (opcode == ILOpcode.ldc_i4) 892else if (opcode == ILOpcode.ldc_i4_s) 902else if ((opcode == ILOpcode.ldloc || opcode == ILOpcode.ldloc_s || 903(opcode >= ILOpcode.ldloc_0 && opcode <= ILOpcode.ldloc_3)) && 909ILOpcode.ldloc => reader.ReadILUInt16(), 910ILOpcode.ldloc_s => reader.ReadILByte(), 911_ => opcode - ILOpcode.ldloc_0, 920ILOpcode otherOpcode = nestedReader.ReadILOpcode(); 921if ((otherOpcode == ILOpcode.stloc || otherOpcode == ILOpcode.stloc_s || 922(otherOpcode >= ILOpcode.stloc_0 && otherOpcode <= ILOpcode.stloc_3)) 925ILOpcode.stloc => nestedReader.ReadILUInt16(), 926ILOpcode.stloc_s => nestedReader.ReadILByte(), 927_ => otherOpcode - ILOpcode.stloc_0, 941else if (opcode == ILOpcode.ceq) 1116ILOpcode opcode = reader.ReadILOpcode(); 1117if (opcode != ILOpcode.ldtoken) 1130ILOpcode opcode = reader.ReadILOpcode(); 1131if (opcode != ILOpcode.call)
Compiler\TypePreinit.cs (367)
234ILOpcode opcode = reader.ReadILOpcode(); 237case ILOpcode.ldc_i4_m1: 238case ILOpcode.ldc_i4_s: 239case ILOpcode.ldc_i4: 240case ILOpcode.ldc_i4_0: 241case ILOpcode.ldc_i4_1: 242case ILOpcode.ldc_i4_2: 243case ILOpcode.ldc_i4_3: 244case ILOpcode.ldc_i4_4: 245case ILOpcode.ldc_i4_5: 246case ILOpcode.ldc_i4_6: 247case ILOpcode.ldc_i4_7: 248case ILOpcode.ldc_i4_8: 252ILOpcode.ldc_i4_m1 => -1, 253ILOpcode.ldc_i4_s => (sbyte)reader.ReadILByte(), 254ILOpcode.ldc_i4 => (int)reader.ReadILUInt32(), 255_ => opcode - ILOpcode.ldc_i4_0, 261case ILOpcode.ldc_i8: 265case ILOpcode.ldc_r4: 266case ILOpcode.ldc_r8: 268opcode == ILOpcode.ldc_r4 ? reader.ReadILFloat() : reader.ReadILDouble())); 271case ILOpcode.sizeof_: 278case ILOpcode.ldnull: 282case ILOpcode.newarr: 315case ILOpcode.dup: 323case ILOpcode.pop: 329case ILOpcode.ldstr: 341case ILOpcode.ret: 357case ILOpcode.nop: 358case ILOpcode.volatile_: 361case ILOpcode.stsfld: 401case ILOpcode.ldsfld: 402case ILOpcode.ldsflda: 415if (opcode != ILOpcode.ldsfld 450&& opcode != ILOpcode.ldsflda // We need to intern these for correctness in ldsfda scenarios 461if (opcode == ILOpcode.ldsfld) 467Debug.Assert(opcode == ILOpcode.ldsflda); 478case ILOpcode.call: 479case ILOpcode.callvirt: 525if (opcode == ILOpcode.callvirt) 551case ILOpcode.newobj: 583if (finalizerMethodILBytes.Length != 1 || finalizerMethodILBytes[0] != (byte)ILOpcode.ret) 707case ILOpcode.localloc: 720return Status.Fail(methodIL.OwningMethod, ILOpcode.localloc); 726case ILOpcode.stfld: 756case ILOpcode.ldfld: 780case ILOpcode.ldflda: 806case ILOpcode.conv_i: 807case ILOpcode.conv_u: 808case ILOpcode.conv_i1: 809case ILOpcode.conv_i2: 810case ILOpcode.conv_i4: 811case ILOpcode.conv_i8: 812case ILOpcode.conv_u1: 813case ILOpcode.conv_u2: 814case ILOpcode.conv_u4: 815case ILOpcode.conv_u8: 816case ILOpcode.conv_r4: 817case ILOpcode.conv_r8: 821if (opcode is ILOpcode.conv_i or ILOpcode.conv_u 832case ILOpcode.conv_i: 836case ILOpcode.conv_u: 840case ILOpcode.conv_i1: 843case ILOpcode.conv_i2: 846case ILOpcode.conv_i4: 849case ILOpcode.conv_i8: 852case ILOpcode.conv_u1: 855case ILOpcode.conv_u2: 858case ILOpcode.conv_u4: 861case ILOpcode.conv_u8: 864case ILOpcode.conv_r4: 867case ILOpcode.conv_r8: 879case ILOpcode.conv_u: 880case ILOpcode.conv_i: 884case ILOpcode.conv_i1: 887case ILOpcode.conv_i2: 890case ILOpcode.conv_i4: 893case ILOpcode.conv_i8: 896case ILOpcode.conv_u1: 899case ILOpcode.conv_u2: 902case ILOpcode.conv_u4: 905case ILOpcode.conv_u8: 908case ILOpcode.conv_r4: 911case ILOpcode.conv_r8: 923case ILOpcode.conv_i: 927case ILOpcode.conv_u: 931case ILOpcode.conv_i1: 934case ILOpcode.conv_i2: 937case ILOpcode.conv_i4: 940case ILOpcode.conv_i8: 943case ILOpcode.conv_u1: 946case ILOpcode.conv_u2: 949case ILOpcode.conv_u4: 952case ILOpcode.conv_u8: 955case ILOpcode.conv_r4: 958case ILOpcode.conv_r8: 972case ILOpcode.ldarg_0: 973case ILOpcode.ldarg_1: 974case ILOpcode.ldarg_2: 975case ILOpcode.ldarg_3: 976case ILOpcode.ldarg_s: 977case ILOpcode.ldarg: 981ILOpcode.ldarg_s => reader.ReadILByte(), 982ILOpcode.ldarg => reader.ReadILUInt16(), 983_ => opcode - ILOpcode.ldarg_0, 989case ILOpcode.starg_s: 990case ILOpcode.starg: 992int index = opcode == ILOpcode.starg ? reader.ReadILUInt16() : reader.ReadILByte(); 1006case ILOpcode.ldtoken: 1024case ILOpcode.ldftn: 1027return Status.Fail(methodIL.OwningMethod, ILOpcode.constrained); 1037case ILOpcode.ldloc_0: 1038case ILOpcode.ldloc_1: 1039case ILOpcode.ldloc_2: 1040case ILOpcode.ldloc_3: 1041case ILOpcode.ldloc_s: 1042case ILOpcode.ldloc: 1046ILOpcode.ldloc_s => reader.ReadILByte(), 1047ILOpcode.ldloc => reader.ReadILUInt16(), 1048_ => opcode - ILOpcode.ldloc_0, 1060case ILOpcode.stloc_0: 1061case ILOpcode.stloc_1: 1062case ILOpcode.stloc_2: 1063case ILOpcode.stloc_3: 1064case ILOpcode.stloc_s: 1065case ILOpcode.stloc: 1069ILOpcode.stloc_s => reader.ReadILByte(), 1070ILOpcode.stloc => reader.ReadILUInt16(), 1071_ => opcode - ILOpcode.stloc_0, 1093case ILOpcode.ldarga_s: 1094case ILOpcode.ldarga: 1095case ILOpcode.ldloca_s: 1096case ILOpcode.ldloca: 1100ILOpcode.ldloca_s or ILOpcode.ldarga_s => reader.ReadILByte(), 1101ILOpcode.ldloca or ILOpcode.ldarga => reader.ReadILUInt16(), 1105Value[] storage = opcode is ILOpcode.ldloca or ILOpcode.ldloca_s ? locals : parameters; 1123case ILOpcode.initobj: 1141case ILOpcode.br: 1142case ILOpcode.brfalse: 1143case ILOpcode.brtrue: 1144case ILOpcode.blt: 1145case ILOpcode.blt_un: 1146case ILOpcode.bgt: 1147case ILOpcode.bgt_un: 1148case ILOpcode.beq: 1149case ILOpcode.bne_un: 1150case ILOpcode.bge: 1151case ILOpcode.bge_un: 1152case ILOpcode.ble: 1153case ILOpcode.ble_un: 1154case ILOpcode.br_s: 1155case ILOpcode.brfalse_s: 1156case ILOpcode.brtrue_s: 1157case ILOpcode.blt_s: 1158case ILOpcode.blt_un_s: 1159case ILOpcode.bgt_s: 1160case ILOpcode.bgt_un_s: 1161case ILOpcode.beq_s: 1162case ILOpcode.bne_un_s: 1163case ILOpcode.bge_s: 1164case ILOpcode.bge_un_s: 1165case ILOpcode.ble_s: 1166case ILOpcode.ble_un_s: 1168int delta = opcode >= ILOpcode.br ? 1178ILOpcode normalizedOpcode = opcode >= ILOpcode.br ? 1179opcode - ILOpcode.br + ILOpcode.br_s : 1183if (normalizedOpcode == ILOpcode.brtrue_s || normalizedOpcode == ILOpcode.brfalse_s) 1187branchTaken = normalizedOpcode == ILOpcode.brfalse_s 1190branchTaken = normalizedOpcode == ILOpcode.brfalse_s 1193branchTaken = normalizedOpcode == ILOpcode.brfalse_s 1198else if (normalizedOpcode == ILOpcode.blt_s || normalizedOpcode == ILOpcode.bgt_s 1199|| normalizedOpcode == ILOpcode.bge_s || normalizedOpcode == ILOpcode.beq_s 1200|| normalizedOpcode == ILOpcode.ble_s || normalizedOpcode == ILOpcode.blt_un_s 1201|| normalizedOpcode == ILOpcode.ble_un_s || normalizedOpcode == ILOpcode.bge_un_s 1202|| normalizedOpcode == ILOpcode.bgt_un_s || normalizedOpcode == ILOpcode.bne_un_s) 1211ILOpcode.blt_s => value1.Value.AsInt32() < value2.Value.AsInt32(), 1212ILOpcode.blt_un_s => (uint)value1.Value.AsInt32() < (uint)value2.Value.AsInt32(), 1213ILOpcode.bgt_s => value1.Value.AsInt32() > value2.Value.AsInt32(), 1214ILOpcode.bgt_un_s => (uint)value1.Value.AsInt32() > (uint)value2.Value.AsInt32(), 1215ILOpcode.bge_s => value1.Value.AsInt32() >= value2.Value.AsInt32(), 1216ILOpcode.bge_un_s => (uint)value1.Value.AsInt32() >= (uint)value2.Value.AsInt32(), 1217ILOpcode.beq_s => value1.Value.AsInt32() == value2.Value.AsInt32(), 1218ILOpcode.bne_un_s => value1.Value.AsInt32() != value2.Value.AsInt32(), 1219ILOpcode.ble_s => value1.Value.AsInt32() <= value2.Value.AsInt32(), 1220ILOpcode.ble_un_s => (uint)value1.Value.AsInt32() <= (uint)value2.Value.AsInt32(), 1228ILOpcode.blt_s => value1.Value.AsInt64() < value2.Value.AsInt64(), 1229ILOpcode.blt_un_s => (ulong)value1.Value.AsInt64() < (ulong)value2.Value.AsInt64(), 1230ILOpcode.bgt_s => value1.Value.AsInt64() > value2.Value.AsInt64(), 1231ILOpcode.bgt_un_s => (ulong)value1.Value.AsInt64() > (ulong)value2.Value.AsInt64(), 1232ILOpcode.bge_s => value1.Value.AsInt64() >= value2.Value.AsInt64(), 1233ILOpcode.bge_un_s => (ulong)value1.Value.AsInt64() >= (ulong)value2.Value.AsInt64(), 1234ILOpcode.beq_s => value1.Value.AsInt64() == value2.Value.AsInt64(), 1235ILOpcode.bne_un_s => value1.Value.AsInt64() != value2.Value.AsInt64(), 1236ILOpcode.ble_s => value1.Value.AsInt64() <= value2.Value.AsInt64(), 1237ILOpcode.ble_un_s => (ulong)value1.Value.AsInt64() <= (ulong)value2.Value.AsInt64(), 1245ILOpcode.blt_s => value1.Value.AsDouble() < value2.Value.AsDouble(), 1246ILOpcode.blt_un_s => !(value1.Value.AsDouble() >= value2.Value.AsDouble()), 1247ILOpcode.bgt_s => value1.Value.AsDouble() > value2.Value.AsDouble(), 1248ILOpcode.bgt_un_s => !(value1.Value.AsDouble() <= value2.Value.AsDouble()), 1249ILOpcode.bge_s => value1.Value.AsDouble() >= value2.Value.AsDouble(), 1250ILOpcode.bge_un_s => !(value1.Value.AsDouble() < value2.Value.AsDouble()), 1251ILOpcode.beq_s => value1.Value.AsDouble() == value2.Value.AsDouble(), 1252ILOpcode.bne_un_s => value1.Value.AsDouble() != value2.Value.AsDouble(), 1253ILOpcode.ble_s => value1.Value.AsDouble() <= value2.Value.AsDouble(), 1254ILOpcode.ble_un_s => !(value1.Value.AsDouble() > value2.Value.AsDouble()), 1265Debug.Assert(normalizedOpcode == ILOpcode.br_s); 1276case ILOpcode.switch_: 1298case ILOpcode.leave: 1299case ILOpcode.leave_s: 1310int delta = opcode == ILOpcode.leave ? 1324case ILOpcode.clt: 1325case ILOpcode.clt_un: 1326case ILOpcode.cgt: 1327case ILOpcode.cgt_un: 1335if (opcode == ILOpcode.cgt) 1337else if (opcode == ILOpcode.cgt_un) 1339else if (opcode == ILOpcode.clt) 1341else if (opcode == ILOpcode.clt_un) 1348if (opcode == ILOpcode.cgt) 1350else if (opcode == ILOpcode.cgt_un) 1352else if (opcode == ILOpcode.clt) 1354else if (opcode == ILOpcode.clt_un) 1361if (opcode == ILOpcode.cgt) 1363else if (opcode == ILOpcode.cgt_un) 1365else if (opcode == ILOpcode.clt) 1367else if (opcode == ILOpcode.clt_un) 1374if (opcode == ILOpcode.cgt_un) 1390case ILOpcode.ceq: 1413case ILOpcode.neg: 1427case ILOpcode.or: 1428case ILOpcode.shl: 1429case ILOpcode.add: 1430case ILOpcode.sub: 1431case ILOpcode.mul: 1432case ILOpcode.and: 1433case ILOpcode.div: 1434case ILOpcode.div_un: 1435case ILOpcode.rem: 1436case ILOpcode.rem_un: 1438bool isDivRem = opcode == ILOpcode.div || opcode == ILOpcode.div_un 1439|| opcode == ILOpcode.rem || opcode == ILOpcode.rem_un; 1451if ((opcode == ILOpcode.div || opcode == ILOpcode.rem) 1457ILOpcode.or => value1.Value.AsInt32() | value2.Value.AsInt32(), 1458ILOpcode.shl => value1.Value.AsInt32() << value2.Value.AsInt32(), 1459ILOpcode.add => value1.Value.AsInt32() + value2.Value.AsInt32(), 1460ILOpcode.sub => value1.Value.AsInt32() - value2.Value.AsInt32(), 1461ILOpcode.and => value1.Value.AsInt32() & value2.Value.AsInt32(), 1462ILOpcode.mul => value1.Value.AsInt32() * value2.Value.AsInt32(), 1463ILOpcode.div => value1.Value.AsInt32() / value2.Value.AsInt32(), 1464ILOpcode.div_un => (int)((uint)value1.Value.AsInt32() / (uint)value2.Value.AsInt32()), 1465ILOpcode.rem => value1.Value.AsInt32() % value2.Value.AsInt32(), 1466ILOpcode.rem_un => (int)((uint)value1.Value.AsInt32() % (uint)value2.Value.AsInt32()), 1477if ((opcode == ILOpcode.div || opcode == ILOpcode.rem) 1483ILOpcode.or => value1.Value.AsInt64() | value2.Value.AsInt64(), 1484ILOpcode.shl => value1.Value.AsInt64() << (int)value2.Value.AsInt64(), 1485ILOpcode.add => value1.Value.AsInt64() + value2.Value.AsInt64(), 1486ILOpcode.sub => value1.Value.AsInt64() - value2.Value.AsInt64(), 1487ILOpcode.and => value1.Value.AsInt64() & value2.Value.AsInt64(), 1488ILOpcode.mul => value1.Value.AsInt64() * value2.Value.AsInt64(), 1489ILOpcode.div => value1.Value.AsInt64() / value2.Value.AsInt64(), 1490ILOpcode.div_un => (long)((ulong)value1.Value.AsInt64() / (ulong)value2.Value.AsInt64()), 1491ILOpcode.rem => value1.Value.AsInt64() % value2.Value.AsInt64(), 1492ILOpcode.rem_un => (long)((ulong)value1.Value.AsInt64() % (ulong)value2.Value.AsInt64()), 1503if (opcode == ILOpcode.or || opcode == ILOpcode.shl || opcode == ILOpcode.and || opcode == ILOpcode.div_un || opcode == ILOpcode.rem_un) 1508ILOpcode.add => value1.Value.AsDouble() + value2.Value.AsDouble(), 1509ILOpcode.sub => value1.Value.AsDouble() - value2.Value.AsDouble(), 1510ILOpcode.mul => value1.Value.AsDouble() * value2.Value.AsDouble(), 1511ILOpcode.div => value1.Value.AsDouble() / value2.Value.AsDouble(), 1512ILOpcode.rem => value1.Value.AsDouble() % value2.Value.AsDouble(), 1519&& opcode == ILOpcode.shl) 1527if (opcode != ILOpcode.add) 1558case ILOpcode.ldlen: 1576case ILOpcode.stelem: 1577case ILOpcode.stelem_i: 1578case ILOpcode.stelem_i1: 1579case ILOpcode.stelem_i2: 1580case ILOpcode.stelem_i4: 1581case ILOpcode.stelem_i8: 1582case ILOpcode.stelem_r4: 1583case ILOpcode.stelem_r8: 1587ILOpcode.stelem_i => context.GetWellKnownType(WellKnownType.IntPtr), 1588ILOpcode.stelem_i1 => context.GetWellKnownType(WellKnownType.SByte), 1589ILOpcode.stelem_i2 => context.GetWellKnownType(WellKnownType.Int16), 1590ILOpcode.stelem_i4 => context.GetWellKnownType(WellKnownType.Int32), 1591ILOpcode.stelem_i8 => context.GetWellKnownType(WellKnownType.Int64), 1592ILOpcode.stelem_r4 => context.GetWellKnownType(WellKnownType.Single), 1593ILOpcode.stelem_r8 => context.GetWellKnownType(WellKnownType.Double), 1624case ILOpcode.ldelem: 1625case ILOpcode.ldelem_i: 1626case ILOpcode.ldelem_i1: 1627case ILOpcode.ldelem_u1: 1628case ILOpcode.ldelem_i2: 1629case ILOpcode.ldelem_u2: 1630case ILOpcode.ldelem_i4: 1631case ILOpcode.ldelem_u4: 1632case ILOpcode.ldelem_i8: 1633case ILOpcode.ldelem_r4: 1634case ILOpcode.ldelem_r8: 1638ILOpcode.ldelem_i => context.GetWellKnownType(WellKnownType.IntPtr), 1639ILOpcode.ldelem_i1 => context.GetWellKnownType(WellKnownType.SByte), 1640ILOpcode.ldelem_u1 => context.GetWellKnownType(WellKnownType.Byte), 1641ILOpcode.ldelem_i2 => context.GetWellKnownType(WellKnownType.Int16), 1642ILOpcode.ldelem_u2 => context.GetWellKnownType(WellKnownType.UInt16), 1643ILOpcode.ldelem_i4 => context.GetWellKnownType(WellKnownType.Int32), 1644ILOpcode.ldelem_u4 => context.GetWellKnownType(WellKnownType.UInt32), 1645ILOpcode.ldelem_i8 => context.GetWellKnownType(WellKnownType.Int64), 1646ILOpcode.ldelem_r4 => context.GetWellKnownType(WellKnownType.Single), 1647ILOpcode.ldelem_r8 => context.GetWellKnownType(WellKnownType.Double), 1685case ILOpcode.box: 1709case ILOpcode.unbox_any: 1725case ILOpcode.ldobj: 1726case ILOpcode.ldind_i1: 1727case ILOpcode.ldind_u1: 1728case ILOpcode.ldind_i2: 1729case ILOpcode.ldind_u2: 1730case ILOpcode.ldind_i4: 1731case ILOpcode.ldind_u4: 1732case ILOpcode.ldind_i8: 1736ILOpcode.ldind_i1 => context.GetWellKnownType(WellKnownType.SByte), 1737ILOpcode.ldind_u1 => context.GetWellKnownType(WellKnownType.Byte), 1738ILOpcode.ldind_i2 => context.GetWellKnownType(WellKnownType.Int16), 1739ILOpcode.ldind_u2 => context.GetWellKnownType(WellKnownType.UInt16), 1740ILOpcode.ldind_i4 => context.GetWellKnownType(WellKnownType.Int32), 1741ILOpcode.ldind_u4 => context.GetWellKnownType(WellKnownType.UInt32), 1742ILOpcode.ldind_i8 => context.GetWellKnownType(WellKnownType.Int64), 1762case ILOpcode.stobj: 1763case ILOpcode.stind_i: 1764case ILOpcode.stind_i1: 1765case ILOpcode.stind_i2: 1766case ILOpcode.stind_i4: 1767case ILOpcode.stind_i8: 1769if (opcode == ILOpcode.stobj) 1774TypeFlags.SByte or TypeFlags.Boolean or TypeFlags.Byte => ILOpcode.stind_i1, 1775TypeFlags.Int16 or TypeFlags.Char or TypeFlags.UInt16 => ILOpcode.stind_i2, 1776TypeFlags.Int32 or TypeFlags.UInt32 => ILOpcode.stind_i4, 1777TypeFlags.Int64 or TypeFlags.UInt64 => ILOpcode.stind_i8, 1778TypeFlags.IntPtr or TypeFlags.UIntPtr => ILOpcode.stind_i, 1779_ => ILOpcode.stobj, 1785ILOpcode.stind_i1 => stack.PopIntoLocation(context.GetWellKnownType(WellKnownType.Byte)), 1786ILOpcode.stind_i2 => stack.PopIntoLocation(context.GetWellKnownType(WellKnownType.UInt16)), 1787ILOpcode.stind_i4 => stack.PopIntoLocation(context.GetWellKnownType(WellKnownType.UInt32)), 1788ILOpcode.stind_i8 => stack.PopIntoLocation(context.GetWellKnownType(WellKnownType.UInt64)), 1789ILOpcode.stind_i => stack.PopIntoLocation(context.GetWellKnownType(WellKnownType.UIntPtr)), 1805case ILOpcode.constrained: 1809case ILOpcode.unaligned: 1813case ILOpcode.initblk: 3725public static Status Fail(MethodDesc method, ILOpcode opcode, string detail = null)
IL\ILImporter.Scanner.cs (87)
301partial void StartImportingInstruction(ILOpcode opcode) 318private void ImportCasting(ILOpcode opcode, int token) 368ILOpcode opcode; 378if (opcode is (not ILOpcode.ldc_i4_0) and (not ILOpcode.ldc_i4_1)) 390if (opcode is (not ILOpcode.call) and (not ILOpcode.callvirt) 402return opcode == ILOpcode.call 414ILOpcode opcode = tempReader.ReadILOpcode(); 419>= ILOpcode.stloc_0 and <= ILOpcode.stloc_3 => opcode - ILOpcode.stloc_0, 420ILOpcode.stloc => tempReader.ReadILUInt16(), 421ILOpcode.stloc_s => tempReader.ReadILByte(), 436ILOpcode.ldloca_s => tempReader.ReadILByte(), 437ILOpcode.ldloca => tempReader.ReadILUInt16(), 468if (reader.ReadILOpcode() == ILOpcode.ret) 478if (!reader.HasNext || reader.ReadILOpcode() != ILOpcode.call) 486if (!reader.HasNext || reader.ReadILOpcode() != ILOpcode.ret) 502if (reader.ReadILOpcode() == ILOpcode.newobj) 506if (!reader.HasNext || reader.ReadILOpcode() != ILOpcode.ret) 535private void ImportCall(ILOpcode opcode, int token) 539Debug.Assert(opcode == ILOpcode.call); 561if (opcode is ILOpcode.call or ILOpcode.callvirt && _canonMethod.IsAsyncCall()) 586private void ImportCall(ILOpcode opcode, MethodDesc method, MethodDesc runtimeDeterminedMethod) 597case ILOpcode.newobj: 599case ILOpcode.call: 601case ILOpcode.callvirt: 603case ILOpcode.ldftn: 605case ILOpcode.ldvirtftn: 611if (opcode == ILOpcode.newobj) 647opcode != ILOpcode.ldftn && opcode != ILOpcode.ldvirtftn) 702if (opcode != ILOpcode.ldftn) 816else if ((opcode != ILOpcode.callvirt && opcode != ILOpcode.ldvirtftn) || resolvedConstraint) 837bool allowInstParam = opcode != ILOpcode.ldvirtftn && opcode != ILOpcode.ldftn; 1045if ((opcode == ILOpcode.ldftn || opcode == ILOpcode.ldvirtftn) 1048&& _ilBytes[_currentOffset] == (byte)ILOpcode.newobj) 1062DelegateCreationInfo info = _compilation.GetDelegateCtor(canonDelegateType, targetForDelegate, constraintForDelegate, opcode == ILOpcode.ldvirtftn); 1152private void ImportLdFtn(int token, ILOpcode opCode) 1160ImportCall(ILOpcode.call, token); 1182private void ImportBranch(ILOpcode opcode, BasicBlock target, BasicBlock fallthrough) 1186if (opcode == ILOpcode.brfalse 1209if (opcode == ILOpcode.brfalse && _isInstCheckPatternAnalyzer.IsIsInstBranch) 1222if (opcode == ILOpcode.brfalse && _previousInstructionOffset >= 0) 1225if (reader.ReadILOpcode() == ILOpcode.call 1251private void ImportUnbox(int token, ILOpcode opCode) 1257if (opCode == ILOpcode.unbox_any) 1260ImportCasting(ILOpcode.castclass, token); 1275if (opCode == ILOpcode.unbox) 1282Debug.Assert(opCode == ILOpcode.unbox_any); 1328ILOpcode opcode = reader.ReadILOpcode(); 1386ILOpcode opcode = reader.ReadILOpcode(); 1542ILOpcode nextOpcode = reader.ReadILOpcode(); 1545if (nextOpcode is ILOpcode.brtrue or ILOpcode.brtrue_s or ILOpcode.brfalse or ILOpcode.brfalse_s) 1548if (nextOpcode is ILOpcode.unbox_any or ILOpcode.isinst) 1554if (nextOpcode == ILOpcode.unbox_any) 1560if (nextOpcode is ILOpcode.brtrue or ILOpcode.brtrue_s or ILOpcode.brfalse or ILOpcode.brfalse_s) 1564if (nextOpcode == ILOpcode.unbox_any) 1673private void ImportBinaryOperation(ILOpcode opcode) 1677case ILOpcode.add_ovf: 1678case ILOpcode.add_ovf_un: 1679case ILOpcode.sub_ovf: 1680case ILOpcode.sub_ovf_un: 1683case ILOpcode.mul_ovf: 1684case ILOpcode.mul_ovf_un: 1693case ILOpcode.div: 1694case ILOpcode.div_un: 1709if (opcode == ILOpcode.div) 1715case ILOpcode.rem: 1716case ILOpcode.rem_un: 1730if (opcode == ILOpcode.rem) 1830private static void ReportInvalidInstruction(ILOpcode opcode) 2112private static void ImportShiftOperation(ILOpcode opcode) { } 2113private static void ImportCompareOperation(ILOpcode opcode) { } 2114private static void ImportUnaryOperation(ILOpcode opCode) { }
IL\IsInstCheckPatternAnalyzer.cs (32)
49public void Advance(ILOpcode opcode, in ILReader reader, MethodIL methodIL) 54if (opcode == ILOpcode.isinst) 58if (opcode is ILOpcode.brfalse or ILOpcode.brfalse_s) 60else if (opcode == ILOpcode.ldnull) 68if (opcode == ILOpcode.cgt_un) 80if (opcode == ILOpcode.ldloc || opcode == ILOpcode.ldloc_s || (opcode >= ILOpcode.ldloc_0 && opcode <= ILOpcode.ldloc_3)) 86if (opcode is ILOpcode.brfalse or ILOpcode.brfalse_s) 92if (opcode == ILOpcode.ldloc || opcode == ILOpcode.ldloc_s || (opcode >= ILOpcode.ldloc_0 && opcode <= ILOpcode.ldloc_3)) 103static bool IsStlocLdlocSequence(ILOpcode opcode, in ILReader reader) 105if (opcode == ILOpcode.stloc || opcode == ILOpcode.stloc_s || (opcode >= ILOpcode.stloc_0 && opcode <= ILOpcode.stloc_3)) 110ILOpcode.stloc => nestedReader.ReadILUInt16(), 111ILOpcode.stloc_s => nestedReader.ReadILByte(), 112_ => opcode - ILOpcode.stloc_0, 114ILOpcode otherOpcode = nestedReader.ReadILOpcode(); 115return (otherOpcode == ILOpcode.ldloc || otherOpcode == ILOpcode.ldloc_s || (otherOpcode >= ILOpcode.ldloc_0 && otherOpcode <= ILOpcode.ldloc_3)) 118ILOpcode.ldloc => nestedReader.ReadILUInt16(), 119ILOpcode.ldloc_s => nestedReader.ReadILByte(), 120_ => otherOpcode - ILOpcode.ldloc_0,
IL\RvaIntrinsicPatternAnalyzer.cs (18)
45public void Advance(ILOpcode opcode, in ILReader reader, MethodIL methodIL) 61else if (opcode == ILOpcode.ldtoken) 74if (opcode == ILOpcode.dup) 82if (opcode == ILOpcode.ldtoken) 145private bool TryGetInitializeArraySize(ILOpcode opcode, in ILReader reader, MethodIL methodIL, out int initializationSize) 151if (opcode == ILOpcode.newarr) 159else if (opcode == ILOpcode.newobj) 208private bool TryMatchInitializeArray(ILOpcode opcode, in ILReader reader, MethodIL methodIL) 222private bool TryMatchCreateSpan(ILOpcode opcode, in ILReader reader, MethodIL methodIL) 243private static bool TryGetCallTarget(ILOpcode opcode, in ILReader reader, MethodIL methodIL, out MethodDesc method) 245if (opcode == ILOpcode.call 256private static bool TryReadInt32Constant(ILOpcode opcode, in ILReader reader, out int value) 261case ILOpcode.ldc_i4_m1: 264case >= ILOpcode.ldc_i4_0 and <= ILOpcode.ldc_i4_8: 265value = opcode - ILOpcode.ldc_i4_0; 267case ILOpcode.ldc_i4_s: 270case ILOpcode.ldc_i4:
IL\Stubs\StartupCode\NativeLibraryStartupMethod.cs (3)
70codeStream.Emit(ILOpcode.call, emitter.NewToken(method)); 80codeStream.Emit(ILOpcode.call, emitter.NewToken(runModuleInitializers)); 83codeStream.Emit(ILOpcode.ret);
IL\Stubs\StartupCode\StartupCodeMainMethod.cs (17)
78codeStream.Emit(ILOpcode.call, emitter.NewToken(method)); 91codeStream.Emit(ILOpcode.ldarg_0); // argc 92codeStream.Emit(ILOpcode.ldarg_1); // argv 93codeStream.Emit(ILOpcode.call, emitter.NewToken(initArgs)); 101codeStream.Emit(ILOpcode.ldtoken, emitter.NewToken(entrypointModule.GetGlobalModuleType())); 102codeStream.Emit(ILOpcode.call, emitter.NewToken(initEntryAssembly)); 112codeStream.Emit(ILOpcode.call, emitter.NewToken(initApartmentState)); 118codeStream.Emit(ILOpcode.call, emitter.NewToken(initApartmentState)); 126codeStream.Emit(ILOpcode.call, emitter.NewToken(runModuleInitializers)); 136codeStream.Emit(ILOpcode.call, emitter.NewToken(startup.GetKnownMethod("GetMainMethodArguments"u8, null))); 141codeStream.Emit(ILOpcode.call, emitter.NewToken(_mainMethod)); 154codeStream.Emit(ILOpcode.call, emitter.NewToken(setLatchedExitCode)); 158codeStream.Emit(ILOpcode.call, emitter.NewToken(shutdown)); 170codeStream.Emit(ILOpcode.ret); 293codeStream.Emit(ILOpcode.tail); 294codeStream.Emit(ILOpcode.call, emit.NewToken(WrappedMethod)); 296codeStream.Emit(ILOpcode.ret);
IL\TypeEqualityPatternAnalyzer.cs (45)
72public void Advance(ILOpcode opcode, in ILReader reader, MethodIL methodIL) 77if (opcode == ILOpcode.ldtoken) 87if (opcode == ILOpcode.ldtoken) 128if (opcode is ILOpcode.brfalse or ILOpcode.brfalse_s or ILOpcode.brtrue or ILOpcode.brtrue_s) 136_state = opcode is ILOpcode.ldloc or ILOpcode.ldloc_s or (>= ILOpcode.ldloc_0 and <= ILOpcode.ldloc_3) ? State.TypeEqualityCheck 146static bool IsTypeGetTypeFromHandle(ILOpcode opcode, in ILReader reader, MethodIL methodIL) 147=> opcode == ILOpcode.call && methodIL.GetObject(reader.PeekILToken()) is MethodDesc method 151static bool IsTypeEquals(ILOpcode opcode, in ILReader reader, MethodIL methodIL) 152=> opcode == ILOpcode.call && methodIL.GetObject(reader.PeekILToken()) is MethodDesc method 156static bool IsTypeInequals(ILOpcode opcode, in ILReader reader, MethodIL methodIL) 157=> opcode == ILOpcode.call && methodIL.GetObject(reader.PeekILToken()) is MethodDesc method 161static bool IsObjectGetType(ILOpcode opcode, in ILReader reader, MethodIL methodIL) 162=> opcode is ILOpcode.call or ILOpcode.callvirt && methodIL.GetObject(reader.PeekILToken()) is MethodDesc method 165static bool IsArgumentOrLocalLoad(ILOpcode opcode) 166=> opcode is (>= ILOpcode.ldloc_0 and <= ILOpcode.ldloc_3) or (>= ILOpcode.ldarg_0 and <= ILOpcode.ldarg_3) 167or ILOpcode.ldloc or ILOpcode.ldloc_s or ILOpcode.ldarg or ILOpcode.ldarg_s; 169static bool IsStlocLdlocSequence(ILOpcode opcode, in ILReader reader) 171if (opcode is ILOpcode.stloc or ILOpcode.stloc_s or (>= ILOpcode.stloc_0 and <= ILOpcode.stloc_3)) 176ILOpcode.stloc => nestedReader.ReadILUInt16(), 177ILOpcode.stloc_s => nestedReader.ReadILByte(), 178_ => opcode - ILOpcode.stloc_0, 180ILOpcode otherOpcode = nestedReader.ReadILOpcode(); 182return (otherOpcode is ILOpcode.ldloc or ILOpcode.ldloc_s or (>= ILOpcode.ldloc_0 and <= ILOpcode.ldloc_3)) 185ILOpcode.ldloc => nestedReader.ReadILUInt16(), 186ILOpcode.ldloc_s => nestedReader.ReadILByte(), 187_ => otherOpcode - ILOpcode.ldloc_0,
parent\parent\Common\Compiler\CompilerTypeSystemContext.BoxedTypes.cs (13)
423new byte[] { (byte)ILOpcode.ldnull, (byte)ILOpcode.throw_ }, 440codeStream.Emit(ILOpcode.ldflda, emit.NewToken(rawDataField)); 452codeStream.Emit(ILOpcode.ldfld, emit.NewToken(eeTypeField)); 455codeStream.Emit(ILOpcode.call, emit.NewToken(Context.GetCoreLibEntryPoint("System.Runtime.CompilerServices"u8, "RuntimeHelpers"u8, "SetNextCallGenericContext"u8, null))); 465codeStream.Emit(ILOpcode.call, emit.NewToken(Context.GetCoreLibEntryPoint("System.Runtime.CompilerServices"u8, "AsyncHelpers"u8, "TailAwait"u8, null))); 468codeStream.Emit(ILOpcode.call, emit.NewToken(_targetMethod.InstantiateAsOpen())); 469codeStream.Emit(ILOpcode.ret); 536new byte[] { (byte)ILOpcode.ldnull, (byte)ILOpcode.throw_ }, 562codeStream.Emit(ILOpcode.ldflda, emit.NewToken(Context.SystemModule.GetKnownType("System.Runtime.CompilerServices"u8, "RawData"u8).GetField("Data"u8))); 590codeStream.Emit(ILOpcode.call, emit.NewToken(methodToInstantiate)); 591codeStream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\HelperExtensions.cs (2)
66codeStream.Emit(ILOpcode.call, emitter.NewToken(method)); 67codeStream.Emit(ILOpcode.br, label);
parent\parent\Common\TypeSystem\IL\ILImporter.cs (316)
118ILOpcode opCode = (ILOpcode)ReadILByte(); 119if (opCode == ILOpcode.prefix1) 120opCode = (ILOpcode)(0x100 + ReadILByte()); 124case ILOpcode.ldarg_s: 125case ILOpcode.ldarga_s: 126case ILOpcode.starg_s: 127case ILOpcode.ldloc_s: 128case ILOpcode.ldloca_s: 129case ILOpcode.stloc_s: 130case ILOpcode.ldc_i4_s: 131case ILOpcode.unaligned: 132case ILOpcode.no: 135case ILOpcode.ldarg: 136case ILOpcode.ldarga: 137case ILOpcode.starg: 138case ILOpcode.ldloc: 139case ILOpcode.ldloca: 140case ILOpcode.stloc: 143case ILOpcode.ldc_i4: 144case ILOpcode.ldc_r4: 147case ILOpcode.ldc_i8: 148case ILOpcode.ldc_r8: 151case ILOpcode.jmp: 152case ILOpcode.call: 153case ILOpcode.calli: 154case ILOpcode.callvirt: 155case ILOpcode.cpobj: 156case ILOpcode.ldobj: 157case ILOpcode.ldstr: 158case ILOpcode.newobj: 159case ILOpcode.castclass: 160case ILOpcode.isinst: 161case ILOpcode.unbox: 162case ILOpcode.ldfld: 163case ILOpcode.ldflda: 164case ILOpcode.stfld: 165case ILOpcode.ldsfld: 166case ILOpcode.ldsflda: 167case ILOpcode.stsfld: 168case ILOpcode.stobj: 169case ILOpcode.box: 170case ILOpcode.newarr: 171case ILOpcode.ldelema: 172case ILOpcode.ldelem: 173case ILOpcode.stelem: 174case ILOpcode.unbox_any: 175case ILOpcode.refanyval: 176case ILOpcode.mkrefany: 177case ILOpcode.ldtoken: 178case ILOpcode.ldftn: 179case ILOpcode.ldvirtftn: 180case ILOpcode.initobj: 181case ILOpcode.constrained: 182case ILOpcode.sizeof_: 185case ILOpcode.br_s: 186case ILOpcode.leave_s: 196case ILOpcode.brfalse_s: 197case ILOpcode.brtrue_s: 198case ILOpcode.beq_s: 199case ILOpcode.bge_s: 200case ILOpcode.bgt_s: 201case ILOpcode.ble_s: 202case ILOpcode.blt_s: 203case ILOpcode.bne_un_s: 204case ILOpcode.bge_un_s: 205case ILOpcode.bgt_un_s: 206case ILOpcode.ble_un_s: 207case ILOpcode.blt_un_s: 218case ILOpcode.br: 219case ILOpcode.leave: 229case ILOpcode.brfalse: 230case ILOpcode.brtrue: 231case ILOpcode.beq: 232case ILOpcode.bge: 233case ILOpcode.bgt: 234case ILOpcode.ble: 235case ILOpcode.blt: 236case ILOpcode.bne_un: 237case ILOpcode.bge_un: 238case ILOpcode.bgt_un: 239case ILOpcode.ble_un: 240case ILOpcode.blt_un: 251case ILOpcode.switch_: 345partial void StartImportingInstruction(ILOpcode opcode); 356ILOpcode opCode = (ILOpcode)ReadILByte(); 357if (opCode == ILOpcode.prefix1) 358opCode = (ILOpcode)(0x100 + ReadILByte()); 364case ILOpcode.nop: 367case ILOpcode.break_: 370case ILOpcode.ldarg_0: 371case ILOpcode.ldarg_1: 372case ILOpcode.ldarg_2: 373case ILOpcode.ldarg_3: 374ImportLoadVar(opCode - ILOpcode.ldarg_0, true); 376case ILOpcode.ldloc_0: 377case ILOpcode.ldloc_1: 378case ILOpcode.ldloc_2: 379case ILOpcode.ldloc_3: 380ImportLoadVar(opCode - ILOpcode.ldloc_0, false); 382case ILOpcode.stloc_0: 383case ILOpcode.stloc_1: 384case ILOpcode.stloc_2: 385case ILOpcode.stloc_3: 386ImportStoreVar(opCode - ILOpcode.stloc_0, false); 388case ILOpcode.ldarg_s: 391case ILOpcode.ldarga_s: 394case ILOpcode.starg_s: 397case ILOpcode.ldloc_s: 400case ILOpcode.ldloca_s: 403case ILOpcode.stloc_s: 406case ILOpcode.ldnull: 409case ILOpcode.ldc_i4_m1: 412case ILOpcode.ldc_i4_0: 413case ILOpcode.ldc_i4_1: 414case ILOpcode.ldc_i4_2: 415case ILOpcode.ldc_i4_3: 416case ILOpcode.ldc_i4_4: 417case ILOpcode.ldc_i4_5: 418case ILOpcode.ldc_i4_6: 419case ILOpcode.ldc_i4_7: 420case ILOpcode.ldc_i4_8: 421ImportLoadInt(opCode - ILOpcode.ldc_i4_0, StackValueKind.Int32); 423case ILOpcode.ldc_i4_s: 426case ILOpcode.ldc_i4: 429case ILOpcode.ldc_i8: 432case ILOpcode.ldc_r4: 435case ILOpcode.ldc_r8: 438case ILOpcode.dup: 441case ILOpcode.pop: 444case ILOpcode.jmp: 448case ILOpcode.call: 451case ILOpcode.calli: 454case ILOpcode.ret: 458case ILOpcode.br_s: 459case ILOpcode.brfalse_s: 460case ILOpcode.brtrue_s: 461case ILOpcode.beq_s: 462case ILOpcode.bge_s: 463case ILOpcode.bgt_s: 464case ILOpcode.ble_s: 465case ILOpcode.blt_s: 466case ILOpcode.bne_un_s: 467case ILOpcode.bge_un_s: 468case ILOpcode.bgt_un_s: 469case ILOpcode.ble_un_s: 470case ILOpcode.blt_un_s: 473ImportBranch(opCode + (ILOpcode.br - ILOpcode.br_s), 474_basicBlocks[_currentOffset + delta], (opCode != ILOpcode.br_s) ? _basicBlocks[_currentOffset] : null); 478case ILOpcode.br: 479case ILOpcode.brfalse: 480case ILOpcode.brtrue: 481case ILOpcode.beq: 482case ILOpcode.bge: 483case ILOpcode.bgt: 484case ILOpcode.ble: 485case ILOpcode.blt: 486case ILOpcode.bne_un: 487case ILOpcode.bge_un: 488case ILOpcode.bgt_un: 489case ILOpcode.ble_un: 490case ILOpcode.blt_un: 494_basicBlocks[_currentOffset + delta], (opCode != ILOpcode.br) ? _basicBlocks[_currentOffset] : null); 498case ILOpcode.switch_: 510case ILOpcode.ldind_i1: 513case ILOpcode.ldind_u1: 516case ILOpcode.ldind_i2: 519case ILOpcode.ldind_u2: 522case ILOpcode.ldind_i4: 525case ILOpcode.ldind_u4: 528case ILOpcode.ldind_i8: 531case ILOpcode.ldind_i: 534case ILOpcode.ldind_r4: 537case ILOpcode.ldind_r8: 540case ILOpcode.ldind_ref: 543case ILOpcode.stind_ref: 546case ILOpcode.stind_i1: 549case ILOpcode.stind_i2: 552case ILOpcode.stind_i4: 555case ILOpcode.stind_i8: 558case ILOpcode.stind_r4: 561case ILOpcode.stind_r8: 564case ILOpcode.add: 565case ILOpcode.sub: 566case ILOpcode.mul: 567case ILOpcode.div: 568case ILOpcode.div_un: 569case ILOpcode.rem: 570case ILOpcode.rem_un: 571case ILOpcode.and: 572case ILOpcode.or: 573case ILOpcode.xor: 576case ILOpcode.shl: 577case ILOpcode.shr: 578case ILOpcode.shr_un: 581case ILOpcode.neg: 582case ILOpcode.not: 585case ILOpcode.conv_i1: 588case ILOpcode.conv_i2: 591case ILOpcode.conv_i4: 594case ILOpcode.conv_i8: 597case ILOpcode.conv_r4: 600case ILOpcode.conv_r8: 603case ILOpcode.conv_u4: 606case ILOpcode.conv_u8: 609case ILOpcode.callvirt: 612case ILOpcode.cpobj: 615case ILOpcode.ldobj: 618case ILOpcode.ldstr: 621case ILOpcode.newobj: 624case ILOpcode.castclass: 625case ILOpcode.isinst: 628case ILOpcode.conv_r_un: 631case ILOpcode.unbox: 634case ILOpcode.throw_: 638case ILOpcode.ldfld: 641case ILOpcode.ldflda: 644case ILOpcode.stfld: 647case ILOpcode.ldsfld: 650case ILOpcode.ldsflda: 653case ILOpcode.stsfld: 656case ILOpcode.stobj: 659case ILOpcode.conv_ovf_i1_un: 662case ILOpcode.conv_ovf_i2_un: 665case ILOpcode.conv_ovf_i4_un: 668case ILOpcode.conv_ovf_i8_un: 671case ILOpcode.conv_ovf_u1_un: 674case ILOpcode.conv_ovf_u2_un: 677case ILOpcode.conv_ovf_u4_un: 680case ILOpcode.conv_ovf_u8_un: 683case ILOpcode.conv_ovf_i_un: 686case ILOpcode.conv_ovf_u_un: 689case ILOpcode.box: 692case ILOpcode.newarr: 695case ILOpcode.ldlen: 698case ILOpcode.ldelema: 701case ILOpcode.ldelem_i1: 704case ILOpcode.ldelem_u1: 707case ILOpcode.ldelem_i2: 710case ILOpcode.ldelem_u2: 713case ILOpcode.ldelem_i4: 716case ILOpcode.ldelem_u4: 719case ILOpcode.ldelem_i8: 722case ILOpcode.ldelem_i: 725case ILOpcode.ldelem_r4: 728case ILOpcode.ldelem_r8: 731case ILOpcode.ldelem_ref: 734case ILOpcode.stelem_i: 737case ILOpcode.stelem_i1: 740case ILOpcode.stelem_i2: 743case ILOpcode.stelem_i4: 746case ILOpcode.stelem_i8: 749case ILOpcode.stelem_r4: 752case ILOpcode.stelem_r8: 755case ILOpcode.stelem_ref: 758case ILOpcode.ldelem: 761case ILOpcode.stelem: 764case ILOpcode.unbox_any: 767case ILOpcode.conv_ovf_i1: 770case ILOpcode.conv_ovf_u1: 773case ILOpcode.conv_ovf_i2: 776case ILOpcode.conv_ovf_u2: 779case ILOpcode.conv_ovf_i4: 782case ILOpcode.conv_ovf_u4: 785case ILOpcode.conv_ovf_i8: 788case ILOpcode.conv_ovf_u8: 791case ILOpcode.refanyval: 794case ILOpcode.ckfinite: 797case ILOpcode.mkrefany: 800case ILOpcode.ldtoken: 803case ILOpcode.conv_u2: 806case ILOpcode.conv_u1: 809case ILOpcode.conv_i: 812case ILOpcode.conv_ovf_i: 815case ILOpcode.conv_ovf_u: 818case ILOpcode.add_ovf: 819case ILOpcode.add_ovf_un: 820case ILOpcode.mul_ovf: 821case ILOpcode.mul_ovf_un: 822case ILOpcode.sub_ovf: 823case ILOpcode.sub_ovf_un: 826case ILOpcode.endfinally: //both endfinally and endfault 830case ILOpcode.leave: 837case ILOpcode.leave_s: 844case ILOpcode.stind_i: 847case ILOpcode.conv_u: 850case ILOpcode.arglist: 853case ILOpcode.ceq: 854case ILOpcode.cgt: 855case ILOpcode.cgt_un: 856case ILOpcode.clt: 857case ILOpcode.clt_un: 860case ILOpcode.ldftn: 861case ILOpcode.ldvirtftn: 864case ILOpcode.ldarg: 867case ILOpcode.ldarga: 870case ILOpcode.starg: 873case ILOpcode.ldloc: 876case ILOpcode.ldloca: 879case ILOpcode.stloc: 882case ILOpcode.localloc: 885case ILOpcode.endfilter: 889case ILOpcode.unaligned: 892case ILOpcode.volatile_: 895case ILOpcode.tail: 898case ILOpcode.initobj: 901case ILOpcode.constrained: 904case ILOpcode.cpblk: 907case ILOpcode.initblk: 910case ILOpcode.no: 913case ILOpcode.rethrow: 917case ILOpcode.sizeof_: 920case ILOpcode.refanytype: 923case ILOpcode.readonly_:
parent\parent\Common\TypeSystem\IL\ILReader.cs (19)
92public ILOpcode ReadILOpcode() 94ILOpcode opcode = (ILOpcode)ReadILByte(); 95if (opcode == ILOpcode.prefix1) 97opcode = (ILOpcode)(0x100 + ReadILByte()); 103public readonly ILOpcode PeekILOpcode() 105ILOpcode opcode = (ILOpcode)_ilBytes[_currentOffset]; 106if (opcode == ILOpcode.prefix1) 110opcode = (ILOpcode)(0x100 + _ilBytes[_currentOffset + 1]); 124public void Skip(ILOpcode opcode) 129if (opcode != ILOpcode.switch_) 147public int ReadBranchDestination(ILOpcode currentOpcode) 149if ((currentOpcode >= ILOpcode.br_s && currentOpcode <= ILOpcode.blt_un_s) 150|| currentOpcode == ILOpcode.leave_s) 156Debug.Assert((currentOpcode >= ILOpcode.br && currentOpcode <= ILOpcode.blt_un) 157|| currentOpcode == ILOpcode.leave);
parent\parent\Common\TypeSystem\IL\NativeAotILProvider.cs (24)
62return new ILStubMethodIL(method, new byte[] { (byte)ILOpcode.break_, (byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 73ILOpcode value = method.Context.Target.SupportsRelativePointers ? 74ILOpcode.ldc_i4_1 : ILOpcode.ldc_i4_0; 75return new ILStubMethodIL(method, new byte[] { (byte)value, (byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 119codeStream.Emit(ILOpcode.initobj, emit.NewToken(context.GetSignatureVariable(0, method: true))); 121codeStream.Emit(ILOpcode.ret); 168codeStream.Emit(ILOpcode.call, emitter.NewToken(underlyingCompareToMethod)); 169codeStream.Emit(ILOpcode.ret); 193ILOpcode convInstruction; 196convInstruction = ILOpcode.conv_i4; 201convInstruction = ILOpcode.conv_i8; 205(byte)ILOpcode.ldarg_0, 207(byte)ILOpcode.ldarg_1, 209(byte)ILOpcode.prefix1, unchecked((byte)ILOpcode.ceq), 210(byte)ILOpcode.ret, 222(byte)ILOpcode.ldnull, 223(byte)ILOpcode.ret 243(byte)ILOpcode.ldarg_0, 244(byte)ILOpcode.ldarg_1, 245(byte)ILOpcode.call, 1, 0, 0, 0, 246(byte)ILOpcode.ret
parent\parent\Common\TypeSystem\IL\Stubs\ArrayMethodILEmitter.cs (28)
40codeStream.Emit(ILOpcode.ldflda, _helperFieldToken); 42codeStream.Emit(ILOpcode.add); 102codeStream.Emit(ILOpcode.call, _emitter.NewToken(checkArrayStore)); 118codeStream.Emit(ILOpcode.brfalse, typeCheckPassedLabel); 122codeStream.Emit(ILOpcode.ldfld, _emitter.NewToken(objectType.GetKnownField("m_pEEType"u8))); 123codeStream.Emit(ILOpcode.call, 128codeStream.Emit(ILOpcode.call, 133codeStream.Emit(ILOpcode.bne_un, typeMismatchExceptionLabel); 149codeStream.Emit(ILOpcode.ldfld, _emitter.NewToken(objectType.GetKnownField("m_pEEType"u8))); 150codeStream.Emit(ILOpcode.call, 154codeStream.Emit(ILOpcode.brfalse, notSzArrayLabel); 158codeStream.Emit(ILOpcode.dup); 159codeStream.Emit(ILOpcode.ldind_i4); 163codeStream.Emit(ILOpcode.ble_un, rangeExceptionLabel); 166codeStream.Emit(ILOpcode.add); 169codeStream.Emit(ILOpcode.br, rangeCheckDoneLabel); 180codeStream.Emit(ILOpcode.ldind_i4); 186codeStream.Emit(ILOpcode.dup); 188codeStream.Emit(ILOpcode.bge_un, rangeExceptionLabel); 195codeStream.Emit(ILOpcode.mul); 196codeStream.Emit(ILOpcode.add); 210codeStream.Emit(ILOpcode.conv_u); 216codeStream.Emit(ILOpcode.mul); 218codeStream.Emit(ILOpcode.add); 223codeStream.Emit(ILOpcode.ldobj, _emitter.NewToken(_elementType)); 228codeStream.Emit(ILOpcode.stobj, _emitter.NewToken(_elementType)); 235codeStream.Emit(ILOpcode.ret); 239codeStream.Emit(ILOpcode.pop);
parent\parent\Common\TypeSystem\IL\Stubs\AssemblyGetExecutingAssemblyMethodThunk.cs (3)
79codeStream.Emit(ILOpcode.ldtoken, emit.NewToken(moduleType)); 80codeStream.Emit(ILOpcode.call, emit.NewToken(classlibHelper)); 81codeStream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\Stubs\AsyncResumptionStub.cs (12)
64ilStream.Emit(ILOpcode.conv_u); 68ilStream.Emit(ILOpcode.ldnull); 75ilStream.Emit(ILOpcode.conv_i); 76ilStream.Emit(ILOpcode.call, ilEmitter.NewToken(Context.GetCoreLibEntryPoint("System.Runtime.CompilerServices"u8, "RuntimeHelpers"u8, "SetNextCallGenericContext"u8, null))); 80ilStream.Emit(ILOpcode.call, ilEmitter.NewToken(Context.GetCoreLibEntryPoint("System.Runtime.CompilerServices"u8, "RuntimeHelpers"u8, "SetNextCallAsyncContinuation"u8, null))); 87ilStream.Emit(ILOpcode.conv_u); 93ilStream.Emit(ILOpcode.initobj, ilEmitter.NewToken(param)); 98ilStream.Emit(ILOpcode.call, ilEmitter.NewToken(_targetMethod)); 112ilStream.Emit(ILOpcode.call, ilEmitter.NewToken(asyncCallContinuation)); 119ilStream.Emit(ILOpcode.brtrue, doneResult); 122ilStream.Emit(ILOpcode.stobj, ilEmitter.NewToken(_targetMethod.Signature.ReturnType)); 126ilStream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\Stubs\AsyncThunks.cs (20)
51codestream.Emit(ILOpcode.ldsflda, emitter.NewToken(asyncHelpersType.GetKnownField("t_runtimeAsyncAwaitState"u8))); 56codestream.Emit(ILOpcode.call, emitter.NewToken(awaitStateType.GetKnownMethod("Push"u8, null))); 61codestream.Emit(ILOpcode.nop); 93codestream.Emit(ILOpcode.call, emitter.NewToken(asyncMethod)); 102codestream.Emit(ILOpcode.call, emitter.NewToken(asyncCallContinuationMd)); 104codestream.Emit(ILOpcode.brfalse, finishedLabel); 105codestream.Emit(ILOpcode.leave, suspendedLabel); 128codestream.Emit(ILOpcode.call, emitter.NewToken(fromResultMethod)); 145codestream.Emit(ILOpcode.call, emitter.NewToken(getCompletedTaskMethod)); 149codestream.Emit(ILOpcode.leave, returnTaskLabel); 186codestream.Emit(ILOpcode.call, emitter.NewToken(fromExceptionMd)); 188codestream.Emit(ILOpcode.leave, returnTaskLabel); 222codestream.Emit(ILOpcode.call, emitter.NewToken(createRuntimeAsyncTaskMd)); 224codestream.Emit(ILOpcode.leave, returnTaskLabel); 233codestream.Emit(ILOpcode.call, emitter.NewToken(awaitStateType.GetKnownMethod("Pop"u8, null))); 234codestream.Emit(ILOpcode.endfinally); 240codestream.Emit(ILOpcode.ret); 292codestream.Emit(ILOpcode.call, emitter.NewToken(asyncVariantTarget)); 293codestream.Emit(ILOpcode.pop); 294codestream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\Stubs\ComparerIntrinsics.cs (2)
70codeStream.Emit(ILOpcode.newobj, emitter.NewToken(comparerType.GetParameterlessConstructor())); 71codeStream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\Stubs\DelegateMethodILEmitter.cs (4)
61codeStream.Emit(ILOpcode.ldfld, emit.NewToken(methodPtrField.InstantiateAsOpen())); 65codeStream.Emit(ILOpcode.ldfld, emit.NewToken(targetField.InstantiateAsOpen())); 92codeStream.Emit(ILOpcode.calli, emit.NewToken(signature)); 94codeStream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\Stubs\DelegateThunks.cs (46)
124codeStream.Emit(ILOpcode.ldfld, emitter.NewToken(ExtraFunctionPointerOrDataField)); 126codeStream.Emit(ILOpcode.calli, emitter.NewToken(builder.ToSignature())); 128codeStream.Emit(ILOpcode.ret); 192codeStream.Emit(ILOpcode.box, emitter.NewToken(boxThisType)); 206codeStream.Emit(ILOpcode.ldnull); 213codeStream.Emit(ILOpcode.box, emitter.NewToken(boxThisType)); 217codeStream.Emit(ILOpcode.call, emitter.NewToken(SystemDelegateType.GetKnownMethod("GetActualTargetFunctionPointer"u8, null))); 220codeStream.Emit(ILOpcode.calli, emitter.NewToken(targetSignature)); 221codeStream.Emit(ILOpcode.ret); 267codeStream.Emit(ILOpcode.ldfld, emitter.NewToken(HelperObjectField)); 277codeStream.Emit(ILOpcode.ldfld, emitter.NewToken(ExtraFunctionPointerOrDataField)); 279codeStream.Emit(ILOpcode.calli, emitter.NewToken(targetMethodSignature)); 281codeStream.Emit(ILOpcode.ret); 334codeStream.Emit(ILOpcode.ldfld, emitter.NewToken(HelperObjectField)); 345codeStream.Emit(ILOpcode.ldfld, emitter.NewToken(ExtraFunctionPointerOrDataField)); 370codeStream.Emit(ILOpcode.ldelema, emitter.NewToken(delegateWrapperType)); 371codeStream.Emit(ILOpcode.ldfld, emitter.NewToken(delegateWrapperType.GetKnownField("Value"u8))); 386codeStream.Emit(ILOpcode.callvirt, emitter.NewToken(_delegateInfo.InvokeMethod.InstantiateAsOpen())); 400codeStream.Emit(ILOpcode.add); 406codeStream.Emit(ILOpcode.bne_un, startOfLoopLabel); 416codeStream.Emit(ILOpcode.ret); 450codeStream.Emit(ILOpcode.ldfld, emitter.NewToken(HelperObjectField)); 460codeStream.Emit(ILOpcode.ldfld, emitter.NewToken(ExtraFunctionPointerOrDataField)); 462codeStream.Emit(ILOpcode.calli, emitter.NewToken(Signature)); 464codeStream.Emit(ILOpcode.ret); 535codeStream.Emit(ILOpcode.newarr, emitter.NewToken(objectType)); 560codeStream.Emit(ILOpcode.ldobj, paramToken); 562codeStream.Emit(ILOpcode.box, paramToken); 563codeStream.Emit(ILOpcode.stelem_ref); 569codeStream.Emit(ILOpcode.call, emitter.NewToken(emptyObjectArrayMethod)); 582codeStream.Emit(ILOpcode.ldfld, emitter.NewToken(HelperObjectField)); 587codeStream.Emit(ILOpcode.castclass, emitter.NewToken(instantiatedFunc)); 592codeStream.Emit(ILOpcode.callvirt, emitter.NewToken(invokeMethod)); 602codeStream.Emit(ILOpcode.pop); 608codeStream.Emit(ILOpcode.leave, returnLabel); 625codeStream.Emit(ILOpcode.ldelem_ref); 626codeStream.Emit(ILOpcode.unbox_any, paramToken); 627codeStream.Emit(ILOpcode.stobj, paramToken); 630codeStream.Emit(ILOpcode.endfinally); 638codeStream.Emit(ILOpcode.unbox_any, emitter.NewToken(Signature.ReturnType)); 641codeStream.Emit(ILOpcode.ret); 724codeStream.Emit(ILOpcode.br, returnNullLabel); 735codeStream.Emit(ILOpcode.ldftn, emitter.NewToken(targetMethod)); 736codeStream.Emit(ILOpcode.ret); 741codeStream.Emit(ILOpcode.conv_i); 742codeStream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\Stubs\DynamicInvokeMethodThunk.cs (5)
141codeStream.Emit(ILOpcode.ldind_ref); 155codeStream.Emit(ILOpcode.add); 158codeStream.Emit(ILOpcode.ldfld, fieldByReferenceValueToken); 169codeStream.Emit(ILOpcode.calli, emitter.NewToken(_targetSignature)); 187codeStream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\Stubs\ForwardDelegateCreationThunk.cs (5)
105codeStream.Emit(ILOpcode.newobj, emitter.NewToken( 109codeStream.Emit(ILOpcode.dup); 111codeStream.Emit(ILOpcode.ldvirtftn, emitter.NewToken( 115codeStream.Emit(ILOpcode.newobj, emitter.NewToken( 124codeStream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\Stubs\GetCanonTypeIntrinsic.cs (2)
27codeStream.Emit(ILOpcode.ldtoken, emitter.NewToken(context.CanonType)); 28codeStream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\Stubs\GetFieldHelperMethodOverride.cs (14)
93stream.Emit(ILOpcode.ret); 143getFieldStream.Emit(ILOpcode.call, emitter.NewToken(mtOfFieldMethod)); 145getFieldStream.Emit(ILOpcode.stind_i); 148getFieldStream.Emit(ILOpcode.ldflda, emitter.NewToken(field)); 154getFieldStream.Emit(ILOpcode.ldflda, rawDataToken); 156getFieldStream.Emit(ILOpcode.sub); 158getFieldStream.Emit(ILOpcode.ret); 178switchStream.Emit(ILOpcode.sub); 180switchStream.Emit(ILOpcode.call, emitter.NewToken(baseMethod)); 184switchStream.Emit(ILOpcode.bge, lGotBaseFieldAddress); 187switchStream.Emit(ILOpcode.br, lGotNumFieldsInBase); 191switchStream.Emit(ILOpcode.add); 192switchStream.Emit(ILOpcode.ret); 197switchStream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\Stubs\InterlockedIntrinsics.cs (2)
71codeStream.Emit(ILOpcode.call, emit.NewToken(compareExchangeNonGeneric)); 72codeStream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\Stubs\MethodBaseGetCurrentMethodThunk.cs (4)
76codeStream.Emit(ILOpcode.ldtoken, emit.NewToken(Method)); 81codeStream.Emit(ILOpcode.ldtoken, emit.NewToken(Method.OwningType)); 89codeStream.Emit(ILOpcode.call, emit.NewToken(classlibHelper)); 90codeStream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\Stubs\PInvokeILEmitter.cs (20)
175fnptrLoadStream.Emit(ILOpcode.call, emitter.NewToken( 184callsiteSetupCodeStream.Emit(ILOpcode.calli, emitter.NewToken(managedSignature)); 198fnptrLoadStream.Emit(ILOpcode.call, emitter.NewToken(instantiatedHelper)); 204callsiteSetupCodeStream.Emit(ILOpcode.callvirt, emitter.NewToken(invokeMethod)); 211callsiteSetupCodeStream.Emit(ILOpcode.call, emitter.NewToken( 219fnptrLoadStream.Emit(ILOpcode.call, emitter.NewToken(InteropTypes 244callsiteSetupCodeStream.Emit(ILOpcode.calli, emitter.NewToken(nativeSig)); 250callsiteSetupCodeStream.Emit(ILOpcode.call, emitter.NewToken( 282callsiteSetupCodeStream.Emit(ILOpcode.call, emitter.NewToken( 310fnptrLoadStream.Emit(ILOpcode.ldsflda, emitter.NewToken(lazyDispatchCell)); 311fnptrLoadStream.Emit(ILOpcode.call, emitter.NewToken(lazyHelperType 319callsiteSetupCodeStream.Emit(ILOpcode.calli, emitter.NewToken(nativeSig)); 330callsiteSetupCodeStream.Emit(ILOpcode.call, emitter.NewToken(nativeMethod)); 335callsiteSetupCodeStream.Emit(ILOpcode.call, emitter.NewToken( 344callsiteSetupCodeStream.Emit(ILOpcode.call, emitter.NewToken( 352callsiteSetupCodeStream.Emit(ILOpcode.call, emitter.NewToken(lazyHelperType 375callsiteSetupCodeStream.Emit(ILOpcode.calli, emitter.NewToken(nativeSig)); 422unmarshallingCodestream.Emit(ILOpcode.leave, lReturn); 425cleanupCodestream.Emit(ILOpcode.endfinally); 431cleanupCodestream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\Stubs\RuntimeHelpersIntrinsics.cs (4)
86ILOpcode opcode = result ? ILOpcode.ldc_i4_1 : ILOpcode.ldc_i4_0; 88return new ILStubMethodIL(method, new byte[] { (byte)opcode, (byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), Array.Empty<object>());
parent\parent\Common\TypeSystem\IL\Stubs\StreamIntrinsics.cs (8)
36codestream.Emit(ILOpcode.ldvirtftn, beginMethodToken); 37codestream.Emit(ILOpcode.ldftn, beginMethodToken); 38codestream.Emit(ILOpcode.bne_un, lOverridden); 42codestream.Emit(ILOpcode.ldvirtftn, endMethodToken); 43codestream.Emit(ILOpcode.ldftn, endMethodToken); 44codestream.Emit(ILOpcode.bne_un, lOverridden); 47codestream.Emit(ILOpcode.ret); 51codestream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\Stubs\StructMarshallingThunk.cs (4)
261pInvokeILCodeStreams.UnmarshallingCodestream.Emit(ILOpcode.ret); 293pInvokeILCodeStreams.UnmarshallingCodestream.Emit(ILOpcode.ret); 333stream.Emit(ILOpcode.ldfld, emitter.NewToken(field)); 346stream.Emit(ILOpcode.stfld, emitter.NewToken(field));
parent\parent\Common\TypeSystem\IL\Stubs\TypeGetTypeMethodThunk.cs (3)
79codeStream.Emit(ILOpcode.ldstr, emit.NewToken(DefaultAssemblyName)); 103codeStream.Emit(ILOpcode.call, emit.NewToken(_helperMethod)); 104codeStream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\Stubs\TypeSystemThrowingILEmitter.cs (3)
90codeStream.Emit(ILOpcode.ldstr, emitter.NewToken(arg)); 93codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 97codeStream.Emit(ILOpcode.br, infinityLabel);
parent\parent\Common\TypeSystem\IL\Stubs\UnsafeIntrinsics.cs (68)
24return new ILStubMethodIL(method, new byte[] { (byte)ILOpcode.ldarg_0, (byte)ILOpcode.conv_u, (byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 27return new ILStubMethodIL(method, new byte[] { (byte)ILOpcode.ldarg_0, (byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 31return new ILStubMethodIL(method, new byte[] { (byte)ILOpcode.ldarg_0, (byte)ILOpcode.ldarg_1, (byte)ILOpcode.add, (byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 53(byte)ILOpcode.ldarg_0, (byte)ILOpcode.ldarg_1, 54(byte)ILOpcode.prefix1, unchecked((byte)ILOpcode.ceq), 55(byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 59(byte)ILOpcode.ldarg_0, (byte)ILOpcode.ldarg_1, 60(byte)ILOpcode.prefix1, unchecked((byte)ILOpcode.cgt_un), 61(byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 65(byte)ILOpcode.ldarg_0, (byte)ILOpcode.ldarg_1, 66(byte)ILOpcode.prefix1, unchecked((byte)ILOpcode.clt_un), 67(byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 71(byte)ILOpcode.ldarg_1, (byte)ILOpcode.ldarg_0, 72(byte)ILOpcode.sub, 73(byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 77(byte)ILOpcode.ldc_i4_0, (byte)ILOpcode.conv_u, 78(byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 82(byte)ILOpcode.ldarg_0, 83(byte)ILOpcode.ldc_i4_0, (byte)ILOpcode.conv_u, 84(byte)ILOpcode.prefix1, unchecked((byte)ILOpcode.ceq), 85(byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 87return new ILStubMethodIL(method, new byte[] { (byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 91return new ILStubMethodIL(method, new byte[] { (byte)ILOpcode.ldarg_0, (byte)ILOpcode.ldarg_1, (byte)ILOpcode.sub, (byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 107codeStream.Emit(ILOpcode.ldarg_1); 108codeStream.Emit(ILOpcode.sizeof_, emit.NewToken(context.GetSignatureVariable(0, method: true))); 109codeStream.Emit(ILOpcode.conv_i); 110codeStream.Emit(ILOpcode.mul); 111codeStream.Emit(ILOpcode.ldarg_0); 112codeStream.Emit(ILOpcode.add); 113codeStream.Emit(ILOpcode.ret); 126codeStream.Emit(ILOpcode.ldarg_0); 127codeStream.Emit(ILOpcode.ldarg_1); 128codeStream.Emit(ILOpcode.sizeof_, emit.NewToken(context.GetSignatureVariable(0, method: true))); 129codeStream.Emit(ILOpcode.conv_i); 130codeStream.Emit(ILOpcode.mul); 131codeStream.Emit(ILOpcode.sub); 132codeStream.Emit(ILOpcode.ret); 149codeStream.Emit(write ? ILOpcode.stobj : ILOpcode.ldobj, 151codeStream.Emit(ILOpcode.ret); 167codeStream.Emit(ILOpcode.ldobj, token); 168codeStream.Emit(ILOpcode.stobj, token); 169codeStream.Emit(ILOpcode.ret); 186codeStream.Emit(ILOpcode.cpblk); 187codeStream.Emit(ILOpcode.ret); 204codeStream.Emit(ILOpcode.initblk); 205codeStream.Emit(ILOpcode.ret); 220codeStream.Emit(ILOpcode.unbox, emit.NewToken(context.GetSignatureVariable(0, method: true))); 221codeStream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\Interop\IL\InlineArrayType.cs (8)
395codeStream.Emit(ILOpcode.conv_i4); 397codeStream.Emit(ILOpcode.sizeof_, emitter.NewToken(elementType)); 399codeStream.Emit(ILOpcode.conv_i4); 400codeStream.Emit(ILOpcode.mul); 401codeStream.Emit(ILOpcode.conv_i); 402codeStream.Emit(ILOpcode.add); 414codeStream.Emit(ILOpcode.conv_u); 418codeStream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\Interop\IL\MarshalHelpers.Aot.cs (3)
129codeStream.Emit(ILOpcode.ldstr, emitter.NewToken(message)); 130codeStream.Emit(ILOpcode.newobj, emitter.NewToken(exceptionCtor)); 131codeStream.Emit(ILOpcode.throw_);
parent\parent\Common\TypeSystem\Interop\IL\Marshaller.Aot.cs (132)
114codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 127codeStream.Emit(PInvokeFlags.BestFitMapping ? ILOpcode.ldc_i4_1 : ILOpcode.ldc_i4_0); 128codeStream.Emit(PInvokeFlags.ThrowOnUnmappableChar ? ILOpcode.ldc_i4_1 : ILOpcode.ldc_i4_0); 129codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 139codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 151codeStream.Emit(PInvokeFlags.BestFitMapping ? ILOpcode.ldc_i4_1 : ILOpcode.ldc_i4_0); 152codeStream.Emit(PInvokeFlags.ThrowOnUnmappableChar ? ILOpcode.ldc_i4_1 : ILOpcode.ldc_i4_0); 153codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 163codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 186codeStream.Emit(ILOpcode.call, emitter.NewToken( 197codeStream.Emit(ILOpcode.brfalse, lNull); 199codeStream.Emit(ILOpcode.newobj, emitter.NewToken( 212codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 227codeStream.Emit(PInvokeFlags.BestFitMapping ? ILOpcode.ldc_i4_1 : ILOpcode.ldc_i4_0); 228codeStream.Emit(PInvokeFlags.ThrowOnUnmappableChar ? ILOpcode.ldc_i4_1 : ILOpcode.ldc_i4_0); 230codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 239codeStream.Emit(ILOpcode.call, _ilCodeStreams.Emitter.NewToken(helper)); 247codeStream.Emit(ILOpcode.call, emitter.NewToken( 257codeStream.Emit(ILOpcode.ldfld, _ilCodeStreams.Emitter.NewToken(InteropTypes.GetHandleRef(Context).GetKnownField("_handle"u8))); 274codeStream.Emit(ILOpcode.ldfld, _ilCodeStreams.Emitter.NewToken(InteropTypes.GetHandleRef(Context).GetKnownField("_wrapper"u8))); 275codeStream.Emit(ILOpcode.call, _ilCodeStreams.Emitter.NewToken(InteropTypes.GetGC(Context).GetKnownMethod("KeepAlive"u8, null))); 284codeStream.Emit(ILOpcode.initobj, _ilCodeStreams.Emitter.NewToken(NativeType)); 291codeStream.Emit(ILOpcode.call, _ilCodeStreams.Emitter.NewToken( 299codeStream.Emit(ILOpcode.call, _ilCodeStreams.Emitter.NewToken( 312codeStream.Emit(ILOpcode.call, _ilCodeStreams.Emitter.NewToken( 346codeStream.Emit(ILOpcode.ldfld, emitter.NewToken(_managedField)); 349codeStream.Emit(ILOpcode.brfalse, lNullCheck); 352codeStream.Emit(ILOpcode.ldfld, emitter.NewToken(_managedField)); 354codeStream.Emit(ILOpcode.ldlen); 355codeStream.Emit(ILOpcode.conv_i4); 365codeStream.Emit(ILOpcode.blt, lSmaller); 368codeStream.Emit(ILOpcode.br, lDone); 421codeStream.Emit(ILOpcode.ldfld, emitter.NewToken(_managedField)); 422codeStream.Emit(ILOpcode.brfalse, lDone); 425codeStream.Emit(ILOpcode.ldflda, emitter.NewToken(_nativeField)); 433codeStream.Emit(ILOpcode.br, lRangeCheck); 437codeStream.Emit(ILOpcode.ldflda, emitter.NewToken(_nativeField)); 441codeStream.Emit(ILOpcode.ldfld, emitter.NewToken(_managedField)); 450codeStream.Emit(ILOpcode.call, emitter.NewToken( 455codeStream.Emit(ILOpcode.add); 462codeStream.Emit(ILOpcode.blt, lLoopHeader); 498codeStream.Emit(ILOpcode.newarr, emitter.NewToken(managedElementType)); 499codeStream.Emit(ILOpcode.stfld, emitter.NewToken(_managedField)); 507codeStream.Emit(ILOpcode.br, lRangeCheck); 513codeStream.Emit(ILOpcode.ldfld, emitter.NewToken(_managedField)); 519codeStream.Emit(ILOpcode.ldflda, emitter.NewToken(_nativeField)); 522codeStream.Emit(ILOpcode.call, emitter.NewToken( 533codeStream.Emit(ILOpcode.add); 540codeStream.Emit(ILOpcode.blt, lLoopHeader); 573codeStream.Emit(ILOpcode.ldfld, emitter.NewToken(_managedField)); 576codeStream.Emit(ILOpcode.ldflda, emitter.NewToken(_nativeField)); 577codeStream.Emit(ILOpcode.conv_u); 583codeStream.Emit(PInvokeFlags.BestFitMapping ? ILOpcode.ldc_i4_1 : ILOpcode.ldc_i4_0); 584codeStream.Emit(PInvokeFlags.ThrowOnUnmappableChar ? ILOpcode.ldc_i4_1 : ILOpcode.ldc_i4_0); 587codeStream.Emit(ILOpcode.call, emitter.NewToken(GetManagedToNativeHelper())); 598codeStream.Emit(ILOpcode.ldflda, emitter.NewToken(_nativeField)); 599codeStream.Emit(ILOpcode.conv_u); 603codeStream.Emit(ILOpcode.call, emitter.NewToken(GetNativeToManagedHelper())); 605codeStream.Emit(ILOpcode.stfld, emitter.NewToken(_managedField)); 656codeStream.Emit(ILOpcode.initobj, _ilCodeStreams.Emitter.NewToken(NativeType)); 665codeStream.Emit(ILOpcode.brfalse, lNull); 669codeStream.Emit(ILOpcode.call, _ilCodeStreams.Emitter.NewToken( 681codeStream.Emit(ILOpcode.brtrue, lNonNull); 683codeStream.Emit(ILOpcode.ldtoken, emitter.NewToken(ManagedType)); 684codeStream.Emit(ILOpcode.call, emitter.NewToken(InteropTypes.GetType(Context).GetMethod("GetTypeFromHandle"u8, null))); 685codeStream.Emit(ILOpcode.call, emitter.NewToken(InteropTypes.GetRuntimeHelpers(Context).GetKnownMethod("GetUninitializedObject"u8, null))); 691codeStream.Emit(ILOpcode.call, _ilCodeStreams.Emitter.NewToken( 704codeStream.Emit(ILOpcode.call, _ilCodeStreams.Emitter.NewToken( 736codeStream.Emit(ILOpcode.conv_i); 740codeStream.Emit(ILOpcode.brfalse, lNull); 752codeStream.Emit(ILOpcode.ldflda, emitter.NewToken(rawDataField)); 753codeStream.Emit(ILOpcode.conv_i); 765codeStream.Emit(ILOpcode.conv_i); 769codeStream.Emit(ILOpcode.brfalse, lNull); 775codeStream.Emit(ILOpcode.initobj, emitter.NewToken(nativeStructType)); 785codeStream.Emit(ILOpcode.ldtoken, emitter.NewToken(ManagedType)); 786codeStream.Emit(ILOpcode.call, emitter.NewToken(InteropTypes.GetType(Context).GetMethod("GetTypeFromHandle"u8, null))); 787codeStream.Emit(ILOpcode.call, emitter.NewToken(InteropTypes.GetRuntimeHelpers(Context).GetKnownMethod("GetUninitializedObject"u8, null))); 797codeStream.Emit(ILOpcode.brfalse, lNull); 801codeStream.Emit(ILOpcode.call, _ilCodeStreams.Emitter.NewToken( 820codeStream.Emit(ILOpcode.brfalse, lNull); 824codeStream.Emit(ILOpcode.call, _ilCodeStreams.Emitter.NewToken( 848codeStream.Emit(ILOpcode.brfalse, lNull); 851codeStream.Emit(ILOpcode.call, emitter.NewToken( 877codeStream.Emit(ILOpcode.brfalse, lNull); 882codeStream.Emit(ILOpcode.call, emitter.NewToken(getNativeSizeHelper)); 883codeStream.Emit(ILOpcode.dup); 885codeStream.Emit(ILOpcode.localloc); 886codeStream.Emit(ILOpcode.dup); 890codeStream.Emit(ILOpcode.initblk); 901codeStream.Emit(ILOpcode.brfalse, lNull); 905codeStream.Emit(ILOpcode.call, _ilCodeStreams.Emitter.NewToken( 917codeStream.Emit(ILOpcode.brfalse, lNull); 921codeStream.Emit(ILOpcode.call, _ilCodeStreams.Emitter.NewToken( 939codeStream.Emit(ILOpcode.brfalse, lNull); 943codeStream.Emit(ILOpcode.call, emitter.NewToken( 986codeStream.Emit(ILOpcode.newobj, emitter.NewToken(guidCtorHandleMethod)); 989codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 999codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 1011codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 1030codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 1038codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 1049codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 1063codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 1071codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 1082codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 1096codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 1107codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 1121codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 1132codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 1156codeStream.Emit(ILOpcode.initobj, _ilCodeStreams.Emitter.NewToken(NativeType)); 1172codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 1187codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 1204codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 1243fnptrLoadStream.Emit(ILOpcode.ldtoken, emitter.NewToken(ManagedType)); 1244fnptrLoadStream.Emit(ILOpcode.ldtoken, emitter.NewToken(marshallerType)); 1245fnptrLoadStream.Emit(ILOpcode.ldstr, emitter.NewToken(cookie)); 1248fnptrLoadStream.Emit(ILOpcode.ldftn, emitter.NewToken(getInstanceMethod)); 1253fnptrLoadStream.Emit(ILOpcode.conv_i); 1256fnptrLoadStream.Emit(ILOpcode.call, emitter.NewToken(initializeCustomMarshallerMethod)); 1273codeStream.Emit(ILOpcode.callvirt, emitter.NewToken(manageToNativeMethod)); 1302codeStream.Emit(ILOpcode.callvirt, emitter.NewToken(marshalNativeToManagedMethod)); 1320codeStream.Emit(ILOpcode.callvirt, emitter.NewToken(cleanupManagedDataMethod)); 1337codeStream.Emit(ILOpcode.callvirt, emitter.NewToken(cleanupNativeDataMethod));
parent\parent\Common\TypeSystem\Interop\IL\Marshaller.cs (100)
734stream.Emit(ILOpcode.conv_i); 1048marshallingCodeStream.Emit(ILOpcode.conv_u); 1152codeStream.Emit(ILOpcode.ldlen); 1153codeStream.Emit(ILOpcode.conv_i4); 1211codeStream.Emit(ILOpcode.add); 1213codeStream.Emit(ILOpcode.conv_ovf_i4); 1230codeStream.Emit(ILOpcode.conv_u); 1235codeStream.Emit(ILOpcode.brfalse, lNullArray); 1244codeStream.Emit(ILOpcode.sizeof_, emitter.NewToken(nativeElementType)); 1246codeStream.Emit(ILOpcode.mul_ovf); 1254codeStream.Emit(ILOpcode.dup); 1257codeStream.Emit(ILOpcode.call, emitter.NewToken( 1259codeStream.Emit(ILOpcode.dup); 1264codeStream.Emit(ILOpcode.initblk); 1268codeStream.Emit(ILOpcode.call, emitter.NewToken( 1292codeStream.Emit(ILOpcode.brfalse, lNullArray); 1299codeStream.Emit(ILOpcode.sizeof_, emitter.NewToken(nativeElementType)); 1308codeStream.Emit(ILOpcode.br, lRangeCheck); 1323codeStream.Emit(ILOpcode.add); 1327codeStream.Emit(ILOpcode.add); 1334codeStream.Emit(ILOpcode.blt, lLoopHeader); 1356codeStream.Emit(ILOpcode.brfalse, lNullArray); 1366codeStream.Emit(ILOpcode.newarr, emitter.NewToken(ManagedElementType)); 1370codeStream.Emit(ILOpcode.sizeof_, emitter.NewToken(nativeElementType)); 1381codeStream.Emit(ILOpcode.br, lRangeCheck); 1401codeStream.Emit(ILOpcode.add); 1405codeStream.Emit(ILOpcode.add); 1412codeStream.Emit(ILOpcode.blt, lLoopHeader); 1422codeStream.Emit(ILOpcode.newarr, emitter.NewToken(elementType)); 1435codeStream.Emit(ILOpcode.brfalse, lNullArray); 1453codeStream.Emit(ILOpcode.sizeof_, emitter.NewToken(nativeElementType)); 1470codeStream.Emit(ILOpcode.br, lRangeCheck); 1480codeStream.Emit(ILOpcode.add); 1484codeStream.Emit(ILOpcode.add); 1491codeStream.Emit(ILOpcode.blt, lLoopHeader); 1495codeStream.Emit(ILOpcode.call, emitter.NewToken(InteropTypes.GetMarshal(Context).GetKnownMethod("FreeCoTaskMem"u8, null))); 1512codeStream.Emit(ILOpcode.brfalse, lNullArray); 1520codeStream.Emit(ILOpcode.call, emitter.NewToken(getArrayDataReferenceMethod)); 1522codeStream.Emit(ILOpcode.sizeof_, emitter.NewToken(ManagedElementType)); 1523codeStream.Emit(ILOpcode.mul_ovf); 1524codeStream.Emit(ILOpcode.cpblk); 1533codeStream.Emit(ILOpcode.call, emitter.NewToken(getArrayDataReferenceMethod)); 1539codeStream.Emit(ILOpcode.conv_i); 1547codeStream.Emit(ILOpcode.conv_u); 1582codeStream.Emit(ILOpcode.ceq); 1584codeStream.Emit(ILOpcode.ceq); 1588codeStream.Emit(ILOpcode.brfalse, pLoadFalseLabel); 1590codeStream.Emit(ILOpcode.br, pDoneLabel); 1605codeStream.Emit(ILOpcode.ceq); 1607codeStream.Emit(ILOpcode.ceq); 1636codeStream.Emit(ILOpcode.call, emitter.NewToken( 1657codeStream.Emit(ILOpcode.brtrue, lNonNullString); 1663codeStream.Emit(ILOpcode.ldc_i4_0); 1664codeStream.Emit(ILOpcode.conv_u); 1665codeStream.Emit(ILOpcode.br, lCommonExit); 1673codeStream.Emit(ILOpcode.call, emitter.NewToken( 1678codeStream.Emit(ILOpcode.conv_u); 1692codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 1708codeStream.Emit(ILOpcode.newobj, emitter.NewToken(charPtrConstructor)); 1721codeStream.Emit(ILOpcode.brfalse, lNullCheck); 1724codeStream.Emit(ILOpcode.call, emitter.NewToken( 1745codeStream.Emit(ILOpcode.call, emitter.NewToken( 1759codeStream.Emit(PInvokeFlags.BestFitMapping ? ILOpcode.ldc_i4_1 : ILOpcode.ldc_i4_0); 1760codeStream.Emit(PInvokeFlags.ThrowOnUnmappableChar ? ILOpcode.ldc_i4_1 : ILOpcode.ldc_i4_0); 1762codeStream.Emit(ILOpcode.call, emitter.NewToken(stringToAnsi)); 1772codeStream.Emit(ILOpcode.call, emitter.NewToken(ansiToString)); 1783codeStream.Emit(ILOpcode.brfalse, lNullCheck); 1786codeStream.Emit(ILOpcode.call, emitter.NewToken( 1809codeStream.Emit(ILOpcode.call, emitter.NewToken( 1829codeStream.Emit(ILOpcode.localloc); 1843codeStream.Emit(ILOpcode.newobj, emitter.NewToken(spanOfByte.GetKnownMethod(".ctor"u8, 1846codeStream.Emit(ILOpcode.call, emitter.NewToken(marshallerIn.GetKnownMethod("FromManaged"u8, null))); 1849codeStream.Emit(ILOpcode.call, emitter.NewToken(marshallerIn.GetKnownMethod("ToUnmanaged"u8, null))); 1854codeStream.Emit(ILOpcode.call, emitter.NewToken(Marshaller.GetKnownMethod("ConvertToUnmanaged"u8, null))); 1865codeStream.Emit(ILOpcode.call, emitter.NewToken(Marshaller.GetKnownMethod("ConvertToManaged"u8, null))); 1876codeStream.Emit(ILOpcode.call, emitter.NewToken( 1882codeStream.Emit(ILOpcode.call, emitter.NewToken( 1904codeStream.Emit(ILOpcode.newobj, _ilCodeStreams.Emitter.NewToken(ctor)); 1922returnValueMarshallingCodeStream.Emit(ILOpcode.call, emitter.NewToken( 1950marshallingCodeStream.Emit(ILOpcode.call, emitter.NewToken( 1956marshallingCodeStream.Emit(ILOpcode.call, emitter.NewToken( 1963cleanupCodeStream.Emit(ILOpcode.brfalse, lNotAddrefed); 1965cleanupCodeStream.Emit(ILOpcode.call, emitter.NewToken( 1994cleanupCodeStream.Emit(ILOpcode.beq, lSkipPropagation); 1999cleanupCodeStream.Emit(ILOpcode.call, emitter.NewToken( 2056codeStream.Emit(ILOpcode.dup); 2057codeStream.Emit(ILOpcode.brfalse, lNullPointer); 2059codeStream.Emit(ILOpcode.call, _ilCodeStreams.Emitter.NewToken( 2065codeStream.Emit(ILOpcode.br, lDone); 2068codeStream.Emit(ILOpcode.pop); 2070codeStream.Emit(ILOpcode.conv_i); 2082codeStream.Emit(ILOpcode.dup); 2083codeStream.Emit(ILOpcode.brfalse, lNullPointer); 2085codeStream.Emit(ILOpcode.call, _ilCodeStreams.Emitter.NewToken( 2091codeStream.Emit(ILOpcode.br, lDone); 2094codeStream.Emit(ILOpcode.pop); 2095codeStream.Emit(ILOpcode.ldnull); 2108codeStream.Emit(ILOpcode.call, _ilCodeStreams.Emitter.NewToken(InteropTypes.GetGC(Context).GetKnownMethod("KeepAlive"u8, null)));
parent\parent\Common\TypeSystem\Interop\IL\PInvokeDelegateWrapperConstructor.cs (2)
72codeStream.Emit(ILOpcode.call, emitter.NewToken( 74codeStream.Emit(ILOpcode.ret);
src\runtime\src\coreclr\tools\Common\Compiler\GenericCycleDetection\GraphBuilder.cs (31)
352ILOpcode opcode = reader.ReadILOpcode(); 355case ILOpcode.sizeof_: 356case ILOpcode.newarr: 357case ILOpcode.initobj: 358case ILOpcode.stelem: 359case ILOpcode.ldelem: 360case ILOpcode.ldelema: 361case ILOpcode.box: 362case ILOpcode.unbox: 363case ILOpcode.unbox_any: 364case ILOpcode.cpobj: 365case ILOpcode.ldobj: 366case ILOpcode.castclass: 367case ILOpcode.isinst: 368case ILOpcode.stobj: 369case ILOpcode.refanyval: 370case ILOpcode.mkrefany: 371case ILOpcode.constrained: 384case ILOpcode.stsfld: 385case ILOpcode.ldsfld: 386case ILOpcode.ldsflda: 387case ILOpcode.stfld: 388case ILOpcode.ldfld: 389case ILOpcode.ldflda: 399case ILOpcode.call: 400case ILOpcode.callvirt: 401case ILOpcode.newobj: 402case ILOpcode.ldftn: 403case ILOpcode.ldvirtftn: 404case ILOpcode.jmp: 420case ILOpcode.ldtoken:
ILCompiler.ReadyToRun (346)
Compiler\ProfileDataManager.cs (4)
193ILOpcode opcode = reader.ReadILOpcode(); 194if (opcode is ILOpcode.call or ILOpcode.callvirt) 207if (opcode != ILOpcode.callvirt && !isDelegateInvoke)
Compiler\ReadyToRunCompilationModuleGroupBase.cs (33)
629ILOpcode opcode = ilReader.ReadILOpcode(); 632case ILOpcode.ldfld: 633case ILOpcode.ldflda: 634case ILOpcode.stfld: 648case ILOpcode.ldelem: 649case ILOpcode.ldelema: 650case ILOpcode.stobj: 651case ILOpcode.ldobj: 652case ILOpcode.initobj: 653case ILOpcode.cpobj: 654case ILOpcode.sizeof_: 673case ILOpcode.stelem: 688case ILOpcode.box: 689case ILOpcode.call: 690case ILOpcode.calli: 691case ILOpcode.callvirt: 692case ILOpcode.castclass: 693case ILOpcode.jmp: 694case ILOpcode.isinst: 695case ILOpcode.ldstr: 696case ILOpcode.ldsfld: 697case ILOpcode.ldsflda: 698case ILOpcode.ldtoken: 699case ILOpcode.ldvirtftn: 700case ILOpcode.ldftn: 701case ILOpcode.mkrefany: 702case ILOpcode.newarr: 703case ILOpcode.newobj: 704case ILOpcode.refanyval: 705case ILOpcode.stsfld: 706case ILOpcode.unbox: 707case ILOpcode.unbox_any: 708case ILOpcode.constrained:
IBC\MIbcProfileParser.cs (27)
198ILOpcode opcode = ilReader.ReadILOpcode(); 201case ILOpcode.ldstr: 210case ILOpcode.ldtoken: 256case ILOpcode.pop: 295ILOpcode opcode = ilReader.ReadILOpcode(); 298case ILOpcode.ldstr: 310case ILOpcode.ret: 311case ILOpcode.pop: 378ILOpcode opcode = ilReader.ReadILOpcode(); 382case ILOpcode.ldtoken: 419case ILOpcode.ldc_r4: 438case ILOpcode.ldc_r8: 455case ILOpcode.ldc_i4_0: 459case ILOpcode.ldc_i4_1: 463case ILOpcode.ldc_i4_2: 467case ILOpcode.ldc_i4_3: 471case ILOpcode.ldc_i4_4: 475case ILOpcode.ldc_i4_5: 479case ILOpcode.ldc_i4_6: 483case ILOpcode.ldc_i4_7: 487case ILOpcode.ldc_i4_8: 491case ILOpcode.ldc_i4_m1: 495case ILOpcode.ldc_i4_s: 499case ILOpcode.ldc_i4: 504case ILOpcode.ldc_i8: 511case ILOpcode.ldstr: 546case ILOpcode.pop:
IL\Stubs\PInvokeILEmitter.cs (4)
57callsiteSetupCodeStream.Emit(ILOpcode.call, emitter.NewToken(rawTargetMethod)); 108unmarshallingCodestream.Emit(ILOpcode.leave, lReturn); 111cleanupCodestream.Emit(ILOpcode.endfinally); 117cleanupCodestream.Emit(ILOpcode.ret);
JitInterface\CorInfoImpl.ReadyToRun.cs (3)
687var ilOpcode = reader.ReadILOpcode(); 688if (ilOpcode == ILOpcode.throw_) 690if (ilOpcode.IsBranch() || ilOpcode == ILOpcode.switch_)
parent\parent\Common\Compiler\CompilerTypeSystemContext.BoxedTypes.cs (15)
423new byte[] { (byte)ILOpcode.ldnull, (byte)ILOpcode.throw_ }, 440codeStream.Emit(ILOpcode.ldflda, emit.NewToken(rawDataField)); 446codeStream.Emit(ILOpcode.ldflda, emit.NewToken(rawDataField)); 448codeStream.Emit(ILOpcode.sub); 449codeStream.Emit(ILOpcode.ldind_i); 455codeStream.Emit(ILOpcode.call, emit.NewToken(Context.GetCoreLibEntryPoint("System.Runtime.CompilerServices"u8, "RuntimeHelpers"u8, "SetNextCallGenericContext"u8, null))); 465codeStream.Emit(ILOpcode.call, emit.NewToken(Context.GetCoreLibEntryPoint("System.Runtime.CompilerServices"u8, "AsyncHelpers"u8, "TailAwait"u8, null))); 468codeStream.Emit(ILOpcode.call, emit.NewToken(_targetMethod.InstantiateAsOpen())); 469codeStream.Emit(ILOpcode.ret); 536new byte[] { (byte)ILOpcode.ldnull, (byte)ILOpcode.throw_ }, 562codeStream.Emit(ILOpcode.ldflda, emit.NewToken(Context.SystemModule.GetKnownType("System.Runtime.CompilerServices"u8, "RawData"u8).GetField("Data"u8))); 590codeStream.Emit(ILOpcode.call, emit.NewToken(methodToInstantiate)); 591codeStream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\HelperExtensions.cs (2)
66codeStream.Emit(ILOpcode.call, emitter.NewToken(method)); 67codeStream.Emit(ILOpcode.br, label);
parent\parent\Common\TypeSystem\IL\ILReader.cs (19)
92public ILOpcode ReadILOpcode() 94ILOpcode opcode = (ILOpcode)ReadILByte(); 95if (opcode == ILOpcode.prefix1) 97opcode = (ILOpcode)(0x100 + ReadILByte()); 103public readonly ILOpcode PeekILOpcode() 105ILOpcode opcode = (ILOpcode)_ilBytes[_currentOffset]; 106if (opcode == ILOpcode.prefix1) 110opcode = (ILOpcode)(0x100 + _ilBytes[_currentOffset + 1]); 124public void Skip(ILOpcode opcode) 129if (opcode != ILOpcode.switch_) 147public int ReadBranchDestination(ILOpcode currentOpcode) 149if ((currentOpcode >= ILOpcode.br_s && currentOpcode <= ILOpcode.blt_un_s) 150|| currentOpcode == ILOpcode.leave_s) 156Debug.Assert((currentOpcode >= ILOpcode.br && currentOpcode <= ILOpcode.blt_un) 157|| currentOpcode == ILOpcode.leave);
parent\parent\Common\TypeSystem\IL\Stubs\AsyncResumptionStub.cs (12)
64ilStream.Emit(ILOpcode.conv_u); 68ilStream.Emit(ILOpcode.ldnull); 75ilStream.Emit(ILOpcode.conv_i); 76ilStream.Emit(ILOpcode.call, ilEmitter.NewToken(Context.GetCoreLibEntryPoint("System.Runtime.CompilerServices"u8, "RuntimeHelpers"u8, "SetNextCallGenericContext"u8, null))); 80ilStream.Emit(ILOpcode.call, ilEmitter.NewToken(Context.GetCoreLibEntryPoint("System.Runtime.CompilerServices"u8, "RuntimeHelpers"u8, "SetNextCallAsyncContinuation"u8, null))); 87ilStream.Emit(ILOpcode.conv_u); 93ilStream.Emit(ILOpcode.initobj, ilEmitter.NewToken(param)); 98ilStream.Emit(ILOpcode.call, ilEmitter.NewToken(_targetMethod)); 112ilStream.Emit(ILOpcode.call, ilEmitter.NewToken(asyncCallContinuation)); 119ilStream.Emit(ILOpcode.brtrue, doneResult); 122ilStream.Emit(ILOpcode.stobj, ilEmitter.NewToken(_targetMethod.Signature.ReturnType)); 126ilStream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\Stubs\AsyncThunks.cs (20)
51codestream.Emit(ILOpcode.ldsflda, emitter.NewToken(asyncHelpersType.GetKnownField("t_runtimeAsyncAwaitState"u8))); 56codestream.Emit(ILOpcode.call, emitter.NewToken(awaitStateType.GetKnownMethod("Push"u8, null))); 61codestream.Emit(ILOpcode.nop); 93codestream.Emit(ILOpcode.call, emitter.NewToken(asyncMethod)); 102codestream.Emit(ILOpcode.call, emitter.NewToken(asyncCallContinuationMd)); 104codestream.Emit(ILOpcode.brfalse, finishedLabel); 105codestream.Emit(ILOpcode.leave, suspendedLabel); 128codestream.Emit(ILOpcode.call, emitter.NewToken(fromResultMethod)); 145codestream.Emit(ILOpcode.call, emitter.NewToken(getCompletedTaskMethod)); 149codestream.Emit(ILOpcode.leave, returnTaskLabel); 186codestream.Emit(ILOpcode.call, emitter.NewToken(fromExceptionMd)); 188codestream.Emit(ILOpcode.leave, returnTaskLabel); 222codestream.Emit(ILOpcode.call, emitter.NewToken(createRuntimeAsyncTaskMd)); 224codestream.Emit(ILOpcode.leave, returnTaskLabel); 233codestream.Emit(ILOpcode.call, emitter.NewToken(awaitStateType.GetKnownMethod("Pop"u8, null))); 234codestream.Emit(ILOpcode.endfinally); 240codestream.Emit(ILOpcode.ret); 292codestream.Emit(ILOpcode.call, emitter.NewToken(asyncVariantTarget)); 293codestream.Emit(ILOpcode.pop); 294codestream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\Stubs\ComparerIntrinsics.cs (2)
70codeStream.Emit(ILOpcode.newobj, emitter.NewToken(comparerType.GetParameterlessConstructor())); 71codeStream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\Stubs\InterlockedIntrinsics.cs (2)
71codeStream.Emit(ILOpcode.call, emit.NewToken(compareExchangeNonGeneric)); 72codeStream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\IL\Stubs\RuntimeHelpersIntrinsics.cs (4)
86ILOpcode opcode = result ? ILOpcode.ldc_i4_1 : ILOpcode.ldc_i4_0; 88return new ILStubMethodIL(method, new byte[] { (byte)opcode, (byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), Array.Empty<object>());
parent\parent\Common\TypeSystem\IL\Stubs\UnsafeIntrinsics.cs (68)
24return new ILStubMethodIL(method, new byte[] { (byte)ILOpcode.ldarg_0, (byte)ILOpcode.conv_u, (byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 27return new ILStubMethodIL(method, new byte[] { (byte)ILOpcode.ldarg_0, (byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 31return new ILStubMethodIL(method, new byte[] { (byte)ILOpcode.ldarg_0, (byte)ILOpcode.ldarg_1, (byte)ILOpcode.add, (byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 53(byte)ILOpcode.ldarg_0, (byte)ILOpcode.ldarg_1, 54(byte)ILOpcode.prefix1, unchecked((byte)ILOpcode.ceq), 55(byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 59(byte)ILOpcode.ldarg_0, (byte)ILOpcode.ldarg_1, 60(byte)ILOpcode.prefix1, unchecked((byte)ILOpcode.cgt_un), 61(byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 65(byte)ILOpcode.ldarg_0, (byte)ILOpcode.ldarg_1, 66(byte)ILOpcode.prefix1, unchecked((byte)ILOpcode.clt_un), 67(byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 71(byte)ILOpcode.ldarg_1, (byte)ILOpcode.ldarg_0, 72(byte)ILOpcode.sub, 73(byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 77(byte)ILOpcode.ldc_i4_0, (byte)ILOpcode.conv_u, 78(byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 82(byte)ILOpcode.ldarg_0, 83(byte)ILOpcode.ldc_i4_0, (byte)ILOpcode.conv_u, 84(byte)ILOpcode.prefix1, unchecked((byte)ILOpcode.ceq), 85(byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 87return new ILStubMethodIL(method, new byte[] { (byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 91return new ILStubMethodIL(method, new byte[] { (byte)ILOpcode.ldarg_0, (byte)ILOpcode.ldarg_1, (byte)ILOpcode.sub, (byte)ILOpcode.ret }, Array.Empty<LocalVariableDefinition>(), null); 107codeStream.Emit(ILOpcode.ldarg_1); 108codeStream.Emit(ILOpcode.sizeof_, emit.NewToken(context.GetSignatureVariable(0, method: true))); 109codeStream.Emit(ILOpcode.conv_i); 110codeStream.Emit(ILOpcode.mul); 111codeStream.Emit(ILOpcode.ldarg_0); 112codeStream.Emit(ILOpcode.add); 113codeStream.Emit(ILOpcode.ret); 126codeStream.Emit(ILOpcode.ldarg_0); 127codeStream.Emit(ILOpcode.ldarg_1); 128codeStream.Emit(ILOpcode.sizeof_, emit.NewToken(context.GetSignatureVariable(0, method: true))); 129codeStream.Emit(ILOpcode.conv_i); 130codeStream.Emit(ILOpcode.mul); 131codeStream.Emit(ILOpcode.sub); 132codeStream.Emit(ILOpcode.ret); 149codeStream.Emit(write ? ILOpcode.stobj : ILOpcode.ldobj, 151codeStream.Emit(ILOpcode.ret); 167codeStream.Emit(ILOpcode.ldobj, token); 168codeStream.Emit(ILOpcode.stobj, token); 169codeStream.Emit(ILOpcode.ret); 186codeStream.Emit(ILOpcode.cpblk); 187codeStream.Emit(ILOpcode.ret); 204codeStream.Emit(ILOpcode.initblk); 205codeStream.Emit(ILOpcode.ret); 220codeStream.Emit(ILOpcode.unbox, emit.NewToken(context.GetSignatureVariable(0, method: true))); 221codeStream.Emit(ILOpcode.ret);
parent\parent\Common\TypeSystem\Interop\IL\Marshaller.cs (100)
734stream.Emit(ILOpcode.conv_i); 1048marshallingCodeStream.Emit(ILOpcode.conv_u); 1152codeStream.Emit(ILOpcode.ldlen); 1153codeStream.Emit(ILOpcode.conv_i4); 1211codeStream.Emit(ILOpcode.add); 1213codeStream.Emit(ILOpcode.conv_ovf_i4); 1230codeStream.Emit(ILOpcode.conv_u); 1235codeStream.Emit(ILOpcode.brfalse, lNullArray); 1244codeStream.Emit(ILOpcode.sizeof_, emitter.NewToken(nativeElementType)); 1246codeStream.Emit(ILOpcode.mul_ovf); 1254codeStream.Emit(ILOpcode.dup); 1257codeStream.Emit(ILOpcode.call, emitter.NewToken( 1259codeStream.Emit(ILOpcode.dup); 1264codeStream.Emit(ILOpcode.initblk); 1268codeStream.Emit(ILOpcode.call, emitter.NewToken( 1292codeStream.Emit(ILOpcode.brfalse, lNullArray); 1299codeStream.Emit(ILOpcode.sizeof_, emitter.NewToken(nativeElementType)); 1308codeStream.Emit(ILOpcode.br, lRangeCheck); 1323codeStream.Emit(ILOpcode.add); 1327codeStream.Emit(ILOpcode.add); 1334codeStream.Emit(ILOpcode.blt, lLoopHeader); 1356codeStream.Emit(ILOpcode.brfalse, lNullArray); 1366codeStream.Emit(ILOpcode.newarr, emitter.NewToken(ManagedElementType)); 1370codeStream.Emit(ILOpcode.sizeof_, emitter.NewToken(nativeElementType)); 1381codeStream.Emit(ILOpcode.br, lRangeCheck); 1401codeStream.Emit(ILOpcode.add); 1405codeStream.Emit(ILOpcode.add); 1412codeStream.Emit(ILOpcode.blt, lLoopHeader); 1422codeStream.Emit(ILOpcode.newarr, emitter.NewToken(elementType)); 1435codeStream.Emit(ILOpcode.brfalse, lNullArray); 1453codeStream.Emit(ILOpcode.sizeof_, emitter.NewToken(nativeElementType)); 1470codeStream.Emit(ILOpcode.br, lRangeCheck); 1480codeStream.Emit(ILOpcode.add); 1484codeStream.Emit(ILOpcode.add); 1491codeStream.Emit(ILOpcode.blt, lLoopHeader); 1495codeStream.Emit(ILOpcode.call, emitter.NewToken(InteropTypes.GetMarshal(Context).GetKnownMethod("FreeCoTaskMem"u8, null))); 1512codeStream.Emit(ILOpcode.brfalse, lNullArray); 1520codeStream.Emit(ILOpcode.call, emitter.NewToken(getArrayDataReferenceMethod)); 1522codeStream.Emit(ILOpcode.sizeof_, emitter.NewToken(ManagedElementType)); 1523codeStream.Emit(ILOpcode.mul_ovf); 1524codeStream.Emit(ILOpcode.cpblk); 1533codeStream.Emit(ILOpcode.call, emitter.NewToken(getArrayDataReferenceMethod)); 1539codeStream.Emit(ILOpcode.conv_i); 1547codeStream.Emit(ILOpcode.conv_u); 1582codeStream.Emit(ILOpcode.ceq); 1584codeStream.Emit(ILOpcode.ceq); 1588codeStream.Emit(ILOpcode.brfalse, pLoadFalseLabel); 1590codeStream.Emit(ILOpcode.br, pDoneLabel); 1605codeStream.Emit(ILOpcode.ceq); 1607codeStream.Emit(ILOpcode.ceq); 1636codeStream.Emit(ILOpcode.call, emitter.NewToken( 1657codeStream.Emit(ILOpcode.brtrue, lNonNullString); 1663codeStream.Emit(ILOpcode.ldc_i4_0); 1664codeStream.Emit(ILOpcode.conv_u); 1665codeStream.Emit(ILOpcode.br, lCommonExit); 1673codeStream.Emit(ILOpcode.call, emitter.NewToken( 1678codeStream.Emit(ILOpcode.conv_u); 1692codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 1708codeStream.Emit(ILOpcode.newobj, emitter.NewToken(charPtrConstructor)); 1721codeStream.Emit(ILOpcode.brfalse, lNullCheck); 1724codeStream.Emit(ILOpcode.call, emitter.NewToken( 1745codeStream.Emit(ILOpcode.call, emitter.NewToken( 1759codeStream.Emit(PInvokeFlags.BestFitMapping ? ILOpcode.ldc_i4_1 : ILOpcode.ldc_i4_0); 1760codeStream.Emit(PInvokeFlags.ThrowOnUnmappableChar ? ILOpcode.ldc_i4_1 : ILOpcode.ldc_i4_0); 1762codeStream.Emit(ILOpcode.call, emitter.NewToken(stringToAnsi)); 1772codeStream.Emit(ILOpcode.call, emitter.NewToken(ansiToString)); 1783codeStream.Emit(ILOpcode.brfalse, lNullCheck); 1786codeStream.Emit(ILOpcode.call, emitter.NewToken( 1809codeStream.Emit(ILOpcode.call, emitter.NewToken( 1829codeStream.Emit(ILOpcode.localloc); 1843codeStream.Emit(ILOpcode.newobj, emitter.NewToken(spanOfByte.GetKnownMethod(".ctor"u8, 1846codeStream.Emit(ILOpcode.call, emitter.NewToken(marshallerIn.GetKnownMethod("FromManaged"u8, null))); 1849codeStream.Emit(ILOpcode.call, emitter.NewToken(marshallerIn.GetKnownMethod("ToUnmanaged"u8, null))); 1854codeStream.Emit(ILOpcode.call, emitter.NewToken(Marshaller.GetKnownMethod("ConvertToUnmanaged"u8, null))); 1865codeStream.Emit(ILOpcode.call, emitter.NewToken(Marshaller.GetKnownMethod("ConvertToManaged"u8, null))); 1876codeStream.Emit(ILOpcode.call, emitter.NewToken( 1882codeStream.Emit(ILOpcode.call, emitter.NewToken( 1904codeStream.Emit(ILOpcode.newobj, _ilCodeStreams.Emitter.NewToken(ctor)); 1922returnValueMarshallingCodeStream.Emit(ILOpcode.call, emitter.NewToken( 1950marshallingCodeStream.Emit(ILOpcode.call, emitter.NewToken( 1956marshallingCodeStream.Emit(ILOpcode.call, emitter.NewToken( 1963cleanupCodeStream.Emit(ILOpcode.brfalse, lNotAddrefed); 1965cleanupCodeStream.Emit(ILOpcode.call, emitter.NewToken( 1994cleanupCodeStream.Emit(ILOpcode.beq, lSkipPropagation); 1999cleanupCodeStream.Emit(ILOpcode.call, emitter.NewToken( 2056codeStream.Emit(ILOpcode.dup); 2057codeStream.Emit(ILOpcode.brfalse, lNullPointer); 2059codeStream.Emit(ILOpcode.call, _ilCodeStreams.Emitter.NewToken( 2065codeStream.Emit(ILOpcode.br, lDone); 2068codeStream.Emit(ILOpcode.pop); 2070codeStream.Emit(ILOpcode.conv_i); 2082codeStream.Emit(ILOpcode.dup); 2083codeStream.Emit(ILOpcode.brfalse, lNullPointer); 2085codeStream.Emit(ILOpcode.call, _ilCodeStreams.Emitter.NewToken( 2091codeStream.Emit(ILOpcode.br, lDone); 2094codeStream.Emit(ILOpcode.pop); 2095codeStream.Emit(ILOpcode.ldnull); 2108codeStream.Emit(ILOpcode.call, _ilCodeStreams.Emitter.NewToken(InteropTypes.GetGC(Context).GetKnownMethod("KeepAlive"u8, null)));
src\runtime\src\coreclr\tools\Common\Compiler\GenericCycleDetection\GraphBuilder.cs (31)
352ILOpcode opcode = reader.ReadILOpcode(); 355case ILOpcode.sizeof_: 356case ILOpcode.newarr: 357case ILOpcode.initobj: 358case ILOpcode.stelem: 359case ILOpcode.ldelem: 360case ILOpcode.ldelema: 361case ILOpcode.box: 362case ILOpcode.unbox: 363case ILOpcode.unbox_any: 364case ILOpcode.cpobj: 365case ILOpcode.ldobj: 366case ILOpcode.castclass: 367case ILOpcode.isinst: 368case ILOpcode.stobj: 369case ILOpcode.refanyval: 370case ILOpcode.mkrefany: 371case ILOpcode.constrained: 384case ILOpcode.stsfld: 385case ILOpcode.ldsfld: 386case ILOpcode.ldsflda: 387case ILOpcode.stfld: 388case ILOpcode.ldfld: 389case ILOpcode.ldflda: 399case ILOpcode.call: 400case ILOpcode.callvirt: 401case ILOpcode.newobj: 402case ILOpcode.ldftn: 403case ILOpcode.ldvirtftn: 404case ILOpcode.jmp: 420case ILOpcode.ldtoken:
ILCompiler.RyuJit (51)
parent\ILCompiler.ReadyToRun\IBC\MIbcProfileParser.cs (27)
198ILOpcode opcode = ilReader.ReadILOpcode(); 201case ILOpcode.ldstr: 210case ILOpcode.ldtoken: 256case ILOpcode.pop: 295ILOpcode opcode = ilReader.ReadILOpcode(); 298case ILOpcode.ldstr: 310case ILOpcode.ret: 311case ILOpcode.pop: 378ILOpcode opcode = ilReader.ReadILOpcode(); 382case ILOpcode.ldtoken: 419case ILOpcode.ldc_r4: 438case ILOpcode.ldc_r8: 455case ILOpcode.ldc_i4_0: 459case ILOpcode.ldc_i4_1: 463case ILOpcode.ldc_i4_2: 467case ILOpcode.ldc_i4_3: 471case ILOpcode.ldc_i4_4: 475case ILOpcode.ldc_i4_5: 479case ILOpcode.ldc_i4_6: 483case ILOpcode.ldc_i4_7: 487case ILOpcode.ldc_i4_8: 491case ILOpcode.ldc_i4_m1: 495case ILOpcode.ldc_i4_s: 499case ILOpcode.ldc_i4: 504case ILOpcode.ldc_i8: 511case ILOpcode.ldstr: 546case ILOpcode.pop:
parent\parent\Common\TypeSystem\IL\HelperExtensions.cs (2)
66codeStream.Emit(ILOpcode.call, emitter.NewToken(method)); 67codeStream.Emit(ILOpcode.br, label);
parent\parent\Common\TypeSystem\IL\ILReader.cs (19)
92public ILOpcode ReadILOpcode() 94ILOpcode opcode = (ILOpcode)ReadILByte(); 95if (opcode == ILOpcode.prefix1) 97opcode = (ILOpcode)(0x100 + ReadILByte()); 103public readonly ILOpcode PeekILOpcode() 105ILOpcode opcode = (ILOpcode)_ilBytes[_currentOffset]; 106if (opcode == ILOpcode.prefix1) 110opcode = (ILOpcode)(0x100 + _ilBytes[_currentOffset + 1]); 124public void Skip(ILOpcode opcode) 129if (opcode != ILOpcode.switch_) 147public int ReadBranchDestination(ILOpcode currentOpcode) 149if ((currentOpcode >= ILOpcode.br_s && currentOpcode <= ILOpcode.blt_un_s) 150|| currentOpcode == ILOpcode.leave_s) 156Debug.Assert((currentOpcode >= ILOpcode.br && currentOpcode <= ILOpcode.blt_un) 157|| currentOpcode == ILOpcode.leave);
parent\parent\Common\TypeSystem\IL\Stubs\TypeSystemThrowingILEmitter.cs (3)
90codeStream.Emit(ILOpcode.ldstr, emitter.NewToken(arg)); 93codeStream.Emit(ILOpcode.call, emitter.NewToken(helper)); 97codeStream.Emit(ILOpcode.br, infinityLabel);
ILCompiler.TypeSystem (473)
parent\parent\Common\TypeSystem\IL\HelperExtensions.cs (2)
66codeStream.Emit(ILOpcode.call, emitter.NewToken(method)); 67codeStream.Emit(ILOpcode.br, label);
parent\parent\Common\TypeSystem\IL\ILDisassembler.cs (83)
277ILOpcode opCode = (ILOpcode)ReadILByte(); 278if (opCode == ILOpcode.prefix1) 280opCode = (ILOpcode)(0x100 + ReadILByte()); 293case ILOpcode.ldarg_s: 294case ILOpcode.ldarga_s: 295case ILOpcode.starg_s: 296case ILOpcode.ldloc_s: 297case ILOpcode.ldloca_s: 298case ILOpcode.stloc_s: 299case ILOpcode.ldc_i4_s: 304case ILOpcode.unaligned: 310case ILOpcode.ldarg: 311case ILOpcode.ldarga: 312case ILOpcode.starg: 313case ILOpcode.ldloc: 314case ILOpcode.ldloca: 315case ILOpcode.stloc: 320case ILOpcode.ldc_i4: 325case ILOpcode.ldc_r4: 330case ILOpcode.ldc_i8: 335case ILOpcode.ldc_r8: 340case ILOpcode.jmp: 341case ILOpcode.call: 342case ILOpcode.calli: 343case ILOpcode.callvirt: 344case ILOpcode.cpobj: 345case ILOpcode.ldobj: 346case ILOpcode.ldstr: 347case ILOpcode.newobj: 348case ILOpcode.castclass: 349case ILOpcode.isinst: 350case ILOpcode.unbox: 351case ILOpcode.ldfld: 352case ILOpcode.ldflda: 353case ILOpcode.stfld: 354case ILOpcode.ldsfld: 355case ILOpcode.ldsflda: 356case ILOpcode.stsfld: 357case ILOpcode.stobj: 358case ILOpcode.box: 359case ILOpcode.newarr: 360case ILOpcode.ldelema: 361case ILOpcode.ldelem: 362case ILOpcode.stelem: 363case ILOpcode.unbox_any: 364case ILOpcode.refanyval: 365case ILOpcode.mkrefany: 366case ILOpcode.ldtoken: 367case ILOpcode.ldftn: 368case ILOpcode.ldvirtftn: 369case ILOpcode.initobj: 370case ILOpcode.constrained: 371case ILOpcode.sizeof_: 376case ILOpcode.br_s: 377case ILOpcode.leave_s: 378case ILOpcode.brfalse_s: 379case ILOpcode.brtrue_s: 380case ILOpcode.beq_s: 381case ILOpcode.bge_s: 382case ILOpcode.bgt_s: 383case ILOpcode.ble_s: 384case ILOpcode.blt_s: 385case ILOpcode.bne_un_s: 386case ILOpcode.bge_un_s: 387case ILOpcode.bgt_un_s: 388case ILOpcode.ble_un_s: 389case ILOpcode.blt_un_s: 394case ILOpcode.br: 395case ILOpcode.leave: 396case ILOpcode.brfalse: 397case ILOpcode.brtrue: 398case ILOpcode.beq: 399case ILOpcode.bge: 400case ILOpcode.bgt: 401case ILOpcode.ble: 402case ILOpcode.blt: 403case ILOpcode.bne_un: 404case ILOpcode.bge_un: 405case ILOpcode.bgt_un: 406case ILOpcode.ble_un: 407case ILOpcode.blt_un: 412case ILOpcode.switch_:
parent\parent\Common\TypeSystem\IL\ILOpcodeHelper.cs (14)
18public static int GetSize(this ILOpcode opcode) 30public static bool IsValid(this ILOpcode opcode) 36public static bool IsBranch(this ILOpcode opcode) 38if (opcode >= ILOpcode.br && opcode <= ILOpcode.blt_un) 41if (opcode >= ILOpcode.br_s && opcode <= ILOpcode.blt_un_s) 44if (opcode == ILOpcode.leave_s) 47if (opcode == ILOpcode.leave) 53public static bool IsUnconditionalBranch(this ILOpcode opcode) 55return opcode == ILOpcode.br || opcode == ILOpcode.br_s || opcode == ILOpcode.leave || opcode == ILOpcode.leave_s;
parent\parent\Common\TypeSystem\IL\ILReader.cs (19)
92public ILOpcode ReadILOpcode() 94ILOpcode opcode = (ILOpcode)ReadILByte(); 95if (opcode == ILOpcode.prefix1) 97opcode = (ILOpcode)(0x100 + ReadILByte()); 103public readonly ILOpcode PeekILOpcode() 105ILOpcode opcode = (ILOpcode)_ilBytes[_currentOffset]; 106if (opcode == ILOpcode.prefix1) 110opcode = (ILOpcode)(0x100 + _ilBytes[_currentOffset + 1]); 124public void Skip(ILOpcode opcode) 129if (opcode != ILOpcode.switch_) 147public int ReadBranchDestination(ILOpcode currentOpcode) 149if ((currentOpcode >= ILOpcode.br_s && currentOpcode <= ILOpcode.blt_un_s) 150|| currentOpcode == ILOpcode.leave_s) 156Debug.Assert((currentOpcode >= ILOpcode.br && currentOpcode <= ILOpcode.blt_un) 157|| currentOpcode == ILOpcode.leave);
parent\parent\Common\TypeSystem\IL\ILStackHelper.cs (230)
56ILOpcode opcode = ilReader.ReadILOpcode(); 78case ILOpcode.arglist: 79case ILOpcode.dup: 80case ILOpcode.ldc_i4: 81case ILOpcode.ldc_i4_0: 82case ILOpcode.ldc_i4_1: 83case ILOpcode.ldc_i4_2: 84case ILOpcode.ldc_i4_3: 85case ILOpcode.ldc_i4_4: 86case ILOpcode.ldc_i4_5: 87case ILOpcode.ldc_i4_6: 88case ILOpcode.ldc_i4_7: 89case ILOpcode.ldc_i4_8: 90case ILOpcode.ldc_i4_m1: 91case ILOpcode.ldc_i4_s: 92case ILOpcode.ldc_i8: 93case ILOpcode.ldc_r4: 94case ILOpcode.ldc_r8: 95case ILOpcode.ldftn: 96case ILOpcode.ldnull: 97case ILOpcode.ldsfld: 98case ILOpcode.ldsflda: 99case ILOpcode.ldstr: 100case ILOpcode.ldtoken: 101case ILOpcode.ldarg: 102case ILOpcode.ldarg_0: 103case ILOpcode.ldarg_1: 104case ILOpcode.ldarg_2: 105case ILOpcode.ldarg_3: 106case ILOpcode.ldarg_s: 107case ILOpcode.ldarga: 108case ILOpcode.ldarga_s: 109case ILOpcode.ldloc: 110case ILOpcode.ldloc_0: 111case ILOpcode.ldloc_1: 112case ILOpcode.ldloc_2: 113case ILOpcode.ldloc_3: 114case ILOpcode.ldloc_s: 115case ILOpcode.ldloca: 116case ILOpcode.ldloca_s: 117case ILOpcode.sizeof_: 121case ILOpcode.add: 122case ILOpcode.add_ovf: 123case ILOpcode.add_ovf_un: 124case ILOpcode.and: 125case ILOpcode.ceq: 126case ILOpcode.cgt: 127case ILOpcode.cgt_un: 128case ILOpcode.clt: 129case ILOpcode.clt_un: 130case ILOpcode.div: 131case ILOpcode.div_un: 132case ILOpcode.initobj: 133case ILOpcode.ldelem: 134case ILOpcode.ldelem_i: 135case ILOpcode.ldelem_i1: 136case ILOpcode.ldelem_i2: 137case ILOpcode.ldelem_i4: 138case ILOpcode.ldelem_i8: 139case ILOpcode.ldelem_r4: 140case ILOpcode.ldelem_r8: 141case ILOpcode.ldelem_ref: 142case ILOpcode.ldelem_u1: 143case ILOpcode.ldelem_u2: 144case ILOpcode.ldelem_u4: 145case ILOpcode.ldelema: 146case ILOpcode.mkrefany: 147case ILOpcode.mul: 148case ILOpcode.mul_ovf: 149case ILOpcode.mul_ovf_un: 150case ILOpcode.or: 151case ILOpcode.pop: 152case ILOpcode.rem: 153case ILOpcode.rem_un: 154case ILOpcode.shl: 155case ILOpcode.shr: 156case ILOpcode.shr_un: 157case ILOpcode.stsfld: 158case ILOpcode.sub: 159case ILOpcode.sub_ovf: 160case ILOpcode.sub_ovf_un: 161case ILOpcode.xor: 162case ILOpcode.starg: 163case ILOpcode.starg_s: 164case ILOpcode.stloc: 165case ILOpcode.stloc_0: 166case ILOpcode.stloc_1: 167case ILOpcode.stloc_2: 168case ILOpcode.stloc_3: 169case ILOpcode.stloc_s: 170case ILOpcode.switch_: 175case ILOpcode.throw_: 180case ILOpcode.br: 181case ILOpcode.leave: 182case ILOpcode.brfalse: 183case ILOpcode.brtrue: 184case ILOpcode.beq: 185case ILOpcode.bge: 186case ILOpcode.bge_un: 187case ILOpcode.bgt: 188case ILOpcode.bgt_un: 189case ILOpcode.ble: 190case ILOpcode.ble_un: 191case ILOpcode.blt: 192case ILOpcode.blt_un: 193case ILOpcode.bne_un: 194case ILOpcode.br_s: 195case ILOpcode.leave_s: 196case ILOpcode.brfalse_s: 197case ILOpcode.brtrue_s: 198case ILOpcode.beq_s: 199case ILOpcode.bge_s: 200case ILOpcode.bge_un_s: 201case ILOpcode.bgt_s: 202case ILOpcode.bgt_un_s: 203case ILOpcode.ble_s: 204case ILOpcode.ble_un_s: 205case ILOpcode.blt_s: 206case ILOpcode.blt_un_s: 207case ILOpcode.bne_un_s: 214if (opcode is ILOpcode.br or ILOpcode.br_s or ILOpcode.leave or ILOpcode.leave_s) 219else if (opcode is ILOpcode.brfalse or ILOpcode.brfalse_s or ILOpcode.brtrue_s or ILOpcode.brtrue) 246case ILOpcode.call: 247case ILOpcode.calli: 248case ILOpcode.callvirt: 249case ILOpcode.newobj: 257if (opcode == ILOpcode.newobj) 263if (opcode == ILOpcode.calli) 276case ILOpcode.ret: 288case ILOpcode.cpobj: 289case ILOpcode.stfld: 290case ILOpcode.stind_i: 291case ILOpcode.stind_i1: 292case ILOpcode.stind_i2: 293case ILOpcode.stind_i4: 294case ILOpcode.stind_i8: 295case ILOpcode.stind_r4: 296case ILOpcode.stind_r8: 297case ILOpcode.stind_ref: 298case ILOpcode.stobj: 303case ILOpcode.cpblk: 304case ILOpcode.initblk: 305case ILOpcode.stelem: 306case ILOpcode.stelem_i: 307case ILOpcode.stelem_i1: 308case ILOpcode.stelem_i2: 309case ILOpcode.stelem_i4: 310case ILOpcode.stelem_i8: 311case ILOpcode.stelem_r4: 312case ILOpcode.stelem_r8: 313case ILOpcode.stelem_ref: 318case ILOpcode.break_: 319case ILOpcode.constrained: 320case ILOpcode.no: 321case ILOpcode.nop: 322case ILOpcode.readonly_: 323case ILOpcode.tail: 324case ILOpcode.unaligned: 325case ILOpcode.volatile_: 328case ILOpcode.endfilter: 333case ILOpcode.jmp: 334case ILOpcode.rethrow: 335case ILOpcode.endfinally: 339case ILOpcode.box: 340case ILOpcode.castclass: 341case ILOpcode.ckfinite: 342case ILOpcode.conv_i: 343case ILOpcode.conv_i1: 344case ILOpcode.conv_i2: 345case ILOpcode.conv_i4: 346case ILOpcode.conv_i8: 347case ILOpcode.conv_ovf_i: 348case ILOpcode.conv_ovf_i_un: 349case ILOpcode.conv_ovf_i1: 350case ILOpcode.conv_ovf_i1_un: 351case ILOpcode.conv_ovf_i2: 352case ILOpcode.conv_ovf_i2_un: 353case ILOpcode.conv_ovf_i4: 354case ILOpcode.conv_ovf_i4_un: 355case ILOpcode.conv_ovf_i8: 356case ILOpcode.conv_ovf_i8_un: 357case ILOpcode.conv_ovf_u: 358case ILOpcode.conv_ovf_u_un: 359case ILOpcode.conv_ovf_u1: 360case ILOpcode.conv_ovf_u1_un: 361case ILOpcode.conv_ovf_u2: 362case ILOpcode.conv_ovf_u2_un: 363case ILOpcode.conv_ovf_u4: 364case ILOpcode.conv_ovf_u4_un: 365case ILOpcode.conv_ovf_u8: 366case ILOpcode.conv_ovf_u8_un: 367case ILOpcode.conv_r_un: 368case ILOpcode.conv_r4: 369case ILOpcode.conv_r8: 370case ILOpcode.conv_u: 371case ILOpcode.conv_u1: 372case ILOpcode.conv_u2: 373case ILOpcode.conv_u4: 374case ILOpcode.conv_u8: 375case ILOpcode.isinst: 376case ILOpcode.ldfld: 377case ILOpcode.ldflda: 378case ILOpcode.ldind_i: 379case ILOpcode.ldind_i1: 380case ILOpcode.ldind_i2: 381case ILOpcode.ldind_i4: 382case ILOpcode.ldind_i8: 383case ILOpcode.ldind_r4: 384case ILOpcode.ldind_r8: 385case ILOpcode.ldind_ref: 386case ILOpcode.ldind_u1: 387case ILOpcode.ldind_u2: 388case ILOpcode.ldind_u4: 389case ILOpcode.ldlen: 390case ILOpcode.ldobj: 391case ILOpcode.ldvirtftn: 392case ILOpcode.localloc: 393case ILOpcode.neg: 394case ILOpcode.newarr: 395case ILOpcode.not: 396case ILOpcode.refanytype: 397case ILOpcode.refanyval: 398case ILOpcode.unbox: 399case ILOpcode.unbox_any:
parent\parent\Common\TypeSystem\IL\ILTokenReplacer.cs (34)
19ILOpcode opcode = ilReader.ReadILOpcode(); 42private static bool ILOpcodeHasToken(ILOpcode opcode) 46case ILOpcode.jmp: 47case ILOpcode.call: 48case ILOpcode.calli: 49case ILOpcode.callvirt: 50case ILOpcode.cpobj: 51case ILOpcode.ldobj: 52case ILOpcode.ldstr: 53case ILOpcode.newobj: 54case ILOpcode.castclass: 55case ILOpcode.isinst: 56case ILOpcode.unbox: 57case ILOpcode.ldfld: 58case ILOpcode.ldflda: 59case ILOpcode.stfld: 60case ILOpcode.ldsfld: 61case ILOpcode.ldsflda: 62case ILOpcode.stsfld: 63case ILOpcode.stobj: 64case ILOpcode.box: 65case ILOpcode.newarr: 66case ILOpcode.ldelema: 67case ILOpcode.ldelem: 68case ILOpcode.stelem: 69case ILOpcode.unbox_any: 70case ILOpcode.refanyval: 71case ILOpcode.mkrefany: 72case ILOpcode.ldtoken: 73case ILOpcode.ldftn: 74case ILOpcode.ldvirtftn: 75case ILOpcode.initobj: 76case ILOpcode.constrained: 77case ILOpcode.sizeof_:
parent\parent\Common\TypeSystem\IL\Stubs\ILEmitter.cs (78)
82public void Emit(ILOpcode opcode) 85EmitByte((byte)ILOpcode.prefix1); 89public void Emit(ILOpcode opcode, ILToken token) 99Emit((ILOpcode)(ILOpcode.ldc_i4_0 + value)); 103Emit(ILOpcode.ldc_i4_s); 108Emit(ILOpcode.ldc_i4); 118Emit((ILOpcode)(ILOpcode.ldarg_0 + index)); 122Emit(ILOpcode.ldarg); 132Emit(ILOpcode.ldarga_s); 137Emit(ILOpcode.ldarga); 148Emit((ILOpcode)(ILOpcode.ldloc_0 + index)); 152Emit(ILOpcode.ldloc_s); 157Emit(ILOpcode.ldloc); 168Emit(ILOpcode.ldloca_s); 173Emit(ILOpcode.ldloca); 184Emit((ILOpcode)(ILOpcode.stloc_0 + index)); 188Emit(ILOpcode.stloc_s); 193Emit(ILOpcode.stloc); 198public void Emit(ILOpcode opcode, ILCodeLabel label) 200Debug.Assert(opcode == ILOpcode.br || opcode == ILOpcode.brfalse || 201opcode == ILOpcode.brtrue || opcode == ILOpcode.beq || 202opcode == ILOpcode.bge || opcode == ILOpcode.bgt || 203opcode == ILOpcode.ble || opcode == ILOpcode.blt || 204opcode == ILOpcode.bne_un || opcode == ILOpcode.bge_un || 205opcode == ILOpcode.bgt_un || opcode == ILOpcode.ble_un || 206opcode == ILOpcode.blt_un || opcode == ILOpcode.leave); 215Emit(ILOpcode.switch_); 229Emit(ILOpcode.unaligned); 238Emit(ILOpcode.ldind_i1); 242Emit(ILOpcode.ldind_u1); 245Emit(ILOpcode.ldind_i2); 249Emit(ILOpcode.ldind_u2); 252Emit(ILOpcode.ldind_u4); 255Emit(ILOpcode.ldind_i4); 259Emit(ILOpcode.ldind_i8); 262Emit(ILOpcode.ldind_r4); 265Emit(ILOpcode.ldind_r8); 271Emit(ILOpcode.ldind_i); 277Emit(ILOpcode.ldind_ref); 283Emit(ILOpcode.ldobj, _emitter.NewToken(type)); 297Emit(ILOpcode.stind_i1); 302Emit(ILOpcode.stind_i2); 306Emit(ILOpcode.stind_i4); 310Emit(ILOpcode.stind_i8); 313Emit(ILOpcode.stind_r4); 316Emit(ILOpcode.stind_r8); 322Emit(ILOpcode.stind_i); 328Emit(ILOpcode.stind_ref); 332Emit(ILOpcode.stobj, _emitter.NewToken(type)); 347Emit(ILOpcode.stelem_i1); 352Emit(ILOpcode.stelem_i2); 356Emit(ILOpcode.stelem_i4); 360Emit(ILOpcode.stelem_i8); 363Emit(ILOpcode.stelem_r4); 366Emit(ILOpcode.stelem_r8); 372Emit(ILOpcode.stelem_i); 378Emit(ILOpcode.stelem_ref); 382Emit(ILOpcode.stelem, _emitter.NewToken(type)); 397Emit(ILOpcode.ldelem_i1); 402Emit(ILOpcode.ldelem_i2); 406Emit(ILOpcode.ldelem_i4); 410Emit(ILOpcode.ldelem_i8); 413Emit(ILOpcode.ldelem_r4); 416Emit(ILOpcode.ldelem_r8); 422Emit(ILOpcode.ldelem_i); 428Emit(ILOpcode.ldelem_ref); 432Emit(ILOpcode.ldelem, _emitter.NewToken(type));
parent\parent\Common\TypeSystem\IL\UnsafeAccessors.cs (13)
736codeStream.Emit(ILOpcode.unbox_any, emit.NewToken(classType)); 745codeStream.Emit(ILOpcode.unbox_any, emit.NewToken(targetType)); 767codeStream.Emit(ILOpcode.newobj, emit.NewToken(context.TargetMethod)); 771codeStream.Emit(ILOpcode.callvirt, emit.NewToken(context.TargetMethod)); 775codeStream.Emit(ILOpcode.call, emit.NewToken(context.TargetMethod)); 779codeStream.Emit(ILOpcode.ldflda, emit.NewToken(context.TargetField)); 783codeStream.Emit(ILOpcode.ldsflda, emit.NewToken(context.TargetField)); 804codeStream.Emit(ILOpcode.ret); 852codeStream.Emit(ILOpcode.ldstr, emit.NewToken(name)); 856codeStream.Emit(ILOpcode.call, emit.NewToken(thrower)); 857codeStream.Emit(ILOpcode.br, label); 870codeStream.Emit(ILOpcode.call, emit.NewToken(thrower)); 871codeStream.Emit(ILOpcode.br, label);