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> 229_builder.EmitBranch(ILOpCode.Br, doneLabel); 232_builder.AdjustStack(-1); 234_builder.MarkLabel(consequenceLabel); 237_builder.MarkLabel(doneLabel); 252_builder.EmitBranch(ILOpCode.Brtrue, whenValueTypeLabel); 256_builder.EmitBranch(ILOpCode.Br, doneLabel); 257_builder.AdjustStack(-1); 259_builder.MarkLabel(whenValueTypeLabel); 263_builder.MarkLabel(doneLabel); 293_builder.EmitLocalAddress(GetLocal(localAccess)); 309_builder.EmitOpCode(ILOpCode.Dup); 323_builder.EmitOpCode(ILOpCode.Refanyval); 338_builder.EmitLocalStore(value); 339_builder.EmitLocalAddress(value); 406_builder.EmitOpCode(ILOpCode.Readonly); 411_builder.EmitOpCode(ILOpCode.Ldelema); 417_builder.EmitArrayElementAddress(_module.Translate((ArrayTypeSymbol)arrayAccess.Expression.Type), 464_builder.EmitOpCode(ILOpCode.Ldsflda); 488_builder.EmitLoadArgumentAddrOpcode(slot); 492_builder.EmitLoadArgumentOpcode(slot); 564_builder.EmitOpCode(field.RefKind == RefKind.None ? ILOpCode.Ldflda : ILOpCode.Ldfld); 587_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); 1125_builder.EmitOpCode(ILOpCode.Pop); 1173_builder.EmitOpCode(ILOpCode.Volatile); 1175_builder.EmitOpCode(ILOpCode.Ldsfld); 1199_builder.EmitOpCode(ILOpCode.Volatile); 1202_builder.EmitOpCode(ILOpCode.Ldfld); 1248_builder.EmitOpCode(ILOpCode.Unbox); 1262_builder.EmitOpCode(ILOpCode.Ldflda); 1414_builder.EmitLocalLoad(definition); 1445_builder.EmitLoadArgumentOpcode(slot); 1467_builder.EmitOpCode(ILOpCode.Ldind_i1); 1472_builder.EmitOpCode(ILOpCode.Ldind_u1); 1476_builder.EmitOpCode(ILOpCode.Ldind_i2); 1481_builder.EmitOpCode(ILOpCode.Ldind_u2); 1485_builder.EmitOpCode(ILOpCode.Ldind_i4); 1489_builder.EmitOpCode(ILOpCode.Ldind_u4); 1494_builder.EmitOpCode(ILOpCode.Ldind_i8); 1501_builder.EmitOpCode(ILOpCode.Ldind_i); 1505_builder.EmitOpCode(ILOpCode.Ldind_r4); 1509_builder.EmitOpCode(ILOpCode.Ldind_r8); 1515_builder.EmitOpCode(ILOpCode.Ldind_ref); 1519_builder.EmitOpCode(ILOpCode.Ldobj); 1674_builder.EmitOpCode(ILOpCode.Initobj); // initobj <MyStruct> 1688var countBefore = _builder.LocalSlotManager.StartScopeOfTrackingAddressedLocals(); 1692_builder.LocalSlotManager.EndScopeOfTrackingAddressedLocals(countBefore, 1704_builder.EmitOpCode(ILOpCode.Constrained); 1708_builder.EmitOpCode(ILOpCode.Call, stackBehavior); 1724var countBefore = _builder.LocalSlotManager.StartScopeOfTrackingAddressedLocals(); 1792_builder.LocalSlotManager.EndScopeOfTrackingAddressedLocals(countBefore, MightEscapeTemporaryRefs(call, used: true)); 1794countBefore = _builder.LocalSlotManager.StartScopeOfTrackingAddressedLocals(); 1831_builder.EmitLocalStore(tempOpt); 1832_builder.EmitLocalAddress(tempOpt); 1857_builder.LocalSlotManager.EndScopeOfTrackingAddressedLocals(countBefore, MightEscapeTemporaryRefs(call, used: useKind != UseKind.Unused)); 2050_builder.EmitOpCode(ILOpCode.Call, stackBehavior); 2054_builder.EmitOpCode(ILOpCode.Callvirt, stackBehavior); 2058_builder.EmitOpCode(ILOpCode.Constrained); 2060_builder.EmitOpCode(ILOpCode.Callvirt, stackBehavior); 2105_builder.EmitBranch(ILOpCode.Brtrue, whenNotNullLabel); 2112_builder.EmitLocalStore(tempOpt); 2113_builder.EmitLocalAddress(tempOpt); 2117_builder.MarkLabel(whenNotNullLabel); 2382_builder.EmitOpCode(ILOpCode.Conv_ovf_i); 2386_builder.EmitOpCode(ILOpCode.Conv_ovf_i_un); 2405_builder.EmitOpCode(ILOpCode.Ldlen); 2419_builder.EmitNumericConversion(typeFrom, typeTo, @checked: false); 2432_builder.EmitOpCode(ILOpCode.Newarr); 2437_builder.EmitArrayCreation(_module.Translate(arrayType), expression.Syntax); 2502var countBefore = _builder.LocalSlotManager.StartScopeOfTrackingAddressedLocals(); 2506_builder.LocalSlotManager.EndScopeOfTrackingAddressedLocals(countBefore, 2510_builder.EmitOpCode(ILOpCode.Newobj, stackAdjustment); 2734_builder.EmitOpCode(ILOpCode.Initobj); // initobj <MyStruct> 2765var countBefore = _builder.LocalSlotManager.StartScopeOfTrackingAddressedLocals(); 2769_builder.LocalSlotManager.EndScopeOfTrackingAddressedLocals(countBefore, 2774_builder.EmitOpCode(ILOpCode.Call, stackAdjustment); 2797if (local != null && !_builder.PossiblyDefinedOutsideOfTry(GetLocal(local))) 2867_builder.EmitLoadArgumentOpcode(ParameterSlot(left)); 2901_builder.EmitLocalLoad(localDefinition); 3096_builder.EmitOpCode(ILOpCode.Dup); 3122_builder.EmitLocalStore(temp); 3159_builder.EmitLocalStore(GetLocal(local)); 3241_builder.EmitLocalAddress(temp); 3245_builder.EmitLocalLoad(temp); 3260_builder.EmitOpCode(ILOpCode.Stobj); 3272_builder.EmitArrayElementStore(_module.Translate(arrayType), syntaxNode); 3294_builder.EmitOpCode(ILOpCode.Stelem_i1); 3300_builder.EmitOpCode(ILOpCode.Stelem_i2); 3305_builder.EmitOpCode(ILOpCode.Stelem_i4); 3310_builder.EmitOpCode(ILOpCode.Stelem_i8); 3317_builder.EmitOpCode(ILOpCode.Stelem_i); 3321_builder.EmitOpCode(ILOpCode.Stelem_r4); 3325_builder.EmitOpCode(ILOpCode.Stelem_r8); 3331_builder.EmitOpCode(ILOpCode.Stelem_ref); 3335_builder.EmitOpCode(ILOpCode.Stelem); 3348_builder.EmitOpCode(ILOpCode.Volatile); 3359_builder.EmitOpCode(field.IsStatic ? ILOpCode.Stsfld : ILOpCode.Stfld); 3375_builder.EmitStoreArgumentOpcode(slot); 3392_builder.EmitOpCode(ILOpCode.Stind_i1); 3398_builder.EmitOpCode(ILOpCode.Stind_i2); 3403_builder.EmitOpCode(ILOpCode.Stind_i4); 3408_builder.EmitOpCode(ILOpCode.Stind_i8); 3415_builder.EmitOpCode(ILOpCode.Stind_i); 3419_builder.EmitOpCode(ILOpCode.Stind_r4); 3423_builder.EmitOpCode(ILOpCode.Stind_r8); 3429_builder.EmitOpCode(ILOpCode.Stind_ref); 3433_builder.EmitOpCode(ILOpCode.Stobj); 3444_builder.EmitOpCode(ILOpCode.Pop); 3460_builder.EmitOpCode(ILOpCode.Isinst); 3465_builder.EmitOpCode(ILOpCode.Ldnull); 3466_builder.EmitOpCode(ILOpCode.Cgt_un); 3489_builder.EmitOpCode(ILOpCode.Isinst); 3494_builder.EmitOpCode(ILOpCode.Unbox_any); 3510_builder.EmitConstantValue(constantValue, syntaxNode); 3518_builder.EmitOpCode(ILOpCode.Ldc_i4_0); 3519_builder.EmitOpCode(ILOpCode.Conv_u); 3523_builder.EmitOpCode(ILOpCode.Ldc_i4_0); 3524_builder.EmitOpCode(ILOpCode.Conv_i); 3559_builder.EmitConstantValue(constantValue, syntaxNode); 3568_builder.EmitLocalAddress(temp); // ldloca temp 3569_builder.EmitOpCode(ILOpCode.Initobj); // initobj <MyStruct> 3571_builder.EmitLocalLoad(temp); // ldloc temp 3578_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); //argument off, return value on 3587_builder.EmitOpCode(ILOpCode.Ldtoken); 3595_builder.EmitOpCode(ILOpCode.Sizeof); 3603_builder.EmitOpCode(ILOpCode.Ldtoken); 3623_builder.EmitIntConstant(GetLocal(node.Local).SlotIndex); 3637_builder.EmitIntConstant(node.Parameter.Ordinal); 3650_builder.EmitOpCode(ILOpCode.Ldtoken); 3651_builder.EmitToken(fieldRef, syntax, Cci.MetadataWriter.RawTokenEncoding.LiftedVariableId); 3657_builder.EmitOpCode(ILOpCode.Ldtoken); 3658_builder.EmitGreatestMethodToken(); 3663_builder.EmitOpCode(ILOpCode.Ldsfld); 3669_builder.EmitOpCode(ILOpCode.Stsfld); 3675_builder.EmitToken( 3684_builder.EmitOpCode(ILOpCode.Ldsflda); 3685_builder.EmitToken( 3694_builder.EmitOpCode(ILOpCode.Call, -1); 3695_builder.EmitToken( 3704_builder.EmitOpCode(ILOpCode.Ldsfld); 3705_builder.EmitToken( 3712_builder.EmitOpCode(ILOpCode.Ldstr); 3713_builder.EmitModuleVersionIdStringToken(); 3718_builder.EmitOpCode(ILOpCode.Ldsfld); 3724_builder.EmitOpCode(ILOpCode.Stsfld); 3730_builder.EmitToken(_module.GetInstrumentationPayloadRoot(node.AnalysisKind, _module.Translate(node.Type, node.Syntax, _diagnostics.DiagnosticBag), node.Syntax, _diagnostics.DiagnosticBag), node.Syntax); 3736_builder.EmitOpCode(ILOpCode.Ldtoken); 3737_builder.EmitSourceDocumentIndexToken(node.Document); 3742_builder.EmitOpCode(ILOpCode.Ldtoken); 3750_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); //argument off, return value on 3755_builder.EmitOpCode(ILOpCode.Ldtoken); 3757_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: -1); //2 arguments off, return value on 3763_builder.EmitOpCode(ILOpCode.Castclass); 3770_builder.EmitOpCode(ILOpCode.Ldtoken); 3777_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: 0); //argument off, return value on 3782_builder.EmitOpCode(ILOpCode.Ldtoken); 3784_builder.EmitOpCode(ILOpCode.Call, stackAdjustment: -1); //2 arguments off, return value on 3790_builder.EmitOpCode(ILOpCode.Castclass); 3823_builder.EmitNumericConversion(Cci.PrimitiveTypeCode.Int32, toType, @checked: false); 3867_builder.EmitBranch(ILOpCode.Br, doneLabel); 3871_builder.AdjustStack(-1); 3874_builder.MarkLabel(consequenceLabel); 3891_builder.MarkLabel(doneLabel); 3927_builder.EmitOpCode(ILOpCode.Dup); 3936_builder.EmitBranch(ILOpCode.Brtrue, ifLeftNotNullLabel); 3940_builder.EmitOpCode(ILOpCode.Pop); 3954_builder.MarkLabel(ifLeftNotNullLabel); 4069_builder.EmitLocalStore(temp); 4070_builder.EmitLocalLoad(temp); 4078_builder.EmitOpCode(ILOpCode.Box); 4094_builder.EmitLocalStore(temp); 4099var countBefore = _builder.LocalSlotManager.StartScopeOfTrackingAddressedLocals(); 4103_builder.LocalSlotManager.EndScopeOfTrackingAddressedLocals(countBefore, 4110_builder.EmitLocalLoad(temp); 4114_builder.EmitOpCode(ILOpCode.Calli, stackBehavior); 4160_builder.EmitOpCode(ILOpCode.Nop); 4186_builder.EmitOpCode(ILOpCode.Constrained); 4190_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);