1 write to _builder
Microsoft.CodeAnalysis.CSharp (1)
CodeGen\CodeGenerator.cs (1)
104_builder = builder;
529 references to _builder
Microsoft.CodeAnalysis.CSharp (529)
CodeGen\CodeGenerator.cs (24)
195result = _builder.LocalSlotManager.DeclareLocal( 243asyncCatchHandlerOffset = _diagnostics.HasAnyErrors() ? -1 : _builder.GetILOffsetFromMarker(_asyncCatchHandlerOffset); 262int yieldOffset = _builder.GetILOffsetFromMarker(yieldPoints[i]); 263int resumeOffset = _builder.GetILOffsetFromMarker(resumePoints[i]); 291_builder.DefineInitialHiddenSequencePoint(); 308_builder.Realize(); 325_builder.MarkLabel(s_returnLabel); 349_builder.EmitLocalLoad(LazyReturnTemp); 350_builder.EmitRet(false); 354_builder.EmitRet(true); 362_builder.EmitToken(symbol, syntaxNode); 373_builder.EmitToken(methodRef, syntaxNode, encodeAsRawDefinitionToken ? Cci.MetadataWriter.RawTokenEncoding.RowId : 0); 379_builder.EmitToken(fieldRef, syntaxNode); 384_builder.EmitToken(_module.Translate(symbol).Signature, syntaxNode); 413_builder.EmitOpCode(ILOpCode.Nop); 436_builder.EmitOpCode(ILOpCode.Nop); 445ArrayBuilder<RawSequencePoint> sequencePoints = _builder.SeqPointsOpt; 484_builder.EmitConstantValue(ConstantValue.Create(true), syntaxNode); 485_builder.EmitBranch(ILOpCode.Brtrue, label); 487_builder.EmitOpCode(ILOpCode.Nop); 488_builder.MarkLabel(label); 502_builder.SetInitialDebugDocument(_methodBodySyntaxOpt.SyntaxTree); 509_builder.DefineHiddenSequencePoint(); 522_builder.DefineSequencePoint(syntaxTree, span);
CodeGen\EmitAddress.cs (27)
76_builder.EmitLoadArgumentOpcode(0); 80_builder.EmitLoadArgumentAddrOpcode(0); 137_builder.EmitLocalAddress(temp); // ldloca temp 138_builder.EmitOpCode(ILOpCode.Dup); // dup 139_builder.EmitOpCode(ILOpCode.Initobj); // initobj <type> 223_builder.EmitBranch(ILOpCode.Br, doneLabel); 226_builder.AdjustStack(-1); 228_builder.MarkLabel(consequenceLabel); 231_builder.MarkLabel(doneLabel); 246_builder.EmitBranch(ILOpCode.Brtrue, whenValueTypeLabel); 250_builder.EmitBranch(ILOpCode.Br, doneLabel); 251_builder.AdjustStack(-1); 253_builder.MarkLabel(whenValueTypeLabel); 257_builder.MarkLabel(doneLabel); 287_builder.EmitLocalAddress(GetLocal(localAccess)); 303_builder.EmitOpCode(ILOpCode.Dup); 317_builder.EmitOpCode(ILOpCode.Refanyval); 332_builder.EmitLocalStore(value); 333_builder.EmitLocalAddress(value); 400_builder.EmitOpCode(ILOpCode.Readonly); 405_builder.EmitOpCode(ILOpCode.Ldelema); 411_builder.EmitArrayElementAddress(_module.Translate((ArrayTypeSymbol)arrayAccess.Expression.Type), 458_builder.EmitOpCode(ILOpCode.Ldsflda); 482_builder.EmitLoadArgumentAddrOpcode(slot); 486_builder.EmitLoadArgumentOpcode(slot); 558_builder.EmitOpCode(field.RefKind == RefKind.None ? ILOpCode.Ldflda : ILOpCode.Ldfld); 581_builder.EmitOpCode(ILOpCode.Ldflda);
CodeGen\EmitArrayInitializer.cs (43)
58_builder.EmitArrayBlockInitializer(data, inits.Syntax); 90_builder.EmitOpCode(ILOpCode.Dup); 91_builder.EmitIntConstant(i); 193_builder.EmitOpCode(ILOpCode.Dup); 200_builder.EmitIntConstant(row.Index); 204_builder.EmitIntConstant(i); 555var field = _builder.module.GetFieldForData(data, alignment: 1, wrappedExpression.Syntax, _diagnostics.DiagnosticBag); 556_builder.EmitOpCode(ILOpCode.Ldsflda); 557_builder.EmitToken(field, wrappedExpression.Syntax); 559_builder.EmitIntConstant(lengthForConstructor); 564_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: -3); 570_builder.EmitOpCode(ILOpCode.Newobj, stackAdjustment: -1); 616var field = _builder.module.GetFieldForData(data, alignment: (ushort)specialElementType.SizeInBytes(), wrappedExpression.Syntax, _diagnostics.DiagnosticBag); 617_builder.EmitOpCode(ILOpCode.Ldtoken); 618_builder.EmitToken(field, wrappedExpression.Syntax); 619_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); 649var cachingField = _builder.module.GetArrayCachingFieldForData(data, _module.Translate(arrayType), wrappedExpression.Syntax, _diagnostics.DiagnosticBag); 654_builder.EmitOpCode(ILOpCode.Ldsfld); 655_builder.EmitToken(cachingField, wrappedExpression.Syntax); 656_builder.EmitOpCode(ILOpCode.Dup); 657_builder.EmitBranch(ILOpCode.Brtrue, arrayNotNullLabel); 662_builder.EmitOpCode(ILOpCode.Pop); 663_builder.EmitIntConstant(elementCount); 664_builder.EmitOpCode(ILOpCode.Newarr); 666_builder.EmitArrayBlockInitializer(data, wrappedExpression.Syntax); 667_builder.EmitOpCode(ILOpCode.Dup); 668_builder.EmitOpCode(ILOpCode.Stsfld); 669_builder.EmitToken(cachingField, wrappedExpression.Syntax); 673_builder.MarkLabel(arrayNotNullLabel); 674_builder.EmitOpCode(ILOpCode.Newobj, 0); 707Cci.IFieldReference cachingField = _builder.module.GetArrayCachingFieldForConstants(constants, _module.Translate(arrayType), 714_builder.EmitOpCode(ILOpCode.Ldsfld); 715_builder.EmitToken(cachingField, arrayCreation.Syntax); 716_builder.EmitOpCode(ILOpCode.Dup); 717_builder.EmitBranch(ILOpCode.Brtrue, arrayNotNullLabel); 721_builder.EmitOpCode(ILOpCode.Pop); 723_builder.EmitOpCode(ILOpCode.Dup); 724_builder.EmitOpCode(ILOpCode.Stsfld); 725_builder.EmitToken(cachingField, arrayCreation.Syntax); 729_builder.MarkLabel(arrayNotNullLabel); 734_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: -2); 740_builder.EmitOpCode(ILOpCode.Newobj, stackAdjustment: 0); 760_builder.EmitOpCode(ILOpCode.Initobj);
CodeGen\EmitConversion.cs (16)
48_builder.EmitIntConstant(0); 49_builder.EmitOpCode(ILOpCode.Conv_u); 85_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); 168_builder.EmitNumericConversion(fromPredefTypeKind, toPredefTypeKind, conversion.Checked); 174_builder.EmitOpCode(ILOpCode.Conv_u); 253_builder.EmitNumericConversion(fromPredefTypeKind, toPredefTypeKind, conversion.Checked); 273_builder.EmitOpCode(ILOpCode.Unbox_any); 305_builder.EmitOpCode(ILOpCode.Castclass); 310_builder.EmitOpCode(ILOpCode.Unbox_any); 339_builder.EmitNumericConversion(fromPredefTypeKind, toPredefTypeKind, conversion.Checked); 358_builder.EmitNullConstant(); 367_builder.EmitOpCode(ILOpCode.Constrained); 388_builder.EmitOpCode(ILOpCode.Dup); 389_builder.EmitOpCode(ILOpCode.Ldvirtftn); 396_builder.EmitOpCode(ILOpCode.Ldftn); 402_builder.EmitOpCode(ILOpCode.Newobj, -1); // pop 2 args and push delegate object
CodeGen\EmitExpression.cs (202)
177_builder.EmitOpCode(ILOpCode.Ldarg_0); 386_builder.EmitBranch(ILOpCode.Brtrue, whenValueTypeLabel); 389_builder.EmitBranch(ILOpCode.Br, doneLabel); 393_builder.AdjustStack(-1); 396_builder.MarkLabel(whenValueTypeLabel); 399_builder.MarkLabel(doneLabel); 470_builder.EmitBranch(ILOpCode.Brtrue, whenNotNullLabel); 474_builder.EmitLocalStore(cloneTemp); 475_builder.EmitLocalAddress(cloneTemp); 476_builder.EmitLocalLoad(cloneTemp); 487_builder.EmitOpCode(ILOpCode.Dup); 499_builder.EmitOpCode(ILOpCode.Dup); 520_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); 524_builder.EmitBranch(ILOpCode.Brtrue, whenNotNullLabel); 536_builder.EmitOpCode(ILOpCode.Pop); 549_builder.EmitBranch(ILOpCode.Br, doneLabel); 557_builder.AdjustStack(+1); 565_builder.AdjustStack(-1); 568_builder.MarkLabel(whenNotNullLabel); 581_builder.MarkLabel(doneLabel); 676_builder.EmitOpCode(ILOpCode.Mkrefany); 688_builder.EmitOpCode(ILOpCode.Refanytype); 689_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); 698_builder.EmitOpCode(ILOpCode.Arglist); 768_builder.EmitOpCode(ILOpCode.Conv_u); 792_builder.EmitOpCode(ILOpCode.Dup); 797_builder.EmitOpCode(ILOpCode.Dup); 819_builder.EmitOpCode(ILOpCode.Ldarg_0); 884_builder.OpenLocalScope(); 899_builder.CloseLocalScope(); 918_builder.OpenLocalScope(); 939_builder.CloseLocalScope(); 1034_builder.EmitOpCode(ILOpCode.Ldelem_i1); 1039_builder.EmitOpCode(ILOpCode.Ldelem_u1); 1043_builder.EmitOpCode(ILOpCode.Ldelem_i2); 1048_builder.EmitOpCode(ILOpCode.Ldelem_u2); 1052_builder.EmitOpCode(ILOpCode.Ldelem_i4); 1056_builder.EmitOpCode(ILOpCode.Ldelem_u4); 1061_builder.EmitOpCode(ILOpCode.Ldelem_i8); 1068_builder.EmitOpCode(ILOpCode.Ldelem_i); 1072_builder.EmitOpCode(ILOpCode.Ldelem_r4); 1076_builder.EmitOpCode(ILOpCode.Ldelem_r8); 1082_builder.EmitOpCode(ILOpCode.Ldelem_ref); 1088_builder.EmitOpCode(ILOpCode.Ldelem); 1096_builder.EmitOpCode(ILOpCode.Readonly); 1099_builder.EmitOpCode(ILOpCode.Ldelema); 1109_builder.EmitArrayElementLoad(_module.Translate((ArrayTypeSymbol)arrayAccess.Expression.Type), arrayAccess.Expression.Syntax); 1123_builder.EmitOpCode(ILOpCode.Pop); 1170_builder.EmitOpCode(ILOpCode.Volatile); 1172_builder.EmitOpCode(ILOpCode.Ldsfld); 1196_builder.EmitOpCode(ILOpCode.Volatile); 1199_builder.EmitOpCode(ILOpCode.Ldfld); 1245_builder.EmitOpCode(ILOpCode.Unbox); 1259_builder.EmitOpCode(ILOpCode.Ldflda); 1411_builder.EmitLocalLoad(definition); 1442_builder.EmitLoadArgumentOpcode(slot); 1464_builder.EmitOpCode(ILOpCode.Ldind_i1); 1469_builder.EmitOpCode(ILOpCode.Ldind_u1); 1473_builder.EmitOpCode(ILOpCode.Ldind_i2); 1478_builder.EmitOpCode(ILOpCode.Ldind_u2); 1482_builder.EmitOpCode(ILOpCode.Ldind_i4); 1486_builder.EmitOpCode(ILOpCode.Ldind_u4); 1491_builder.EmitOpCode(ILOpCode.Ldind_i8); 1498_builder.EmitOpCode(ILOpCode.Ldind_i); 1502_builder.EmitOpCode(ILOpCode.Ldind_r4); 1506_builder.EmitOpCode(ILOpCode.Ldind_r8); 1512_builder.EmitOpCode(ILOpCode.Ldind_ref); 1516_builder.EmitOpCode(ILOpCode.Ldobj); 1671_builder.EmitOpCode(ILOpCode.Initobj); // initobj <MyStruct> 1685var countBefore = _builder.LocalSlotManager.StartScopeOfTrackingAddressedLocals(); 1689_builder.LocalSlotManager.EndScopeOfTrackingAddressedLocals(countBefore, 1701_builder.EmitOpCode(ILOpCode.Constrained); 1705_builder.EmitOpCode(ILOpCode.Call, stackBehavior); 1721var countBefore = _builder.LocalSlotManager.StartScopeOfTrackingAddressedLocals(); 1789_builder.LocalSlotManager.EndScopeOfTrackingAddressedLocals(countBefore, MightEscapeTemporaryRefs(call, used: true)); 1791countBefore = _builder.LocalSlotManager.StartScopeOfTrackingAddressedLocals(); 1828_builder.EmitLocalStore(tempOpt); 1829_builder.EmitLocalAddress(tempOpt); 1854_builder.LocalSlotManager.EndScopeOfTrackingAddressedLocals(countBefore, MightEscapeTemporaryRefs(call, used: useKind != UseKind.Unused)); 2047_builder.EmitOpCode(ILOpCode.Call, stackBehavior); 2051_builder.EmitOpCode(ILOpCode.Callvirt, stackBehavior); 2055_builder.EmitOpCode(ILOpCode.Constrained); 2057_builder.EmitOpCode(ILOpCode.Callvirt, stackBehavior); 2102_builder.EmitBranch(ILOpCode.Brtrue, whenNotNullLabel); 2109_builder.EmitLocalStore(tempOpt); 2110_builder.EmitLocalAddress(tempOpt); 2114_builder.MarkLabel(whenNotNullLabel); 2379_builder.EmitOpCode(ILOpCode.Conv_ovf_i); 2383_builder.EmitOpCode(ILOpCode.Conv_ovf_i_un); 2402_builder.EmitOpCode(ILOpCode.Ldlen); 2416_builder.EmitNumericConversion(typeFrom, typeTo, @checked: false); 2429_builder.EmitOpCode(ILOpCode.Newarr); 2434_builder.EmitArrayCreation(_module.Translate(arrayType), expression.Syntax); 2499var countBefore = _builder.LocalSlotManager.StartScopeOfTrackingAddressedLocals(); 2503_builder.LocalSlotManager.EndScopeOfTrackingAddressedLocals(countBefore, 2507_builder.EmitOpCode(ILOpCode.Newobj, stackAdjustment); 2731_builder.EmitOpCode(ILOpCode.Initobj); // initobj <MyStruct> 2762var countBefore = _builder.LocalSlotManager.StartScopeOfTrackingAddressedLocals(); 2766_builder.LocalSlotManager.EndScopeOfTrackingAddressedLocals(countBefore, 2771_builder.EmitOpCode(ILOpCode.Call, stackAdjustment); 2794if (local != null && !_builder.PossiblyDefinedOutsideOfTry(GetLocal(local))) 2864_builder.EmitLoadArgumentOpcode(ParameterSlot(left)); 2898_builder.EmitLocalLoad(localDefinition); 3088_builder.EmitOpCode(ILOpCode.Dup); 3114_builder.EmitLocalStore(temp); 3151_builder.EmitLocalStore(GetLocal(local)); 3233_builder.EmitLocalAddress(temp); 3237_builder.EmitLocalLoad(temp); 3252_builder.EmitOpCode(ILOpCode.Stobj); 3264_builder.EmitArrayElementStore(_module.Translate(arrayType), syntaxNode); 3286_builder.EmitOpCode(ILOpCode.Stelem_i1); 3292_builder.EmitOpCode(ILOpCode.Stelem_i2); 3297_builder.EmitOpCode(ILOpCode.Stelem_i4); 3302_builder.EmitOpCode(ILOpCode.Stelem_i8); 3309_builder.EmitOpCode(ILOpCode.Stelem_i); 3313_builder.EmitOpCode(ILOpCode.Stelem_r4); 3317_builder.EmitOpCode(ILOpCode.Stelem_r8); 3323_builder.EmitOpCode(ILOpCode.Stelem_ref); 3327_builder.EmitOpCode(ILOpCode.Stelem); 3340_builder.EmitOpCode(ILOpCode.Volatile); 3351_builder.EmitOpCode(field.IsStatic ? ILOpCode.Stsfld : ILOpCode.Stfld); 3367_builder.EmitStoreArgumentOpcode(slot); 3384_builder.EmitOpCode(ILOpCode.Stind_i1); 3390_builder.EmitOpCode(ILOpCode.Stind_i2); 3395_builder.EmitOpCode(ILOpCode.Stind_i4); 3400_builder.EmitOpCode(ILOpCode.Stind_i8); 3407_builder.EmitOpCode(ILOpCode.Stind_i); 3411_builder.EmitOpCode(ILOpCode.Stind_r4); 3415_builder.EmitOpCode(ILOpCode.Stind_r8); 3421_builder.EmitOpCode(ILOpCode.Stind_ref); 3425_builder.EmitOpCode(ILOpCode.Stobj); 3436_builder.EmitOpCode(ILOpCode.Pop); 3452_builder.EmitOpCode(ILOpCode.Isinst); 3457_builder.EmitOpCode(ILOpCode.Ldnull); 3458_builder.EmitOpCode(ILOpCode.Cgt_un); 3481_builder.EmitOpCode(ILOpCode.Isinst); 3486_builder.EmitOpCode(ILOpCode.Unbox_any); 3502_builder.EmitConstantValue(constantValue, syntaxNode); 3510_builder.EmitOpCode(ILOpCode.Ldc_i4_0); 3511_builder.EmitOpCode(ILOpCode.Conv_u); 3515_builder.EmitOpCode(ILOpCode.Ldc_i4_0); 3516_builder.EmitOpCode(ILOpCode.Conv_i); 3551_builder.EmitConstantValue(constantValue, syntaxNode); 3560_builder.EmitLocalAddress(temp); // ldloca temp 3561_builder.EmitOpCode(ILOpCode.Initobj); // initobj <MyStruct> 3563_builder.EmitLocalLoad(temp); // ldloc temp 3570_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); //argument off, return value on 3579_builder.EmitOpCode(ILOpCode.Ldtoken); 3587_builder.EmitOpCode(ILOpCode.Sizeof); 3595_builder.EmitOpCode(ILOpCode.Ldtoken); 3615_builder.EmitIntConstant(GetLocal(node.Local).SlotIndex); 3629_builder.EmitIntConstant(node.Parameter.Ordinal); 3642_builder.EmitOpCode(ILOpCode.Ldtoken); 3643_builder.EmitToken(fieldRef, syntax, Cci.MetadataWriter.RawTokenEncoding.LiftedVariableId); 3649_builder.EmitOpCode(ILOpCode.Ldtoken); 3650_builder.EmitGreatestMethodToken(); 3655_builder.EmitOpCode(ILOpCode.Ldsfld); 3661_builder.EmitOpCode(ILOpCode.Stsfld); 3667_builder.EmitToken( 3676_builder.EmitOpCode(ILOpCode.Ldsflda); 3677_builder.EmitToken( 3686_builder.EmitOpCode(ILOpCode.Call, -1); 3687_builder.EmitToken( 3696_builder.EmitOpCode(ILOpCode.Ldsfld); 3697_builder.EmitToken( 3704_builder.EmitOpCode(ILOpCode.Ldstr); 3705_builder.EmitModuleVersionIdStringToken(); 3710_builder.EmitOpCode(ILOpCode.Ldsfld); 3716_builder.EmitOpCode(ILOpCode.Stsfld); 3722_builder.EmitToken(_module.GetInstrumentationPayloadRoot(node.AnalysisKind, _module.Translate(node.Type, node.Syntax, _diagnostics.DiagnosticBag), node.Syntax, _diagnostics.DiagnosticBag), node.Syntax); 3728_builder.EmitOpCode(ILOpCode.Ldtoken); 3729_builder.EmitSourceDocumentIndexToken(node.Document); 3734_builder.EmitOpCode(ILOpCode.Ldtoken); 3742_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); //argument off, return value on 3747_builder.EmitOpCode(ILOpCode.Ldtoken); 3749_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: -1); //2 arguments off, return value on 3755_builder.EmitOpCode(ILOpCode.Castclass); 3762_builder.EmitOpCode(ILOpCode.Ldtoken); 3769_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); //argument off, return value on 3774_builder.EmitOpCode(ILOpCode.Ldtoken); 3776_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: -1); //2 arguments off, return value on 3782_builder.EmitOpCode(ILOpCode.Castclass); 3815_builder.EmitNumericConversion(Cci.PrimitiveTypeCode.Int32, toType, @checked: false); 3859_builder.EmitBranch(ILOpCode.Br, doneLabel); 3863_builder.AdjustStack(-1); 3866_builder.MarkLabel(consequenceLabel); 3883_builder.MarkLabel(doneLabel); 3919_builder.EmitOpCode(ILOpCode.Dup); 3928_builder.EmitBranch(ILOpCode.Brtrue, ifLeftNotNullLabel); 3932_builder.EmitOpCode(ILOpCode.Pop); 3946_builder.MarkLabel(ifLeftNotNullLabel); 4061_builder.EmitLocalStore(temp); 4062_builder.EmitLocalLoad(temp); 4070_builder.EmitOpCode(ILOpCode.Box); 4086_builder.EmitLocalStore(temp); 4091var countBefore = _builder.LocalSlotManager.StartScopeOfTrackingAddressedLocals(); 4095_builder.LocalSlotManager.EndScopeOfTrackingAddressedLocals(countBefore, 4102_builder.EmitLocalLoad(temp); 4106_builder.EmitOpCode(ILOpCode.Calli, stackBehavior); 4152_builder.EmitOpCode(ILOpCode.Nop); 4178_builder.EmitOpCode(ILOpCode.Constrained); 4182_builder.EmitOpCode(ILOpCode.Ldftn);
CodeGen\EmitOperators.cs (55)
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); 384_builder.EmitBranch(sense ? ILOpCode.Brtrue_s : ILOpCode.Brfalse_s, falseLabel); 385_builder.EmitBoolConstant(true); 386_builder.EmitBranch(ILOpCode.Br, endLabel); 388_builder.AdjustStack(-1); 389_builder.MarkLabel(falseLabel); 390_builder.EmitBoolConstant(false); 391_builder.MarkLabel(endLabel); 464_builder.EmitConstantValue(nullOrZero, comparand.Syntax); 465_builder.EmitOpCode(ILOpCode.Cgt_un); 478_builder.EmitConstantValue(nullOrZero, comparand.Syntax); 479_builder.EmitOpCode(ILOpCode.Ceq); 486_builder.EmitOpCode(opCode); 503_builder.EmitBoolConstant(constant == sense); 536_builder.EmitBoolConstant(constantValue.BooleanValue == sense); 554_builder.EmitOpCode(ILOpCode.Ldnull); 555_builder.EmitOpCode(sense ? ILOpCode.Cgt_un : ILOpCode.Ceq); 563_builder.EmitOpCode(ILOpCode.Ldc_i4_0); 564_builder.EmitOpCode(sense ? ILOpCode.Cgt_un : ILOpCode.Ceq); 603_builder.EmitOpCode(ILOpCode.Ldc_i4_0); 607_builder.EmitOpCode(ILOpCode.Conv_i8); 611_builder.EmitOpCode(ILOpCode.Conv_i); 615_builder.EmitOpCode(ILOpCode.Sub_ovf); 682_builder.EmitNumericConversion(Microsoft.Cci.PrimitiveTypeCode.Int32, Microsoft.Cci.PrimitiveTypeCode.UInt8, @checked); 685_builder.EmitNumericConversion(Microsoft.Cci.PrimitiveTypeCode.Int32, Microsoft.Cci.PrimitiveTypeCode.Int8, @checked); 688_builder.EmitNumericConversion(Microsoft.Cci.PrimitiveTypeCode.Int32, Microsoft.Cci.PrimitiveTypeCode.Int16, @checked); 691_builder.EmitNumericConversion(Microsoft.Cci.PrimitiveTypeCode.Int32, Microsoft.Cci.PrimitiveTypeCode.UInt16, @checked); 705_builder.EmitOpCode(ILOpCode.Mul_ovf_un); 709_builder.EmitOpCode(ILOpCode.Mul_ovf); 716_builder.EmitOpCode(ILOpCode.Add_ovf_un); 720_builder.EmitOpCode(ILOpCode.Add_ovf); 727_builder.EmitOpCode(ILOpCode.Sub_ovf_un); 731_builder.EmitOpCode(ILOpCode.Sub_ovf); 758_builder.EmitOpCode(ILOpCode.Ldc_i4_0); 759_builder.EmitOpCode(ILOpCode.Ceq);
CodeGen\EmitStackAllocInitializer.cs (35)
51_builder.EmitOpCode(ILOpCode.Dup); 52_builder.EmitIntConstant(data[0]); 53_builder.EmitIntConstant(data.Length); 54_builder.EmitOpCode(ILOpCode.Initblk, -3); 59var field = _builder.module.GetFieldForData(data, alignment: 1, inits.Syntax, _diagnostics.DiagnosticBag); 60_builder.EmitOpCode(ILOpCode.Dup); 61_builder.EmitOpCode(ILOpCode.Ldsflda); 62_builder.EmitToken(field, inits.Syntax); 63_builder.EmitIntConstant(data.Length); 64_builder.EmitUnaligned(alignment: 1); 65_builder.EmitOpCode(ILOpCode.Cpblk, -3); 78_builder.EmitOpCode(ILOpCode.Dup); 82var field = _builder.module.GetFieldForData(data, alignment: (ushort)sizeInBytes, syntaxNode, _diagnostics.DiagnosticBag); 83_builder.EmitOpCode(ILOpCode.Ldtoken); 84_builder.EmitToken(field, syntaxNode); 85_builder.EmitOpCode(ILOpCode.Call, 0); 87_builder.EmitToken(createSpanHelperReference, syntaxNode); 90_builder.EmitLocalStore(temp); 91_builder.EmitLocalAddress(temp); 94_builder.EmitIntConstant(0); 95_builder.EmitOpCode(ILOpCode.Call, -1); 98_builder.EmitIntConstant(data.Length); 101_builder.EmitUnaligned((sbyte)sizeInBytes); 103_builder.EmitOpCode(ILOpCode.Cpblk, -3); 125_builder.EmitOpCode(ILOpCode.Localloc); 189_builder.EmitOpCode(ILOpCode.Dup); 208_builder.EmitIntConstant(index); 209_builder.EmitOpCode(ILOpCode.Add); 214_builder.EmitOpCode(ILOpCode.Add); 218_builder.EmitIntConstant(index); 219_builder.EmitOpCode(ILOpCode.Conv_i); 221_builder.EmitOpCode(ILOpCode.Mul); 222_builder.EmitOpCode(ILOpCode.Add); 230_builder.EmitOpCode(ILOpCode.Sizeof); 235_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); 682_builder.OpenLocalScope(); 700_builder.AssertStackEmpty(); 714_builder.OpenLocalScope(ScopeType.TryCatchFinally); 716_builder.OpenLocalScope(ScopeType.Try); 719_builder.CloseLocalScope(); // try 721_builder.OpenLocalScope(ScopeType.Finally); 729_builder.CloseLocalScope(); // finally 731_builder.CloseLocalScope(); // try-finally 745_builder.CloseLocalScope(); 755_builder.OpenLocalScope(); 775_builder.EmitBranch(ILOpCode.Br, s_returnLabel); 790_builder.CloseLocalScope(); 806_builder.OpenLocalScope(); 815_builder.AddLocalToScope(_builder.LocalSlotManager.GetLocal(local)); 821_builder.CloseLocalScope(); 826_builder.OpenLocalScope(ScopeType.StateMachineVariable); 831_builder.DefineUserDefinedStateMachineHoistedLocal(field.SlotIndex); 836_builder.CloseLocalScope(); 858_builder.InExceptionHandler; 869!_builder.InExceptionHandler; 891_builder.EmitLocalStore(LazyReturnTemp); 900_builder.EmitBranch(ILOpCode.Br, s_returnLabel); 914_builder.EmitLocalStore(LazyReturnTemp); 927_builder.EmitRet(expressionOpt == null); 946_builder.AssertStackEmpty(); 955_builder.OpenLocalScope(ScopeType.TryCatchFinally); 957_builder.OpenLocalScope(ScopeType.Try); 974_builder.CloseLocalScope(); 986_builder.OpenLocalScope(statement.PreferFaultHandler ? ScopeType.Fault : ScopeType.Finally); 990_builder.CloseLocalScope(); 993_builder.CloseLocalScope(); 1014_builder.CloseLocalScope(); 1063_builder.AdjustStack(1); // Account for exception on the stack. 1074_builder.OpenLocalScope(ScopeType.Catch, exceptionType); 1107_builder.OpenLocalScope(ScopeType.Filter); 1121_builder.EmitOpCode(ILOpCode.Isinst); 1122_builder.EmitToken(exceptionType, catchBlock.Syntax); 1123_builder.EmitOpCode(ILOpCode.Dup); 1124_builder.EmitBranch(ILOpCode.Brtrue, typeCheckPassedLabel); 1125_builder.EmitOpCode(ILOpCode.Pop); 1126_builder.EmitIntConstant(0); 1127_builder.EmitBranch(ILOpCode.Br, typeCheckFailedLabel); 1134_builder.MarkLabel(typeCheckPassedLabel); 1153_builder.EmitOpCode(ILOpCode.Unbox_any); 1173_builder.EmitLocalStore(GetLocal(exceptionSourceLocal)); 1187_builder.DefineUserDefinedStateMachineHoistedLocal(stateMachineField.SlotIndex); 1193_builder.EmitLocalStore(temp); 1198_builder.EmitLocalLoad(temp); 1210_builder.EmitOpCode(ILOpCode.Pop); 1215Debug.Assert(_builder.IsStackEmpty); 1226_builder.EmitIntConstant(0); 1227_builder.EmitOpCode(ILOpCode.Cgt_un); 1228_builder.MarkLabel(typeCheckFailedLabel); 1231_builder.MarkFilterConditionEnd(); 1236_builder.EmitOpCode(ILOpCode.Pop); 1244_builder.CloseLocalScope(); 1252_asyncCatchHandlerOffset = _builder.AllocateILMarker(); 1329_builder.EmitLocalStore(temp); 1351_builder.EmitIntegerSwitchJumpTable(switchCaseLabels, fallThroughLabel, key, expression.Type.EnumUnderlyingTypeOrSelf().PrimitiveTypeCode, expression.Syntax); 1415_builder.EmitLoad(keyTemp); 1416_builder.EmitBranch(ILOpCode.Brfalse, lengthBasedSwitchInfo.LengthBasedJumpTable.NullCaseLabel ?? fallThroughLabel, ILOpCode.Brtrue); 1424_builder.EmitLoadAddress(keyTemp); 1428_builder.EmitLoad(keyTemp); 1430_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); 1432_builder.EmitLocalStore(stringLength); 1436_builder.EmitIntegerSwitchJumpTable( 1454_builder.MarkLabel(charJumpTable.Label); 1459_builder.EmitLoadAddress(keyTemp); 1463_builder.EmitLoad(keyTemp); 1465_builder.EmitIntConstant(charJumpTable.SelectedCharPosition); 1466_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: -1); 1470_builder.EmitOpCode(ILOpCode.Ldind_u2); 1472_builder.EmitLocalStore(charTemp); 1476_builder.EmitIntegerSwitchJumpTable( 1492_builder.MarkLabel(stringJumpTable.Label); 1505_builder.EmitToken(lengthMethodRef, syntaxNode: null); 1547_builder.EmitLoad(key); 1548_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); 1549_builder.EmitToken(stringHashMethodRef, syntaxNode); 1554_builder.EmitLocalStore(keyHash); 1597_builder.EmitLoad(keyArg); 1598_builder.EmitBranch(ILOpCode.Brfalse, targetLabel, ILOpCode.Brtrue); 1609_builder.EmitLoadAddress(keyArg); 1613_builder.EmitLoad(keyArg); 1614_builder.EmitBranch(ILOpCode.Brfalse, skipToNext, ILOpCode.Brtrue); 1616_builder.EmitLoad(keyArg); 1620_builder.EmitOpCode(ILOpCode.Call, 0); 1622_builder.EmitToken(lengthMethodRef, null); 1626_builder.EmitBranch(ILOpCode.Brfalse, targetLabel, ILOpCode.Brtrue); 1627_builder.MarkLabel(skipToNext); 1642_builder.EmitStringSwitchJumpTable( 1738_builder.EmitLoad(key); 1739_builder.EmitConstantValue(stringConstant, syntaxNode); 1740_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: -1); 1741_builder.EmitToken(stringEqualityMethodRef, syntaxNode); 1744_builder.EmitBranch(ILOpCode.Brtrue, targetLabel, ILOpCode.Brfalse); 1765_builder.EmitLoad(key); 1766_builder.EmitConstantValue(stringConstant, syntaxNode); 1767_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); 1768_builder.EmitToken(asSpanRef, syntaxNode); 1769_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: -1); 1770_builder.EmitToken(sequenceEqualsRef, syntaxNode); 1773_builder.EmitBranch(ILOpCode.Brtrue, targetLabel, ILOpCode.Brfalse); 1787return _builder.LocalSlotManager.GetLocal(symbol); 1809_builder.AddLocalConstantToScope(localConstantDef); 1850var localDef = _builder.LocalSlotManager.DeclareLocal( 1868_builder.AddLocalToScope(localDef); 1927_builder.LocalSlotManager.FreeLocal(local); 1936return _builder.LocalSlotManager.AllocateSlot( 1946_builder.LocalSlotManager.FreeSlot(temp);