1 write to _builder
Microsoft.CodeAnalysis.CSharp (1)
CodeGen\CodeGenerator.cs (1)
101_builder = builder;
469 references to _builder
Microsoft.CodeAnalysis.CSharp (469)
CodeGen\CodeGenerator.cs (24)
179result = _builder.LocalSlotManager.DeclareLocal( 227asyncCatchHandlerOffset = _diagnostics.HasAnyErrors() ? -1 : _builder.GetILOffsetFromMarker(_asyncCatchHandlerOffset); 246int yieldOffset = _builder.GetILOffsetFromMarker(yieldPoints[i]); 247int resumeOffset = _builder.GetILOffsetFromMarker(resumePoints[i]); 275_builder.DefineInitialHiddenSequencePoint(); 292_builder.Realize(); 309_builder.MarkLabel(s_returnLabel); 328_builder.EmitLocalLoad(LazyReturnTemp); 329_builder.EmitRet(false); 333_builder.EmitRet(true); 341_builder.EmitToken(symbol, syntaxNode, _diagnostics.DiagnosticBag); 352_builder.EmitToken(methodRef, syntaxNode, _diagnostics.DiagnosticBag, encodeAsRawDefinitionToken ? Cci.MetadataWriter.RawTokenEncoding.RowId : 0); 358_builder.EmitToken(fieldRef, syntaxNode, _diagnostics.DiagnosticBag); 363_builder.EmitToken(_module.Translate(symbol).Signature, syntaxNode, _diagnostics.DiagnosticBag); 392_builder.EmitOpCode(ILOpCode.Nop); 415_builder.EmitOpCode(ILOpCode.Nop); 424ArrayBuilder<RawSequencePoint> sequencePoints = _builder.SeqPointsOpt; 463_builder.EmitConstantValue(ConstantValue.Create(true)); 464_builder.EmitBranch(ILOpCode.Brtrue, label); 466_builder.EmitOpCode(ILOpCode.Nop); 467_builder.MarkLabel(label); 481_builder.SetInitialDebugDocument(_methodBodySyntaxOpt.SyntaxTree); 488_builder.DefineHiddenSequencePoint(); 501_builder.DefineSequencePoint(syntaxTree, span);
CodeGen\EmitAddress.cs (27)
78_builder.EmitLoadArgumentOpcode(0); 82_builder.EmitLoadArgumentAddrOpcode(0); 141_builder.EmitLocalAddress(temp); // ldloca temp 142_builder.EmitOpCode(ILOpCode.Dup); // dup 143_builder.EmitOpCode(ILOpCode.Initobj); // initobj <type> 220_builder.EmitBranch(ILOpCode.Br, doneLabel); 223_builder.AdjustStack(-1); 225_builder.MarkLabel(consequenceLabel); 228_builder.MarkLabel(doneLabel); 243_builder.EmitBranch(ILOpCode.Brtrue, whenValueTypeLabel); 247_builder.EmitBranch(ILOpCode.Br, doneLabel); 248_builder.AdjustStack(-1); 250_builder.MarkLabel(whenValueTypeLabel); 254_builder.MarkLabel(doneLabel); 284_builder.EmitLocalAddress(GetLocal(localAccess)); 300_builder.EmitOpCode(ILOpCode.Dup); 314_builder.EmitOpCode(ILOpCode.Refanyval); 329_builder.EmitLocalStore(value); 330_builder.EmitLocalAddress(value); 397_builder.EmitOpCode(ILOpCode.Readonly); 402_builder.EmitOpCode(ILOpCode.Ldelema); 408_builder.EmitArrayElementAddress(_module.Translate((ArrayTypeSymbol)arrayAccess.Expression.Type), 455_builder.EmitOpCode(ILOpCode.Ldsflda); 479_builder.EmitLoadArgumentAddrOpcode(slot); 483_builder.EmitLoadArgumentOpcode(slot); 555_builder.EmitOpCode(field.RefKind == RefKind.None ? ILOpCode.Ldflda : ILOpCode.Ldfld); 578_builder.EmitOpCode(ILOpCode.Ldflda);
CodeGen\EmitArrayInitializer.cs (31)
57_builder.EmitArrayBlockInitializer(data, inits.Syntax, _diagnostics.DiagnosticBag); 89_builder.EmitOpCode(ILOpCode.Dup); 90_builder.EmitIntConstant(i); 192_builder.EmitOpCode(ILOpCode.Dup); 199_builder.EmitIntConstant(row.Index); 203_builder.EmitIntConstant(i); 539_builder.EmitOpCode(ILOpCode.Initobj); 572var field = _builder.module.GetFieldForData(data, alignment: 1, wrappedExpression.Syntax, _diagnostics.DiagnosticBag); 573_builder.EmitOpCode(ILOpCode.Ldsflda); 574_builder.EmitToken(field, wrappedExpression.Syntax, _diagnostics.DiagnosticBag); 576_builder.EmitIntConstant(lengthForConstructor); 581_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: -3); 587_builder.EmitOpCode(ILOpCode.Newobj, stackAdjustment: -1); 633var field = _builder.module.GetFieldForData(data, alignment: (ushort)specialElementType.SizeInBytes(), wrappedExpression.Syntax, _diagnostics.DiagnosticBag); 634_builder.EmitOpCode(ILOpCode.Ldtoken); 635_builder.EmitToken(field, wrappedExpression.Syntax, _diagnostics.DiagnosticBag); 636_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); 665var cachingField = _builder.module.GetArrayCachingFieldForData(data, _module.Translate(arrayType), wrappedExpression.Syntax, _diagnostics.DiagnosticBag); 670_builder.EmitOpCode(ILOpCode.Ldsfld); 671_builder.EmitToken(cachingField, wrappedExpression.Syntax, _diagnostics.DiagnosticBag); 672_builder.EmitOpCode(ILOpCode.Dup); 673_builder.EmitBranch(ILOpCode.Brtrue, arrayNotNullLabel); 678_builder.EmitOpCode(ILOpCode.Pop); 679_builder.EmitIntConstant(elementCount); 680_builder.EmitOpCode(ILOpCode.Newarr); 682_builder.EmitArrayBlockInitializer(data, wrappedExpression.Syntax, _diagnostics.DiagnosticBag); 683_builder.EmitOpCode(ILOpCode.Dup); 684_builder.EmitOpCode(ILOpCode.Stsfld); 685_builder.EmitToken(cachingField, wrappedExpression.Syntax, _diagnostics.DiagnosticBag); 689_builder.MarkLabel(arrayNotNullLabel); 690_builder.EmitOpCode(ILOpCode.Newobj, 0);
CodeGen\EmitConversion.cs (16)
48_builder.EmitIntConstant(0); 49_builder.EmitOpCode(ILOpCode.Conv_u); 85_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); 164_builder.EmitNumericConversion(fromPredefTypeKind, toPredefTypeKind, conversion.Checked); 170_builder.EmitOpCode(ILOpCode.Conv_u); 221_builder.EmitNumericConversion(fromPredefTypeKind, toPredefTypeKind, conversion.Checked); 241_builder.EmitOpCode(ILOpCode.Unbox_any); 273_builder.EmitOpCode(ILOpCode.Castclass); 278_builder.EmitOpCode(ILOpCode.Unbox_any); 307_builder.EmitNumericConversion(fromPredefTypeKind, toPredefTypeKind, conversion.Checked); 326_builder.EmitNullConstant(); 335_builder.EmitOpCode(ILOpCode.Constrained); 356_builder.EmitOpCode(ILOpCode.Dup); 357_builder.EmitOpCode(ILOpCode.Ldvirtftn); 364_builder.EmitOpCode(ILOpCode.Ldftn); 370_builder.EmitOpCode(ILOpCode.Newobj, -1); // pop 2 args and push delegate object
CodeGen\EmitExpression.cs (181)
175_builder.EmitOpCode(ILOpCode.Ldarg_0); 374_builder.EmitBranch(ILOpCode.Brtrue, whenValueTypeLabel); 377_builder.EmitBranch(ILOpCode.Br, doneLabel); 381_builder.AdjustStack(-1); 384_builder.MarkLabel(whenValueTypeLabel); 387_builder.MarkLabel(doneLabel); 458_builder.EmitBranch(ILOpCode.Brtrue, whenNotNullLabel); 462_builder.EmitLocalStore(cloneTemp); 463_builder.EmitLocalAddress(cloneTemp); 464_builder.EmitLocalLoad(cloneTemp); 475_builder.EmitOpCode(ILOpCode.Dup); 487_builder.EmitOpCode(ILOpCode.Dup); 508_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); 512_builder.EmitBranch(ILOpCode.Brtrue, whenNotNullLabel); 524_builder.EmitOpCode(ILOpCode.Pop); 537_builder.EmitBranch(ILOpCode.Br, doneLabel); 545_builder.AdjustStack(+1); 553_builder.AdjustStack(-1); 556_builder.MarkLabel(whenNotNullLabel); 569_builder.MarkLabel(doneLabel); 667_builder.EmitOpCode(ILOpCode.Mkrefany); 679_builder.EmitOpCode(ILOpCode.Refanytype); 680_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); 689_builder.EmitOpCode(ILOpCode.Arglist); 746_builder.EmitOpCode(ILOpCode.Conv_u); 770_builder.EmitOpCode(ILOpCode.Dup); 775_builder.EmitOpCode(ILOpCode.Dup); 797_builder.EmitOpCode(ILOpCode.Ldarg_0); 862_builder.OpenLocalScope(); 877_builder.CloseLocalScope(); 896_builder.OpenLocalScope(); 917_builder.CloseLocalScope(); 997_builder.EmitOpCode(ILOpCode.Ldelem_i1); 1002_builder.EmitOpCode(ILOpCode.Ldelem_u1); 1006_builder.EmitOpCode(ILOpCode.Ldelem_i2); 1011_builder.EmitOpCode(ILOpCode.Ldelem_u2); 1015_builder.EmitOpCode(ILOpCode.Ldelem_i4); 1019_builder.EmitOpCode(ILOpCode.Ldelem_u4); 1024_builder.EmitOpCode(ILOpCode.Ldelem_i8); 1031_builder.EmitOpCode(ILOpCode.Ldelem_i); 1035_builder.EmitOpCode(ILOpCode.Ldelem_r4); 1039_builder.EmitOpCode(ILOpCode.Ldelem_r8); 1045_builder.EmitOpCode(ILOpCode.Ldelem_ref); 1051_builder.EmitOpCode(ILOpCode.Ldelem); 1059_builder.EmitOpCode(ILOpCode.Readonly); 1062_builder.EmitOpCode(ILOpCode.Ldelema); 1072_builder.EmitArrayElementLoad(_module.Translate((ArrayTypeSymbol)arrayAccess.Expression.Type), arrayAccess.Expression.Syntax, _diagnostics.DiagnosticBag); 1122_builder.EmitOpCode(ILOpCode.Volatile); 1124_builder.EmitOpCode(ILOpCode.Ldsfld); 1148_builder.EmitOpCode(ILOpCode.Volatile); 1151_builder.EmitOpCode(ILOpCode.Ldfld); 1197_builder.EmitOpCode(ILOpCode.Unbox); 1211_builder.EmitOpCode(ILOpCode.Ldflda); 1363_builder.EmitLocalLoad(definition); 1382_builder.EmitLoadArgumentOpcode(slot); 1402_builder.EmitOpCode(ILOpCode.Ldind_i1); 1407_builder.EmitOpCode(ILOpCode.Ldind_u1); 1411_builder.EmitOpCode(ILOpCode.Ldind_i2); 1416_builder.EmitOpCode(ILOpCode.Ldind_u2); 1420_builder.EmitOpCode(ILOpCode.Ldind_i4); 1424_builder.EmitOpCode(ILOpCode.Ldind_u4); 1429_builder.EmitOpCode(ILOpCode.Ldind_i8); 1436_builder.EmitOpCode(ILOpCode.Ldind_i); 1440_builder.EmitOpCode(ILOpCode.Ldind_r4); 1444_builder.EmitOpCode(ILOpCode.Ldind_r8); 1450_builder.EmitOpCode(ILOpCode.Ldind_ref); 1454_builder.EmitOpCode(ILOpCode.Ldobj); 1609_builder.EmitOpCode(ILOpCode.Initobj); // initobj <MyStruct> 1633_builder.EmitOpCode(ILOpCode.Constrained); 1637_builder.EmitOpCode(ILOpCode.Call, stackBehavior); 1779_builder.EmitOpCode(ILOpCode.Call, stackBehavior); 1783_builder.EmitOpCode(ILOpCode.Callvirt, stackBehavior); 1787_builder.EmitOpCode(ILOpCode.Constrained); 1789_builder.EmitOpCode(ILOpCode.Callvirt, stackBehavior); 1844_builder.EmitBranch(ILOpCode.Brtrue, whenNotNullLabel); 1851_builder.EmitLocalStore(tempOpt); 1852_builder.EmitLocalAddress(tempOpt); 1856_builder.MarkLabel(whenNotNullLabel); 2107_builder.EmitOpCode(ILOpCode.Conv_ovf_i); 2111_builder.EmitOpCode(ILOpCode.Conv_ovf_i_un); 2130_builder.EmitOpCode(ILOpCode.Ldlen); 2144_builder.EmitNumericConversion(typeFrom, typeTo, @checked: false); 2157_builder.EmitOpCode(ILOpCode.Newarr); 2162_builder.EmitArrayCreation(_module.Translate(arrayType), expression.Syntax, _diagnostics.DiagnosticBag); 2183_builder.EmitOpCode(ILOpCode.Localloc); 2235_builder.EmitOpCode(ILOpCode.Newobj, stackAdjustment); 2460_builder.EmitOpCode(ILOpCode.Initobj); // initobj <MyStruct> 2493_builder.EmitOpCode(ILOpCode.Call, stackAdjustment); 2516if (local != null && !_builder.PossiblyDefinedOutsideOfTry(GetLocal(local))) 2585_builder.EmitLoadArgumentOpcode(ParameterSlot(left)); 2619_builder.EmitLocalLoad(localDefinition); 2809_builder.EmitOpCode(ILOpCode.Dup); 2835_builder.EmitLocalStore(temp); 2872_builder.EmitLocalStore(GetLocal(local)); 2954_builder.EmitLocalAddress(temp); 2958_builder.EmitLocalLoad(temp); 2973_builder.EmitOpCode(ILOpCode.Stobj); 2985_builder.EmitArrayElementStore(_module.Translate(arrayType), syntaxNode, _diagnostics.DiagnosticBag); 3007_builder.EmitOpCode(ILOpCode.Stelem_i1); 3013_builder.EmitOpCode(ILOpCode.Stelem_i2); 3018_builder.EmitOpCode(ILOpCode.Stelem_i4); 3023_builder.EmitOpCode(ILOpCode.Stelem_i8); 3030_builder.EmitOpCode(ILOpCode.Stelem_i); 3034_builder.EmitOpCode(ILOpCode.Stelem_r4); 3038_builder.EmitOpCode(ILOpCode.Stelem_r8); 3044_builder.EmitOpCode(ILOpCode.Stelem_ref); 3048_builder.EmitOpCode(ILOpCode.Stelem); 3061_builder.EmitOpCode(ILOpCode.Volatile); 3072_builder.EmitOpCode(field.IsStatic ? ILOpCode.Stsfld : ILOpCode.Stfld); 3088_builder.EmitStoreArgumentOpcode(slot); 3105_builder.EmitOpCode(ILOpCode.Stind_i1); 3111_builder.EmitOpCode(ILOpCode.Stind_i2); 3116_builder.EmitOpCode(ILOpCode.Stind_i4); 3121_builder.EmitOpCode(ILOpCode.Stind_i8); 3128_builder.EmitOpCode(ILOpCode.Stind_i); 3132_builder.EmitOpCode(ILOpCode.Stind_r4); 3136_builder.EmitOpCode(ILOpCode.Stind_r8); 3142_builder.EmitOpCode(ILOpCode.Stind_ref); 3146_builder.EmitOpCode(ILOpCode.Stobj); 3157_builder.EmitOpCode(ILOpCode.Pop); 3173_builder.EmitOpCode(ILOpCode.Isinst); 3175_builder.EmitOpCode(ILOpCode.Ldnull); 3176_builder.EmitOpCode(ILOpCode.Cgt_un); 3198_builder.EmitOpCode(ILOpCode.Isinst); 3203_builder.EmitOpCode(ILOpCode.Unbox_any); 3219_builder.EmitConstantValue(constantValue); 3227_builder.EmitOpCode(ILOpCode.Ldc_i4_0); 3228_builder.EmitOpCode(ILOpCode.Conv_u); 3232_builder.EmitOpCode(ILOpCode.Ldc_i4_0); 3233_builder.EmitOpCode(ILOpCode.Conv_i); 3264_builder.EmitConstantValue(constantValue); 3274_builder.EmitLocalAddress(temp); // ldloca temp 3275_builder.EmitOpCode(ILOpCode.Initobj); // initobj <MyStruct> 3277_builder.EmitLocalLoad(temp); // ldloc temp 3284_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); //argument off, return value on 3293_builder.EmitOpCode(ILOpCode.Ldtoken); 3301_builder.EmitOpCode(ILOpCode.Sizeof); 3309_builder.EmitOpCode(ILOpCode.Ldtoken); 3329_builder.EmitIntConstant(GetLocal(node.Local).SlotIndex); 3343_builder.EmitIntConstant(node.Parameter.Ordinal); 3356_builder.EmitOpCode(ILOpCode.Ldtoken); 3357_builder.EmitToken(fieldRef, syntax, _diagnostics.DiagnosticBag, Cci.MetadataWriter.RawTokenEncoding.LiftedVariableId); 3363_builder.EmitOpCode(ILOpCode.Ldtoken); 3364_builder.EmitGreatestMethodToken(); 3369_builder.EmitOpCode(ILOpCode.Ldsfld); 3375_builder.EmitOpCode(ILOpCode.Stsfld); 3381_builder.EmitToken(_module.GetModuleVersionId(_module.Translate(node.Type, node.Syntax, _diagnostics.DiagnosticBag), node.Syntax, _diagnostics.DiagnosticBag), node.Syntax, _diagnostics.DiagnosticBag); 3386_builder.EmitOpCode(ILOpCode.Ldstr); 3387_builder.EmitModuleVersionIdStringToken(); 3392_builder.EmitOpCode(ILOpCode.Ldsfld); 3398_builder.EmitOpCode(ILOpCode.Stsfld); 3404_builder.EmitToken(_module.GetInstrumentationPayloadRoot(node.AnalysisKind, _module.Translate(node.Type, node.Syntax, _diagnostics.DiagnosticBag), node.Syntax, _diagnostics.DiagnosticBag), node.Syntax, _diagnostics.DiagnosticBag); 3410_builder.EmitOpCode(ILOpCode.Ldtoken); 3411_builder.EmitSourceDocumentIndexToken(node.Document); 3416_builder.EmitOpCode(ILOpCode.Ldtoken); 3424_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); //argument off, return value on 3429_builder.EmitOpCode(ILOpCode.Ldtoken); 3431_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: -1); //2 arguments off, return value on 3437_builder.EmitOpCode(ILOpCode.Castclass); 3444_builder.EmitOpCode(ILOpCode.Ldtoken); 3451_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); //argument off, return value on 3456_builder.EmitOpCode(ILOpCode.Ldtoken); 3458_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: -1); //2 arguments off, return value on 3464_builder.EmitOpCode(ILOpCode.Castclass); 3525_builder.EmitBranch(ILOpCode.Br, doneLabel); 3529_builder.AdjustStack(-1); 3532_builder.MarkLabel(consequenceLabel); 3549_builder.MarkLabel(doneLabel); 3585_builder.EmitOpCode(ILOpCode.Dup); 3594_builder.EmitBranch(ILOpCode.Brtrue, ifLeftNotNullLabel); 3598_builder.EmitOpCode(ILOpCode.Pop); 3612_builder.MarkLabel(ifLeftNotNullLabel); 3727_builder.EmitLocalStore(temp); 3728_builder.EmitLocalLoad(temp); 3736_builder.EmitOpCode(ILOpCode.Box); 3752_builder.EmitLocalStore(temp); 3761_builder.EmitLocalLoad(temp); 3765_builder.EmitOpCode(ILOpCode.Calli, stackBehavior); 3811_builder.EmitOpCode(ILOpCode.Nop); 3837_builder.EmitOpCode(ILOpCode.Constrained); 3841_builder.EmitOpCode(ILOpCode.Ldftn);
CodeGen\EmitOperators.cs (43)
43_builder.EmitOpCode(ILOpCode.Neg); 47_builder.EmitOpCode(ILOpCode.Not); 180_builder.EmitOpCode(ILOpCode.Mul); 184_builder.EmitOpCode(ILOpCode.Add); 188_builder.EmitOpCode(ILOpCode.Sub); 194_builder.EmitOpCode(ILOpCode.Div_un); 198_builder.EmitOpCode(ILOpCode.Div); 205_builder.EmitOpCode(ILOpCode.Rem_un); 209_builder.EmitOpCode(ILOpCode.Rem); 214_builder.EmitOpCode(ILOpCode.Shl); 220_builder.EmitOpCode(ILOpCode.Shr_un); 224_builder.EmitOpCode(ILOpCode.Shr); 229_builder.EmitOpCode(ILOpCode.Shr_un); 233_builder.EmitOpCode(ILOpCode.And); 237_builder.EmitOpCode(ILOpCode.Xor); 241_builder.EmitOpCode(ILOpCode.Or); 277_builder.EmitBranch(ILOpCode.Br, labEnd); 280_builder.AdjustStack(-1); 282_builder.MarkLabel(lazyFallThrough); 283_builder.EmitBoolConstant(stopValue); 284_builder.MarkLabel(labEnd); 444_builder.EmitConstantValue(nullOrZero); 445_builder.EmitOpCode(ILOpCode.Cgt_un); 458_builder.EmitConstantValue(nullOrZero); 459_builder.EmitOpCode(ILOpCode.Ceq); 466_builder.EmitOpCode(opCode); 489_builder.EmitBoolConstant(constant == sense); 531_builder.EmitOpCode(ILOpCode.Ldc_i4_0); 535_builder.EmitOpCode(ILOpCode.Conv_i8); 539_builder.EmitOpCode(ILOpCode.Conv_i); 543_builder.EmitOpCode(ILOpCode.Sub_ovf); 610_builder.EmitNumericConversion(Microsoft.Cci.PrimitiveTypeCode.Int32, Microsoft.Cci.PrimitiveTypeCode.UInt8, @checked); 613_builder.EmitNumericConversion(Microsoft.Cci.PrimitiveTypeCode.Int32, Microsoft.Cci.PrimitiveTypeCode.Int8, @checked); 616_builder.EmitNumericConversion(Microsoft.Cci.PrimitiveTypeCode.Int32, Microsoft.Cci.PrimitiveTypeCode.Int16, @checked); 619_builder.EmitNumericConversion(Microsoft.Cci.PrimitiveTypeCode.Int32, Microsoft.Cci.PrimitiveTypeCode.UInt16, @checked); 633_builder.EmitOpCode(ILOpCode.Mul_ovf_un); 637_builder.EmitOpCode(ILOpCode.Mul_ovf); 644_builder.EmitOpCode(ILOpCode.Add_ovf_un); 648_builder.EmitOpCode(ILOpCode.Add_ovf); 655_builder.EmitOpCode(ILOpCode.Sub_ovf_un); 659_builder.EmitOpCode(ILOpCode.Sub_ovf); 686_builder.EmitOpCode(ILOpCode.Ldc_i4_0); 687_builder.EmitOpCode(ILOpCode.Ceq);
CodeGen\EmitStackAllocInitializer.cs (20)
40_builder.EmitOpCode(ILOpCode.Dup); 41_builder.EmitIntConstant(data[0]); 42_builder.EmitIntConstant(data.Length); 43_builder.EmitOpCode(ILOpCode.Initblk, -3); 53var field = _builder.module.GetFieldForData(data, alignment: 1, inits.Syntax, _diagnostics.DiagnosticBag); 54_builder.EmitOpCode(ILOpCode.Dup); 55_builder.EmitOpCode(ILOpCode.Ldsflda); 56_builder.EmitToken(field, inits.Syntax, _diagnostics.DiagnosticBag); 57_builder.EmitIntConstant(data.Length); 58_builder.EmitOpCode(ILOpCode.Cpblk, -3); 131_builder.EmitOpCode(ILOpCode.Dup); 150_builder.EmitIntConstant(index); 151_builder.EmitOpCode(ILOpCode.Add); 156_builder.EmitOpCode(ILOpCode.Add); 160_builder.EmitIntConstant(index); 161_builder.EmitOpCode(ILOpCode.Conv_i); 163_builder.EmitOpCode(ILOpCode.Mul); 164_builder.EmitOpCode(ILOpCode.Add); 172_builder.EmitOpCode(ILOpCode.Sizeof); 177_builder.EmitIntConstant(elementTypeSizeInBytes);
CodeGen\EmitStatement.cs (127)
111_builder.AssertStackEmpty(); 120int n = _builder.InstructionsEmitted; 122return _builder.InstructionsEmitted - n; 140_builder.EmitOpCode(ILOpCode.Nop); 152_asyncYieldPoints.Add(_builder.AllocateILMarker()); 158_asyncResumePoints.Add(_builder.AllocateILMarker()); 186_builder.EmitThrow(isRethrow: thrown == null); 406_builder.EmitBranch(ILOpCode.Br, dest); 440_builder.MarkLabel(fallThrough); 518_builder.EmitBranch(ilcode, dest, revOpCode); 559_builder.MarkLabel(fallThrough); 595_builder.EmitOpCode(ILOpCode.Isinst); 599_builder.EmitBranch(ilcode, dest); 618_builder.EmitBranch(ilcode, dest); 635_builder.MarkLabel(boundLabelStatement.Label); 640_builder.EmitBranch(ILOpCode.Br, boundGotoStatement.Label); 680_builder.OpenLocalScope(); 690_builder.AssertStackEmpty(); 692_builder.OpenLocalScope(ScopeType.TryCatchFinally); 694_builder.OpenLocalScope(ScopeType.Try); 696_builder.CloseLocalScope(); // try 698_builder.OpenLocalScope(ScopeType.Finally); 706_builder.CloseLocalScope(); // finally 708_builder.CloseLocalScope(); // try-finally 711_builder.CloseLocalScope(); 720_builder.OpenLocalScope(); 740_builder.EmitBranch(ILOpCode.Br, s_returnLabel); 755_builder.CloseLocalScope(); 771_builder.OpenLocalScope(); 780_builder.AddLocalToScope(_builder.LocalSlotManager.GetLocal(local)); 786_builder.CloseLocalScope(); 791_builder.OpenLocalScope(ScopeType.StateMachineVariable); 796_builder.DefineUserDefinedStateMachineHoistedLocal(field.SlotIndex); 801_builder.CloseLocalScope(); 823_builder.InExceptionHandler; 834!_builder.InExceptionHandler; 856_builder.EmitLocalStore(LazyReturnTemp); 865_builder.EmitBranch(ILOpCode.Br, s_returnLabel); 879_builder.EmitLocalStore(LazyReturnTemp); 892_builder.EmitRet(expressionOpt == null); 902_builder.AssertStackEmpty(); 911_builder.OpenLocalScope(ScopeType.TryCatchFinally); 913_builder.OpenLocalScope(ScopeType.Try); 930_builder.CloseLocalScope(); 942_builder.OpenLocalScope(statement.PreferFaultHandler ? ScopeType.Fault : ScopeType.Finally); 946_builder.CloseLocalScope(); 949_builder.CloseLocalScope(); 970_builder.CloseLocalScope(); 1016_builder.AdjustStack(1); // Account for exception on the stack. 1027_builder.OpenLocalScope(ScopeType.Catch, exceptionType); 1060_builder.OpenLocalScope(ScopeType.Filter); 1073_builder.EmitOpCode(ILOpCode.Isinst); 1074_builder.EmitToken(exceptionType, catchBlock.Syntax, _diagnostics.DiagnosticBag); 1075_builder.EmitOpCode(ILOpCode.Dup); 1076_builder.EmitBranch(ILOpCode.Brtrue, typeCheckPassedLabel); 1077_builder.EmitOpCode(ILOpCode.Pop); 1078_builder.EmitIntConstant(0); 1079_builder.EmitBranch(ILOpCode.Br, typeCheckFailedLabel); 1086_builder.MarkLabel(typeCheckPassedLabel); 1105_builder.EmitOpCode(ILOpCode.Unbox_any); 1125_builder.EmitLocalStore(GetLocal(exceptionSourceLocal)); 1139_builder.DefineUserDefinedStateMachineHoistedLocal(stateMachineField.SlotIndex); 1145_builder.EmitLocalStore(temp); 1150_builder.EmitLocalLoad(temp); 1162_builder.EmitOpCode(ILOpCode.Pop); 1167Debug.Assert(_builder.IsStackEmpty); 1178_builder.EmitIntConstant(0); 1179_builder.EmitOpCode(ILOpCode.Cgt_un); 1180_builder.MarkLabel(typeCheckFailedLabel); 1183_builder.MarkFilterConditionEnd(); 1187_builder.EmitOpCode(ILOpCode.Pop); 1192_builder.CloseLocalScope(); 1200_asyncCatchHandlerOffset = _builder.AllocateILMarker(); 1277_builder.EmitLocalStore(temp); 1299_builder.EmitIntegerSwitchJumpTable(switchCaseLabels, fallThroughLabel, key, expression.Type.EnumUnderlyingTypeOrSelf().PrimitiveTypeCode); 1363_builder.EmitLoad(keyTemp); 1364_builder.EmitBranch(ILOpCode.Brfalse, lengthBasedSwitchInfo.LengthBasedJumpTable.NullCaseLabel ?? fallThroughLabel, ILOpCode.Brtrue); 1372_builder.EmitLoadAddress(keyTemp); 1376_builder.EmitLoad(keyTemp); 1378_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); 1380_builder.EmitLocalStore(stringLength); 1384_builder.EmitIntegerSwitchJumpTable( 1399_builder.MarkLabel(charJumpTable.Label); 1404_builder.EmitLoadAddress(keyTemp); 1408_builder.EmitLoad(keyTemp); 1410_builder.EmitIntConstant(charJumpTable.SelectedCharPosition); 1411_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: -1); 1415_builder.EmitOpCode(ILOpCode.Ldind_u2); 1417_builder.EmitLocalStore(charTemp); 1421_builder.EmitIntegerSwitchJumpTable( 1434_builder.MarkLabel(stringJumpTable.Label); 1447_builder.EmitToken(lengthMethodRef, syntaxNode: null, diag); 1491_builder.EmitLoad(key); 1492_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); 1493_builder.EmitToken(stringHashMethodRef, syntaxNode, _diagnostics.DiagnosticBag); 1498_builder.EmitLocalStore(keyHash); 1541_builder.EmitLoad(keyArg); 1542_builder.EmitBranch(ILOpCode.Brfalse, targetLabel, ILOpCode.Brtrue); 1553_builder.EmitLoadAddress(keyArg); 1557_builder.EmitLoad(keyArg); 1558_builder.EmitBranch(ILOpCode.Brfalse, skipToNext, ILOpCode.Brtrue); 1560_builder.EmitLoad(keyArg); 1564_builder.EmitOpCode(ILOpCode.Call, 0); 1566_builder.EmitToken(lengthMethodRef, null, diag); 1570_builder.EmitBranch(ILOpCode.Brfalse, targetLabel, ILOpCode.Brtrue); 1571_builder.MarkLabel(skipToNext); 1586_builder.EmitStringSwitchJumpTable( 1681_builder.EmitLoad(key); 1682_builder.EmitConstantValue(stringConstant); 1683_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: -1); 1684_builder.EmitToken(stringEqualityMethodRef, syntaxNode, _diagnostics.DiagnosticBag); 1687_builder.EmitBranch(ILOpCode.Brtrue, targetLabel, ILOpCode.Brfalse); 1708_builder.EmitLoad(key); 1709_builder.EmitConstantValue(stringConstant); 1710_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); 1711_builder.EmitToken(asSpanRef, syntaxNode, _diagnostics.DiagnosticBag); 1712_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: -1); 1713_builder.EmitToken(sequenceEqualsRef, syntaxNode, _diagnostics.DiagnosticBag); 1716_builder.EmitBranch(ILOpCode.Brtrue, targetLabel, ILOpCode.Brfalse); 1730return _builder.LocalSlotManager.GetLocal(symbol); 1752_builder.AddLocalConstantToScope(localConstantDef); 1793var localDef = _builder.LocalSlotManager.DeclareLocal( 1811_builder.AddLocalToScope(localDef); 1870_builder.LocalSlotManager.FreeLocal(local); 1879return _builder.LocalSlotManager.AllocateSlot( 1889_builder.LocalSlotManager.FreeSlot(temp);