Skip to content

Conversation

@alexcovington
Copy link
Contributor

PR to address #47786. Adds Compiler::IsInvariant and GenTree::IsInvariant functions to check if op is an invariant, changes a few checks to use this function instead of only using OperIsConst.

Here are the library diffs:

Found 89 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 33371454
Total bytes of diff: 33369057
Total bytes of delta: -2397 (-0.01% of base)
    diff is an improvement.


Top file regressions (bytes):
         210 : Microsoft.CodeAnalysis.dasm (0.03% of base)
          37 : Microsoft.CodeAnalysis.CSharp.dasm (0.00% of base)
          14 : System.Security.Cryptography.X509Certificates.dasm (0.01% of base)

Top file improvements (bytes):
       -1102 : Microsoft.CodeAnalysis.VisualBasic.dasm (-0.05% of base)
        -256 : System.Private.CoreLib.dasm (-0.01% of base)
        -182 : System.Data.Common.dasm (-0.02% of base)
        -148 : System.Collections.Immutable.dasm (-0.06% of base)
        -121 : System.Net.Security.dasm (-0.06% of base)
         -92 : System.Formats.Asn1.dasm (-0.14% of base)
         -90 : System.Security.Cryptography.Algorithms.dasm (-0.03% of base)
         -79 : System.Private.Xml.dasm (-0.00% of base)
         -66 : System.Net.Http.dasm (-0.01% of base)
         -52 : System.Net.HttpListener.dasm (-0.03% of base)
         -44 : System.Security.Cryptography.Cng.dasm (-0.03% of base)
         -41 : System.Runtime.Numerics.dasm (-0.06% of base)
         -33 : System.Net.Quic.dasm (-0.06% of base)
         -30 : System.IO.Pipes.dasm (-0.09% of base)
         -27 : System.Net.WebSockets.dasm (-0.06% of base)
         -26 : System.Security.Cryptography.Pkcs.dasm (-0.01% of base)
         -24 : System.Memory.dasm (-0.03% of base)
         -23 : System.Numerics.Tensors.dasm (-0.07% of base)
         -19 : System.Linq.Parallel.dasm (-0.00% of base)
         -18 : System.Linq.dasm (-0.01% of base)

52 total files with Code Size differences (49 improved, 3 regressed), 217 unchanged.

Top method regressions (bytes):
         144 ( 6.31% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - AbstractFlowPass`1:VisitBinaryOperator(BoundBinaryOperator):BoundNode:this (2 methods)
          98 (30.63% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - BoundFieldAccess:Update(BoundExpression,FieldSymbol,bool,bool,SymbolsInProgress`1,TypeSymbol):BoundFieldAccess:this
          97 ( 8.47% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - TypeBinder:LookupTypeOrNamespaceSyntax(LookupResult,TypeSyntax,Binder,DiagnosticBag,byref,bool,bool,bool,bool)
          92 ( 4.51% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - Parser:ParseNextQueryOperator():QueryClauseSyntax:this
          82 ( 3.27% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - OverloadResolution:OperatorInvocationOverloadResolution(ArrayBuilder`1,BoundExpression,BoundExpression,Binder,bool,bool,byref):OverloadResolutionResult
          79 ( 5.45% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - Binder:BindUsingBlock(UsingBlockSyntax,DiagnosticBag):BoundStatement:this
          78 ( 1.46% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - SourceMemberMethodSymbol:BindSingleHandlesClause(HandlesClauseItemSyntax,Binder,DiagnosticBag,ArrayBuilder`1,ArrayBuilder`1,ArrayBuilder`1,byref):HandledEvent:this
          77 ( 3.02% of base) : Microsoft.CodeAnalysis.CSharp.dasm - Binder:BindAnonymousObjectCreation(AnonymousObjectCreationExpressionSyntax,DiagnosticBag):BoundExpression:this
          76 ( 2.89% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - Binder:BindCollectionRangeVariable(CollectionRangeVariableSyntax,bool,HashSet`1,DiagnosticBag):BoundQueryableSource:this
          76 ( 5.18% of base) : Microsoft.CodeAnalysis.CSharp.dasm - Binder:BindEventAssignment(AssignmentExpressionSyntax,BoundEventAccess,BoundExpression,int,DiagnosticBag):BoundExpression:this
          72 ( 5.39% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - SourceNamedTypeSymbol:ValidateImplementedInterfaces(SyntaxList`1,HashSet`1,ConsList`1,Binder,DiagnosticBag):this
          71 ( 1.72% of base) : Microsoft.CodeAnalysis.CSharp.dasm - MethodBodySynthesizer:ConstructFieldLikeEventAccessorBody_Regular(SourceEventSymbol,bool,CSharpCompilation,DiagnosticBag):BoundBlock
          65 ( 2.42% of base) : Microsoft.CodeAnalysis.dasm - SyntaxDiffer:GetSimilarity(SyntaxNodeOrToken,SyntaxNodeOrToken):int:this
          63 ( 9.74% of base) : Microsoft.CodeAnalysis.CSharp.dasm - LanguageParser:ParseCompilationUnitCore():CompilationUnitSyntax:this
          63 ( 5.87% of base) : Microsoft.CodeAnalysis.CSharp.dasm - SyntaxFactory:ClassDeclaration(SyntaxList`1,SyntaxTokenList,SyntaxToken,SyntaxToken,TypeParameterListSyntax,BaseListSyntax,SyntaxList`1,SyntaxToken,SyntaxList`1,SyntaxToken,SyntaxToken):ClassDeclarationSyntax
          62 ( 4.88% of base) : Microsoft.CodeAnalysis.CSharp.dasm - ForEachLoopBinder:PerformForEachPatternOverloadResolution(TypeSymbol,ArrayBuilder`1,bool,DiagnosticBag):MethodSymbol:this
          62 ( 6.70% of base) : Microsoft.CodeAnalysis.CSharp.dasm - LocalRewriter:MakeConversion(CSharpSyntaxNode,BoundExpression,Conversion,TypeSymbol,bool,bool,ConstantValue):BoundExpression:this
          61 ( 3.05% of base) : Microsoft.CodeAnalysis.CSharp.dasm - SourceNamedTypeSymbol:MakeDeclaredBases(ConsList`1,DiagnosticBag):Tuple`2:this
          60 ( 2.11% of base) : Microsoft.CodeAnalysis.CSharp.dasm - LanguageParser:ParseVariableDeclarator(TypeSyntax,int,bool,bool):VariableDeclaratorSyntax:this
          58 ( 2.33% of base) : Microsoft.CodeAnalysis.CSharp.dasm - ConstraintsHelper:ResolveBounds(TypeParameterSymbol,AssemblySymbol,ConsList`1,ImmutableArray`1,bool,CSharpCompilation,ArrayBuilder`1,byref):TypeParameterBounds

Top method improvements (bytes):
        -231 (-6.21% of base) : Microsoft.CodeAnalysis.CSharp.dasm - Binder:BindQuery(QueryExpressionSyntax,DiagnosticBag):BoundExpression:this
        -195 (-6.76% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - Parser:ParseGenericParameters():TypeParameterListSyntax:this
        -189 (-8.03% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - Binder:BuildDelegateRelaxationLambda(VisualBasicSyntaxNode,MethodSymbol,BoundMethodGroup,int,bool,bool,DiagnosticBag):BoundLambda:this
        -163 (-11.46% of base) : Microsoft.CodeAnalysis.CSharp.dasm - Binder:ResolveDefaultMethodGroup(BoundMethodGroup,AnalyzedArguments,bool,byref,bool,bool):MethodGroupResolution:this
        -157 (-3.23% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - Binder:ReportOverloadResolutionFailureAndProduceBoundNode(VisualBasicSyntaxNode,int,ArrayBuilder`1,ImmutableArray`1,TypeSymbol,ImmutableArray`1,ImmutableArray`1,DiagnosticBag,VisualBasicSyntaxNode,BoundMethodOrPropertyGroup,Symbol,bool,BoundTypeExpression,Symbol,Location):BoundExpression:this
        -130 (-13.66% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - Parser:ParseCompilationUnitCore():CompilationUnitSyntax:this
        -124 (-7.12% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - AbstractFlowPass`1:Scan():bool:this (3 methods)
        -107 (-4.82% of base) : Microsoft.CodeAnalysis.CSharp.dasm - Binder:CreateUserDefinedConversion(CSharpSyntaxNode,BoundExpression,Conversion,bool,TypeSymbol,DiagnosticBag):BoundExpression:this
         -99 (-10.82% of base) : Microsoft.CodeAnalysis.CSharp.dasm - Binder:CreateBadCall(CSharpSyntaxNode,String,BoundExpression,ImmutableArray`1,ubyte,ImmutableArray`1,AnalyzedArguments,bool,bool):BoundCall:this
         -98 (-13.39% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - Binder:BuildDelegateRelaxationLambda(VisualBasicSyntaxNode,VisualBasicSyntaxNode,BoundExpression,MethodSymbol,BoundTypeArguments,int,MethodSymbol,int,bool,bool,DiagnosticBag,byref):BoundLambda:this
         -85 (-3.86% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - LocalRewriter:RewriteIfStatement(VisualBasicSyntaxNode,VisualBasicSyntaxNode,BoundExpression,BoundStatement,BoundStatement,bool,ImmutableArray`1):BoundStatement:this
         -84 (-3.71% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - AnonymousTypeToStringMethodSymbol:GetBoundMethodBody(DiagnosticBag,byref):BoundBlock:this
         -79 (-3.07% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - Binder:BindUnaryOperator(UnaryExpressionSyntax,DiagnosticBag):BoundExpression:this
         -78 (-6.14% of base) : Microsoft.CodeAnalysis.CSharp.dasm - LocalRewriter:RewriteForStatement(CSharpSyntaxNode,ImmutableArray`1,BoundStatement,BoundExpression,CSharpSyntaxNode,TextSpan,BoundStatement,BoundStatement,GeneratedLabelSymbol,GeneratedLabelSymbol,bool):BoundStatement:this
         -71 (-1.21% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - AbstractFlowPass`1:VisitTryStatement(BoundTryStatement):BoundNode:this (3 methods)
         -69 (-6.07% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - LocalRewriter:MakeBinaryExpression(VisualBasicSyntaxNode,int,BoundExpression,BoundExpression,bool,TypeSymbol):BoundExpression:this
         -68 (-6.42% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - SourceNamedTypeSymbol:MakeAcyclicInterfaces(DiagnosticBag):ImmutableArray`1:this
         -68 (-2.86% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - Parser:ParseFromControlVars():SeparatedSyntaxList`1:this
         -66 (-5.89% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - Binder:ValidateMethodForDelegateInvoke(BoundAddressOfOperator,CandidateAnalysisResult,MethodSymbol,bool,bool,DiagnosticBag):KeyValuePair`2
         -62 (-2.60% of base) : Microsoft.CodeAnalysis.CSharp.dasm - <Microsoft-Cci-ITypeDefinition-GetExplicitImplementationOverrides>d__31:MoveNext():bool:this

Top method regressions (percentages):
          23 (37.70% of base) : Microsoft.CodeAnalysis.dasm - PeWriter:ComputeSizeOfWin32Resources(int):int:this
          98 (30.63% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - BoundFieldAccess:Update(BoundExpression,FieldSymbol,bool,bool,SymbolsInProgress`1,TypeSymbol):BoundFieldAccess:this
          11 (18.97% of base) : Microsoft.CodeAnalysis.dasm - DiagnosticWithInfo:get_Descriptor():DiagnosticDescriptor:this
          10 (17.54% of base) : Microsoft.CodeAnalysis.dasm - DiagnosticWithInfo:get_Id():String:this
          10 (15.62% of base) : Microsoft.CodeAnalysis.dasm - DiagnosticWithInfo:get_Category():String:this
          16 (12.60% of base) : Microsoft.CodeAnalysis.CSharp.dasm - DataFlowsInWalker:ResetState(LocalState):LocalState:this
          29 (11.15% of base) : Microsoft.CodeAnalysis.dasm - ILBuilder:WriteOpCode(BlobBuilder,ushort)
          34 (10.97% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - BoundUnaryOperator:Update(int,BoundExpression,bool,ConstantValue,TypeSymbol):BoundUnaryOperator:this
          16 (10.53% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - DataFlowsInWalker:ResetState(LocalState):LocalState:this
          19 (10.50% of base) : Microsoft.CodeAnalysis.CSharp.dasm - LanguageParser:IsInitializerMember():bool:this
          18 (10.40% of base) : Microsoft.CodeAnalysis.CSharp.dasm - LanguageParser:ParseAliasQualifiedName(int):NameSyntax:this
          18 (10.23% of base) : Microsoft.CodeAnalysis.CSharp.dasm - DirectiveParser:ParseLogicalNot():ExpressionSyntax:this
          18 ( 9.89% of base) : Microsoft.CodeAnalysis.CSharp.dasm - DirectiveParser:ParseLogicalAnd():ExpressionSyntax:this
          63 ( 9.74% of base) : Microsoft.CodeAnalysis.CSharp.dasm - LanguageParser:ParseCompilationUnitCore():CompilationUnitSyntax:this
          52 ( 9.54% of base) : Microsoft.CodeAnalysis.CSharp.dasm - BoundIndexerAccess:Update(BoundExpression,PropertySymbol,ImmutableArray`1,ImmutableArray`1,ImmutableArray`1,bool,ImmutableArray`1,TypeSymbol):BoundIndexerAccess:this
           2 ( 9.52% of base) : System.Private.CoreLib.dasm - Variant:.ctor(float):this
          38 ( 9.48% of base) : Microsoft.CodeAnalysis.CSharp.dasm - ConversionsBase:HasUnboxingTypeParameterConversion(TypeSymbol,TypeSymbol,byref):bool:this
          45 ( 9.41% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - MemberLookup:LookupImmediate(LookupResult,NamespaceSymbol,String,int,int,Binder,byref)
          31 ( 9.06% of base) : Microsoft.CodeAnalysis.CSharp.dasm - PreciseAbstractFlowPass`1:VisitQueryClause(BoundQueryClause):BoundNode:this (2 methods)
          14 ( 9.03% of base) : Microsoft.CodeAnalysis.CSharp.dasm - Binder:IsCrefAccessible(Symbol):bool:this

Top method improvements (percentages):
         -57 (-19.13% of base) : Microsoft.CodeAnalysis.CSharp.dasm - BoundBinaryOperator:.ctor(CSharpSyntaxNode,int,BoundExpression,BoundExpression,ConstantValue,MethodSymbol,ubyte,ImmutableArray`1,TypeSymbol,bool):this
         -44 (-15.88% of base) : Microsoft.CodeAnalysis.CSharp.dasm - BoundMethodGroup:.ctor(CSharpSyntaxNode,ImmutableArray`1,String,ImmutableArray`1,Symbol,DiagnosticInfo,int,BoundExpression,ubyte,bool):this
         -38 (-15.38% of base) : Microsoft.CodeAnalysis.CSharp.dasm - BoundBinaryOperator:.ctor(CSharpSyntaxNode,int,BoundExpression,BoundExpression,ConstantValue,MethodSymbol,ubyte,TypeSymbol,bool):this
         -37 (-14.86% of base) : Microsoft.CodeAnalysis.CSharp.dasm - BoundConditionalOperator:.ctor(CSharpSyntaxNode,BoundExpression,BoundExpression,BoundExpression,ConstantValue,TypeSymbol,bool):this
         -53 (-13.66% of base) : Microsoft.CodeAnalysis.CSharp.dasm - ContextAwareSyntax:ArrayCreationExpression(SyntaxToken,ArrayTypeSyntax,InitializerExpressionSyntax):ArrayCreationExpressionSyntax:this
        -130 (-13.66% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - Parser:ParseCompilationUnitCore():CompilationUnitSyntax:this
         -98 (-13.39% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - Binder:BuildDelegateRelaxationLambda(VisualBasicSyntaxNode,VisualBasicSyntaxNode,BoundExpression,MethodSymbol,BoundTypeArguments,int,MethodSymbol,int,bool,bool,DiagnosticBag,byref):BoundLambda:this
         -56 (-12.53% of base) : Microsoft.CodeAnalysis.CSharp.dasm - StackOptimizerPass1:IsNestedLocalOfCompoundOperator(LocalSymbol,BoundSequence):bool:this
         -23 (-12.23% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - BoundLambda:.ctor(VisualBasicSyntaxNode,LambdaSymbol,BoundBlock,ImmutableArray`1,LambdaBodyBinder,int,int,bool):this
         -27 (-12.00% of base) : Microsoft.CodeAnalysis.CSharp.dasm - ContextAwareSyntax:ElseClause(SyntaxToken,StatementSyntax):ElseClauseSyntax:this
         -27 (-12.00% of base) : Microsoft.CodeAnalysis.CSharp.dasm - ContextAwareSyntax:FinallyClause(SyntaxToken,BlockSyntax):FinallyClauseSyntax:this
         -22 (-11.64% of base) : Microsoft.CodeAnalysis.CSharp.dasm - CSharpCompilation:get_EnableEnumArrayBlockInitialization():bool:this
        -163 (-11.46% of base) : Microsoft.CodeAnalysis.CSharp.dasm - Binder:ResolveDefaultMethodGroup(BoundMethodGroup,AnalyzedArguments,bool,byref,bool,bool):MethodGroupResolution:this
         -34 (-10.93% of base) : System.Private.CoreLib.dasm - CustomAttribute:GetCustomAttributes(RuntimeModule,int,int,RuntimeType):ref
         -99 (-10.82% of base) : Microsoft.CodeAnalysis.CSharp.dasm - Binder:CreateBadCall(CSharpSyntaxNode,String,BoundExpression,ImmutableArray`1,ubyte,ImmutableArray`1,AnalyzedArguments,bool,bool):BoundCall:this
         -21 (-10.61% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - LambdaRewriter:InLoopOrLambda(SyntaxNode,SyntaxNode):bool:this
         -40 (-10.50% of base) : Microsoft.CodeAnalysis.CSharp.dasm - BoundForEachStatement:.ctor(CSharpSyntaxNode,ForEachEnumeratorInfo,Conversion,BoundTypeExpression,LocalSymbol,BoundExpression,BoundStatement,bool,GeneratedLabelSymbol,GeneratedLabelSymbol,bool):this
         -50 (-10.44% of base) : Microsoft.CodeAnalysis.CSharp.dasm - Binder:MakeQueryClause(CSharpSyntaxNode,BoundExpression,RangeVariableSymbol,BoundExpression,BoundExpression,BoundExpression):BoundQueryClause:this
         -37 (-10.42% of base) : Microsoft.CodeAnalysis.dasm - AbstractSyntaxNavigator:TryGetLastTokenForStructuredTrivia(SyntaxTrivia,Func`2,Func`2,byref):bool:this
         -26 (-10.36% of base) : Microsoft.CodeAnalysis.CSharp.dasm - BoundCatchBlock:.ctor(CSharpSyntaxNode,LocalSymbol,BoundExpression,TypeSymbol,BoundExpression,BoundBlock,bool,bool):this

1354 total methods with Code Size differences (772 improved, 582 regressed), 199348 unchanged.

--------------------------------------------------------------------------------

Please let me know if I can add/expand on anything above.

@ghost ghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Feb 15, 2021
Copy link
Contributor

@sandreenko sandreenko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please look at few regressions and see what is causing them?
In order to do this I usually build Core_Root_base, Core_Root_diff and then set COMPlus_NgenDump to the method that I need to get the diffs using different set CORE_ROOT.

The full command in my case would be:

set Core_Root= D:\Sergey\git\runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root_diff
set Complus_NgenDump=methodName
D:\Sergey\git\runtime\artifacts\bin\coreclr\windows.x64.Checked\crossgen.exe /Platform_Assemblies_Paths "D:\Sergey\git\runtime\artifacts\bin\coreclr\windows.x64.Checked\IL" /out "D:\Sergey\git\runtime\artifacts\bin\coreclr\windows.x64.Checked\System.Private.CoreLib.dll" "D:\Sergey\git\runtime\artifacts\bin\coreclr\windows.x64.Checked\IL\System.Private.CoreLib.dll">D:\Sergey\logs\temp\diff.txt

the same for base.

and then compare diff/base in meld/notepad++

}

BOOL Compiler::IsInvariant(GenTree* tree)
{
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need this function or GenTree::IsInvariant can be left alone and this one deleted?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The GenTree::IsInvariant wraps a call to this function. I could consolidate it all into one or the other if you think that would be better, I just couldn't get the call to Compiler::IsInvariant to work from within gentree.h.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have tried it in sandreenko@de99bfd it works well, what issue do you see? Can you cherry-pick this change?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, I don't see any obvious issues. I'll cherry-pick the commit, double check the diffs locally, and push the updated branch if no issues come up in the diffs.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No major change in the diff, pushed the updated branch. Thanks for the help!

optMethodFlags |= OMF_HAS_NULLCHECK;
}

BOOL Compiler::IsInvariant(GenTree* tree)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you can change impIsAddressInLocal to (const GenTree* tree, GenTree** lclVarTreeOut) and declare tree const here as well, so you don't need to cast const away in bool GenTree::IsInvariant() const

{
// This can be extended to non-constant nodes, but not to local or indir nodes.
if (OperIsConst() && ((gtFlags & GTF_REUSE_REG_VAL) != 0))
if (IsInvariant() && ((gtFlags & GTF_REUSE_REG_VAL) != 0))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks like it did not get any diffs, it was Total bytes of delta: -2397 (-0.01% of base) before this and after, I wonder if something else is blocking it.

alexcovington and others added 3 commits February 15, 2021 16:12
Co-authored-by: Sergey Andreenko <[email protected]>
Co-authored-by: Sergey Andreenko <[email protected]>
Co-authored-by: Sergey Andreenko <[email protected]>
@alexcovington
Copy link
Contributor Author

Could you please look at few regressions and see what is causing them?

Sure, I'll check it and update with more details.

@sandreenko sandreenko added the enhancement Product code improvement that does NOT require public API changes/additions label Feb 16, 2021
@sandreenko
Copy link
Contributor

/azp run runtime-coreclr jitstress

@sandreenko
Copy link
Contributor

PTAL @AndyAyersMS @dotnet/jit-contrib

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@alexcovington
Copy link
Contributor Author

@sandreenko Still looking into the regressions. Merged this branch with master and my updated my local master branch this morning just to make sure everything was up-to-date and re-ran the diffs, I think my first set of numbers may have had a stale build. Here's the new set of diffs:

Found 88 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 33358450
Total bytes of diff: 33356675
Total bytes of delta: -1775 (-0.01% of base)
    diff is an improvement.


Top file regressions (bytes):
          14 : System.Security.Cryptography.X509Certificates.dasm (0.01% of base)

Top file improvements (bytes):
        -264 : System.Private.CoreLib.dasm (-0.01% of base)
        -184 : Microsoft.CodeAnalysis.VisualBasic.dasm (-0.01% of base)
        -182 : System.Data.Common.dasm (-0.02% of base)
        -148 : System.Collections.Immutable.dasm (-0.06% of base)
        -121 : System.Net.Security.dasm (-0.06% of base)
         -92 : System.Formats.Asn1.dasm (-0.14% of base)
         -90 : System.Security.Cryptography.Algorithms.dasm (-0.03% of base)
         -79 : System.Private.Xml.dasm (-0.00% of base)
         -66 : System.Net.Http.dasm (-0.01% of base)
         -52 : System.Net.HttpListener.dasm (-0.03% of base)
         -44 : System.Security.Cryptography.Cng.dasm (-0.03% of base)
         -41 : System.Runtime.Numerics.dasm (-0.06% of base)
         -39 : Microsoft.CodeAnalysis.CSharp.dasm (-0.00% of base)
         -33 : System.Net.Quic.dasm (-0.06% of base)
         -30 : System.IO.Pipes.dasm (-0.09% of base)
         -27 : System.Net.WebSockets.dasm (-0.06% of base)
         -26 : System.Security.Cryptography.Pkcs.dasm (-0.01% of base)
         -24 : System.Memory.dasm (-0.03% of base)
         -23 : System.Numerics.Tensors.dasm (-0.07% of base)
         -19 : System.Linq.Parallel.dasm (-0.00% of base)

52 total files with Code Size differences (51 improved, 1 regressed), 219 unchanged.

Top method regressions (bytes):
          21 ( 1.50% of base) : System.Net.Http.dasm - <ProcessHeadersFrame>d__51:MoveNext():this
          14 ( 0.55% of base) : System.Security.Cryptography.X509Certificates.dasm - CertificateRequest:Create(X500DistinguishedName,X509SignatureGenerator,DateTimeOffset,DateTimeOffset,ReadOnlySpan`1):X509Certificate2:this
           9 ( 0.95% of base) : System.Security.Cryptography.Pkcs.dasm - Pkcs12SafeContents:Decrypt(ReadOnlySpan`1,ReadOnlySpan`1):this
           8 ( 2.89% of base) : System.Collections.Immutable.dasm - Builder:set_Item(__Canon,__Canon):this (2 methods)
           8 ( 3.05% of base) : System.Collections.Immutable.dasm - Builder:Add(__Canon,__Canon):this (2 methods)
           6 ( 0.85% of base) : System.Security.Cryptography.Algorithms.dasm - AesCcm:Encrypt(ref,ref,ref,ref,ref):this
           6 ( 0.85% of base) : System.Security.Cryptography.Algorithms.dasm - AesGcm:Encrypt(ref,ref,ref,ref,ref):this
           6 ( 2.44% of base) : System.Collections.Immutable.dasm - ImmutableDictionary`2:AddRange(IEnumerable`1,bool):ImmutableDictionary`2:this
           5 ( 2.26% of base) : System.Collections.Immutable.dasm - ImmutableHashSet`1:Add(__Canon):ImmutableHashSet`1:this
           5 ( 2.26% of base) : System.Collections.Immutable.dasm - ImmutableHashSet`1:Remove(__Canon):ImmutableHashSet`1:this
           5 ( 2.02% of base) : System.Collections.Immutable.dasm - ImmutableHashSet`1:Intersect(IEnumerable`1):ImmutableHashSet`1:this
           5 ( 2.02% of base) : System.Collections.Immutable.dasm - ImmutableHashSet`1:SymmetricExcept(IEnumerable`1):ImmutableHashSet`1:this
           4 ( 0.48% of base) : System.Private.CoreLib.dasm - CustomAttributeData:get_NamedArguments():IList`1:this
           4 ( 0.53% of base) : System.Private.CoreLib.dasm - <ReadBlockAsyncInternal>d__20:MoveNext():this
           4 ( 0.33% of base) : Newtonsoft.Json.dasm - JsonSchemaModel:Combine(JsonSchemaModel,JsonSchema)
           4 ( 1.29% of base) : System.Collections.Immutable.dasm - ImmutableHashSet`1:Union(IEnumerable`1,bool):ImmutableHashSet`1:this
           3 ( 0.16% of base) : System.Private.CoreLib.dasm - <CopyToAsyncCore>d__68:MoveNext():this
           3 ( 0.20% of base) : Microsoft.CodeAnalysis.CSharp.dasm - MemberSignatureComparer:HaveSameParameterTypes(ImmutableArray`1,TypeMap,ImmutableArray`1,TypeMap,bool,bool,bool):bool
           2 ( 0.29% of base) : System.Private.CoreLib.dasm - BufferedStream:ReadAsync(ref,int,int,CancellationToken):Task`1:this
           2 ( 0.11% of base) : System.Private.Xml.dasm - XmlILOptimizerVisitor:FoldArithmetic(int,QilLiteral,QilLiteral):QilNode:this

Top method improvements (bytes):
         -58 (-2.80% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - ReducedExtensionMethodSymbol:Create(TypeSymbol,MethodSymbol,int):MethodSymbol
         -45 (-2.37% of base) : System.Data.Common.dasm - TimeSpanStorage:Aggregate(ref,int):Object:this
         -42 (-3.22% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - OverloadResolution:InferTypeArguments(byref,ImmutableArray`1,ImmutableArray`1,TypeSymbol,BoundNode,byref,Binder,byref):bool
         -37 (-1.22% of base) : System.Net.Security.dasm - <WriteAsyncInternal>d__183`1:MoveNext():this (3 methods)
         -36 (-1.52% of base) : System.Private.Xml.dasm - XmlDocument:.cctor()
         -34 (-10.93% of base) : System.Private.CoreLib.dasm - CustomAttribute:GetCustomAttributes(RuntimeModule,int,int,RuntimeType):ref
         -30 (-7.96% of base) : System.IO.Pipes.dasm - PipeStream:WriteAsync(ReadOnlyMemory`1,CancellationToken):ValueTask:this
         -26 (-3.70% of base) : System.Collections.Immutable.dasm - Builder:Remove(__Canon):bool:this (6 methods)
         -26 (-3.81% of base) : System.Net.Security.dasm - SSPIWrapper:QueryBlittableContextAttributes(ISSPIInterface,SafeDeleteContext,int,Type,byref,byref):bool (2 methods)
         -26 (-3.77% of base) : System.Net.HttpListener.dasm - SSPIWrapper:QueryBlittableContextAttributes(ISSPIInterface,SafeDeleteContext,int,Type,byref,byref):bool (2 methods)
         -24 (-1.09% of base) : System.Formats.Asn1.dasm - AsnDecoder:ProcessConstructedBitString(ReadOnlySpan`1,int,Span`1,BitStringCopyAction,bool,byref,byref):int
         -23 (-1.09% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - Binder:ResolveMethodForDelegateInvokeFullOrRelaxed(BoundAddressOfOperator,MethodSymbol,bool,DiagnosticBag,bool,byref):KeyValuePair`2
         -22 (-4.40% of base) : System.Security.Cryptography.Algorithms.dasm - RSA:ImportSubjectPublicKeyInfo(ReadOnlySpan`1,byref):this
         -22 (-4.40% of base) : System.Security.Cryptography.Algorithms.dasm - RSA:ImportPkcs8PrivateKey(ReadOnlySpan`1,byref):this
         -21 (-1.17% of base) : System.Memory.dasm - BuffersExtensions:CopyToMultiSegment(byref,Span`1) (3 methods)
         -21 (-2.23% of base) : System.Security.Cryptography.Algorithms.dasm - RSACng:VerifyHash(ReadOnlySpan`1,ReadOnlySpan`1,HashAlgorithmName,RSASignaturePadding):bool:this
         -21 (-2.07% of base) : System.Security.Cryptography.Cng.dasm - RSACng:VerifyHash(ReadOnlySpan`1,ReadOnlySpan`1,HashAlgorithmName,RSASignaturePadding):bool:this
         -19 (-0.53% of base) : System.Data.Common.dasm - SqlDecimalStorage:Aggregate(ref,int):Object:this
         -18 (-5.88% of base) : System.Private.CoreLib.dasm - MemoryExtensions:TrimStart(Span`1,ReadOnlySpan`1):Span`1
         -18 (-5.75% of base) : System.Private.CoreLib.dasm - MemoryExtensions:TrimEnd(Span`1,ReadOnlySpan`1):Span`1

Top method regressions (percentages):
           8 ( 3.05% of base) : System.Collections.Immutable.dasm - Builder:Add(__Canon,__Canon):this (2 methods)
           8 ( 2.89% of base) : System.Collections.Immutable.dasm - Builder:set_Item(__Canon,__Canon):this (2 methods)
           6 ( 2.44% of base) : System.Collections.Immutable.dasm - ImmutableDictionary`2:AddRange(IEnumerable`1,bool):ImmutableDictionary`2:this
           5 ( 2.26% of base) : System.Collections.Immutable.dasm - ImmutableHashSet`1:Add(__Canon):ImmutableHashSet`1:this
           5 ( 2.26% of base) : System.Collections.Immutable.dasm - ImmutableHashSet`1:Remove(__Canon):ImmutableHashSet`1:this
           5 ( 2.02% of base) : System.Collections.Immutable.dasm - ImmutableHashSet`1:Intersect(IEnumerable`1):ImmutableHashSet`1:this
           5 ( 2.02% of base) : System.Collections.Immutable.dasm - ImmutableHashSet`1:SymmetricExcept(IEnumerable`1):ImmutableHashSet`1:this
           2 ( 1.80% of base) : System.Reflection.MetadataLoadContext.dasm - EcmaToStringHelpers:ToTypeString(TypeSpecificationHandle,MetadataReader,byref):String
           2 ( 1.52% of base) : Microsoft.CodeAnalysis.dasm - RealParser:MultiplyByPowerOfTen(byref,int)
           2 ( 1.52% of base) : Microsoft.CodeAnalysis.dasm - RealParser:ShiftLeft(byref,int)
          21 ( 1.50% of base) : System.Net.Http.dasm - <ProcessHeadersFrame>d__51:MoveNext():this
           4 ( 1.29% of base) : System.Collections.Immutable.dasm - ImmutableHashSet`1:Union(IEnumerable`1,bool):ImmutableHashSet`1:this
           2 ( 1.24% of base) : System.Collections.Immutable.dasm - ImmutableDictionary`2:SetItems(IEnumerable`1):ImmutableDictionary`2:this
           9 ( 0.95% of base) : System.Security.Cryptography.Pkcs.dasm - Pkcs12SafeContents:Decrypt(ReadOnlySpan`1,ReadOnlySpan`1):this
           6 ( 0.85% of base) : System.Security.Cryptography.Algorithms.dasm - AesCcm:Encrypt(ref,ref,ref,ref,ref):this
           6 ( 0.85% of base) : System.Security.Cryptography.Algorithms.dasm - AesGcm:Encrypt(ref,ref,ref,ref,ref):this
           1 ( 0.56% of base) : System.Formats.Asn1.dasm - AsnReader:ReadUtcTime(Nullable`1):DateTimeOffset:this
          14 ( 0.55% of base) : System.Security.Cryptography.X509Certificates.dasm - CertificateRequest:Create(X500DistinguishedName,X509SignatureGenerator,DateTimeOffset,DateTimeOffset,ReadOnlySpan`1):X509Certificate2:this
           4 ( 0.53% of base) : System.Private.CoreLib.dasm - <ReadBlockAsyncInternal>d__20:MoveNext():this
           4 ( 0.48% of base) : System.Private.CoreLib.dasm - CustomAttributeData:get_NamedArguments():IList`1:this

Top method improvements (percentages):
         -34 (-10.93% of base) : System.Private.CoreLib.dasm - CustomAttribute:GetCustomAttributes(RuntimeModule,int,int,RuntimeType):ref
         -30 (-7.96% of base) : System.IO.Pipes.dasm - PipeStream:WriteAsync(ReadOnlyMemory`1,CancellationToken):ValueTask:this
         -14 (-7.65% of base) : System.Collections.Immutable.dasm - ImmutableDictionary`2:SetItem(__Canon,__Canon):ImmutableDictionary`2:this
         -14 (-7.57% of base) : System.Collections.Immutable.dasm - ImmutableDictionary`2:Add(__Canon,__Canon):ImmutableDictionary`2:this
         -12 (-7.50% of base) : System.IO.Pipelines.dasm - PipeWriterStream:WriteAsync(ReadOnlyMemory`1,CancellationToken):ValueTask:this
         -15 (-6.58% of base) : Microsoft.CodeAnalysis.CSharp.dasm - PEModuleSymbol:GetCustomAttributesFilterExtensions(EntityHandle,byref):ImmutableArray`1:this
          -4 (-6.35% of base) : System.Net.HttpListener.dasm - HttpListenerTimeoutManager:get_EntityBody():TimeSpan:this
          -4 (-6.35% of base) : System.Net.HttpListener.dasm - HttpListenerTimeoutManager:get_DrainEntityBody():TimeSpan:this
          -4 (-6.35% of base) : System.Net.HttpListener.dasm - HttpListenerTimeoutManager:get_RequestQueue():TimeSpan:this
          -4 (-6.35% of base) : System.Net.HttpListener.dasm - HttpListenerTimeoutManager:get_IdleConnection():TimeSpan:this
          -4 (-6.35% of base) : System.Net.HttpListener.dasm - HttpListenerTimeoutManager:get_HeaderWait():TimeSpan:this
          -4 (-6.06% of base) : System.Net.HttpListener.dasm - HttpListenerTimeoutManager:GetTimeout(int):TimeSpan:this
         -18 (-5.88% of base) : System.Private.CoreLib.dasm - MemoryExtensions:TrimStart(Span`1,ReadOnlySpan`1):Span`1
         -18 (-5.75% of base) : System.Private.CoreLib.dasm - MemoryExtensions:TrimEnd(Span`1,ReadOnlySpan`1):Span`1
         -13 (-5.39% of base) : System.Formats.Asn1.dasm - AsnDecoder:TryReadCharacterStringCore(ReadOnlySpan`1,int,Asn1Tag,int,Encoding,Span`1,byref,byref):bool
         -17 (-5.06% of base) : System.Formats.Asn1.dasm - AsnDecoder:ReadCharacterStringCore(ReadOnlySpan`1,int,Asn1Tag,int,Encoding,byref):String
         -14 (-5.05% of base) : System.Collections.Immutable.dasm - Builder:Add(__Canon):bool:this (2 methods)
          -7 (-4.73% of base) : System.Collections.Immutable.dasm - ImmutableArray`1:Contains(KeyValuePair`2):bool:this
          -6 (-4.65% of base) : System.Data.Common.dasm - SqlDouble:op_Implicit(SqlMoney):SqlDouble
         -22 (-4.40% of base) : System.Security.Cryptography.Algorithms.dasm - RSA:ImportSubjectPublicKeyInfo(ReadOnlySpan`1,byref):this

338 total methods with Code Size differences (297 improved, 41 regressed), 200429 unchanged.

--------------------------------------------------------------------------------

@alexcovington
Copy link
Contributor Author

alexcovington commented Feb 18, 2021

@sandreenko Having a little trouble narrowing down where the regression is. I've been using the command:

@echo off

set "Complus_NgenDump=CertificateRequest:Create(X500DistinguishedName,X509SignatureGenerator,DateTimeOffset,DateTimeOffset,ReadOnlySpan`1):X509Certificate2:this"

set Core_Root=C:\Users\acovingt\source\repos\runtime\artifacts\tests\coreclr\windows.x64.Debug\Tests\Core_Root
C:\Users\acovingt\source\repos\runtime\artifacts\bin\coreclr\windows.x64.Debug\crossgen.exe ^
	/Platform_Assemblies_Paths "C:\Users\acovingt\source\repos\runtime\artifacts\bin\testhost\net6.0-windows-Debug-x64\shared\Microsoft.NETCore.App\6.0.0" ^
	/out "C:\Users\acovingt\Documents\System.Security.Cryptography.X509Certificates.contention.dll" ^
	"C:\Users\acovingt\source\repos\runtime\artifacts\bin\System.Security.Cryptography.X509Certificates\net6.0-windows-Debug\System.Security.Cryptography.X509Certificates.dll" ^
	> C:\Users\acovingt\Documents\diff.txt

C:\Users\acovingt\source\repos\runtime-master\artifacts\bin\coreclr\windows.x64.Debug\crossgen.exe ^
	/Platform_Assemblies_Paths "C:\Users\acovingt\source\repos\runtime\artifacts\bin\testhost\net6.0-windows-Debug-x64\shared\Microsoft.NETCore.App\6.0.0" ^
	/out "C:\Users\acovingt\Documents\System.Security.Cryptography.X509Certificates.default.dll" ^
	"C:\Users\acovingt\source\repos\runtime-master\artifacts\bin\System.Security.Cryptography.X509Certificates\net6.0-windows-Debug\System.Security.Cryptography.X509Certificates.dll" ^
	> C:\Users\acovingt\Documents\base.txt
Logs

To generate the files to compare. When I do a diff of the two files, I'm only seeing differences in addresses, but no real difference in what is being generated. For example, if I look at the code that is generated for

base.txt

; Total bytes of code 3690, prolog size 74, PerfScore 1221.67, instruction count 667, allocated bytes for code 3690 (MethodHash=f9a6dad2) for method System.Security.Cryptography.X509Certificates.CertificateRequest:Create(System.Security.Cryptography.X509Certificates.X500DistinguishedName,System.Security.Cryptography.X509Certificates.X509SignatureGenerator,System.DateTimeOffset,System.DateTimeOffset,System.ReadOnlySpan`1[Byte]):System.Security.Cryptography.X509Certificates.X509Certificate2:this
; ============================================================

*************** After end code gen, before unwindEmit()
G_M9517_IG01:        ; func=00, offs=000000H, size=004AH, bbWeight=1    PerfScore 19.58, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG

IN027a: 000000 push     rbp
IN027b: 000001 push     rdi
IN027c: 000002 push     rsi
IN027d: 000003 sub      rsp, 0xAE0
IN027e: 00000A lea      rbp, [rsp+AF0H]
IN027f: 000012 xorps    xmm4, xmm4
IN0280: 000015 mov      rax, -0xAB0
IN0281: 00001F movaps   xmmword ptr [rbp+rax-10H], xmm4
IN0282: 000024 movaps   xmmword ptr [rax+rbp], xmm4
IN0283: 000028 movaps   xmmword ptr [rbp+rax+10H], xmm4
IN0284: 00002D add      rax, 48
IN0285: 000031 jne      SHORT  -5 instr
IN0286: 000033 mov      qword ptr [V144 rbp-AD0H], rsp
IN0287: 00003A mov      gword ptr [V00 rbp+10H], rcx
IN0288: 00003E mov      gword ptr [V01 rbp+18H], rdx
IN0289: 000042 mov      gword ptr [V02 rbp+20H], r8
IN028a: 000046 mov      bword ptr [V03 rbp+28H], r9

G_M9517_IG02:        ; offs=00004AH, size=001BH, bbWeight=1    PerfScore 5.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz

IN0001: 00004A nop      
IN0002: 00004B cmp      gword ptr [V01 rbp+18H], 0
IN0003: 000050 sete     cl
IN0004: 000053 movzx    rcx, cl
IN0005: 000056 mov      dword ptr [V14 rbp-2D4H], ecx
IN0006: 00005C cmp      dword ptr [V14 rbp-2D4H], 0
IN0007: 000063 je       SHORT G_M9517_IG04

G_M9517_IG03:        ; offs=000065H, size=003EH, bbWeight=0    PerfScore 0.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN0008: 000065 call     [CORINFO_HELP_READYTORUN_NEW]
IN0009: 00006B mov      gword ptr [V120 rbp-990H], rax
IN000a: 000072 mov      ecx, 0x3029
IN000b: 000077 call     CORINFO_HELP_STRCNS_CURRENT_MODULE
IN000c: 00007C mov      gword ptr [V121 rbp-998H], rax
IN000d: 000083 mov      rdx, gword ptr [V121 rbp-998H]
IN000e: 00008A mov      rcx, gword ptr [V120 rbp-990H]
IN000f: 000091 call     [System.ArgumentNullException:.ctor(System.String):this]
IN0010: 000097 mov      rcx, gword ptr [V120 rbp-990H]
IN0011: 00009E call     CORINFO_HELP_THROW

G_M9517_IG04:        ; offs=0000A3H, size=001AH, bbWeight=1    PerfScore 5.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz

IN0012: 0000A3 cmp      gword ptr [V02 rbp+20H], 0
IN0013: 0000A8 sete     cl
IN0014: 0000AB movzx    rcx, cl
IN0015: 0000AE mov      dword ptr [V15 rbp-2D8H], ecx
IN0016: 0000B4 cmp      dword ptr [V15 rbp-2D8H], 0
IN0017: 0000BB je       SHORT G_M9517_IG06

G_M9517_IG05:        ; offs=0000BDH, size=003EH, bbWeight=0    PerfScore 0.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN0018: 0000BD call     [CORINFO_HELP_READYTORUN_NEW]
IN0019: 0000C3 mov      gword ptr [V119 rbp-988H], rax
IN001a: 0000CA mov      ecx, 0x303F
IN001b: 0000CF call     CORINFO_HELP_STRCNS_CURRENT_MODULE
IN001c: 0000D4 mov      gword ptr [V122 rbp-9A0H], rax
IN001d: 0000DB mov      rdx, gword ptr [V122 rbp-9A0H]
IN001e: 0000E2 mov      rcx, gword ptr [V119 rbp-988H]
IN001f: 0000E9 call     [System.ArgumentNullException:.ctor(System.String):this]
IN0020: 0000EF mov      rcx, gword ptr [V119 rbp-988H]
IN0021: 0000F6 call     CORINFO_HELP_THROW

G_M9517_IG06:        ; offs=0000FBH, size=0051H, bbWeight=1    PerfScore 23.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz

IN0022: 0000FB mov      rcx, bword ptr [V04 rbp+30H]
IN0023: 0000FF movups   xmm0, xmmword ptr [rcx]
IN0024: 000102 movups   xmmword ptr [V123 rbp-9B0H], xmm0
IN0025: 000109 mov      rcx, bword ptr [V03 rbp+28H]
IN0026: 00010D movups   xmm0, xmmword ptr [rcx]
IN0027: 000110 movups   xmmword ptr [V124 rbp-9C0H], xmm0
IN0028: 000117 lea      rcx, bword ptr [V123 rbp-9B0H]
IN0029: 00011E lea      rdx, bword ptr [V124 rbp-9C0H]
IN002a: 000125 call     [System.DateTimeOffset:op_LessThan(System.DateTimeOffset,System.DateTimeOffset):bool]
IN002b: 00012B movzx    rcx, al
IN002c: 00012E mov      dword ptr [V33 rbp-5ECH], ecx
IN002d: 000134 mov      ecx, dword ptr [V33 rbp-5ECH]
IN002e: 00013A movzx    rcx, cl
IN002f: 00013D mov      dword ptr [V16 rbp-2DCH], ecx
IN0030: 000143 cmp      dword ptr [V16 rbp-2DCH], 0
IN0031: 00014A je       SHORT G_M9517_IG08

G_M9517_IG07:        ; offs=00014CH, size=003AH, bbWeight=0    PerfScore 0.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN0032: 00014C call     [System.SR:get_Cryptography_CertReq_DatesReversed():System.String]
IN0033: 000152 mov      gword ptr [V117 rbp-978H], rax
IN0034: 000159 call     [CORINFO_HELP_READYTORUN_NEW]
IN0035: 00015F mov      gword ptr [V118 rbp-980H], rax
IN0036: 000166 mov      rcx, gword ptr [V118 rbp-980H]
IN0037: 00016D mov      rdx, gword ptr [V117 rbp-978H]
IN0038: 000174 call     [System.ArgumentException:.ctor(System.String):this]
IN0039: 00017A mov      rcx, gword ptr [V118 rbp-980H]
IN003a: 000181 call     CORINFO_HELP_THROW

G_M9517_IG08:        ; offs=000186H, size=0004H, bbWeight=1    PerfScore 1.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN003b: 000186 mov      rcx, bword ptr [V05 rbp+38H]

G_M9517_IG09:        ; offs=00018AH, size=000AH, bbWeight=1    PerfScore 6.00, nogc, extend

IN003c: 00018A movups   xmm0, xmmword ptr [rcx]
IN003d: 00018D movups   xmmword ptr [V34 rbp-600H], xmm0

G_M9517_IG10:        ; offs=000194H, size=000FH, bbWeight=1    PerfScore 3.75, extend

IN003e: 000194 lea      rcx, [V35 rbp-610H]
IN003f: 00019B xor      rdx, rdx
IN0040: 00019D call     [System.ReadOnlySpan`1[Byte][System.Byte]:op_Implicit(System.Byte[]):System.ReadOnlySpan`1[Byte]]

G_M9517_IG11:        ; offs=0001A3H, size=000EH, bbWeight=1    PerfScore 5.00, nogc, extend

IN0041: 0001A3 movups   xmm0, xmmword ptr [V34 rbp-600H]
IN0042: 0001AA movups   xmmword ptr [V125 rbp-9D0H], xmm0

G_M9517_IG12:        ; offs=0001B1H, size=000EH, bbWeight=1    PerfScore 5.00, nogc, extend

IN0043: 0001B1 movups   xmm0, xmmword ptr [V35 rbp-610H]
IN0044: 0001B8 movups   xmmword ptr [V126 rbp-9E0H], xmm0

G_M9517_IG13:        ; offs=0001BFH, size=004BH, bbWeight=1    PerfScore 17.50, isz, extend

IN0045: 0001BF lea      rcx, bword ptr [V125 rbp-9D0H]
IN0046: 0001C6 lea      rdx, bword ptr [V126 rbp-9E0H]
IN0047: 0001CD call     [System.ReadOnlySpan`1[Byte][System.Byte]:op_Equality(System.ReadOnlySpan`1[Byte],System.ReadOnlySpan`1[Byte]):bool]
IN0048: 0001D3 movzx    rcx, al
IN0049: 0001D6 mov      dword ptr [V36 rbp-614H], ecx
IN004a: 0001DC cmp      dword ptr [V36 rbp-614H], 0
IN004b: 0001E3 jne      SHORT G_M9517_IG14
IN004c: 0001E5 mov      rcx, bword ptr [V05 rbp+38H]
IN004d: 0001E9 call     [System.ReadOnlySpan`1[Byte][System.Byte]:get_Length():int:this]
IN004e: 0001EF mov      dword ptr [V116 rbp-96CH], eax
IN004f: 0001F5 cmp      dword ptr [V116 rbp-96CH], 0
IN0050: 0001FC setle    cl
IN0051: 0001FF movzx    rcx, cl
IN0052: 000202 mov      dword ptr [V37 rbp-618H], ecx
IN0053: 000208 jmp      SHORT G_M9517_IG15

G_M9517_IG14:        ; offs=00020AH, size=000AH, bbWeight=1    PerfScore 1.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN0054: 00020A mov      dword ptr [V37 rbp-618H], 1

G_M9517_IG15:        ; offs=000214H, size=0018H, bbWeight=1    PerfScore 4.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz

IN0055: 000214 mov      ecx, dword ptr [V37 rbp-618H]
IN0056: 00021A movzx    rcx, cl
IN0057: 00021D mov      dword ptr [V17 rbp-2E0H], ecx
IN0058: 000223 cmp      dword ptr [V17 rbp-2E0H], 0
IN0059: 00022A je       SHORT G_M9517_IG17

G_M9517_IG16:        ; offs=00022CH, size=0052H, bbWeight=0    PerfScore 0.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN005a: 00022C call     [System.SR:get_Arg_EmptyOrNullArray():System.String]
IN005b: 000232 mov      gword ptr [V114 rbp-960H], rax
IN005c: 000239 call     [CORINFO_HELP_READYTORUN_NEW]
IN005d: 00023F mov      gword ptr [V115 rbp-968H], rax
IN005e: 000246 mov      ecx, 0x2FE9
IN005f: 00024B call     CORINFO_HELP_STRCNS_CURRENT_MODULE
IN0060: 000250 mov      gword ptr [V127 rbp-9E8H], rax
IN0061: 000257 mov      r8, gword ptr [V127 rbp-9E8H]
IN0062: 00025E mov      rdx, gword ptr [V114 rbp-960H]
IN0063: 000265 mov      rcx, gword ptr [V115 rbp-968H]
IN0064: 00026C call     [System.ArgumentException:.ctor(System.String,System.String):this]
IN0065: 000272 mov      rcx, gword ptr [V115 rbp-968H]
IN0066: 000279 call     CORINFO_HELP_THROW

G_M9517_IG17:        ; offs=00027EH, size=006AH, bbWeight=1    PerfScore 23.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN0067: 00027E mov      rcx, gword ptr [V02 rbp+20H]
IN0068: 000282 mov      gword ptr [V38 rbp-620H], rcx
IN0069: 000289 mov      rcx, gword ptr [V00 rbp+10H]
IN006a: 00028D call     [System.Security.Cryptography.X509Certificates.CertificateRequest:get_HashAlgorithm():System.Security.Cryptography.HashAlgorithmName:this]
IN006b: 000293 mov      gword ptr [V39 rbp-628H], rax
IN006c: 00029A mov      rcx, gword ptr [V38 rbp-620H]
IN006d: 0002A1 mov      rdx, gword ptr [V39 rbp-628H]
IN006e: 0002A8 lea      r11, [(reloc 0x1bb561ebaa0)]
IN006f: 0002AF cmp      dword ptr [rcx], ecx
IN0070: 0002B1 call     [System.Security.Cryptography.X509Certificates.X509SignatureGenerator:GetSignatureAlgorithmIdentifier(System.Security.Cryptography.HashAlgorithmName):System.Byte[]:this]
IN0071: 0002B7 mov      gword ptr [V40 rbp-630H], rax
IN0072: 0002BE mov      rcx, gword ptr [V40 rbp-630H]
IN0073: 0002C5 mov      gword ptr [V06 rbp-18H], rcx
IN0074: 0002C9 lea      rcx, [V41 rbp-640H]
IN0075: 0002D0 mov      rdx, gword ptr [V06 rbp-18H]
IN0076: 0002D4 call     [System.ReadOnlyMemory`1[Byte][System.Byte]:op_Implicit(System.Byte[]):System.ReadOnlyMemory`1[Byte]]
IN0077: 0002DA lea      rcx, [V42 rbp-660H]
IN0078: 0002E1 mov      qword ptr [V129 rbp-A00H], rcx

G_M9517_IG18:        ; offs=0002E8H, size=000EH, bbWeight=1    PerfScore 5.00, nogc, extend

IN0079: 0002E8 movups   xmm0, xmmword ptr [V41 rbp-640H]
IN007a: 0002EF movups   xmmword ptr [V128 rbp-9F8H], xmm0

G_M9517_IG19:        ; offs=0002F6H, size=001AH, bbWeight=1    PerfScore 4.75, extend

IN007b: 0002F6 mov      rcx, qword ptr [V129 rbp-A00H]
IN007c: 0002FD lea      rdx, bword ptr [V128 rbp-9F8H]
IN007d: 000304 mov      r8d, 2
IN007e: 00030A call     [System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn:Decode(System.ReadOnlyMemory`1[Byte],int):System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn]

G_M9517_IG20:        ; offs=000310H, size=0016H, bbWeight=1    PerfScore 10.00, nogc, extend

IN007f: 000310 movups   xmm0, xmmword ptr [V42 rbp-660H]
IN0080: 000317 movups   xmmword ptr [V07 rbp-38H], xmm0
IN0081: 00031B movups   xmm0, xmmword ptr [V42+0x10 rbp-650H]
IN0082: 000322 movups   xmmword ptr [V07+0x10 rbp-28H], xmm0

G_M9517_IG21:        ; offs=000326H, size=003DH, bbWeight=1    PerfScore 13.25, isz, extend

IN0083: 000326 lea      rcx, bword ptr [V07+0x8 rbp-30H]
IN0084: 00032A call     [System.Nullable`1[ReadOnlyMemory`1][System.ReadOnlyMemory`1[System.Byte]]:get_HasValue():bool:this]
IN0085: 000330 movzx    rcx, al
IN0086: 000333 mov      dword ptr [V43 rbp-664H], ecx
IN0087: 000339 mov      ecx, dword ptr [V43 rbp-664H]
IN0088: 00033F movzx    rcx, cl
IN0089: 000342 mov      dword ptr [V18 rbp-2E4H], ecx
IN008a: 000348 cmp      dword ptr [V18 rbp-2E4H], 0
IN008b: 00034F je       SHORT G_M9517_IG24
IN008c: 000351 nop      
IN008d: 000352 lea      rcx, bword ptr [V07+0x8 rbp-30H]
IN008e: 000356 lea      rdx, [V113 rbp-958H]
IN008f: 00035D call     [System.Nullable`1[ReadOnlyMemory`1][System.ReadOnlyMemory`1[System.Byte]]:get_Value():System.ReadOnlyMemory`1[Byte]:this]

G_M9517_IG22:        ; offs=000363H, size=000EH, bbWeight=1    PerfScore 5.00, nogc, extend

IN0090: 000363 movups   xmm0, xmmword ptr [V113 rbp-958H]
IN0091: 00036A movups   xmmword ptr [V130 rbp-A10H], xmm0

G_M9517_IG23:        ; offs=000371H, size=000FH, bbWeight=1    PerfScore 4.00, extend

IN0092: 000371 lea      rcx, bword ptr [V130 rbp-A10H]
IN0093: 000378 call     [Internal.Cryptography.Helpers:ValidateDer(System.ReadOnlyMemory`1[Byte])]
IN0094: 00037E nop      
IN0095: 00037F nop      

G_M9517_IG24:        ; offs=000380H, size=001DH, bbWeight=1    PerfScore 4.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN0096: 000380 mov      rcx, gword ptr [V00 rbp+10H]
IN0097: 000384 mov      gword ptr [V132 rbp-A28H], rcx
IN0098: 00038B lea      rcx, [V44 rbp-678H]
IN0099: 000392 mov      qword ptr [V133 rbp-A30H], rcx
IN009a: 000399 mov      rcx, bword ptr [V05 rbp+38H]

G_M9517_IG25:        ; offs=00039DH, size=000AH, bbWeight=1    PerfScore 6.00, nogc, extend

IN009b: 00039D movups   xmm0, xmmword ptr [rcx]
IN009c: 0003A0 movups   xmmword ptr [V131 rbp-A20H], xmm0

G_M9517_IG26:        ; offs=0003A7H, size=001BH, bbWeight=1    PerfScore 5.50, extend

IN009d: 0003A7 mov      rcx, gword ptr [V132 rbp-A28H]
IN009e: 0003AE mov      rdx, qword ptr [V133 rbp-A30H]
IN009f: 0003B5 lea      r8, bword ptr [V131 rbp-A20H]
IN00a0: 0003BC call     [System.Security.Cryptography.X509Certificates.CertificateRequest:NormalizeSerialNumber(System.ReadOnlySpan`1[Byte]):System.ArraySegment`1[Byte]:this]

G_M9517_IG27:        ; offs=0003C2H, size=000BH, bbWeight=1    PerfScore 5.00, nogc, extend

IN00a1: 0003C2 movups   xmm0, xmmword ptr [V44 rbp-678H]
IN00a2: 0003C9 movups   xmmword ptr [V08 rbp-48H], xmm0

G_M9517_IG28:        ; offs=0003CDH, size=003BH, bbWeight=1    PerfScore 8.00, extend

IN00a3: 0003CD xor      edx, edx
IN00a4: 0003CF lea      rcx, bword ptr [V19 rbp-408H]
IN00a5: 0003D6 mov      r8d, 288
IN00a6: 0003DC call     [CORINFO_HELP_MEMSET]
IN00a7: 0003E2 mov      dword ptr [V19+0x8 rbp-400H], 2
IN00a8: 0003EC lea      rcx, bword ptr [V19 rbp-408H]
IN00a9: 0003F3 mov      bword ptr [V45 rbp-680H], rcx
IN00aa: 0003FA lea      rcx, [V46 rbp-690H]
IN00ab: 000401 mov      qword ptr [V135 rbp-A48H], rcx

G_M9517_IG29:        ; offs=000408H, size=000BH, bbWeight=1    PerfScore 5.00, nogc, extend

IN00ac: 000408 movups   xmm0, xmmword ptr [V08 rbp-48H]
IN00ad: 00040C movups   xmmword ptr [V134 rbp-A40H], xmm0

G_M9517_IG30:        ; offs=000413H, size=0133H, bbWeight=1    PerfScore 72.42, extend

IN00ae: 000413 mov      rcx, qword ptr [V135 rbp-A48H]
IN00af: 00041A lea      rdx, bword ptr [V134 rbp-A40H]
IN00b0: 000421 call     [System.ReadOnlyMemory`1[Byte][System.Byte]:op_Implicit(System.ArraySegment`1[Byte]):System.ReadOnlyMemory`1[Byte]]
IN00b1: 000427 mov      rdi, bword ptr [V45 rbp-680H]
IN00b2: 00042E add      rdi, 16
IN00b3: 000432 lea      rsi, bword ptr [V46 rbp-690H]
IN00b4: 000439 call     [CORINFO_HELP_ASSIGN_BYREF]
IN00b5: 00043F movsq    
IN00b6: 000441 lea      rdi, bword ptr [V19 rbp-408H]
IN00b7: 000448 add      rdi, 32
IN00b8: 00044C lea      rsi, bword ptr [V07 rbp-38H]
IN00b9: 000450 call     [CORINFO_HELP_ASSIGN_BYREF]
IN00ba: 000456 movsq    
IN00bb: 000458 call     [CORINFO_HELP_ASSIGN_BYREF]
IN00bc: 00045E movsq    
IN00bd: 000460 lea      rcx, bword ptr [V19 rbp-408H]
IN00be: 000467 mov      bword ptr [V47 rbp-698H], rcx
IN00bf: 00046E mov      rcx, gword ptr [V01 rbp+18H]
IN00c0: 000472 lea      r11, [(reloc 0x1bb5616d690)]
IN00c1: 000479 cmp      dword ptr [rcx], ecx
IN00c2: 00047B call     [System.Security.Cryptography.AsnEncodedData:get_RawData():System.Byte[]:this]
IN00c3: 000481 mov      gword ptr [V48 rbp-6A0H], rax
IN00c4: 000488 lea      rcx, [V49 rbp-6B0H]
IN00c5: 00048F mov      rdx, gword ptr [V48 rbp-6A0H]
IN00c6: 000496 call     [System.ReadOnlyMemory`1[Byte][System.Byte]:op_Implicit(System.Byte[]):System.ReadOnlyMemory`1[Byte]]
IN00c7: 00049C mov      rdi, bword ptr [V47 rbp-698H]
IN00c8: 0004A3 add      rdi, 64
IN00c9: 0004A7 lea      rsi, bword ptr [V49 rbp-6B0H]
IN00ca: 0004AE call     [CORINFO_HELP_ASSIGN_BYREF]
IN00cb: 0004B4 movsq    
IN00cc: 0004B6 xorps    xmm0, xmm0
IN00cd: 0004B9 movups   xmmword ptr [V20 rbp-438H], xmm0
IN00ce: 0004C0 movups   xmmword ptr [V20+0x10 rbp-428H], xmm0
IN00cf: 0004C7 movups   xmmword ptr [V20+0x20 rbp-418H], xmm0
IN00d0: 0004CE xorps    xmm0, xmm0
IN00d1: 0004D1 movups   xmmword ptr [V21 rbp-458H], xmm0
IN00d2: 0004D8 movups   xmmword ptr [V21+0x10 rbp-448H], xmm0
IN00d3: 0004DF lea      rcx, bword ptr [V19 rbp-408H]
IN00d4: 0004E6 mov      bword ptr [V50 rbp-6B8H], rcx
IN00d5: 0004ED lea      rcx, bword ptr [V20 rbp-438H]
IN00d6: 0004F4 mov      bword ptr [V51 rbp-6C0H], rcx
IN00d7: 0004FB lea      rcx, bword ptr [V21 rbp-458H]
IN00d8: 000502 mov      bword ptr [V52 rbp-6C8H], rcx
IN00d9: 000509 mov      rcx, gword ptr [V00 rbp+10H]
IN00da: 00050D call     [System.Security.Cryptography.X509Certificates.CertificateRequest:get_PublicKey():System.Security.Cryptography.X509Certificates.PublicKey:this]
IN00db: 000513 mov      gword ptr [V53 rbp-6D0H], rax
IN00dc: 00051A mov      rcx, gword ptr [V53 rbp-6D0H]
IN00dd: 000521 cmp      dword ptr [rcx], ecx
IN00de: 000523 call     [System.Security.Cryptography.X509Certificates.PublicKey:get_Oid():System.Security.Cryptography.Oid:this]
IN00df: 000529 mov      gword ptr [V54 rbp-6D8H], rax
IN00e0: 000530 mov      rcx, gword ptr [V54 rbp-6D8H]
IN00e1: 000537 lea      r11, [(reloc 0x1bb5616a9d8)]
IN00e2: 00053E cmp      dword ptr [rcx], ecx
IN00e3: 000540 call     [System.Security.Cryptography.Oid:get_Value():System.String:this]

G_M9517_IG31:        ; offs=000546H, size=00ABH, bbWeight=1    PerfScore 37.00, extend

IN00e4: 000546 mov      gword ptr [V55 rbp-6E0H], rax
IN00e5: 00054D mov      rdx, bword ptr [V50 rbp-6B8H]
IN00e6: 000554 mov      bword ptr [V56 rbp-6E8H], rdx
IN00e7: 00055B mov      rdx, bword ptr [V51 rbp-6C0H]
IN00e8: 000562 mov      bword ptr [V57 rbp-6F0H], rdx
IN00e9: 000569 mov      rcx, bword ptr [V52 rbp-6C8H]
IN00ea: 000570 mov      rdx, gword ptr [V55 rbp-6E0H]
IN00eb: 000577 call     [CORINFO_HELP_CHECKED_ASSIGN_REF]
IN00ec: 00057D lea      rcx, bword ptr [V21 rbp-458H]
IN00ed: 000584 mov      bword ptr [V58 rbp-6F8H], rcx
IN00ee: 00058B mov      rcx, gword ptr [V00 rbp+10H]
IN00ef: 00058F call     [System.Security.Cryptography.X509Certificates.CertificateRequest:get_PublicKey():System.Security.Cryptography.X509Certificates.PublicKey:this]
IN00f0: 000595 mov      gword ptr [V59 rbp-700H], rax
IN00f1: 00059C mov      rcx, gword ptr [V59 rbp-700H]
IN00f2: 0005A3 cmp      dword ptr [rcx], ecx
IN00f3: 0005A5 call     [System.Security.Cryptography.X509Certificates.PublicKey:get_EncodedParameters():System.Security.Cryptography.AsnEncodedData:this]
IN00f4: 0005AB mov      gword ptr [V60 rbp-708H], rax
IN00f5: 0005B2 mov      rcx, gword ptr [V60 rbp-708H]
IN00f6: 0005B9 lea      r11, [(reloc 0x1bb5616d690)]
IN00f7: 0005C0 cmp      dword ptr [rcx], ecx
IN00f8: 0005C2 call     [System.Security.Cryptography.AsnEncodedData:get_RawData():System.Byte[]:this]
IN00f9: 0005C8 mov      gword ptr [V61 rbp-710H], rax
IN00fa: 0005CF lea      rcx, [V62 rbp-720H]
IN00fb: 0005D6 mov      rdx, gword ptr [V61 rbp-710H]
IN00fc: 0005DD call     [System.ReadOnlyMemory`1[Byte][System.Byte]:op_Implicit(System.Byte[]):System.ReadOnlyMemory`1[Byte]]
IN00fd: 0005E3 lea      rcx, bword ptr [V63 rbp-738H]
IN00fe: 0005EA mov      bword ptr [V137 rbp-A60H], rcx

G_M9517_IG32:        ; offs=0005F1H, size=000EH, bbWeight=1    PerfScore 5.00, nogc, extend

IN00ff: 0005F1 movups   xmm0, xmmword ptr [V62 rbp-720H]
IN0100: 0005F8 movups   xmmword ptr [V136 rbp-A58H], xmm0

G_M9517_IG33:        ; offs=0005FFH, size=0129H, bbWeight=1    PerfScore 68.75, extend

IN0101: 0005FF mov      rcx, bword ptr [V137 rbp-A60H]
IN0102: 000606 lea      rdx, bword ptr [V136 rbp-A58H]
IN0103: 00060D call     [System.Nullable`1[ReadOnlyMemory`1][System.ReadOnlyMemory`1[System.Byte]]:.ctor(System.ReadOnlyMemory`1[Byte]):this]
IN0104: 000613 mov      rax, bword ptr [V56 rbp-6E8H]
IN0105: 00061A mov      bword ptr [V64 rbp-740H], rax
IN0106: 000621 mov      rax, bword ptr [V57 rbp-6F0H]
IN0107: 000628 mov      bword ptr [V65 rbp-748H], rax
IN0108: 00062F mov      rdi, bword ptr [V58 rbp-6F8H]
IN0109: 000636 add      rdi, 8
IN010a: 00063A lea      rsi, bword ptr [V63 rbp-738H]
IN010b: 000641 movsq    
IN010c: 000643 call     [CORINFO_HELP_ASSIGN_BYREF]
IN010d: 000649 movsq    
IN010e: 00064B mov      rax, bword ptr [V64 rbp-740H]
IN010f: 000652 mov      bword ptr [V66 rbp-750H], rax
IN0110: 000659 mov      rdi, bword ptr [V65 rbp-748H]
IN0111: 000660 lea      rsi, bword ptr [V21 rbp-458H]
IN0112: 000667 call     [CORINFO_HELP_ASSIGN_BYREF]
IN0113: 00066D movsq    
IN0114: 00066F call     [CORINFO_HELP_ASSIGN_BYREF]
IN0115: 000675 movsq    
IN0116: 000677 lea      rcx, bword ptr [V20 rbp-438H]
IN0117: 00067E mov      bword ptr [V67 rbp-758H], rcx
IN0118: 000685 mov      rcx, gword ptr [V00 rbp+10H]
IN0119: 000689 call     [System.Security.Cryptography.X509Certificates.CertificateRequest:get_PublicKey():System.Security.Cryptography.X509Certificates.PublicKey:this]
IN011a: 00068F mov      gword ptr [V68 rbp-760H], rax
IN011b: 000696 mov      rcx, gword ptr [V68 rbp-760H]
IN011c: 00069D cmp      dword ptr [rcx], ecx
IN011d: 00069F call     [System.Security.Cryptography.X509Certificates.PublicKey:get_EncodedKeyValue():System.Security.Cryptography.AsnEncodedData:this]
IN011e: 0006A5 mov      gword ptr [V69 rbp-768H], rax
IN011f: 0006AC mov      rcx, gword ptr [V69 rbp-768H]
IN0120: 0006B3 lea      r11, [(reloc 0x1bb5616d690)]
IN0121: 0006BA cmp      dword ptr [rcx], ecx
IN0122: 0006BC call     [System.Security.Cryptography.AsnEncodedData:get_RawData():System.Byte[]:this]
IN0123: 0006C2 mov      gword ptr [V70 rbp-770H], rax
IN0124: 0006C9 lea      rcx, [V71 rbp-780H]
IN0125: 0006D0 mov      rdx, gword ptr [V70 rbp-770H]
IN0126: 0006D7 call     [System.ReadOnlyMemory`1[Byte][System.Byte]:op_Implicit(System.Byte[]):System.ReadOnlyMemory`1[Byte]]
IN0127: 0006DD mov      rax, bword ptr [V66 rbp-750H]
IN0128: 0006E4 mov      bword ptr [V72 rbp-788H], rax
IN0129: 0006EB mov      rdi, bword ptr [V67 rbp-758H]
IN012a: 0006F2 add      rdi, 32
IN012b: 0006F6 lea      rsi, bword ptr [V71 rbp-780H]
IN012c: 0006FD call     [CORINFO_HELP_ASSIGN_BYREF]
IN012d: 000703 movsq    
IN012e: 000705 mov      rdi, bword ptr [V72 rbp-788H]
IN012f: 00070C add      rdi, 192
IN0130: 000713 lea      rsi, bword ptr [V20 rbp-438H]
IN0131: 00071A call     [CORINFO_HELP_ASSIGN_BYREF]
IN0132: 000720 movsq    
IN0133: 000722 call     [CORINFO_HELP_ASSIGN_BYREF]

G_M9517_IG34:        ; offs=000728H, size=014AH, bbWeight=1    PerfScore 105.33, extend

IN0134: 000728 movsq    
IN0135: 00072A call     [CORINFO_HELP_ASSIGN_BYREF]
IN0136: 000730 movsq    
IN0137: 000732 xorps    xmm0, xmm0
IN0138: 000735 movups   xmmword ptr [V73 rbp-7E8H], xmm0
IN0139: 00073C movups   xmmword ptr [V73+0x10 rbp-7D8H], xmm0
IN013a: 000743 movups   xmmword ptr [V73+0x20 rbp-7C8H], xmm0
IN013b: 00074A movups   xmmword ptr [V73+0x30 rbp-7B8H], xmm0
IN013c: 000751 movups   xmmword ptr [V73+0x40 rbp-7A8H], xmm0
IN013d: 000758 movups   xmmword ptr [V73+0x50 rbp-798H], xmm0
IN013e: 00075F lea      rcx, bword ptr [V73 rbp-7E8H]
IN013f: 000766 mov      bword ptr [V140 rbp-A88H], rcx
IN0140: 00076D mov      rcx, bword ptr [V03 rbp+28H]
IN0141: 000771 movups   xmm0, xmmword ptr [rcx]
IN0142: 000774 movups   xmmword ptr [V138 rbp-A70H], xmm0
IN0143: 00077B mov      rcx, bword ptr [V04 rbp+30H]
IN0144: 00077F movups   xmm0, xmmword ptr [rcx]
IN0145: 000782 movups   xmmword ptr [V139 rbp-A80H], xmm0
IN0146: 000789 mov      rcx, bword ptr [V140 rbp-A88H]
IN0147: 000790 lea      rdx, bword ptr [V138 rbp-A70H]
IN0148: 000797 lea      r8, bword ptr [V139 rbp-A80H]
IN0149: 00079E call     [System.Security.Cryptography.X509Certificates.Asn1.ValidityAsn:.ctor(System.DateTimeOffset,System.DateTimeOffset):this]
IN014a: 0007A4 lea      rcx, bword ptr [V19 rbp-408H]
IN014b: 0007AB add      rcx, 80
IN014c: 0007AF lea      rdx, bword ptr [V73 rbp-7E8H]
IN014d: 0007B6 mov      r8d, 96
IN014e: 0007BC call     [CORINFO_HELP_MEMCPY]
IN014f: 0007C2 lea      rcx, bword ptr [V19 rbp-408H]
IN0150: 0007C9 mov      bword ptr [V74 rbp-7F0H], rcx
IN0151: 0007D0 mov      rcx, gword ptr [V00 rbp+10H]
IN0152: 0007D4 call     [System.Security.Cryptography.X509Certificates.CertificateRequest:get_SubjectName():System.Security.Cryptography.X509Certificates.X500DistinguishedName:this]
IN0153: 0007DA mov      gword ptr [V75 rbp-7F8H], rax
IN0154: 0007E1 mov      rcx, gword ptr [V75 rbp-7F8H]
IN0155: 0007E8 lea      r11, [(reloc 0x1bb5616d690)]
IN0156: 0007EF cmp      dword ptr [rcx], ecx
IN0157: 0007F1 call     [System.Security.Cryptography.AsnEncodedData:get_RawData():System.Byte[]:this]
IN0158: 0007F7 mov      gword ptr [V76 rbp-800H], rax
IN0159: 0007FE lea      rcx, [V77 rbp-810H]
IN015a: 000805 mov      rdx, gword ptr [V76 rbp-800H]
IN015b: 00080C call     [System.ReadOnlyMemory`1[Byte][System.Byte]:op_Implicit(System.Byte[]):System.ReadOnlyMemory`1[Byte]]
IN015c: 000812 mov      rdi, bword ptr [V74 rbp-7F0H]
IN015d: 000819 add      rdi, 176
IN015e: 000820 lea      rsi, bword ptr [V77 rbp-810H]
IN015f: 000827 call     [CORINFO_HELP_ASSIGN_BYREF]
IN0160: 00082D movsq    
IN0161: 00082F lea      rdi, bword ptr [V09 rbp-168H]
IN0162: 000836 lea      rsi, bword ptr [V19 rbp-408H]
IN0163: 00083D mov      ecx, 36
IN0164: 000842 rep movsq 
IN0165: 000845 mov      rcx, gword ptr [V00 rbp+10H]
IN0166: 000849 call     [System.Security.Cryptography.X509Certificates.CertificateRequest:get_CertificateExtensions():System.Collections.ObjectModel.Collection`1[[System.Security.Cryptography.X509Certificates.X509Extension, System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]:this]
IN0167: 00084F mov      gword ptr [V78 rbp-818H], rax
IN0168: 000856 mov      rcx, gword ptr [V78 rbp-818H]
IN0169: 00085D lea      r11, [(reloc 0x1bb561e5b58)]
IN016a: 000864 cmp      dword ptr [rcx], ecx
IN016b: 000866 call     [System.Collections.ObjectModel.Collection`1[__Canon][System.__Canon]:get_Count():int:this]
IN016c: 00086C mov      dword ptr [V79 rbp-81CH], eax

G_M9517_IG35:        ; offs=000872H, size=0114H, bbWeight=1    PerfScore 67.25, extend

IN016d: 000872 cmp      dword ptr [V79 rbp-81CH], 0
IN016e: 000879 setg     cl
IN016f: 00087C movzx    rcx, cl
IN0170: 00087F mov      dword ptr [V22 rbp-45CH], ecx
IN0171: 000885 cmp      dword ptr [V22 rbp-45CH], 0
IN0172: 00088C je       G_M9517_IG48
IN0173: 000892 nop      
IN0174: 000893 mov      rcx, gword ptr [V00 rbp+10H]
IN0175: 000897 call     [System.Security.Cryptography.X509Certificates.CertificateRequest:get_CertificateExtensions():System.Collections.ObjectModel.Collection`1[[System.Security.Cryptography.X509Certificates.X509Extension, System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]:this]
IN0176: 00089D mov      gword ptr [V90 rbp-880H], rax
IN0177: 0008A4 mov      rcx, gword ptr [V90 rbp-880H]
IN0178: 0008AB lea      r11, [(reloc 0x1bb561e5b58)]
IN0179: 0008B2 cmp      dword ptr [rcx], ecx
IN017a: 0008B4 call     [System.Collections.ObjectModel.Collection`1[__Canon][System.__Canon]:get_Count():int:this]
IN017b: 0008BA mov      dword ptr [V91 rbp-884H], eax
IN017c: 0008C0 call     [CORINFO_HELP_READYTORUN_NEW]
IN017d: 0008C6 mov      gword ptr [V92 rbp-890H], rax
IN017e: 0008CD mov      rcx, gword ptr [V92 rbp-890H]
IN017f: 0008D4 mov      edx, dword ptr [V91 rbp-884H]
IN0180: 0008DA call     [System.Collections.Generic.HashSet`1[__Canon][System.__Canon]:.ctor(int):this]
IN0181: 0008E0 mov      rcx, gword ptr [V92 rbp-890H]
IN0182: 0008E7 mov      gword ptr [V23 rbp-468H], rcx
IN0183: 0008EE mov      rcx, gword ptr [V00 rbp+10H]
IN0184: 0008F2 call     [System.Security.Cryptography.X509Certificates.CertificateRequest:get_CertificateExtensions():System.Collections.ObjectModel.Collection`1[[System.Security.Cryptography.X509Certificates.X509Extension, System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]:this]
IN0185: 0008F8 mov      gword ptr [V93 rbp-898H], rax
IN0186: 0008FF mov      rcx, gword ptr [V93 rbp-898H]
IN0187: 000906 lea      r11, [(reloc 0x1bb561e5b58)]
IN0188: 00090D cmp      dword ptr [rcx], ecx
IN0189: 00090F call     [System.Collections.ObjectModel.Collection`1[__Canon][System.__Canon]:get_Count():int:this]
IN018a: 000915 mov      dword ptr [V94 rbp-89CH], eax
IN018b: 00091B call     [CORINFO_HELP_READYTORUN_NEW]
IN018c: 000921 mov      gword ptr [V95 rbp-8A8H], rax
IN018d: 000928 mov      rcx, gword ptr [V95 rbp-8A8H]
IN018e: 00092F mov      edx, dword ptr [V94 rbp-89CH]
IN018f: 000935 call     [System.Collections.Generic.List`1[X509ExtensionAsn][System.Security.Cryptography.Asn1.X509ExtensionAsn]:.ctor(int):this]
IN0190: 00093B mov      rcx, gword ptr [V95 rbp-8A8H]
IN0191: 000942 mov      gword ptr [V24 rbp-470H], rcx
IN0192: 000949 nop      
IN0193: 00094A mov      rcx, gword ptr [V00 rbp+10H]
IN0194: 00094E call     [System.Security.Cryptography.X509Certificates.CertificateRequest:get_CertificateExtensions():System.Collections.ObjectModel.Collection`1[[System.Security.Cryptography.X509Certificates.X509Extension, System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]:this]
IN0195: 000954 mov      gword ptr [V96 rbp-8B0H], rax
IN0196: 00095B mov      rcx, gword ptr [V96 rbp-8B0H]
IN0197: 000962 lea      r11, [(reloc 0x1bb561ecff8)]
IN0198: 000969 cmp      dword ptr [rcx], ecx
IN0199: 00096B call     [System.Collections.ObjectModel.Collection`1[__Canon][System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator`1[__Canon]:this]
IN019a: 000971 mov      gword ptr [V97 rbp-8B8H], rax
IN019b: 000978 mov      rcx, gword ptr [V97 rbp-8B8H]
IN019c: 00097F mov      gword ptr [V25 rbp-478H], rcx

G_M9517_IG36:        ; offs=000986H, size=0006H, bbWeight=1    PerfScore 2.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN019d: 000986 nop      
IN019e: 000987 jmp      G_M9517_IG43

G_M9517_IG37:        ; offs=00098CH, size=004EH, bbWeight=1    PerfScore 15.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz

IN019f: 00098C mov      rcx, gword ptr [V25 rbp-478H]
IN01a0: 000993 lea      r11, [(reloc 0x1bb561ed090)]
IN01a1: 00099A call     [System.Collections.Generic.IEnumerator`1[__Canon][System.__Canon]:get_Current():System.__Canon:this]
IN01a2: 0009A0 mov      gword ptr [V99 rbp-8C8H], rax
IN01a3: 0009A7 mov      rcx, gword ptr [V99 rbp-8C8H]
IN01a4: 0009AE mov      gword ptr [V26 rbp-480H], rcx
IN01a5: 0009B5 nop      
IN01a6: 0009B6 cmp      gword ptr [V26 rbp-480H], 0
IN01a7: 0009BE sete     cl
IN01a8: 0009C1 movzx    rcx, cl
IN01a9: 0009C4 mov      dword ptr [V27 rbp-484H], ecx
IN01aa: 0009CA cmp      dword ptr [V27 rbp-484H], 0
IN01ab: 0009D1 je       SHORT G_M9517_IG38
IN01ac: 0009D3 nop      
IN01ad: 0009D4 nop      
IN01ae: 0009D5 jmp      G_M9517_IG43

G_M9517_IG38:        ; offs=0009DAH, size=008EH, bbWeight=1    PerfScore 31.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN01af: 0009DA mov      rcx, gword ptr [V23 rbp-468H]
IN01b0: 0009E1 mov      gword ptr [V100 rbp-8D0H], rcx
IN01b1: 0009E8 mov      rcx, gword ptr [V26 rbp-480H]
IN01b2: 0009EF lea      r11, [(reloc 0x1bb561ed128)]
IN01b3: 0009F6 cmp      dword ptr [rcx], ecx
IN01b4: 0009F8 call     [System.Security.Cryptography.AsnEncodedData:get_Oid():System.Security.Cryptography.Oid:this]
IN01b5: 0009FE mov      gword ptr [V101 rbp-8D8H], rax
IN01b6: 000A05 mov      rcx, gword ptr [V101 rbp-8D8H]
IN01b7: 000A0C lea      r11, [(reloc 0x1bb5616a9d8)]
IN01b8: 000A13 cmp      dword ptr [rcx], ecx
IN01b9: 000A15 call     [System.Security.Cryptography.Oid:get_Value():System.String:this]
IN01ba: 000A1B mov      gword ptr [V102 rbp-8E0H], rax
IN01bb: 000A22 mov      rcx, gword ptr [V100 rbp-8D0H]
IN01bc: 000A29 mov      rdx, gword ptr [V102 rbp-8E0H]
IN01bd: 000A30 lea      r11, [(reloc 0x1bb561ed1c0)]
IN01be: 000A37 cmp      dword ptr [rcx], ecx
IN01bf: 000A39 call     [System.Collections.Generic.HashSet`1[__Canon][System.__Canon]:Add(System.__Canon):bool:this]
IN01c0: 000A3F movzx    rcx, al
IN01c1: 000A42 mov      dword ptr [V103 rbp-8E4H], ecx
IN01c2: 000A48 cmp      dword ptr [V103 rbp-8E4H], 0
IN01c3: 000A4F sete     cl
IN01c4: 000A52 movzx    rcx, cl
IN01c5: 000A55 mov      dword ptr [V28 rbp-488H], ecx
IN01c6: 000A5B cmp      dword ptr [V28 rbp-488H], 0
IN01c7: 000A62 je       G_M9517_IG40

G_M9517_IG39:        ; offs=000A68H, size=0090H, bbWeight=0    PerfScore 0.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN01c8: 000A68 nop      
IN01c9: 000A69 call     [System.SR:get_Cryptography_CertReq_DuplicateExtension():System.String]
IN01ca: 000A6F mov      gword ptr [V105 rbp-910H], rax
IN01cb: 000A76 mov      rcx, gword ptr [V26 rbp-480H]
IN01cc: 000A7D lea      r11, [(reloc 0x1bb561ed128)]
IN01cd: 000A84 cmp      dword ptr [rcx], ecx
IN01ce: 000A86 call     [System.Security.Cryptography.AsnEncodedData:get_Oid():System.Security.Cryptography.Oid:this]
IN01cf: 000A8C mov      gword ptr [V106 rbp-918H], rax
IN01d0: 000A93 mov      rcx, gword ptr [V106 rbp-918H]
IN01d1: 000A9A lea      r11, [(reloc 0x1bb5616a9d8)]
IN01d2: 000AA1 cmp      dword ptr [rcx], ecx
IN01d3: 000AA3 call     [System.Security.Cryptography.Oid:get_Value():System.String:this]
IN01d4: 000AA9 mov      gword ptr [V107 rbp-920H], rax
IN01d5: 000AB0 mov      rcx, gword ptr [V105 rbp-910H]
IN01d6: 000AB7 mov      rdx, gword ptr [V107 rbp-920H]
IN01d7: 000ABE call     [System.SR:Format(System.String,System.Object):System.String]
IN01d8: 000AC4 mov      gword ptr [V108 rbp-928H], rax
IN01d9: 000ACB call     [CORINFO_HELP_READYTORUN_NEW]
IN01da: 000AD1 mov      gword ptr [V109 rbp-930H], rax
IN01db: 000AD8 mov      rcx, gword ptr [V109 rbp-930H]
IN01dc: 000ADF mov      rdx, gword ptr [V108 rbp-928H]
IN01dd: 000AE6 call     [System.InvalidOperationException:.ctor(System.String):this]
IN01de: 000AEC mov      rcx, gword ptr [V109 rbp-930H]
IN01df: 000AF3 call     CORINFO_HELP_THROW

G_M9517_IG40:        ; offs=000AF8H, size=0033H, bbWeight=1    PerfScore 10.83, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN01e0: 000AF8 xorps    xmm0, xmm0
IN01e1: 000AFB movups   xmmword ptr [V104 rbp-908H], xmm0
IN01e2: 000B02 movups   xmmword ptr [V104+0x10 rbp-8F8H], xmm0
IN01e3: 000B09 lea      rcx, bword ptr [V104 rbp-908H]
IN01e4: 000B10 mov      rdx, gword ptr [V26 rbp-480H]
IN01e5: 000B17 call     [System.Security.Cryptography.Asn1.X509ExtensionAsn:.ctor(System.Security.Cryptography.X509Certificates.X509Extension):this]
IN01e6: 000B1D mov      rcx, gword ptr [V24 rbp-470H]
IN01e7: 000B24 mov      gword ptr [V142 rbp-AB0H], rcx

G_M9517_IG41:        ; offs=000B2BH, size=001CH, bbWeight=1    PerfScore 10.00, nogc, extend

IN01e8: 000B2B movups   xmm0, xmmword ptr [V104 rbp-908H]
IN01e9: 000B32 movups   xmmword ptr [V141 rbp-AA8H], xmm0
IN01ea: 000B39 movups   xmm0, xmmword ptr [V104+0x10 rbp-8F8H]
IN01eb: 000B40 movups   xmmword ptr [V141+0x10 rbp-A98H], xmm0

G_M9517_IG42:        ; offs=000B47H, size=001FH, bbWeight=1    PerfScore 7.50, extend

IN01ec: 000B47 mov      rcx, gword ptr [V142 rbp-AB0H]
IN01ed: 000B4E lea      rdx, bword ptr [V141 rbp-AA8H]
IN01ee: 000B55 lea      r11, [(reloc 0x1bb561ed380)]
IN01ef: 000B5C cmp      dword ptr [rcx], ecx
IN01f0: 000B5E call     [System.Collections.Generic.List`1[X509ExtensionAsn][System.Security.Cryptography.Asn1.X509ExtensionAsn]:Add(System.Security.Cryptography.Asn1.X509ExtensionAsn):this]
IN01f1: 000B64 nop      
IN01f2: 000B65 nop      

G_M9517_IG43:        ; offs=000B66H, size=002DH, bbWeight=1    PerfScore 10.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz

IN01f3: 000B66 mov      rcx, gword ptr [V25 rbp-478H]
IN01f4: 000B6D lea      r11, [(reloc 0x1bb56167118)]
IN01f5: 000B74 call     [System.Collections.IEnumerator:MoveNext():bool:this]
IN01f6: 000B7A movzx    rcx, al
IN01f7: 000B7D mov      dword ptr [V98 rbp-8BCH], ecx
IN01f8: 000B83 cmp      dword ptr [V98 rbp-8BCH], 0
IN01f9: 000B8A jne      G_M9517_IG37
IN01fa: 000B90 nop      
IN01fb: 000B91 jmp      SHORT G_M9517_IG44

G_M9517_IG44:        ; offs=000B93H, size=0008H, bbWeight=1    PerfScore 1.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN01fc: 000B93 mov      rcx, rsp
IN01fd: 000B96 call     G_M9517_IG54

G_M9517_IG45:        ; offs=000B9BH, size=0001H, bbWeight=1    PerfScore 0.25, nogc, extend

IN01fe: 000B9B nop      

G_M9517_IG46:        ; offs=000B9CH, size=0079H, bbWeight=1    PerfScore 27.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz

IN01ff: 000B9C mov      rcx, gword ptr [V24 rbp-470H]
IN0200: 000BA3 lea      r11, [(reloc 0x1bb561ed4b0)]
IN0201: 000BAA cmp      dword ptr [rcx], ecx
IN0202: 000BAC call     [System.Collections.Generic.List`1[X509ExtensionAsn][System.Security.Cryptography.Asn1.X509ExtensionAsn]:get_Count():int:this]
IN0203: 000BB2 mov      dword ptr [V110 rbp-934H], eax
IN0204: 000BB8 cmp      dword ptr [V110 rbp-934H], 0
IN0205: 000BBF setg     cl
IN0206: 000BC2 movzx    rcx, cl
IN0207: 000BC5 mov      dword ptr [V29 rbp-48CH], ecx
IN0208: 000BCB cmp      dword ptr [V29 rbp-48CH], 0
IN0209: 000BD2 je       SHORT G_M9517_IG47
IN020a: 000BD4 nop      
IN020b: 000BD5 lea      rcx, bword ptr [V09 rbp-168H]
IN020c: 000BDC mov      bword ptr [V111 rbp-940H], rcx
IN020d: 000BE3 mov      rcx, gword ptr [V24 rbp-470H]
IN020e: 000BEA lea      r11, [(reloc 0x1bb561ed548)]
IN020f: 000BF1 cmp      dword ptr [rcx], ecx
IN0210: 000BF3 call     [System.Collections.Generic.List`1[X509ExtensionAsn][System.Security.Cryptography.Asn1.X509ExtensionAsn]:ToArray():System.Security.Cryptography.Asn1.X509ExtensionAsn[]:this]
IN0211: 000BF9 mov      gword ptr [V112 rbp-948H], rax
IN0212: 000C00 mov      rcx, bword ptr [V111 rbp-940H]
IN0213: 000C07 mov      rdx, gword ptr [V112 rbp-948H]
IN0214: 000C0E call     [CORINFO_HELP_CHECKED_ASSIGN_REF]
IN0215: 000C14 nop      

G_M9517_IG47:        ; offs=000C15H, size=0001H, bbWeight=1    PerfScore 0.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN0216: 000C15 nop      

G_M9517_IG48:        ; offs=000C16H, size=0148H, bbWeight=1    PerfScore 95.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN0217: 000C16 call     [CORINFO_HELP_READYTORUN_NEW]
IN0218: 000C1C mov      gword ptr [V80 rbp-828H], rax
IN0219: 000C23 mov      rcx, gword ptr [V80 rbp-828H]
IN021a: 000C2A mov      edx, 2
IN021b: 000C2F call     [System.Formats.Asn1.AsnWriter:.ctor(int):this]
IN021c: 000C35 mov      rcx, gword ptr [V80 rbp-828H]
IN021d: 000C3C mov      gword ptr [V10 rbp-170H], rcx
IN021e: 000C43 lea      rcx, bword ptr [V09 rbp-168H]
IN021f: 000C4A mov      rdx, gword ptr [V10 rbp-170H]
IN0220: 000C51 call     [System.Security.Cryptography.X509Certificates.Asn1.TbsCertificateAsn:Encode(System.Formats.Asn1.AsnWriter):this]
IN0221: 000C57 nop      
IN0222: 000C58 mov      rcx, gword ptr [V10 rbp-170H]
IN0223: 000C5F lea      r11, [(reloc 0x1bb56163dd0)]
IN0224: 000C66 cmp      dword ptr [rcx], ecx
IN0225: 000C68 call     [System.Formats.Asn1.AsnWriter:Encode():System.Byte[]:this]
IN0226: 000C6E mov      gword ptr [V81 rbp-830H], rax
IN0227: 000C75 mov      rcx, gword ptr [V81 rbp-830H]
IN0228: 000C7C mov      gword ptr [V11 rbp-178H], rcx
IN0229: 000C83 mov      rcx, gword ptr [V10 rbp-170H]
IN022a: 000C8A lea      r11, [(reloc 0x1bb561ec7a8)]
IN022b: 000C91 cmp      dword ptr [rcx], ecx
IN022c: 000C93 call     [System.Formats.Asn1.AsnWriter:Reset():this]
IN022d: 000C99 nop      
IN022e: 000C9A xor      edx, edx
IN022f: 000C9C lea      rcx, bword ptr [V30 rbp-5E0H]
IN0230: 000CA3 mov      r8d, 336
IN0231: 000CA9 call     [CORINFO_HELP_MEMSET]
IN0232: 000CAF lea      rdi, bword ptr [V30 rbp-5E0H]
IN0233: 000CB6 lea      rsi, bword ptr [V09 rbp-168H]
IN0234: 000CBD mov      ecx, 36
IN0235: 000CC2 rep movsq 
IN0236: 000CC5 lea      rdi, bword ptr [V30 rbp-5E0H]
IN0237: 000CCC add      rdi, 288
IN0238: 000CD3 lea      rsi, bword ptr [V07 rbp-38H]
IN0239: 000CD7 call     [CORINFO_HELP_ASSIGN_BYREF]
IN023a: 000CDD movsq    
IN023b: 000CDF call     [CORINFO_HELP_ASSIGN_BYREF]
IN023c: 000CE5 movsq    
IN023d: 000CE7 lea      rcx, bword ptr [V30 rbp-5E0H]
IN023e: 000CEE mov      bword ptr [V82 rbp-838H], rcx
IN023f: 000CF5 mov      rcx, gword ptr [V02 rbp+20H]
IN0240: 000CF9 mov      gword ptr [V83 rbp-840H], rcx
IN0241: 000D00 mov      rcx, gword ptr [V11 rbp-178H]
IN0242: 000D07 mov      gword ptr [V84 rbp-848H], rcx
IN0243: 000D0E mov      rcx, gword ptr [V00 rbp+10H]
IN0244: 000D12 call     [System.Security.Cryptography.X509Certificates.CertificateRequest:get_HashAlgorithm():System.Security.Cryptography.HashAlgorithmName:this]
IN0245: 000D18 mov      gword ptr [V85 rbp-850H], rax
IN0246: 000D1F mov      rcx, gword ptr [V83 rbp-840H]
IN0247: 000D26 mov      r8, gword ptr [V85 rbp-850H]
IN0248: 000D2D mov      rdx, gword ptr [V84 rbp-848H]
IN0249: 000D34 lea      r11, [(reloc 0x1bb561ec970)]
IN024a: 000D3B cmp      dword ptr [rcx], ecx
IN024b: 000D3D call     [System.Security.Cryptography.X509Certificates.X509SignatureGenerator:SignData(System.Byte[],System.Security.Cryptography.HashAlgorithmName):System.Byte[]:this]
IN024c: 000D43 mov      gword ptr [V86 rbp-858H], rax
IN024d: 000D4A lea      rcx, [V87 rbp-868H]
IN024e: 000D51 mov      rdx, gword ptr [V86 rbp-858H]
IN024f: 000D58 call     [System.ReadOnlyMemory`1[Byte][System.Byte]:op_Implicit(System.Byte[]):System.ReadOnlyMemory`1[Byte]]

G_M9517_IG49:        ; offs=000D5EH, size=0094H, bbWeight=1    PerfScore 55.25, extend

IN0250: 000D5E mov      rdi, bword ptr [V82 rbp-838H]
IN0251: 000D65 add      rdi, 320
IN0252: 000D6C lea      rsi, bword ptr [V87 rbp-868H]
IN0253: 000D73 call     [CORINFO_HELP_ASSIGN_BYREF]
IN0254: 000D79 movsq    
IN0255: 000D7B lea      rdi, bword ptr [V12 rbp-2C8H]
IN0256: 000D82 lea      rsi, bword ptr [V30 rbp-5E0H]
IN0257: 000D89 mov      ecx, 42
IN0258: 000D8E rep movsq 
IN0259: 000D91 lea      rcx, bword ptr [V12 rbp-2C8H]
IN025a: 000D98 mov      rdx, gword ptr [V10 rbp-170H]
IN025b: 000D9F call     [System.Security.Cryptography.X509Certificates.Asn1.CertificateAsn:Encode(System.Formats.Asn1.AsnWriter):this]
IN025c: 000DA5 nop      
IN025d: 000DA6 mov      rcx, gword ptr [V10 rbp-170H]
IN025e: 000DAD lea      r11, [(reloc 0x1bb56163dd0)]
IN025f: 000DB4 cmp      dword ptr [rcx], ecx
IN0260: 000DB6 call     [System.Formats.Asn1.AsnWriter:Encode():System.Byte[]:this]
IN0261: 000DBC mov      gword ptr [V88 rbp-870H], rax
IN0262: 000DC3 call     [CORINFO_HELP_READYTORUN_NEW]
IN0263: 000DC9 mov      gword ptr [V89 rbp-878H], rax
IN0264: 000DD0 mov      rcx, gword ptr [V89 rbp-878H]
IN0265: 000DD7 mov      rdx, gword ptr [V88 rbp-870H]
IN0266: 000DDE call     [System.Security.Cryptography.X509Certificates.X509Certificate2:.ctor(System.Byte[]):this]
IN0267: 000DE4 mov      rcx, gword ptr [V89 rbp-878H]
IN0268: 000DEB mov      gword ptr [V13 rbp-2D0H], rcx

G_M9517_IG50:        ; offs=000DF2H, size=000BH, bbWeight=1    PerfScore 5.00, nogc, extend

IN0269: 000DF2 movups   xmm0, xmmword ptr [V08 rbp-48H]
IN026a: 000DF6 movups   xmmword ptr [V143 rbp-AC0H], xmm0

G_M9517_IG51:        ; offs=000DFDH, size=001FH, bbWeight=1    PerfScore 8.00, isz, extend

IN026b: 000DFD lea      rcx, bword ptr [V143 rbp-AC0H]
IN026c: 000E04 call     [System.Security.Cryptography.CryptoPool:Return(System.ArraySegment`1[Byte])]
IN026d: 000E0A nop      
IN026e: 000E0B mov      rax, gword ptr [V13 rbp-2D0H]
IN026f: 000E12 mov      gword ptr [V31 rbp-5E8H], rax
IN0270: 000E19 nop      
IN0271: 000E1A jmp      SHORT G_M9517_IG52

G_M9517_IG52:        ; offs=000E1CH, size=0007H, bbWeight=1    PerfScore 1.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN0272: 000E1C mov      rax, gword ptr [V31 rbp-5E8H]

G_M9517_IG53:        ; offs=000E23H, size=0008H, bbWeight=1    PerfScore 3.00, epilog, nogc, extend

IN028b: 000E23 lea      rsp, [rbp-10H]
IN028c: 000E27 pop      rsi
IN028d: 000E28 pop      rdi
IN028e: 000E29 pop      rbp
IN028f: 000E2A ret      

G_M9517_IG54:        ; func=01, offs=000E2BH, size=0017H, bbWeight=1    PerfScore 6.75, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, funclet prolog, nogc

IN0290: 000E2B push     rbp
IN0291: 000E2C push     rdi
IN0292: 000E2D push     rsi
IN0293: 000E2E sub      rsp, 48
IN0294: 000E32 mov      rbp, qword ptr [rcx+32]
IN0295: 000E36 mov      qword ptr [rsp+20H], rbp
IN0296: 000E3B lea      rbp, [rbp+AF0H]

G_M9517_IG55:        ; offs=000E42H, size=001FH, bbWeight=1    PerfScore 6.75, gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz

IN0273: 000E42 cmp      gword ptr [V25 rbp-478H], 0
IN0274: 000E4A je       SHORT G_M9517_IG56
IN0275: 000E4C mov      rcx, gword ptr [V25 rbp-478H]
IN0276: 000E53 lea      r11, [(reloc 0x1bb561672f0)]
IN0277: 000E5A call     [System.IDisposable:Dispose():this]
IN0278: 000E60 nop      

G_M9517_IG56:        ; offs=000E61H, size=0001H, bbWeight=1    PerfScore 0.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN0279: 000E61 nop      

G_M9517_IG57:        ; offs=000E62H, size=0008H, bbWeight=1    PerfScore 2.75, funclet epilog, nogc, extend

IN0297: 000E62 add      rsp, 48
IN0298: 000E66 pop      rsi
IN0299: 000E67 pop      rdi
IN029a: 000E68 pop      rbp
IN029b: 000E69 ret

diff.txt

; Total bytes of code 3690, prolog size 74, PerfScore 1221.67, instruction count 667, allocated bytes for code 3690 (MethodHash=f9a6dad2) for method System.Security.Cryptography.X509Certificates.CertificateRequest:Create(System.Security.Cryptography.X509Certificates.X500DistinguishedName,System.Security.Cryptography.X509Certificates.X509SignatureGenerator,System.DateTimeOffset,System.DateTimeOffset,System.ReadOnlySpan`1[Byte]):System.Security.Cryptography.X509Certificates.X509Certificate2:this
; ============================================================

*************** After end code gen, before unwindEmit()
G_M9517_IG01:        ; func=00, offs=000000H, size=004AH, bbWeight=1    PerfScore 19.58, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG

IN027a: 000000 push     rbp
IN027b: 000001 push     rdi
IN027c: 000002 push     rsi
IN027d: 000003 sub      rsp, 0xAE0
IN027e: 00000A lea      rbp, [rsp+AF0H]
IN027f: 000012 xorps    xmm4, xmm4
IN0280: 000015 mov      rax, -0xAB0
IN0281: 00001F movaps   xmmword ptr [rbp+rax-10H], xmm4
IN0282: 000024 movaps   xmmword ptr [rax+rbp], xmm4
IN0283: 000028 movaps   xmmword ptr [rbp+rax+10H], xmm4
IN0284: 00002D add      rax, 48
IN0285: 000031 jne      SHORT  -5 instr
IN0286: 000033 mov      qword ptr [V144 rbp-AD0H], rsp
IN0287: 00003A mov      gword ptr [V00 rbp+10H], rcx
IN0288: 00003E mov      gword ptr [V01 rbp+18H], rdx
IN0289: 000042 mov      gword ptr [V02 rbp+20H], r8
IN028a: 000046 mov      bword ptr [V03 rbp+28H], r9

G_M9517_IG02:        ; offs=00004AH, size=001BH, bbWeight=1    PerfScore 5.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz

IN0001: 00004A nop      
IN0002: 00004B cmp      gword ptr [V01 rbp+18H], 0
IN0003: 000050 sete     cl
IN0004: 000053 movzx    rcx, cl
IN0005: 000056 mov      dword ptr [V14 rbp-2D4H], ecx
IN0006: 00005C cmp      dword ptr [V14 rbp-2D4H], 0
IN0007: 000063 je       SHORT G_M9517_IG04

G_M9517_IG03:        ; offs=000065H, size=003EH, bbWeight=0    PerfScore 0.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN0008: 000065 call     [CORINFO_HELP_READYTORUN_NEW]
IN0009: 00006B mov      gword ptr [V120 rbp-990H], rax
IN000a: 000072 mov      ecx, 0x3029
IN000b: 000077 call     CORINFO_HELP_STRCNS_CURRENT_MODULE
IN000c: 00007C mov      gword ptr [V121 rbp-998H], rax
IN000d: 000083 mov      rdx, gword ptr [V121 rbp-998H]
IN000e: 00008A mov      rcx, gword ptr [V120 rbp-990H]
IN000f: 000091 call     [System.ArgumentNullException:.ctor(System.String):this]
IN0010: 000097 mov      rcx, gword ptr [V120 rbp-990H]
IN0011: 00009E call     CORINFO_HELP_THROW

G_M9517_IG04:        ; offs=0000A3H, size=001AH, bbWeight=1    PerfScore 5.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz

IN0012: 0000A3 cmp      gword ptr [V02 rbp+20H], 0
IN0013: 0000A8 sete     cl
IN0014: 0000AB movzx    rcx, cl
IN0015: 0000AE mov      dword ptr [V15 rbp-2D8H], ecx
IN0016: 0000B4 cmp      dword ptr [V15 rbp-2D8H], 0
IN0017: 0000BB je       SHORT G_M9517_IG06

G_M9517_IG05:        ; offs=0000BDH, size=003EH, bbWeight=0    PerfScore 0.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN0018: 0000BD call     [CORINFO_HELP_READYTORUN_NEW]
IN0019: 0000C3 mov      gword ptr [V119 rbp-988H], rax
IN001a: 0000CA mov      ecx, 0x303F
IN001b: 0000CF call     CORINFO_HELP_STRCNS_CURRENT_MODULE
IN001c: 0000D4 mov      gword ptr [V122 rbp-9A0H], rax
IN001d: 0000DB mov      rdx, gword ptr [V122 rbp-9A0H]
IN001e: 0000E2 mov      rcx, gword ptr [V119 rbp-988H]
IN001f: 0000E9 call     [System.ArgumentNullException:.ctor(System.String):this]
IN0020: 0000EF mov      rcx, gword ptr [V119 rbp-988H]
IN0021: 0000F6 call     CORINFO_HELP_THROW

G_M9517_IG06:        ; offs=0000FBH, size=0051H, bbWeight=1    PerfScore 23.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz

IN0022: 0000FB mov      rcx, bword ptr [V04 rbp+30H]
IN0023: 0000FF movups   xmm0, xmmword ptr [rcx]
IN0024: 000102 movups   xmmword ptr [V123 rbp-9B0H], xmm0
IN0025: 000109 mov      rcx, bword ptr [V03 rbp+28H]
IN0026: 00010D movups   xmm0, xmmword ptr [rcx]
IN0027: 000110 movups   xmmword ptr [V124 rbp-9C0H], xmm0
IN0028: 000117 lea      rcx, bword ptr [V123 rbp-9B0H]
IN0029: 00011E lea      rdx, bword ptr [V124 rbp-9C0H]
IN002a: 000125 call     [System.DateTimeOffset:op_LessThan(System.DateTimeOffset,System.DateTimeOffset):bool]
IN002b: 00012B movzx    rcx, al
IN002c: 00012E mov      dword ptr [V33 rbp-5ECH], ecx
IN002d: 000134 mov      ecx, dword ptr [V33 rbp-5ECH]
IN002e: 00013A movzx    rcx, cl
IN002f: 00013D mov      dword ptr [V16 rbp-2DCH], ecx
IN0030: 000143 cmp      dword ptr [V16 rbp-2DCH], 0
IN0031: 00014A je       SHORT G_M9517_IG08

G_M9517_IG07:        ; offs=00014CH, size=003AH, bbWeight=0    PerfScore 0.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN0032: 00014C call     [System.SR:get_Cryptography_CertReq_DatesReversed():System.String]
IN0033: 000152 mov      gword ptr [V117 rbp-978H], rax
IN0034: 000159 call     [CORINFO_HELP_READYTORUN_NEW]
IN0035: 00015F mov      gword ptr [V118 rbp-980H], rax
IN0036: 000166 mov      rcx, gword ptr [V118 rbp-980H]
IN0037: 00016D mov      rdx, gword ptr [V117 rbp-978H]
IN0038: 000174 call     [System.ArgumentException:.ctor(System.String):this]
IN0039: 00017A mov      rcx, gword ptr [V118 rbp-980H]
IN003a: 000181 call     CORINFO_HELP_THROW

G_M9517_IG08:        ; offs=000186H, size=0004H, bbWeight=1    PerfScore 1.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN003b: 000186 mov      rcx, bword ptr [V05 rbp+38H]

G_M9517_IG09:        ; offs=00018AH, size=000AH, bbWeight=1    PerfScore 6.00, nogc, extend

IN003c: 00018A movups   xmm0, xmmword ptr [rcx]
IN003d: 00018D movups   xmmword ptr [V34 rbp-600H], xmm0

G_M9517_IG10:        ; offs=000194H, size=000FH, bbWeight=1    PerfScore 3.75, extend

IN003e: 000194 lea      rcx, [V35 rbp-610H]
IN003f: 00019B xor      rdx, rdx
IN0040: 00019D call     [System.ReadOnlySpan`1[Byte][System.Byte]:op_Implicit(System.Byte[]):System.ReadOnlySpan`1[Byte]]

G_M9517_IG11:        ; offs=0001A3H, size=000EH, bbWeight=1    PerfScore 5.00, nogc, extend

IN0041: 0001A3 movups   xmm0, xmmword ptr [V34 rbp-600H]
IN0042: 0001AA movups   xmmword ptr [V125 rbp-9D0H], xmm0

G_M9517_IG12:        ; offs=0001B1H, size=000EH, bbWeight=1    PerfScore 5.00, nogc, extend

IN0043: 0001B1 movups   xmm0, xmmword ptr [V35 rbp-610H]
IN0044: 0001B8 movups   xmmword ptr [V126 rbp-9E0H], xmm0

G_M9517_IG13:        ; offs=0001BFH, size=004BH, bbWeight=1    PerfScore 17.50, isz, extend

IN0045: 0001BF lea      rcx, bword ptr [V125 rbp-9D0H]
IN0046: 0001C6 lea      rdx, bword ptr [V126 rbp-9E0H]
IN0047: 0001CD call     [System.ReadOnlySpan`1[Byte][System.Byte]:op_Equality(System.ReadOnlySpan`1[Byte],System.ReadOnlySpan`1[Byte]):bool]
IN0048: 0001D3 movzx    rcx, al
IN0049: 0001D6 mov      dword ptr [V36 rbp-614H], ecx
IN004a: 0001DC cmp      dword ptr [V36 rbp-614H], 0
IN004b: 0001E3 jne      SHORT G_M9517_IG14
IN004c: 0001E5 mov      rcx, bword ptr [V05 rbp+38H]
IN004d: 0001E9 call     [System.ReadOnlySpan`1[Byte][System.Byte]:get_Length():int:this]
IN004e: 0001EF mov      dword ptr [V116 rbp-96CH], eax
IN004f: 0001F5 cmp      dword ptr [V116 rbp-96CH], 0
IN0050: 0001FC setle    cl
IN0051: 0001FF movzx    rcx, cl
IN0052: 000202 mov      dword ptr [V37 rbp-618H], ecx
IN0053: 000208 jmp      SHORT G_M9517_IG15

G_M9517_IG14:        ; offs=00020AH, size=000AH, bbWeight=1    PerfScore 1.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN0054: 00020A mov      dword ptr [V37 rbp-618H], 1

G_M9517_IG15:        ; offs=000214H, size=0018H, bbWeight=1    PerfScore 4.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz

IN0055: 000214 mov      ecx, dword ptr [V37 rbp-618H]
IN0056: 00021A movzx    rcx, cl
IN0057: 00021D mov      dword ptr [V17 rbp-2E0H], ecx
IN0058: 000223 cmp      dword ptr [V17 rbp-2E0H], 0
IN0059: 00022A je       SHORT G_M9517_IG17

G_M9517_IG16:        ; offs=00022CH, size=0052H, bbWeight=0    PerfScore 0.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN005a: 00022C call     [System.SR:get_Arg_EmptyOrNullArray():System.String]
IN005b: 000232 mov      gword ptr [V114 rbp-960H], rax
IN005c: 000239 call     [CORINFO_HELP_READYTORUN_NEW]
IN005d: 00023F mov      gword ptr [V115 rbp-968H], rax
IN005e: 000246 mov      ecx, 0x2FE9
IN005f: 00024B call     CORINFO_HELP_STRCNS_CURRENT_MODULE
IN0060: 000250 mov      gword ptr [V127 rbp-9E8H], rax
IN0061: 000257 mov      r8, gword ptr [V127 rbp-9E8H]
IN0062: 00025E mov      rdx, gword ptr [V114 rbp-960H]
IN0063: 000265 mov      rcx, gword ptr [V115 rbp-968H]
IN0064: 00026C call     [System.ArgumentException:.ctor(System.String,System.String):this]
IN0065: 000272 mov      rcx, gword ptr [V115 rbp-968H]
IN0066: 000279 call     CORINFO_HELP_THROW

G_M9517_IG17:        ; offs=00027EH, size=006AH, bbWeight=1    PerfScore 23.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN0067: 00027E mov      rcx, gword ptr [V02 rbp+20H]
IN0068: 000282 mov      gword ptr [V38 rbp-620H], rcx
IN0069: 000289 mov      rcx, gword ptr [V00 rbp+10H]
IN006a: 00028D call     [System.Security.Cryptography.X509Certificates.CertificateRequest:get_HashAlgorithm():System.Security.Cryptography.HashAlgorithmName:this]
IN006b: 000293 mov      gword ptr [V39 rbp-628H], rax
IN006c: 00029A mov      rcx, gword ptr [V38 rbp-620H]
IN006d: 0002A1 mov      rdx, gword ptr [V39 rbp-628H]
IN006e: 0002A8 lea      r11, [(reloc 0x23a937ebaa0)]
IN006f: 0002AF cmp      dword ptr [rcx], ecx
IN0070: 0002B1 call     [System.Security.Cryptography.X509Certificates.X509SignatureGenerator:GetSignatureAlgorithmIdentifier(System.Security.Cryptography.HashAlgorithmName):System.Byte[]:this]
IN0071: 0002B7 mov      gword ptr [V40 rbp-630H], rax
IN0072: 0002BE mov      rcx, gword ptr [V40 rbp-630H]
IN0073: 0002C5 mov      gword ptr [V06 rbp-18H], rcx
IN0074: 0002C9 lea      rcx, [V41 rbp-640H]
IN0075: 0002D0 mov      rdx, gword ptr [V06 rbp-18H]
IN0076: 0002D4 call     [System.ReadOnlyMemory`1[Byte][System.Byte]:op_Implicit(System.Byte[]):System.ReadOnlyMemory`1[Byte]]
IN0077: 0002DA lea      rcx, [V42 rbp-660H]
IN0078: 0002E1 mov      qword ptr [V129 rbp-A00H], rcx

G_M9517_IG18:        ; offs=0002E8H, size=000EH, bbWeight=1    PerfScore 5.00, nogc, extend

IN0079: 0002E8 movups   xmm0, xmmword ptr [V41 rbp-640H]
IN007a: 0002EF movups   xmmword ptr [V128 rbp-9F8H], xmm0

G_M9517_IG19:        ; offs=0002F6H, size=001AH, bbWeight=1    PerfScore 4.75, extend

IN007b: 0002F6 mov      rcx, qword ptr [V129 rbp-A00H]
IN007c: 0002FD lea      rdx, bword ptr [V128 rbp-9F8H]
IN007d: 000304 mov      r8d, 2
IN007e: 00030A call     [System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn:Decode(System.ReadOnlyMemory`1[Byte],int):System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn]

G_M9517_IG20:        ; offs=000310H, size=0016H, bbWeight=1    PerfScore 10.00, nogc, extend

IN007f: 000310 movups   xmm0, xmmword ptr [V42 rbp-660H]
IN0080: 000317 movups   xmmword ptr [V07 rbp-38H], xmm0
IN0081: 00031B movups   xmm0, xmmword ptr [V42+0x10 rbp-650H]
IN0082: 000322 movups   xmmword ptr [V07+0x10 rbp-28H], xmm0

G_M9517_IG21:        ; offs=000326H, size=003DH, bbWeight=1    PerfScore 13.25, isz, extend

IN0083: 000326 lea      rcx, bword ptr [V07+0x8 rbp-30H]
IN0084: 00032A call     [System.Nullable`1[ReadOnlyMemory`1][System.ReadOnlyMemory`1[System.Byte]]:get_HasValue():bool:this]
IN0085: 000330 movzx    rcx, al
IN0086: 000333 mov      dword ptr [V43 rbp-664H], ecx
IN0087: 000339 mov      ecx, dword ptr [V43 rbp-664H]
IN0088: 00033F movzx    rcx, cl
IN0089: 000342 mov      dword ptr [V18 rbp-2E4H], ecx
IN008a: 000348 cmp      dword ptr [V18 rbp-2E4H], 0
IN008b: 00034F je       SHORT G_M9517_IG24
IN008c: 000351 nop      
IN008d: 000352 lea      rcx, bword ptr [V07+0x8 rbp-30H]
IN008e: 000356 lea      rdx, [V113 rbp-958H]
IN008f: 00035D call     [System.Nullable`1[ReadOnlyMemory`1][System.ReadOnlyMemory`1[System.Byte]]:get_Value():System.ReadOnlyMemory`1[Byte]:this]

G_M9517_IG22:        ; offs=000363H, size=000EH, bbWeight=1    PerfScore 5.00, nogc, extend

IN0090: 000363 movups   xmm0, xmmword ptr [V113 rbp-958H]
IN0091: 00036A movups   xmmword ptr [V130 rbp-A10H], xmm0

G_M9517_IG23:        ; offs=000371H, size=000FH, bbWeight=1    PerfScore 4.00, extend

IN0092: 000371 lea      rcx, bword ptr [V130 rbp-A10H]
IN0093: 000378 call     [Internal.Cryptography.Helpers:ValidateDer(System.ReadOnlyMemory`1[Byte])]
IN0094: 00037E nop      
IN0095: 00037F nop      

G_M9517_IG24:        ; offs=000380H, size=001DH, bbWeight=1    PerfScore 4.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN0096: 000380 mov      rcx, gword ptr [V00 rbp+10H]
IN0097: 000384 mov      gword ptr [V132 rbp-A28H], rcx
IN0098: 00038B lea      rcx, [V44 rbp-678H]
IN0099: 000392 mov      qword ptr [V133 rbp-A30H], rcx
IN009a: 000399 mov      rcx, bword ptr [V05 rbp+38H]

G_M9517_IG25:        ; offs=00039DH, size=000AH, bbWeight=1    PerfScore 6.00, nogc, extend

IN009b: 00039D movups   xmm0, xmmword ptr [rcx]
IN009c: 0003A0 movups   xmmword ptr [V131 rbp-A20H], xmm0

G_M9517_IG26:        ; offs=0003A7H, size=001BH, bbWeight=1    PerfScore 5.50, extend

IN009d: 0003A7 mov      rcx, gword ptr [V132 rbp-A28H]
IN009e: 0003AE mov      rdx, qword ptr [V133 rbp-A30H]
IN009f: 0003B5 lea      r8, bword ptr [V131 rbp-A20H]
IN00a0: 0003BC call     [System.Security.Cryptography.X509Certificates.CertificateRequest:NormalizeSerialNumber(System.ReadOnlySpan`1[Byte]):System.ArraySegment`1[Byte]:this]

G_M9517_IG27:        ; offs=0003C2H, size=000BH, bbWeight=1    PerfScore 5.00, nogc, extend

IN00a1: 0003C2 movups   xmm0, xmmword ptr [V44 rbp-678H]
IN00a2: 0003C9 movups   xmmword ptr [V08 rbp-48H], xmm0

G_M9517_IG28:        ; offs=0003CDH, size=003BH, bbWeight=1    PerfScore 8.00, extend

IN00a3: 0003CD xor      edx, edx
IN00a4: 0003CF lea      rcx, bword ptr [V19 rbp-408H]
IN00a5: 0003D6 mov      r8d, 288
IN00a6: 0003DC call     [CORINFO_HELP_MEMSET]
IN00a7: 0003E2 mov      dword ptr [V19+0x8 rbp-400H], 2
IN00a8: 0003EC lea      rcx, bword ptr [V19 rbp-408H]
IN00a9: 0003F3 mov      bword ptr [V45 rbp-680H], rcx
IN00aa: 0003FA lea      rcx, [V46 rbp-690H]
IN00ab: 000401 mov      qword ptr [V135 rbp-A48H], rcx

G_M9517_IG29:        ; offs=000408H, size=000BH, bbWeight=1    PerfScore 5.00, nogc, extend

IN00ac: 000408 movups   xmm0, xmmword ptr [V08 rbp-48H]
IN00ad: 00040C movups   xmmword ptr [V134 rbp-A40H], xmm0

G_M9517_IG30:        ; offs=000413H, size=0133H, bbWeight=1    PerfScore 72.42, extend

IN00ae: 000413 mov      rcx, qword ptr [V135 rbp-A48H]
IN00af: 00041A lea      rdx, bword ptr [V134 rbp-A40H]
IN00b0: 000421 call     [System.ReadOnlyMemory`1[Byte][System.Byte]:op_Implicit(System.ArraySegment`1[Byte]):System.ReadOnlyMemory`1[Byte]]
IN00b1: 000427 mov      rdi, bword ptr [V45 rbp-680H]
IN00b2: 00042E add      rdi, 16
IN00b3: 000432 lea      rsi, bword ptr [V46 rbp-690H]
IN00b4: 000439 call     [CORINFO_HELP_ASSIGN_BYREF]
IN00b5: 00043F movsq    
IN00b6: 000441 lea      rdi, bword ptr [V19 rbp-408H]
IN00b7: 000448 add      rdi, 32
IN00b8: 00044C lea      rsi, bword ptr [V07 rbp-38H]
IN00b9: 000450 call     [CORINFO_HELP_ASSIGN_BYREF]
IN00ba: 000456 movsq    
IN00bb: 000458 call     [CORINFO_HELP_ASSIGN_BYREF]
IN00bc: 00045E movsq    
IN00bd: 000460 lea      rcx, bword ptr [V19 rbp-408H]
IN00be: 000467 mov      bword ptr [V47 rbp-698H], rcx
IN00bf: 00046E mov      rcx, gword ptr [V01 rbp+18H]
IN00c0: 000472 lea      r11, [(reloc 0x23a9376d690)]
IN00c1: 000479 cmp      dword ptr [rcx], ecx
IN00c2: 00047B call     [System.Security.Cryptography.AsnEncodedData:get_RawData():System.Byte[]:this]
IN00c3: 000481 mov      gword ptr [V48 rbp-6A0H], rax
IN00c4: 000488 lea      rcx, [V49 rbp-6B0H]
IN00c5: 00048F mov      rdx, gword ptr [V48 rbp-6A0H]
IN00c6: 000496 call     [System.ReadOnlyMemory`1[Byte][System.Byte]:op_Implicit(System.Byte[]):System.ReadOnlyMemory`1[Byte]]
IN00c7: 00049C mov      rdi, bword ptr [V47 rbp-698H]
IN00c8: 0004A3 add      rdi, 64
IN00c9: 0004A7 lea      rsi, bword ptr [V49 rbp-6B0H]
IN00ca: 0004AE call     [CORINFO_HELP_ASSIGN_BYREF]
IN00cb: 0004B4 movsq    
IN00cc: 0004B6 xorps    xmm0, xmm0
IN00cd: 0004B9 movups   xmmword ptr [V20 rbp-438H], xmm0
IN00ce: 0004C0 movups   xmmword ptr [V20+0x10 rbp-428H], xmm0
IN00cf: 0004C7 movups   xmmword ptr [V20+0x20 rbp-418H], xmm0
IN00d0: 0004CE xorps    xmm0, xmm0
IN00d1: 0004D1 movups   xmmword ptr [V21 rbp-458H], xmm0
IN00d2: 0004D8 movups   xmmword ptr [V21+0x10 rbp-448H], xmm0
IN00d3: 0004DF lea      rcx, bword ptr [V19 rbp-408H]
IN00d4: 0004E6 mov      bword ptr [V50 rbp-6B8H], rcx
IN00d5: 0004ED lea      rcx, bword ptr [V20 rbp-438H]
IN00d6: 0004F4 mov      bword ptr [V51 rbp-6C0H], rcx
IN00d7: 0004FB lea      rcx, bword ptr [V21 rbp-458H]
IN00d8: 000502 mov      bword ptr [V52 rbp-6C8H], rcx
IN00d9: 000509 mov      rcx, gword ptr [V00 rbp+10H]
IN00da: 00050D call     [System.Security.Cryptography.X509Certificates.CertificateRequest:get_PublicKey():System.Security.Cryptography.X509Certificates.PublicKey:this]
IN00db: 000513 mov      gword ptr [V53 rbp-6D0H], rax
IN00dc: 00051A mov      rcx, gword ptr [V53 rbp-6D0H]
IN00dd: 000521 cmp      dword ptr [rcx], ecx
IN00de: 000523 call     [System.Security.Cryptography.X509Certificates.PublicKey:get_Oid():System.Security.Cryptography.Oid:this]
IN00df: 000529 mov      gword ptr [V54 rbp-6D8H], rax
IN00e0: 000530 mov      rcx, gword ptr [V54 rbp-6D8H]
IN00e1: 000537 lea      r11, [(reloc 0x23a9376a9d8)]
IN00e2: 00053E cmp      dword ptr [rcx], ecx
IN00e3: 000540 call     [System.Security.Cryptography.Oid:get_Value():System.String:this]

G_M9517_IG31:        ; offs=000546H, size=00ABH, bbWeight=1    PerfScore 37.00, extend

IN00e4: 000546 mov      gword ptr [V55 rbp-6E0H], rax
IN00e5: 00054D mov      rdx, bword ptr [V50 rbp-6B8H]
IN00e6: 000554 mov      bword ptr [V56 rbp-6E8H], rdx
IN00e7: 00055B mov      rdx, bword ptr [V51 rbp-6C0H]
IN00e8: 000562 mov      bword ptr [V57 rbp-6F0H], rdx
IN00e9: 000569 mov      rcx, bword ptr [V52 rbp-6C8H]
IN00ea: 000570 mov      rdx, gword ptr [V55 rbp-6E0H]
IN00eb: 000577 call     [CORINFO_HELP_CHECKED_ASSIGN_REF]
IN00ec: 00057D lea      rcx, bword ptr [V21 rbp-458H]
IN00ed: 000584 mov      bword ptr [V58 rbp-6F8H], rcx
IN00ee: 00058B mov      rcx, gword ptr [V00 rbp+10H]
IN00ef: 00058F call     [System.Security.Cryptography.X509Certificates.CertificateRequest:get_PublicKey():System.Security.Cryptography.X509Certificates.PublicKey:this]
IN00f0: 000595 mov      gword ptr [V59 rbp-700H], rax
IN00f1: 00059C mov      rcx, gword ptr [V59 rbp-700H]
IN00f2: 0005A3 cmp      dword ptr [rcx], ecx
IN00f3: 0005A5 call     [System.Security.Cryptography.X509Certificates.PublicKey:get_EncodedParameters():System.Security.Cryptography.AsnEncodedData:this]
IN00f4: 0005AB mov      gword ptr [V60 rbp-708H], rax
IN00f5: 0005B2 mov      rcx, gword ptr [V60 rbp-708H]
IN00f6: 0005B9 lea      r11, [(reloc 0x23a9376d690)]
IN00f7: 0005C0 cmp      dword ptr [rcx], ecx
IN00f8: 0005C2 call     [System.Security.Cryptography.AsnEncodedData:get_RawData():System.Byte[]:this]
IN00f9: 0005C8 mov      gword ptr [V61 rbp-710H], rax
IN00fa: 0005CF lea      rcx, [V62 rbp-720H]
IN00fb: 0005D6 mov      rdx, gword ptr [V61 rbp-710H]
IN00fc: 0005DD call     [System.ReadOnlyMemory`1[Byte][System.Byte]:op_Implicit(System.Byte[]):System.ReadOnlyMemory`1[Byte]]
IN00fd: 0005E3 lea      rcx, bword ptr [V63 rbp-738H]
IN00fe: 0005EA mov      bword ptr [V137 rbp-A60H], rcx

G_M9517_IG32:        ; offs=0005F1H, size=000EH, bbWeight=1    PerfScore 5.00, nogc, extend

IN00ff: 0005F1 movups   xmm0, xmmword ptr [V62 rbp-720H]
IN0100: 0005F8 movups   xmmword ptr [V136 rbp-A58H], xmm0

G_M9517_IG33:        ; offs=0005FFH, size=0129H, bbWeight=1    PerfScore 68.75, extend

IN0101: 0005FF mov      rcx, bword ptr [V137 rbp-A60H]
IN0102: 000606 lea      rdx, bword ptr [V136 rbp-A58H]
IN0103: 00060D call     [System.Nullable`1[ReadOnlyMemory`1][System.ReadOnlyMemory`1[System.Byte]]:.ctor(System.ReadOnlyMemory`1[Byte]):this]
IN0104: 000613 mov      rax, bword ptr [V56 rbp-6E8H]
IN0105: 00061A mov      bword ptr [V64 rbp-740H], rax
IN0106: 000621 mov      rax, bword ptr [V57 rbp-6F0H]
IN0107: 000628 mov      bword ptr [V65 rbp-748H], rax
IN0108: 00062F mov      rdi, bword ptr [V58 rbp-6F8H]
IN0109: 000636 add      rdi, 8
IN010a: 00063A lea      rsi, bword ptr [V63 rbp-738H]
IN010b: 000641 movsq    
IN010c: 000643 call     [CORINFO_HELP_ASSIGN_BYREF]
IN010d: 000649 movsq    
IN010e: 00064B mov      rax, bword ptr [V64 rbp-740H]
IN010f: 000652 mov      bword ptr [V66 rbp-750H], rax
IN0110: 000659 mov      rdi, bword ptr [V65 rbp-748H]
IN0111: 000660 lea      rsi, bword ptr [V21 rbp-458H]
IN0112: 000667 call     [CORINFO_HELP_ASSIGN_BYREF]
IN0113: 00066D movsq    
IN0114: 00066F call     [CORINFO_HELP_ASSIGN_BYREF]
IN0115: 000675 movsq    
IN0116: 000677 lea      rcx, bword ptr [V20 rbp-438H]
IN0117: 00067E mov      bword ptr [V67 rbp-758H], rcx
IN0118: 000685 mov      rcx, gword ptr [V00 rbp+10H]
IN0119: 000689 call     [System.Security.Cryptography.X509Certificates.CertificateRequest:get_PublicKey():System.Security.Cryptography.X509Certificates.PublicKey:this]
IN011a: 00068F mov      gword ptr [V68 rbp-760H], rax
IN011b: 000696 mov      rcx, gword ptr [V68 rbp-760H]
IN011c: 00069D cmp      dword ptr [rcx], ecx
IN011d: 00069F call     [System.Security.Cryptography.X509Certificates.PublicKey:get_EncodedKeyValue():System.Security.Cryptography.AsnEncodedData:this]
IN011e: 0006A5 mov      gword ptr [V69 rbp-768H], rax
IN011f: 0006AC mov      rcx, gword ptr [V69 rbp-768H]
IN0120: 0006B3 lea      r11, [(reloc 0x23a9376d690)]
IN0121: 0006BA cmp      dword ptr [rcx], ecx
IN0122: 0006BC call     [System.Security.Cryptography.AsnEncodedData:get_RawData():System.Byte[]:this]
IN0123: 0006C2 mov      gword ptr [V70 rbp-770H], rax
IN0124: 0006C9 lea      rcx, [V71 rbp-780H]
IN0125: 0006D0 mov      rdx, gword ptr [V70 rbp-770H]
IN0126: 0006D7 call     [System.ReadOnlyMemory`1[Byte][System.Byte]:op_Implicit(System.Byte[]):System.ReadOnlyMemory`1[Byte]]
IN0127: 0006DD mov      rax, bword ptr [V66 rbp-750H]
IN0128: 0006E4 mov      bword ptr [V72 rbp-788H], rax
IN0129: 0006EB mov      rdi, bword ptr [V67 rbp-758H]
IN012a: 0006F2 add      rdi, 32
IN012b: 0006F6 lea      rsi, bword ptr [V71 rbp-780H]
IN012c: 0006FD call     [CORINFO_HELP_ASSIGN_BYREF]
IN012d: 000703 movsq    
IN012e: 000705 mov      rdi, bword ptr [V72 rbp-788H]
IN012f: 00070C add      rdi, 192
IN0130: 000713 lea      rsi, bword ptr [V20 rbp-438H]
IN0131: 00071A call     [CORINFO_HELP_ASSIGN_BYREF]
IN0132: 000720 movsq    
IN0133: 000722 call     [CORINFO_HELP_ASSIGN_BYREF]

G_M9517_IG34:        ; offs=000728H, size=014AH, bbWeight=1    PerfScore 105.33, extend

IN0134: 000728 movsq    
IN0135: 00072A call     [CORINFO_HELP_ASSIGN_BYREF]
IN0136: 000730 movsq    
IN0137: 000732 xorps    xmm0, xmm0
IN0138: 000735 movups   xmmword ptr [V73 rbp-7E8H], xmm0
IN0139: 00073C movups   xmmword ptr [V73+0x10 rbp-7D8H], xmm0
IN013a: 000743 movups   xmmword ptr [V73+0x20 rbp-7C8H], xmm0
IN013b: 00074A movups   xmmword ptr [V73+0x30 rbp-7B8H], xmm0
IN013c: 000751 movups   xmmword ptr [V73+0x40 rbp-7A8H], xmm0
IN013d: 000758 movups   xmmword ptr [V73+0x50 rbp-798H], xmm0
IN013e: 00075F lea      rcx, bword ptr [V73 rbp-7E8H]
IN013f: 000766 mov      bword ptr [V140 rbp-A88H], rcx
IN0140: 00076D mov      rcx, bword ptr [V03 rbp+28H]
IN0141: 000771 movups   xmm0, xmmword ptr [rcx]
IN0142: 000774 movups   xmmword ptr [V138 rbp-A70H], xmm0
IN0143: 00077B mov      rcx, bword ptr [V04 rbp+30H]
IN0144: 00077F movups   xmm0, xmmword ptr [rcx]
IN0145: 000782 movups   xmmword ptr [V139 rbp-A80H], xmm0
IN0146: 000789 mov      rcx, bword ptr [V140 rbp-A88H]
IN0147: 000790 lea      rdx, bword ptr [V138 rbp-A70H]
IN0148: 000797 lea      r8, bword ptr [V139 rbp-A80H]
IN0149: 00079E call     [System.Security.Cryptography.X509Certificates.Asn1.ValidityAsn:.ctor(System.DateTimeOffset,System.DateTimeOffset):this]
IN014a: 0007A4 lea      rcx, bword ptr [V19 rbp-408H]
IN014b: 0007AB add      rcx, 80
IN014c: 0007AF lea      rdx, bword ptr [V73 rbp-7E8H]
IN014d: 0007B6 mov      r8d, 96
IN014e: 0007BC call     [CORINFO_HELP_MEMCPY]
IN014f: 0007C2 lea      rcx, bword ptr [V19 rbp-408H]
IN0150: 0007C9 mov      bword ptr [V74 rbp-7F0H], rcx
IN0151: 0007D0 mov      rcx, gword ptr [V00 rbp+10H]
IN0152: 0007D4 call     [System.Security.Cryptography.X509Certificates.CertificateRequest:get_SubjectName():System.Security.Cryptography.X509Certificates.X500DistinguishedName:this]
IN0153: 0007DA mov      gword ptr [V75 rbp-7F8H], rax
IN0154: 0007E1 mov      rcx, gword ptr [V75 rbp-7F8H]
IN0155: 0007E8 lea      r11, [(reloc 0x23a9376d690)]
IN0156: 0007EF cmp      dword ptr [rcx], ecx
IN0157: 0007F1 call     [System.Security.Cryptography.AsnEncodedData:get_RawData():System.Byte[]:this]
IN0158: 0007F7 mov      gword ptr [V76 rbp-800H], rax
IN0159: 0007FE lea      rcx, [V77 rbp-810H]
IN015a: 000805 mov      rdx, gword ptr [V76 rbp-800H]
IN015b: 00080C call     [System.ReadOnlyMemory`1[Byte][System.Byte]:op_Implicit(System.Byte[]):System.ReadOnlyMemory`1[Byte]]
IN015c: 000812 mov      rdi, bword ptr [V74 rbp-7F0H]
IN015d: 000819 add      rdi, 176
IN015e: 000820 lea      rsi, bword ptr [V77 rbp-810H]
IN015f: 000827 call     [CORINFO_HELP_ASSIGN_BYREF]
IN0160: 00082D movsq    
IN0161: 00082F lea      rdi, bword ptr [V09 rbp-168H]
IN0162: 000836 lea      rsi, bword ptr [V19 rbp-408H]
IN0163: 00083D mov      ecx, 36
IN0164: 000842 rep movsq 
IN0165: 000845 mov      rcx, gword ptr [V00 rbp+10H]
IN0166: 000849 call     [System.Security.Cryptography.X509Certificates.CertificateRequest:get_CertificateExtensions():System.Collections.ObjectModel.Collection`1[[System.Security.Cryptography.X509Certificates.X509Extension, System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]:this]
IN0167: 00084F mov      gword ptr [V78 rbp-818H], rax
IN0168: 000856 mov      rcx, gword ptr [V78 rbp-818H]
IN0169: 00085D lea      r11, [(reloc 0x23a937e5b58)]
IN016a: 000864 cmp      dword ptr [rcx], ecx
IN016b: 000866 call     [System.Collections.ObjectModel.Collection`1[__Canon][System.__Canon]:get_Count():int:this]
IN016c: 00086C mov      dword ptr [V79 rbp-81CH], eax

G_M9517_IG35:        ; offs=000872H, size=0114H, bbWeight=1    PerfScore 67.25, extend

IN016d: 000872 cmp      dword ptr [V79 rbp-81CH], 0
IN016e: 000879 setg     cl
IN016f: 00087C movzx    rcx, cl
IN0170: 00087F mov      dword ptr [V22 rbp-45CH], ecx
IN0171: 000885 cmp      dword ptr [V22 rbp-45CH], 0
IN0172: 00088C je       G_M9517_IG48
IN0173: 000892 nop      
IN0174: 000893 mov      rcx, gword ptr [V00 rbp+10H]
IN0175: 000897 call     [System.Security.Cryptography.X509Certificates.CertificateRequest:get_CertificateExtensions():System.Collections.ObjectModel.Collection`1[[System.Security.Cryptography.X509Certificates.X509Extension, System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]:this]
IN0176: 00089D mov      gword ptr [V90 rbp-880H], rax
IN0177: 0008A4 mov      rcx, gword ptr [V90 rbp-880H]
IN0178: 0008AB lea      r11, [(reloc 0x23a937e5b58)]
IN0179: 0008B2 cmp      dword ptr [rcx], ecx
IN017a: 0008B4 call     [System.Collections.ObjectModel.Collection`1[__Canon][System.__Canon]:get_Count():int:this]
IN017b: 0008BA mov      dword ptr [V91 rbp-884H], eax
IN017c: 0008C0 call     [CORINFO_HELP_READYTORUN_NEW]
IN017d: 0008C6 mov      gword ptr [V92 rbp-890H], rax
IN017e: 0008CD mov      rcx, gword ptr [V92 rbp-890H]
IN017f: 0008D4 mov      edx, dword ptr [V91 rbp-884H]
IN0180: 0008DA call     [System.Collections.Generic.HashSet`1[__Canon][System.__Canon]:.ctor(int):this]
IN0181: 0008E0 mov      rcx, gword ptr [V92 rbp-890H]
IN0182: 0008E7 mov      gword ptr [V23 rbp-468H], rcx
IN0183: 0008EE mov      rcx, gword ptr [V00 rbp+10H]
IN0184: 0008F2 call     [System.Security.Cryptography.X509Certificates.CertificateRequest:get_CertificateExtensions():System.Collections.ObjectModel.Collection`1[[System.Security.Cryptography.X509Certificates.X509Extension, System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]:this]
IN0185: 0008F8 mov      gword ptr [V93 rbp-898H], rax
IN0186: 0008FF mov      rcx, gword ptr [V93 rbp-898H]
IN0187: 000906 lea      r11, [(reloc 0x23a937e5b58)]
IN0188: 00090D cmp      dword ptr [rcx], ecx
IN0189: 00090F call     [System.Collections.ObjectModel.Collection`1[__Canon][System.__Canon]:get_Count():int:this]
IN018a: 000915 mov      dword ptr [V94 rbp-89CH], eax
IN018b: 00091B call     [CORINFO_HELP_READYTORUN_NEW]
IN018c: 000921 mov      gword ptr [V95 rbp-8A8H], rax
IN018d: 000928 mov      rcx, gword ptr [V95 rbp-8A8H]
IN018e: 00092F mov      edx, dword ptr [V94 rbp-89CH]
IN018f: 000935 call     [System.Collections.Generic.List`1[X509ExtensionAsn][System.Security.Cryptography.Asn1.X509ExtensionAsn]:.ctor(int):this]
IN0190: 00093B mov      rcx, gword ptr [V95 rbp-8A8H]
IN0191: 000942 mov      gword ptr [V24 rbp-470H], rcx
IN0192: 000949 nop      
IN0193: 00094A mov      rcx, gword ptr [V00 rbp+10H]
IN0194: 00094E call     [System.Security.Cryptography.X509Certificates.CertificateRequest:get_CertificateExtensions():System.Collections.ObjectModel.Collection`1[[System.Security.Cryptography.X509Certificates.X509Extension, System.Security.Cryptography.X509Certificates, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]:this]
IN0195: 000954 mov      gword ptr [V96 rbp-8B0H], rax
IN0196: 00095B mov      rcx, gword ptr [V96 rbp-8B0H]
IN0197: 000962 lea      r11, [(reloc 0x23a937ecff8)]
IN0198: 000969 cmp      dword ptr [rcx], ecx
IN0199: 00096B call     [System.Collections.ObjectModel.Collection`1[__Canon][System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator`1[__Canon]:this]
IN019a: 000971 mov      gword ptr [V97 rbp-8B8H], rax
IN019b: 000978 mov      rcx, gword ptr [V97 rbp-8B8H]
IN019c: 00097F mov      gword ptr [V25 rbp-478H], rcx

G_M9517_IG36:        ; offs=000986H, size=0006H, bbWeight=1    PerfScore 2.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN019d: 000986 nop      
IN019e: 000987 jmp      G_M9517_IG43

G_M9517_IG37:        ; offs=00098CH, size=004EH, bbWeight=1    PerfScore 15.50, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz

IN019f: 00098C mov      rcx, gword ptr [V25 rbp-478H]
IN01a0: 000993 lea      r11, [(reloc 0x23a937ed090)]
IN01a1: 00099A call     [System.Collections.Generic.IEnumerator`1[__Canon][System.__Canon]:get_Current():System.__Canon:this]
IN01a2: 0009A0 mov      gword ptr [V99 rbp-8C8H], rax
IN01a3: 0009A7 mov      rcx, gword ptr [V99 rbp-8C8H]
IN01a4: 0009AE mov      gword ptr [V26 rbp-480H], rcx
IN01a5: 0009B5 nop      
IN01a6: 0009B6 cmp      gword ptr [V26 rbp-480H], 0
IN01a7: 0009BE sete     cl
IN01a8: 0009C1 movzx    rcx, cl
IN01a9: 0009C4 mov      dword ptr [V27 rbp-484H], ecx
IN01aa: 0009CA cmp      dword ptr [V27 rbp-484H], 0
IN01ab: 0009D1 je       SHORT G_M9517_IG38
IN01ac: 0009D3 nop      
IN01ad: 0009D4 nop      
IN01ae: 0009D5 jmp      G_M9517_IG43

G_M9517_IG38:        ; offs=0009DAH, size=008EH, bbWeight=1    PerfScore 31.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN01af: 0009DA mov      rcx, gword ptr [V23 rbp-468H]
IN01b0: 0009E1 mov      gword ptr [V100 rbp-8D0H], rcx
IN01b1: 0009E8 mov      rcx, gword ptr [V26 rbp-480H]
IN01b2: 0009EF lea      r11, [(reloc 0x23a937ed128)]
IN01b3: 0009F6 cmp      dword ptr [rcx], ecx
IN01b4: 0009F8 call     [System.Security.Cryptography.AsnEncodedData:get_Oid():System.Security.Cryptography.Oid:this]
IN01b5: 0009FE mov      gword ptr [V101 rbp-8D8H], rax
IN01b6: 000A05 mov      rcx, gword ptr [V101 rbp-8D8H]
IN01b7: 000A0C lea      r11, [(reloc 0x23a9376a9d8)]
IN01b8: 000A13 cmp      dword ptr [rcx], ecx
IN01b9: 000A15 call     [System.Security.Cryptography.Oid:get_Value():System.String:this]
IN01ba: 000A1B mov      gword ptr [V102 rbp-8E0H], rax
IN01bb: 000A22 mov      rcx, gword ptr [V100 rbp-8D0H]
IN01bc: 000A29 mov      rdx, gword ptr [V102 rbp-8E0H]
IN01bd: 000A30 lea      r11, [(reloc 0x23a937ed1c0)]
IN01be: 000A37 cmp      dword ptr [rcx], ecx
IN01bf: 000A39 call     [System.Collections.Generic.HashSet`1[__Canon][System.__Canon]:Add(System.__Canon):bool:this]
IN01c0: 000A3F movzx    rcx, al
IN01c1: 000A42 mov      dword ptr [V103 rbp-8E4H], ecx
IN01c2: 000A48 cmp      dword ptr [V103 rbp-8E4H], 0
IN01c3: 000A4F sete     cl
IN01c4: 000A52 movzx    rcx, cl
IN01c5: 000A55 mov      dword ptr [V28 rbp-488H], ecx
IN01c6: 000A5B cmp      dword ptr [V28 rbp-488H], 0
IN01c7: 000A62 je       G_M9517_IG40

G_M9517_IG39:        ; offs=000A68H, size=0090H, bbWeight=0    PerfScore 0.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN01c8: 000A68 nop      
IN01c9: 000A69 call     [System.SR:get_Cryptography_CertReq_DuplicateExtension():System.String]
IN01ca: 000A6F mov      gword ptr [V105 rbp-910H], rax
IN01cb: 000A76 mov      rcx, gword ptr [V26 rbp-480H]
IN01cc: 000A7D lea      r11, [(reloc 0x23a937ed128)]
IN01cd: 000A84 cmp      dword ptr [rcx], ecx
IN01ce: 000A86 call     [System.Security.Cryptography.AsnEncodedData:get_Oid():System.Security.Cryptography.Oid:this]
IN01cf: 000A8C mov      gword ptr [V106 rbp-918H], rax
IN01d0: 000A93 mov      rcx, gword ptr [V106 rbp-918H]
IN01d1: 000A9A lea      r11, [(reloc 0x23a9376a9d8)]
IN01d2: 000AA1 cmp      dword ptr [rcx], ecx
IN01d3: 000AA3 call     [System.Security.Cryptography.Oid:get_Value():System.String:this]
IN01d4: 000AA9 mov      gword ptr [V107 rbp-920H], rax
IN01d5: 000AB0 mov      rcx, gword ptr [V105 rbp-910H]
IN01d6: 000AB7 mov      rdx, gword ptr [V107 rbp-920H]
IN01d7: 000ABE call     [System.SR:Format(System.String,System.Object):System.String]
IN01d8: 000AC4 mov      gword ptr [V108 rbp-928H], rax
IN01d9: 000ACB call     [CORINFO_HELP_READYTORUN_NEW]
IN01da: 000AD1 mov      gword ptr [V109 rbp-930H], rax
IN01db: 000AD8 mov      rcx, gword ptr [V109 rbp-930H]
IN01dc: 000ADF mov      rdx, gword ptr [V108 rbp-928H]
IN01dd: 000AE6 call     [System.InvalidOperationException:.ctor(System.String):this]
IN01de: 000AEC mov      rcx, gword ptr [V109 rbp-930H]
IN01df: 000AF3 call     CORINFO_HELP_THROW

G_M9517_IG40:        ; offs=000AF8H, size=0033H, bbWeight=1    PerfScore 10.83, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN01e0: 000AF8 xorps    xmm0, xmm0
IN01e1: 000AFB movups   xmmword ptr [V104 rbp-908H], xmm0
IN01e2: 000B02 movups   xmmword ptr [V104+0x10 rbp-8F8H], xmm0
IN01e3: 000B09 lea      rcx, bword ptr [V104 rbp-908H]
IN01e4: 000B10 mov      rdx, gword ptr [V26 rbp-480H]
IN01e5: 000B17 call     [System.Security.Cryptography.Asn1.X509ExtensionAsn:.ctor(System.Security.Cryptography.X509Certificates.X509Extension):this]
IN01e6: 000B1D mov      rcx, gword ptr [V24 rbp-470H]
IN01e7: 000B24 mov      gword ptr [V142 rbp-AB0H], rcx

G_M9517_IG41:        ; offs=000B2BH, size=001CH, bbWeight=1    PerfScore 10.00, nogc, extend

IN01e8: 000B2B movups   xmm0, xmmword ptr [V104 rbp-908H]
IN01e9: 000B32 movups   xmmword ptr [V141 rbp-AA8H], xmm0
IN01ea: 000B39 movups   xmm0, xmmword ptr [V104+0x10 rbp-8F8H]
IN01eb: 000B40 movups   xmmword ptr [V141+0x10 rbp-A98H], xmm0

G_M9517_IG42:        ; offs=000B47H, size=001FH, bbWeight=1    PerfScore 7.50, extend

IN01ec: 000B47 mov      rcx, gword ptr [V142 rbp-AB0H]
IN01ed: 000B4E lea      rdx, bword ptr [V141 rbp-AA8H]
IN01ee: 000B55 lea      r11, [(reloc 0x23a937ed380)]
IN01ef: 000B5C cmp      dword ptr [rcx], ecx
IN01f0: 000B5E call     [System.Collections.Generic.List`1[X509ExtensionAsn][System.Security.Cryptography.Asn1.X509ExtensionAsn]:Add(System.Security.Cryptography.Asn1.X509ExtensionAsn):this]
IN01f1: 000B64 nop      
IN01f2: 000B65 nop      

G_M9517_IG43:        ; offs=000B66H, size=002DH, bbWeight=1    PerfScore 10.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz

IN01f3: 000B66 mov      rcx, gword ptr [V25 rbp-478H]
IN01f4: 000B6D lea      r11, [(reloc 0x23a93767118)]
IN01f5: 000B74 call     [System.Collections.IEnumerator:MoveNext():bool:this]
IN01f6: 000B7A movzx    rcx, al
IN01f7: 000B7D mov      dword ptr [V98 rbp-8BCH], ecx
IN01f8: 000B83 cmp      dword ptr [V98 rbp-8BCH], 0
IN01f9: 000B8A jne      G_M9517_IG37
IN01fa: 000B90 nop      
IN01fb: 000B91 jmp      SHORT G_M9517_IG44

G_M9517_IG44:        ; offs=000B93H, size=0008H, bbWeight=1    PerfScore 1.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN01fc: 000B93 mov      rcx, rsp
IN01fd: 000B96 call     G_M9517_IG54

G_M9517_IG45:        ; offs=000B9BH, size=0001H, bbWeight=1    PerfScore 0.25, nogc, extend

IN01fe: 000B9B nop      

G_M9517_IG46:        ; offs=000B9CH, size=0079H, bbWeight=1    PerfScore 27.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz

IN01ff: 000B9C mov      rcx, gword ptr [V24 rbp-470H]
IN0200: 000BA3 lea      r11, [(reloc 0x23a937ed4b0)]
IN0201: 000BAA cmp      dword ptr [rcx], ecx
IN0202: 000BAC call     [System.Collections.Generic.List`1[X509ExtensionAsn][System.Security.Cryptography.Asn1.X509ExtensionAsn]:get_Count():int:this]
IN0203: 000BB2 mov      dword ptr [V110 rbp-934H], eax
IN0204: 000BB8 cmp      dword ptr [V110 rbp-934H], 0
IN0205: 000BBF setg     cl
IN0206: 000BC2 movzx    rcx, cl
IN0207: 000BC5 mov      dword ptr [V29 rbp-48CH], ecx
IN0208: 000BCB cmp      dword ptr [V29 rbp-48CH], 0
IN0209: 000BD2 je       SHORT G_M9517_IG47
IN020a: 000BD4 nop      
IN020b: 000BD5 lea      rcx, bword ptr [V09 rbp-168H]
IN020c: 000BDC mov      bword ptr [V111 rbp-940H], rcx
IN020d: 000BE3 mov      rcx, gword ptr [V24 rbp-470H]
IN020e: 000BEA lea      r11, [(reloc 0x23a937ed548)]
IN020f: 000BF1 cmp      dword ptr [rcx], ecx
IN0210: 000BF3 call     [System.Collections.Generic.List`1[X509ExtensionAsn][System.Security.Cryptography.Asn1.X509ExtensionAsn]:ToArray():System.Security.Cryptography.Asn1.X509ExtensionAsn[]:this]
IN0211: 000BF9 mov      gword ptr [V112 rbp-948H], rax
IN0212: 000C00 mov      rcx, bword ptr [V111 rbp-940H]
IN0213: 000C07 mov      rdx, gword ptr [V112 rbp-948H]
IN0214: 000C0E call     [CORINFO_HELP_CHECKED_ASSIGN_REF]
IN0215: 000C14 nop      

G_M9517_IG47:        ; offs=000C15H, size=0001H, bbWeight=1    PerfScore 0.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN0216: 000C15 nop      

G_M9517_IG48:        ; offs=000C16H, size=0148H, bbWeight=1    PerfScore 95.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN0217: 000C16 call     [CORINFO_HELP_READYTORUN_NEW]
IN0218: 000C1C mov      gword ptr [V80 rbp-828H], rax
IN0219: 000C23 mov      rcx, gword ptr [V80 rbp-828H]
IN021a: 000C2A mov      edx, 2
IN021b: 000C2F call     [System.Formats.Asn1.AsnWriter:.ctor(int):this]
IN021c: 000C35 mov      rcx, gword ptr [V80 rbp-828H]
IN021d: 000C3C mov      gword ptr [V10 rbp-170H], rcx
IN021e: 000C43 lea      rcx, bword ptr [V09 rbp-168H]
IN021f: 000C4A mov      rdx, gword ptr [V10 rbp-170H]
IN0220: 000C51 call     [System.Security.Cryptography.X509Certificates.Asn1.TbsCertificateAsn:Encode(System.Formats.Asn1.AsnWriter):this]
IN0221: 000C57 nop      
IN0222: 000C58 mov      rcx, gword ptr [V10 rbp-170H]
IN0223: 000C5F lea      r11, [(reloc 0x23a93763dd0)]
IN0224: 000C66 cmp      dword ptr [rcx], ecx
IN0225: 000C68 call     [System.Formats.Asn1.AsnWriter:Encode():System.Byte[]:this]
IN0226: 000C6E mov      gword ptr [V81 rbp-830H], rax
IN0227: 000C75 mov      rcx, gword ptr [V81 rbp-830H]
IN0228: 000C7C mov      gword ptr [V11 rbp-178H], rcx
IN0229: 000C83 mov      rcx, gword ptr [V10 rbp-170H]
IN022a: 000C8A lea      r11, [(reloc 0x23a937ec7a8)]
IN022b: 000C91 cmp      dword ptr [rcx], ecx
IN022c: 000C93 call     [System.Formats.Asn1.AsnWriter:Reset():this]
IN022d: 000C99 nop      
IN022e: 000C9A xor      edx, edx
IN022f: 000C9C lea      rcx, bword ptr [V30 rbp-5E0H]
IN0230: 000CA3 mov      r8d, 336
IN0231: 000CA9 call     [CORINFO_HELP_MEMSET]
IN0232: 000CAF lea      rdi, bword ptr [V30 rbp-5E0H]
IN0233: 000CB6 lea      rsi, bword ptr [V09 rbp-168H]
IN0234: 000CBD mov      ecx, 36
IN0235: 000CC2 rep movsq 
IN0236: 000CC5 lea      rdi, bword ptr [V30 rbp-5E0H]
IN0237: 000CCC add      rdi, 288
IN0238: 000CD3 lea      rsi, bword ptr [V07 rbp-38H]
IN0239: 000CD7 call     [CORINFO_HELP_ASSIGN_BYREF]
IN023a: 000CDD movsq    
IN023b: 000CDF call     [CORINFO_HELP_ASSIGN_BYREF]
IN023c: 000CE5 movsq    
IN023d: 000CE7 lea      rcx, bword ptr [V30 rbp-5E0H]
IN023e: 000CEE mov      bword ptr [V82 rbp-838H], rcx
IN023f: 000CF5 mov      rcx, gword ptr [V02 rbp+20H]
IN0240: 000CF9 mov      gword ptr [V83 rbp-840H], rcx
IN0241: 000D00 mov      rcx, gword ptr [V11 rbp-178H]
IN0242: 000D07 mov      gword ptr [V84 rbp-848H], rcx
IN0243: 000D0E mov      rcx, gword ptr [V00 rbp+10H]
IN0244: 000D12 call     [System.Security.Cryptography.X509Certificates.CertificateRequest:get_HashAlgorithm():System.Security.Cryptography.HashAlgorithmName:this]
IN0245: 000D18 mov      gword ptr [V85 rbp-850H], rax
IN0246: 000D1F mov      rcx, gword ptr [V83 rbp-840H]
IN0247: 000D26 mov      r8, gword ptr [V85 rbp-850H]
IN0248: 000D2D mov      rdx, gword ptr [V84 rbp-848H]
IN0249: 000D34 lea      r11, [(reloc 0x23a937ec970)]
IN024a: 000D3B cmp      dword ptr [rcx], ecx
IN024b: 000D3D call     [System.Security.Cryptography.X509Certificates.X509SignatureGenerator:SignData(System.Byte[],System.Security.Cryptography.HashAlgorithmName):System.Byte[]:this]
IN024c: 000D43 mov      gword ptr [V86 rbp-858H], rax
IN024d: 000D4A lea      rcx, [V87 rbp-868H]
IN024e: 000D51 mov      rdx, gword ptr [V86 rbp-858H]
IN024f: 000D58 call     [System.ReadOnlyMemory`1[Byte][System.Byte]:op_Implicit(System.Byte[]):System.ReadOnlyMemory`1[Byte]]

G_M9517_IG49:        ; offs=000D5EH, size=0094H, bbWeight=1    PerfScore 55.25, extend

IN0250: 000D5E mov      rdi, bword ptr [V82 rbp-838H]
IN0251: 000D65 add      rdi, 320
IN0252: 000D6C lea      rsi, bword ptr [V87 rbp-868H]
IN0253: 000D73 call     [CORINFO_HELP_ASSIGN_BYREF]
IN0254: 000D79 movsq    
IN0255: 000D7B lea      rdi, bword ptr [V12 rbp-2C8H]
IN0256: 000D82 lea      rsi, bword ptr [V30 rbp-5E0H]
IN0257: 000D89 mov      ecx, 42
IN0258: 000D8E rep movsq 
IN0259: 000D91 lea      rcx, bword ptr [V12 rbp-2C8H]
IN025a: 000D98 mov      rdx, gword ptr [V10 rbp-170H]
IN025b: 000D9F call     [System.Security.Cryptography.X509Certificates.Asn1.CertificateAsn:Encode(System.Formats.Asn1.AsnWriter):this]
IN025c: 000DA5 nop      
IN025d: 000DA6 mov      rcx, gword ptr [V10 rbp-170H]
IN025e: 000DAD lea      r11, [(reloc 0x23a93763dd0)]
IN025f: 000DB4 cmp      dword ptr [rcx], ecx
IN0260: 000DB6 call     [System.Formats.Asn1.AsnWriter:Encode():System.Byte[]:this]
IN0261: 000DBC mov      gword ptr [V88 rbp-870H], rax
IN0262: 000DC3 call     [CORINFO_HELP_READYTORUN_NEW]
IN0263: 000DC9 mov      gword ptr [V89 rbp-878H], rax
IN0264: 000DD0 mov      rcx, gword ptr [V89 rbp-878H]
IN0265: 000DD7 mov      rdx, gword ptr [V88 rbp-870H]
IN0266: 000DDE call     [System.Security.Cryptography.X509Certificates.X509Certificate2:.ctor(System.Byte[]):this]
IN0267: 000DE4 mov      rcx, gword ptr [V89 rbp-878H]
IN0268: 000DEB mov      gword ptr [V13 rbp-2D0H], rcx

G_M9517_IG50:        ; offs=000DF2H, size=000BH, bbWeight=1    PerfScore 5.00, nogc, extend

IN0269: 000DF2 movups   xmm0, xmmword ptr [V08 rbp-48H]
IN026a: 000DF6 movups   xmmword ptr [V143 rbp-AC0H], xmm0

G_M9517_IG51:        ; offs=000DFDH, size=001FH, bbWeight=1    PerfScore 8.00, isz, extend

IN026b: 000DFD lea      rcx, bword ptr [V143 rbp-AC0H]
IN026c: 000E04 call     [System.Security.Cryptography.CryptoPool:Return(System.ArraySegment`1[Byte])]
IN026d: 000E0A nop      
IN026e: 000E0B mov      rax, gword ptr [V13 rbp-2D0H]
IN026f: 000E12 mov      gword ptr [V31 rbp-5E8H], rax
IN0270: 000E19 nop      
IN0271: 000E1A jmp      SHORT G_M9517_IG52

G_M9517_IG52:        ; offs=000E1CH, size=0007H, bbWeight=1    PerfScore 1.00, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN0272: 000E1C mov      rax, gword ptr [V31 rbp-5E8H]

G_M9517_IG53:        ; offs=000E23H, size=0008H, bbWeight=1    PerfScore 3.00, epilog, nogc, extend

IN028b: 000E23 lea      rsp, [rbp-10H]
IN028c: 000E27 pop      rsi
IN028d: 000E28 pop      rdi
IN028e: 000E29 pop      rbp
IN028f: 000E2A ret      

G_M9517_IG54:        ; func=01, offs=000E2BH, size=0017H, bbWeight=1    PerfScore 6.75, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, funclet prolog, nogc

IN0290: 000E2B push     rbp
IN0291: 000E2C push     rdi
IN0292: 000E2D push     rsi
IN0293: 000E2E sub      rsp, 48
IN0294: 000E32 mov      rbp, qword ptr [rcx+32]
IN0295: 000E36 mov      qword ptr [rsp+20H], rbp
IN0296: 000E3B lea      rbp, [rbp+AF0H]

G_M9517_IG55:        ; offs=000E42H, size=001FH, bbWeight=1    PerfScore 6.75, gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, isz

IN0273: 000E42 cmp      gword ptr [V25 rbp-478H], 0
IN0274: 000E4A je       SHORT G_M9517_IG56
IN0275: 000E4C mov      rcx, gword ptr [V25 rbp-478H]
IN0276: 000E53 lea      r11, [(reloc 0x23a937672f0)]
IN0277: 000E5A call     [System.IDisposable:Dispose():this]
IN0278: 000E60 nop      

G_M9517_IG56:        ; offs=000E61H, size=0001H, bbWeight=1    PerfScore 0.25, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref

IN0279: 000E61 nop      

G_M9517_IG57:        ; offs=000E62H, size=0008H, bbWeight=1    PerfScore 2.75, funclet epilog, nogc, extend

IN0297: 000E62 add      rsp, 48
IN0298: 000E66 pop      rsi
IN0299: 000E67 pop      rdi
IN029a: 000E68 pop      rbp
IN029b: 000E69 ret 

The only difference I'm seeing are addresses used (0x23a937ebaa0 vs 0x1bb561ebaa0).

Please let me know if you have any advice on what to change to get a better sense of where the regression might be.

@sandreenko
Copy link
Contributor

sandreenko commented Feb 18, 2021

@alexcovington Note: I have edited your comment to hide the logs under a spoiler, I recommend attaching them as text files in general or it makes it long to scroll between comments 😄

I usually create 2 copies of Core_Root for copies and my command looks like:

jitutils\bin\jit-diff.bat diff -b "%runtime%\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root_base" -d "%runtime%\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root_diff" --output D:\Sergey\diffs --core_root %runtime%\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root --assembly "%runtime%\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\System.Collections.Immutable.dll"  --count 1000

and it shows the expected diffs:

base.txt
diff.txt

Looks like your changes discovered another issue, opened #48451 for it. It should fix the regressions that are real, the rest look like noise (like LSRA allocates different regs or frame size became smaller and now we can't init it with only SIMD instructions and have to emit some movs).

@alexcovington
Copy link
Contributor Author

Thanks for the feedback @sandreenko, I didn't know the spoiler feature existed! Very nice.

It should fix the regressions that are real, the rest look like noise

Sounds good, I'll take another look over just to be sure. Otherwise, let me know if I can add/do anything else for this PR.

Only difference I have found so far is the frame size for CertificateRequest:Create(X500DistinguishedName,X509SignatureGenerator,DateTimeOffset,DateTimeOffset,ReadOnlySpan1):X509Certificate2:this` is larger due to allocating space during CSE (if I'm reading the output right).

Base
; Total bytes of code 131, prolog size 17, PerfScore 43.43, instruction count 39, allocated bytes for code 131 (MethodHash=1ef7a589) for method System.Security.Cryptography.X509Certificates.CertificateRequest:Create(System.Security.Cryptography.X509Certificates.X500DistinguishedName,System.Security.Cryptography.X509Certificates.X509SignatureGenerator,System.DateTimeOffset,System.DateTimeOffset,System.Byte[]):System.Security.Cryptography.X509Certificates.X509Certificate2:this
; ============================================================

Unwind Info:
  >> Start offset   : 0x000000 (not in unwind data)
  >>   End offset   : 0xd1ffab1e (not in unwind data)
  Version           : 1
  Flags             : 0x00
  SizeOfProlog      : 0x0A
  CountOfUnwindCodes: 6
  FrameRegister     : none (0)
  FrameOffset       : N/A (no FrameRegister) (Value=0)
  UnwindCodes       :
    CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
; Assembly listing for method System.Security.Cryptography.X509Certificates.CertificateRequest:Create(System.Security.Cryptography.X509Certificates.X500DistinguishedName,System.Security.Cryptography.X509Certificates.X509SignatureGenerator,System.DateTimeOffset,System.DateTimeOffset,System.ReadOnlySpan`1[Byte]):System.Security.Cryptography.X509Certificates.X509Certificate2:this
; Emitting BLENDED_CODE for X64 CPU with SSE2 - Windows
; ReadyToRun compilation
; optimized code
; rbp based frame
; fully interruptible
; Final local variable assignments
;
;  V00 this         [V00,T00] ( 13, 11.50)     ref  ->  rbx         this class-hnd
;  V01 arg1         [V01,T15] (  4,  4   )     ref  ->  rdi         class-hnd
;  V02 arg2         [V02,T14] (  5,  5   )     ref  ->  r15         class-hnd
;  V03 arg3         [V03,T03] (  4,  8   )   byref  ->  r14        
;  V04 arg4         [V04,T22] (  2,  4   )   byref  ->  r12        
;  V05 arg5         [V05,T05] (  4,  8   )   byref  ->  rsi         ld-addr-op
;  V06 loc0         [V06,T48] (  2,  2   )     ref  ->  rdx         class-hnd
;  V07 loc1         [V07    ] (  5,  4.50)  struct (32) [rbp-0x58]   do-not-enreg[XSB] must-init addr-exposed ld-addr-op
;  V08 loc2         [V08    ] (  7,  7   )  struct (16) [rbp-0x68]   do-not-enreg[XS] must-init addr-exposed
;  V09 loc3         [V09    ] (  4,  3.50)  struct (288) [rbp-0x188]   do-not-enreg[XSFB] must-init addr-exposed ld-addr-op
;* V10 loc4         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact
;  V11 loc5         [V11,T49] (  2,  2   )     ref  ->  r12         class-hnd
;  V12 loc6         [V12    ] (  2,  2   )  struct (336) [rbp-0x2D8]   do-not-enreg[XSB] must-init addr-exposed ld-addr-op
;* V13 loc7         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact
;  V14 loc8         [V14    ] (  9,  9   )  struct (288) [rbp-0x3F8]   do-not-enreg[XSFB] must-init addr-exposed ld-addr-op
;  V15 loc9         [V15    ] (  4,  4   )  struct (48) [rbp-0x428]   do-not-enreg[XSB] must-init addr-exposed ld-addr-op
;  V16 loc10        [V16,T21] (  4,  4   )  struct (32) [rbp-0x448]   do-not-enreg[SFB] must-init ld-addr-op
;  V17 loc11        [V17,T47] (  2,  2.50)     ref  ->  rsi         class-hnd exact
;  V18 loc12        [V18,T19] (  4,  3.50)     ref  ->  rdi         class-hnd exact
;  V19 loc13        [V19,T04] (  7,  9.50)     ref  ->  [rbp-0x790]   EH do-not-enreg[] class-hnd EH-live
;  V20 loc14        [V20,T02] (  5, 12   )     ref  ->  r14         class-hnd
;  V21 loc15        [V21    ] (  5,  5   )  struct (336) [rbp-0x598]   do-not-enreg[XSFB] must-init addr-exposed ld-addr-op
;  V22 OutArgs      [V22    ] (  1,  1   )  lclBlk (32) [rsp+0x00]   "OutgoingArgSpace"
;* V23 tmp1         [V23    ] (  0,  0   )  struct (16) zero-ref    "non-inline candidate call"
;  V24 tmp2         [V24    ] (  3,  6   )  struct (16) [rbp-0x5A8]   do-not-enreg[XS] must-init addr-exposed "struct address for call/obj"
;  V25 tmp3         [V25,T59] (  3,  0   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp"
;* V26 tmp4         [V26    ] (  0,  0   )  struct ( 8) zero-ref    "struct address for call/obj"
;  V27 tmp5         [V27    ] (  4,  8   )  struct (16) [rbp-0x5B8]   do-not-enreg[XS] must-init addr-exposed "struct address for call/obj"
;  V28 tmp6         [V28,T23] (  2,  4   )   byref  ->  r13         "impSpillEvalStack"
;  V29 tmp7         [V29,T24] (  2,  4   )   byref  ->  rdi         "impSpillEvalStack"
;  V30 tmp8         [V30    ] (  2,  4   )  struct (24) [rbp-0x5D0]   do-not-enreg[XSB] must-init addr-exposed "NewObj constructor temp"
;  V31 tmp9         [V31    ] (  4,  8   )  struct (16) [rbp-0x5E0]   do-not-enreg[XS] must-init addr-exposed "struct address for call/obj"
;* V32 tmp10        [V32    ] (  0,  0   )   byref  ->  zero-ref    "impSpillEvalStack"
;* V33 tmp11        [V33    ] (  0,  0   )   byref  ->  zero-ref    "impSpillEvalStack"
;* V34 tmp12        [V34    ] (  0,  0   )   byref  ->  zero-ref    "impSpillEvalStack"
;* V35 tmp13        [V35    ] (  0,  0   )   byref  ->  zero-ref    "impSpillEvalStack"
;  V36 tmp14        [V36,T11] (  4,  8   )  struct (96) [rbp-0x640]   do-not-enreg[SFB] "NewObj constructor temp"
;  V37 tmp15        [V37,T01] (  7, 14   )     ref  ->  r14         class-hnd exact "NewObj constructor temp"
;* V38 tmp16        [V38    ] (  0,  0   )  struct ( 8) zero-ref    "struct address for call/obj"
;  V39 tmp17        [V39,T06] (  3,  6   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp"
;  V40 tmp18        [V40,T45] (  3,  3   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp"
;  V41 tmp19        [V41,T46] (  3,  3   )     ref  ->  rdi         class-hnd exact "NewObj constructor temp"
;  V42 tmp20        [V42    ] (  3, 12   )  struct (32) [rbp-0x660]   do-not-enreg[XSB] must-init addr-exposed "NewObj constructor temp"
;  V43 tmp21        [V43,T64] (  2,  0   )     ref  ->  rsi         class-hnd "non-inline candidate call"
;  V44 tmp22        [V44,T60] (  3,  0   )     ref  ->  rdi         class-hnd exact "NewObj constructor temp"
;  V45 tmp23        [V45    ] (  4,  4   )  struct (16) [rbp-0x670]   do-not-enreg[XS] must-init addr-exposed "struct address for call/obj"
;  V46 tmp24        [V46,T61] (  3,  0   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp"
;  V47 tmp25        [V47,T62] (  3,  0   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp"
;  V48 tmp26        [V48,T63] (  3,  0   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp"
;  V49 tmp27        [V49,T25] (  2,  4   )     ref  ->  rcx         class-hnd "Inlining Arg"
;  V50 tmp28        [V50,T26] (  2,  4   )     ref  ->  rcx         class-hnd "Inlining Arg"
;  V51 tmp29        [V51,T27] (  2,  4   )     ref  ->  rcx         class-hnd "Inlining Arg"
;  V52 tmp30        [V52    ] (  2,  4   )  struct (16) [rbp-0x680]   do-not-enreg[SB] "Inlining Arg"
;  V53 tmp31        [V53    ] (  3,  6   )  struct (48) [rbp-0x6B0]   do-not-enreg[XSB] addr-exposed "NewObj constructor temp"
;  V54 tmp32        [V54    ] (  2,  4   )  struct (16) [rbp-0x6C0]   do-not-enreg[SB] "Inlining Arg"
;  V55 tmp33        [V55    ] (  3,  6   )  struct (48) [rbp-0x6F0]   do-not-enreg[XSB] addr-exposed "NewObj constructor temp"
;  V56 tmp34        [V56,T28] (  2,  4   )     ref  ->  rdx         class-hnd "Inlining Arg"
;  V57 tmp35        [V57    ] (  4,  8   )  struct (16) [rbp-0x700]   do-not-enreg[XSB] must-init addr-exposed "NewObj constructor temp"
;* V58 tmp36        [V58    ] (  0,  0   )   short  ->  zero-ref    V88._offsetMinutes(offs=0x00) P-INDEP "field V03._offsetMinutes (fldOffset=0x0)"
;* V59 tmp37        [V59    ] (  0,  0   )    long  ->  zero-ref    V88._dateTime(offs=0x08) P-INDEP "field V03._dateTime (fldOffset=0x8)"
;* V60 tmp38        [V60    ] (  0,  0   )   short  ->  zero-ref    V89._offsetMinutes(offs=0x00) P-INDEP "field V04._offsetMinutes (fldOffset=0x0)"
;* V61 tmp39        [V61    ] (  0,  0   )    long  ->  zero-ref    V89._dateTime(offs=0x08) P-INDEP "field V04._dateTime (fldOffset=0x8)"
;* V62 tmp40        [V62    ] (  0,  0   )   byref  ->  zero-ref    V90._pointer(offs=0x00) P-INDEP "field V05._pointer (fldOffset=0x0)"
;* V63 tmp41        [V63    ] (  0,  0   )     int  ->  zero-ref    V90._length(offs=0x08) P-INDEP "field V05._length (fldOffset=0x8)"
;  V64 tmp42        [V64    ] (  3,  3   )     ref  ->  [rbp-0x68]   do-not-enreg[X] addr-exposed V08._array(offs=0x00) P-DEP "field V08._array (fldOffset=0x0)"
;  V65 tmp43        [V65    ] (  3,  3   )     int  ->  [rbp-0x60]   do-not-enreg[X] addr-exposed V08._offset(offs=0x08) P-DEP "field V08._offset (fldOffset=0x8)"
;  V66 tmp44        [V66    ] (  3,  3   )     int  ->  [rbp-0x5C]   do-not-enreg[X] addr-exposed V08._count(offs=0x0c) P-DEP "field V08._count (fldOffset=0xc)"
;  V67 tmp45        [V67,T50] (  2,  2   )   byref  ->  r13         V23._pointer(offs=0x00) P-INDEP "field V23._pointer (fldOffset=0x0)"
;  V68 tmp46        [V68,T53] (  2,  2   )     int  ->  [rbp-0x704]   V23._length(offs=0x08) P-INDEP "field V23._length (fldOffset=0x8)"
;  V69 tmp47        [V69    ] (  2,  3   )   byref  ->  [rbp-0x5A8]   do-not-enreg[X] addr-exposed V24._pointer(offs=0x00) P-DEP "field V24._pointer (fldOffset=0x0)"
;  V70 tmp48        [V70    ] (  2,  3   )     int  ->  [rbp-0x5A0]   do-not-enreg[X] addr-exposed V24._length(offs=0x08) P-DEP "field V24._length (fldOffset=0x8)"
;  V71 tmp49        [V71,T51] (  2,  2   )     ref  ->  rdx         V26._name(offs=0x00) P-INDEP "field V26._name (fldOffset=0x0)"
;  V72 tmp50        [V72    ] (  2,  3   )     ref  ->  [rbp-0x5B8]   do-not-enreg[X] addr-exposed V27._object(offs=0x00) P-DEP "field V27._object (fldOffset=0x0)"
;  V73 tmp51        [V73    ] (  2,  3   )     int  ->  [rbp-0x5B0]   do-not-enreg[X] addr-exposed V27._index(offs=0x08) P-DEP "field V27._index (fldOffset=0x8)"
;  V74 tmp52        [V74    ] (  2,  3   )     int  ->  [rbp-0x5AC]   do-not-enreg[X] addr-exposed V27._length(offs=0x0c) P-DEP "field V27._length (fldOffset=0xc)"
;  V75 tmp53        [V75    ] (  2,  3   )     ref  ->  [rbp-0x5E0]   do-not-enreg[X] addr-exposed V31._object(offs=0x00) P-DEP "field V31._object (fldOffset=0x0)"
;  V76 tmp54        [V76    ] (  2,  3   )     int  ->  [rbp-0x5D8]   do-not-enreg[X] addr-exposed V31._index(offs=0x08) P-DEP "field V31._index (fldOffset=0x8)"
;  V77 tmp55        [V77    ] (  2,  3   )     int  ->  [rbp-0x5D4]   do-not-enreg[X] addr-exposed V31._length(offs=0x0c) P-DEP "field V31._length (fldOffset=0xc)"
;  V78 tmp56        [V78,T52] (  2,  2   )     ref  ->   r8         V38._name(offs=0x00) P-INDEP "field V38._name (fldOffset=0x0)"
;  V79 tmp57        [V79    ] (  2,  1.50)     ref  ->  [rbp-0x670]   do-not-enreg[X] addr-exposed V45._object(offs=0x00) P-DEP "field V45._object (fldOffset=0x0)"
;  V80 tmp58        [V80    ] (  2,  1.50)     int  ->  [rbp-0x668]   do-not-enreg[X] addr-exposed V45._index(offs=0x08) P-DEP "field V45._index (fldOffset=0x8)"
;  V81 tmp59        [V81    ] (  2,  1.50)     int  ->  [rbp-0x664]   do-not-enreg[X] addr-exposed V45._length(offs=0x0c) P-DEP "field V45._length (fldOffset=0xc)"
;  V82 tmp60        [V82,T37] (  2,  4   )   short  ->  [rbp-0x680]   do-not-enreg[] V52._offsetMinutes(offs=0x00) P-DEP "field V52._offsetMinutes (fldOffset=0x0)"
;  V83 tmp61        [V83,T38] (  2,  4   )    long  ->  [rbp-0x678]   do-not-enreg[] V52._dateTime(offs=0x08) P-DEP "field V52._dateTime (fldOffset=0x8)"
;  V84 tmp62        [V84,T39] (  2,  4   )   short  ->  [rbp-0x6C0]   do-not-enreg[] V54._offsetMinutes(offs=0x00) P-DEP "field V54._offsetMinutes (fldOffset=0x0)"
;  V85 tmp63        [V85,T40] (  2,  4   )    long  ->  [rbp-0x6B8]   do-not-enreg[] V54._dateTime(offs=0x08) P-DEP "field V54._dateTime (fldOffset=0x8)"
;  V86 tmp64        [V86    ] (  3,  5   )   byref  ->  [rbp-0x700]   do-not-enreg[X] addr-exposed V57._pointer(offs=0x00) P-DEP "field V57._pointer (fldOffset=0x0)"
;  V87 tmp65        [V87    ] (  3,  5   )     int  ->  [rbp-0x6F8]   do-not-enreg[X] addr-exposed V57._length(offs=0x08) P-DEP "field V57._length (fldOffset=0x8)"
;* V88 tmp66        [V88    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref"
;* V89 tmp67        [V89    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref"
;* V90 tmp68        [V90    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref"
;  V91 tmp69        [V91,T65] (  2,  0   )     ref  ->  rdx         "argument with side effect"
;  V92 tmp70        [V92,T66] (  2,  0   )     ref  ->  rdx         "argument with side effect"
;  V93 tmp71        [V93    ] (  6, 12   )  struct (16) [rbp-0x718]   do-not-enreg[XSB] addr-exposed "by-value struct argument"
;  V94 tmp72        [V94    ] (  2,  4   )  struct (16) [rbp-0x728]   do-not-enreg[XSB] addr-exposed "by-value struct argument"
;  V95 tmp73        [V95,T67] (  2,  0   )     ref  ->  rcx         "argument with side effect"
;  V96 tmp74        [V96,T68] (  2,  0   )     ref  ->  rdx         "argument with side effect"
;  V97 tmp75        [V97    ] (  6, 12   )  struct (16) [rbp-0x738]   do-not-enreg[XSB] must-init addr-exposed "by-value struct argument"
;  V98 tmp76        [V98,T16] (  3,  6   )   byref  ->  rcx         stack-byref "BlockOp address local"
;  V99 tmp77        [V99    ] (  2,  4   )  struct (16) [rbp-0x748]   do-not-enreg[XSB] must-init addr-exposed "by-value struct argument"
;  V100 tmp78       [V100,T17] (  3,  6   )   byref  ->  rcx         stack-byref "BlockOp address local"
;  V101 tmp79       [V101,T69] (  2,  0   )     ref  ->  rcx         "argument with side effect"
;  V102 tmp80       [V102,T70] (  2,  0   )     ref  ->  rdi         "argument with side effect"
;  V103 tmp81       [V103,T71] (  2,  0   )     ref  ->   r8         "argument with side effect"
;  V104 tmp82       [V104    ] (  6, 10   )  struct (16) [rbp-0x758]   do-not-enreg[XSB] must-init addr-exposed "by-value struct argument"
;  V105 tmp83       [V105,T07] (  4,  8   )   byref  ->  rdx         stack-byref "BlockOp address local"
;  V106 tmp84       [V106,T41] (  2,  4   )    long  ->  rcx         "argument with side effect"
;  V107 tmp85       [V107,T20] (  4,  4   )   byref  ->  rcx         stack-byref "BlockOp address local"
;* V108 tmp86       [V108,T56] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
;  V109 tmp87       [V109,T42] (  2,  4   )    long  ->  rdx         "argument with side effect"
;  V110 tmp88       [V110    ] (  4,  8   )  struct (16) [rbp-0x768]   do-not-enreg[XSB] must-init addr-exposed "by-value struct argument"
;  V111 tmp89       [V111,T08] (  4,  8   )   byref  ->  rdx         stack-byref "BlockOp address local"
;  V112 tmp90       [V112,T43] (  2,  4   )    long  ->  rcx         "argument with side effect"
;  V113 tmp91       [V113,T29] (  2,  4   )     ref  ->  rdx         "argument with side effect"
;  V114 tmp92       [V114,T30] (  2,  4   )     ref  ->  rdx         "argument with side effect"
;  V115 tmp93       [V115,T09] (  4,  8   )   byref  ->  rdx         stack-byref "BlockOp address local"
;  V116 tmp94       [V116,T31] (  2,  4   )   byref  ->  rcx         "argument with side effect"
;  V117 tmp95       [V117,T32] (  2,  4   )     ref  ->  rdx         "argument with side effect"
;  V118 tmp96       [V118,T33] (  2,  4   )   byref  ->  rcx         "argument with side effect"
;  V119 tmp97       [V119,T34] (  2,  4   )   byref  ->  rcx         "argument with side effect"
;  V120 tmp98       [V120,T35] (  2,  4   )     ref  ->  rdx         "argument with side effect"
;  V121 tmp99       [V121,T54] (  2,  2   )     int  ->  rdx         "argument with side effect"
;  V122 tmp100      [V122,T55] (  2,  2   )     int  ->  rdx         "argument with side effect"
;  V123 tmp101      [V123,T12] (  2,  8   )     ref  ->  rcx         "argument with side effect"
;  V124 tmp102      [V124,T13] (  2,  8   )     ref  ->  rdx         "argument with side effect"
;  V125 tmp103      [V125,T72] (  2,  0   )     ref  ->  rcx         "argument with side effect"
;  V126 tmp104      [V126,T73] (  2,  0   )     ref  ->  rcx         "argument with side effect"
;  V127 tmp105      [V127,T74] (  2,  0   )     ref  ->  rdx         "argument with side effect"
;  V128 tmp106      [V128,T75] (  2,  0   )     ref  ->  rdx         "argument with side effect"
;  V129 tmp107      [V129    ] (  2,  8   )  struct (32) [rbp-0x788]   do-not-enreg[XSB] must-init addr-exposed "by-value struct argument"
;* V130 tmp108      [V130,T44] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
;  V131 tmp109      [V131,T36] (  2,  4   )     ref  ->  rdx         "argument with side effect"
;  V132 tmp110      [V132,T18] (  3,  6   )   byref  ->  rcx         stack-byref "BlockOp address local"
;* V133 tmp111      [V133,T57] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
;  V134 tmp112      [V134,T10] (  4,  8   )   byref  ->  rcx         stack-byref "BlockOp address local"
;  V135 PSPSym      [V135    ] (  1,  1   )    long  ->  [rbp-0x7A0]   do-not-enreg[X] addr-exposed "PSPSym"
;  V136 tmp114      [V136,T58] (  2,  1   )     ref  ->  rax         "optAddCopies"
																					 
;
; Lcl frame size = 1928
Diff
; Total bytes of code 131, prolog size 17, PerfScore 43.43, instruction count 39, allocated bytes for code 131 (MethodHash=1ef7a589) for method System.Security.Cryptography.X509Certificates.CertificateRequest:Create(System.Security.Cryptography.X509Certificates.X500DistinguishedName,System.Security.Cryptography.X509Certificates.X509SignatureGenerator,System.DateTimeOffset,System.DateTimeOffset,System.Byte[]):System.Security.Cryptography.X509Certificates.X509Certificate2:this
; ============================================================

Unwind Info:
  >> Start offset   : 0x000000 (not in unwind data)
  >>   End offset   : 0xd1ffab1e (not in unwind data)
  Version           : 1
  Flags             : 0x00
  SizeOfProlog      : 0x0A
  CountOfUnwindCodes: 6
  FrameRegister     : none (0)
  FrameOffset       : N/A (no FrameRegister) (Value=0)
  UnwindCodes       :
    CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
; Assembly listing for method System.Security.Cryptography.X509Certificates.CertificateRequest:Create(System.Security.Cryptography.X509Certificates.X500DistinguishedName,System.Security.Cryptography.X509Certificates.X509SignatureGenerator,System.DateTimeOffset,System.DateTimeOffset,System.ReadOnlySpan`1[Byte]):System.Security.Cryptography.X509Certificates.X509Certificate2:this
; Emitting BLENDED_CODE for X64 CPU with SSE2 - Windows
; ReadyToRun compilation
; optimized code
; rbp based frame
; fully interruptible
; Final local variable assignments
;
;  V00 this         [V00,T00] ( 13, 11.50)     ref  ->  rbx         this class-hnd
;  V01 arg1         [V01,T15] (  4,  4   )     ref  ->  rdi         class-hnd
;  V02 arg2         [V02,T14] (  5,  5   )     ref  ->  r15         class-hnd
;  V03 arg3         [V03,T03] (  4,  8   )   byref  ->  r14        
;  V04 arg4         [V04,T23] (  2,  4   )   byref  ->  r12        
;  V05 arg5         [V05,T05] (  4,  8   )   byref  ->  rsi         ld-addr-op
;  V06 loc0         [V06,T48] (  2,  2   )     ref  ->  rdx         class-hnd
;  V07 loc1         [V07    ] (  5,  4.50)  struct (32) [rbp-0x58]   do-not-enreg[XSB] must-init addr-exposed ld-addr-op
;  V08 loc2         [V08    ] (  7,  7   )  struct (16) [rbp-0x68]   do-not-enreg[XS] must-init addr-exposed
;  V09 loc3         [V09    ] (  4,  3.50)  struct (288) [rbp-0x188]   do-not-enreg[XSFB] must-init addr-exposed ld-addr-op
;* V10 loc4         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact
;  V11 loc5         [V11,T49] (  2,  2   )     ref  ->  r12         class-hnd
;  V12 loc6         [V12    ] (  2,  2   )  struct (336) [rbp-0x2D8]   do-not-enreg[XSB] must-init addr-exposed ld-addr-op
;* V13 loc7         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact
;  V14 loc8         [V14    ] (  9,  9   )  struct (288) [rbp-0x3F8]   do-not-enreg[XSFB] must-init addr-exposed ld-addr-op
;  V15 loc9         [V15    ] (  4,  4   )  struct (48) [rbp-0x428]   do-not-enreg[XSB] must-init addr-exposed ld-addr-op
;  V16 loc10        [V16,T21] (  4,  4   )  struct (32) [rbp-0x448]   do-not-enreg[SFB] must-init ld-addr-op
;  V17 loc11        [V17,T47] (  2,  2.50)     ref  ->  rsi         class-hnd exact
;  V18 loc12        [V18,T19] (  4,  3.50)     ref  ->  rdi         class-hnd exact
;  V19 loc13        [V19,T04] (  7,  9.50)     ref  ->  [rbp-0x790]   EH do-not-enreg[] class-hnd EH-live
;  V20 loc14        [V20,T02] (  5, 12   )     ref  ->  r14         class-hnd
;  V21 loc15        [V21    ] (  5,  5   )  struct (336) [rbp-0x598]   do-not-enreg[XSFB] must-init addr-exposed ld-addr-op
;  V22 OutArgs      [V22    ] (  1,  1   )  lclBlk (32) [rsp+0x00]   "OutgoingArgSpace"
;* V23 tmp1         [V23    ] (  0,  0   )  struct (16) zero-ref    "non-inline candidate call"
;  V24 tmp2         [V24    ] (  3,  6   )  struct (16) [rbp-0x5A8]   do-not-enreg[XS] must-init addr-exposed "struct address for call/obj"
;  V25 tmp3         [V25,T59] (  3,  0   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp"
;* V26 tmp4         [V26    ] (  0,  0   )  struct ( 8) zero-ref    "struct address for call/obj"
;  V27 tmp5         [V27    ] (  4,  8   )  struct (16) [rbp-0x5B8]   do-not-enreg[XS] must-init addr-exposed "struct address for call/obj"
;  V28 tmp6         [V28,T24] (  2,  4   )   byref  ->  [rbp-0x798]   "impSpillEvalStack"
;  V29 tmp7         [V29,T25] (  2,  4   )   byref  ->  [rbp-0x7A0]   "impSpillEvalStack"
;  V30 tmp8         [V30    ] (  2,  4   )  struct (24) [rbp-0x5D0]   do-not-enreg[XSB] must-init addr-exposed "NewObj constructor temp"
;  V31 tmp9         [V31    ] (  4,  8   )  struct (16) [rbp-0x5E0]   do-not-enreg[XS] must-init addr-exposed "struct address for call/obj"
;* V32 tmp10        [V32    ] (  0,  0   )   byref  ->  zero-ref    "impSpillEvalStack"
;* V33 tmp11        [V33    ] (  0,  0   )   byref  ->  zero-ref    "impSpillEvalStack"
;* V34 tmp12        [V34    ] (  0,  0   )   byref  ->  zero-ref    "impSpillEvalStack"
;* V35 tmp13        [V35    ] (  0,  0   )   byref  ->  zero-ref    "impSpillEvalStack"
;  V36 tmp14        [V36,T11] (  4,  8   )  struct (96) [rbp-0x640]   do-not-enreg[SFB] "NewObj constructor temp"
;  V37 tmp15        [V37,T01] (  7, 14   )     ref  ->  r14         class-hnd exact "NewObj constructor temp"
;* V38 tmp16        [V38    ] (  0,  0   )  struct ( 8) zero-ref    "struct address for call/obj"
;  V39 tmp17        [V39,T06] (  3,  6   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp"
;  V40 tmp18        [V40,T45] (  3,  3   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp"
;  V41 tmp19        [V41,T46] (  3,  3   )     ref  ->  rdi         class-hnd exact "NewObj constructor temp"
;  V42 tmp20        [V42    ] (  3, 12   )  struct (32) [rbp-0x660]   do-not-enreg[XSB] must-init addr-exposed "NewObj constructor temp"
;  V43 tmp21        [V43,T64] (  2,  0   )     ref  ->  rsi         class-hnd "non-inline candidate call"
;  V44 tmp22        [V44,T60] (  3,  0   )     ref  ->  rdi         class-hnd exact "NewObj constructor temp"
;  V45 tmp23        [V45    ] (  4,  4   )  struct (16) [rbp-0x670]   do-not-enreg[XS] must-init addr-exposed "struct address for call/obj"
;  V46 tmp24        [V46,T61] (  3,  0   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp"
;  V47 tmp25        [V47,T62] (  3,  0   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp"
;  V48 tmp26        [V48,T63] (  3,  0   )     ref  ->  rsi         class-hnd exact "NewObj constructor temp"
;  V49 tmp27        [V49,T26] (  2,  4   )     ref  ->  rcx         class-hnd "Inlining Arg"
;  V50 tmp28        [V50,T27] (  2,  4   )     ref  ->  rcx         class-hnd "Inlining Arg"
;  V51 tmp29        [V51,T28] (  2,  4   )     ref  ->  rcx         class-hnd "Inlining Arg"
;  V52 tmp30        [V52    ] (  2,  4   )  struct (16) [rbp-0x680]   do-not-enreg[SB] "Inlining Arg"
;  V53 tmp31        [V53    ] (  3,  6   )  struct (48) [rbp-0x6B0]   do-not-enreg[XSB] addr-exposed "NewObj constructor temp"
;  V54 tmp32        [V54    ] (  2,  4   )  struct (16) [rbp-0x6C0]   do-not-enreg[SB] "Inlining Arg"
;  V55 tmp33        [V55    ] (  3,  6   )  struct (48) [rbp-0x6F0]   do-not-enreg[XSB] addr-exposed "NewObj constructor temp"
;  V56 tmp34        [V56,T29] (  2,  4   )     ref  ->  rdx         class-hnd "Inlining Arg"
;  V57 tmp35        [V57    ] (  4,  8   )  struct (16) [rbp-0x700]   do-not-enreg[XSB] must-init addr-exposed "NewObj constructor temp"
;* V58 tmp36        [V58    ] (  0,  0   )   short  ->  zero-ref    V88._offsetMinutes(offs=0x00) P-INDEP "field V03._offsetMinutes (fldOffset=0x0)"
;* V59 tmp37        [V59    ] (  0,  0   )    long  ->  zero-ref    V88._dateTime(offs=0x08) P-INDEP "field V03._dateTime (fldOffset=0x8)"
;* V60 tmp38        [V60    ] (  0,  0   )   short  ->  zero-ref    V89._offsetMinutes(offs=0x00) P-INDEP "field V04._offsetMinutes (fldOffset=0x0)"
;* V61 tmp39        [V61    ] (  0,  0   )    long  ->  zero-ref    V89._dateTime(offs=0x08) P-INDEP "field V04._dateTime (fldOffset=0x8)"
;* V62 tmp40        [V62    ] (  0,  0   )   byref  ->  zero-ref    V90._pointer(offs=0x00) P-INDEP "field V05._pointer (fldOffset=0x0)"
;* V63 tmp41        [V63    ] (  0,  0   )     int  ->  zero-ref    V90._length(offs=0x08) P-INDEP "field V05._length (fldOffset=0x8)"
;  V64 tmp42        [V64    ] (  3,  3   )     ref  ->  [rbp-0x68]   do-not-enreg[X] addr-exposed V08._array(offs=0x00) P-DEP "field V08._array (fldOffset=0x0)"
;  V65 tmp43        [V65    ] (  3,  3   )     int  ->  [rbp-0x60]   do-not-enreg[X] addr-exposed V08._offset(offs=0x08) P-DEP "field V08._offset (fldOffset=0x8)"
;  V66 tmp44        [V66    ] (  3,  3   )     int  ->  [rbp-0x5C]   do-not-enreg[X] addr-exposed V08._count(offs=0x0c) P-DEP "field V08._count (fldOffset=0xc)"
;  V67 tmp45        [V67,T50] (  2,  2   )   byref  ->  r13         V23._pointer(offs=0x00) P-INDEP "field V23._pointer (fldOffset=0x0)"
;  V68 tmp46        [V68,T53] (  2,  2   )     int  ->  [rbp-0x704]   V23._length(offs=0x08) P-INDEP "field V23._length (fldOffset=0x8)"
;  V69 tmp47        [V69    ] (  2,  3   )   byref  ->  [rbp-0x5A8]   do-not-enreg[X] addr-exposed V24._pointer(offs=0x00) P-DEP "field V24._pointer (fldOffset=0x0)"
;  V70 tmp48        [V70    ] (  2,  3   )     int  ->  [rbp-0x5A0]   do-not-enreg[X] addr-exposed V24._length(offs=0x08) P-DEP "field V24._length (fldOffset=0x8)"
;  V71 tmp49        [V71,T51] (  2,  2   )     ref  ->  rdx         V26._name(offs=0x00) P-INDEP "field V26._name (fldOffset=0x0)"
;  V72 tmp50        [V72    ] (  2,  3   )     ref  ->  [rbp-0x5B8]   do-not-enreg[X] addr-exposed V27._object(offs=0x00) P-DEP "field V27._object (fldOffset=0x0)"
;  V73 tmp51        [V73    ] (  2,  3   )     int  ->  [rbp-0x5B0]   do-not-enreg[X] addr-exposed V27._index(offs=0x08) P-DEP "field V27._index (fldOffset=0x8)"
;  V74 tmp52        [V74    ] (  2,  3   )     int  ->  [rbp-0x5AC]   do-not-enreg[X] addr-exposed V27._length(offs=0x0c) P-DEP "field V27._length (fldOffset=0xc)"
;  V75 tmp53        [V75    ] (  2,  3   )     ref  ->  [rbp-0x5E0]   do-not-enreg[X] addr-exposed V31._object(offs=0x00) P-DEP "field V31._object (fldOffset=0x0)"
;  V76 tmp54        [V76    ] (  2,  3   )     int  ->  [rbp-0x5D8]   do-not-enreg[X] addr-exposed V31._index(offs=0x08) P-DEP "field V31._index (fldOffset=0x8)"
;  V77 tmp55        [V77    ] (  2,  3   )     int  ->  [rbp-0x5D4]   do-not-enreg[X] addr-exposed V31._length(offs=0x0c) P-DEP "field V31._length (fldOffset=0xc)"
;  V78 tmp56        [V78,T52] (  2,  2   )     ref  ->   r8         V38._name(offs=0x00) P-INDEP "field V38._name (fldOffset=0x0)"
;  V79 tmp57        [V79    ] (  2,  1.50)     ref  ->  [rbp-0x670]   do-not-enreg[X] addr-exposed V45._object(offs=0x00) P-DEP "field V45._object (fldOffset=0x0)"
;  V80 tmp58        [V80    ] (  2,  1.50)     int  ->  [rbp-0x668]   do-not-enreg[X] addr-exposed V45._index(offs=0x08) P-DEP "field V45._index (fldOffset=0x8)"
;  V81 tmp59        [V81    ] (  2,  1.50)     int  ->  [rbp-0x664]   do-not-enreg[X] addr-exposed V45._length(offs=0x0c) P-DEP "field V45._length (fldOffset=0xc)"
;  V82 tmp60        [V82,T38] (  2,  4   )   short  ->  [rbp-0x680]   do-not-enreg[] V52._offsetMinutes(offs=0x00) P-DEP "field V52._offsetMinutes (fldOffset=0x0)"
;  V83 tmp61        [V83,T39] (  2,  4   )    long  ->  [rbp-0x678]   do-not-enreg[] V52._dateTime(offs=0x08) P-DEP "field V52._dateTime (fldOffset=0x8)"
;  V84 tmp62        [V84,T40] (  2,  4   )   short  ->  [rbp-0x6C0]   do-not-enreg[] V54._offsetMinutes(offs=0x00) P-DEP "field V54._offsetMinutes (fldOffset=0x0)"
;  V85 tmp63        [V85,T41] (  2,  4   )    long  ->  [rbp-0x6B8]   do-not-enreg[] V54._dateTime(offs=0x08) P-DEP "field V54._dateTime (fldOffset=0x8)"
;  V86 tmp64        [V86    ] (  3,  5   )   byref  ->  [rbp-0x700]   do-not-enreg[X] addr-exposed V57._pointer(offs=0x00) P-DEP "field V57._pointer (fldOffset=0x0)"
;  V87 tmp65        [V87    ] (  3,  5   )     int  ->  [rbp-0x6F8]   do-not-enreg[X] addr-exposed V57._length(offs=0x08) P-DEP "field V57._length (fldOffset=0x8)"
;* V88 tmp66        [V88    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref"
;* V89 tmp67        [V89    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref"
;* V90 tmp68        [V90    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref"
;  V91 tmp69        [V91,T65] (  2,  0   )     ref  ->  rdx         "argument with side effect"
;  V92 tmp70        [V92,T66] (  2,  0   )     ref  ->  rdx         "argument with side effect"
;  V93 tmp71        [V93    ] (  6, 12   )  struct (16) [rbp-0x718]   do-not-enreg[XSB] addr-exposed "by-value struct argument"
;  V94 tmp72        [V94    ] (  2,  4   )  struct (16) [rbp-0x728]   do-not-enreg[XSB] addr-exposed "by-value struct argument"
;  V95 tmp73        [V95,T67] (  2,  0   )     ref  ->  rcx         "argument with side effect"
;  V96 tmp74        [V96,T68] (  2,  0   )     ref  ->  rdx         "argument with side effect"
;  V97 tmp75        [V97    ] (  6, 12   )  struct (16) [rbp-0x738]   do-not-enreg[XSB] must-init addr-exposed "by-value struct argument"
;  V98 tmp76        [V98,T16] (  3,  6   )   byref  ->  rcx         stack-byref "BlockOp address local"
;  V99 tmp77        [V99    ] (  2,  4   )  struct (16) [rbp-0x748]   do-not-enreg[XSB] must-init addr-exposed "by-value struct argument"
;  V100 tmp78       [V100,T17] (  3,  6   )   byref  ->  rcx         stack-byref "BlockOp address local"
;  V101 tmp79       [V101,T69] (  2,  0   )     ref  ->  rcx         "argument with side effect"
;  V102 tmp80       [V102,T70] (  2,  0   )     ref  ->  rdi         "argument with side effect"
;  V103 tmp81       [V103,T71] (  2,  0   )     ref  ->   r8         "argument with side effect"
;  V104 tmp82       [V104    ] (  6, 10   )  struct (16) [rbp-0x758]   do-not-enreg[XSB] must-init addr-exposed "by-value struct argument"
;  V105 tmp83       [V105,T07] (  4,  8   )   byref  ->  rdx         stack-byref "BlockOp address local"
;  V106 tmp84       [V106,T42] (  2,  4   )    long  ->  rcx         "argument with side effect"
;  V107 tmp85       [V107,T20] (  4,  4   )   byref  ->  rcx         stack-byref "BlockOp address local"
;* V108 tmp86       [V108,T56] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
																								
;  V109 tmp87       [V109    ] (  4,  8   )  struct (16) [rbp-0x768]   do-not-enreg[XSB] must-init addr-exposed "by-value struct argument"
;  V110 tmp88       [V110,T08] (  4,  8   )   byref  ->  rdx         stack-byref "BlockOp address local"
;  V111 tmp89       [V111,T43] (  2,  4   )    long  ->  rcx         "argument with side effect"
;  V112 tmp90       [V112,T30] (  2,  4   )     ref  ->  rdx         "argument with side effect"
;  V113 tmp91       [V113,T31] (  2,  4   )     ref  ->  rdx         "argument with side effect"
;  V114 tmp92       [V114,T09] (  4,  8   )   byref  ->  rdx         stack-byref "BlockOp address local"
;  V115 tmp93       [V115,T32] (  2,  4   )   byref  ->  rcx         "argument with side effect"
;  V116 tmp94       [V116,T33] (  2,  4   )     ref  ->  rdx         "argument with side effect"
;  V117 tmp95       [V117,T34] (  2,  4   )   byref  ->  rcx         "argument with side effect"
;  V118 tmp96       [V118,T35] (  2,  4   )   byref  ->  rcx         "argument with side effect"
;  V119 tmp97       [V119,T36] (  2,  4   )     ref  ->  rdx         "argument with side effect"
;  V120 tmp98       [V120,T54] (  2,  2   )     int  ->  rdx         "argument with side effect"
;  V121 tmp99       [V121,T55] (  2,  2   )     int  ->  rdx         "argument with side effect"
;  V122 tmp100      [V122,T12] (  2,  8   )     ref  ->  rcx         "argument with side effect"
;  V123 tmp101      [V123,T13] (  2,  8   )     ref  ->  rdx         "argument with side effect"
;  V124 tmp102      [V124,T72] (  2,  0   )     ref  ->  rcx         "argument with side effect"
;  V125 tmp103      [V125,T73] (  2,  0   )     ref  ->  rcx         "argument with side effect"
;  V126 tmp104      [V126,T74] (  2,  0   )     ref  ->  rdx         "argument with side effect"
;  V127 tmp105      [V127,T75] (  2,  0   )     ref  ->  rdx         "argument with side effect"
;  V128 tmp106      [V128    ] (  2,  8   )  struct (32) [rbp-0x788]   do-not-enreg[XSB] must-init addr-exposed "by-value struct argument"
;* V129 tmp107      [V129,T44] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
;  V130 tmp108      [V130,T37] (  2,  4   )     ref  ->  rdx         "argument with side effect"
;  V131 tmp109      [V131,T18] (  3,  6   )   byref  ->  rcx         stack-byref "BlockOp address local"
;* V132 tmp110      [V132,T57] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
;  V133 tmp111      [V133,T10] (  4,  8   )   byref  ->  rcx         stack-byref "BlockOp address local"
;  V134 PSPSym      [V134    ] (  1,  1   )    long  ->  [rbp-0x7B0]   do-not-enreg[X] addr-exposed "PSPSym"
;  V135 tmp113      [V135,T58] (  2,  1   )     ref  ->  rax         "optAddCopies"
;  V136 cse0        [V136,T22] (  4,  4   )    long  ->  r13         "CSE - moderate"
;
; Lcl frame size = 1944

Copy link
Contributor

@sandreenko sandreenko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks @alexcovington.

@AndyAyersMS could you please take a look as well?

@sandreenko sandreenko linked an issue Feb 19, 2021 that may be closed by this pull request
Copy link
Member

@AndyAyersMS AndyAyersMS left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

Thanks!

@sandreenko sandreenko merged commit 837a1c3 into dotnet:master Feb 19, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Mar 21, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI enhancement Product code improvement that does NOT require public API changes/additions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CQ: Don't force const arguments to temps.

4 participants