forked from MihaZupan/runtime-utils
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[JitDiff X64] xtqqczze/dotnet-runtime/MemoryExtensionsNullCheck #516
Comments
Top method regressions38 (2.11 % of base) - System.Security.Cryptography.Pkcs.SignerInfo:PrepareDigest(ubyte):System.Security.Cryptography.IncrementalHash:this ; Assembly listing for method System.Security.Cryptography.Pkcs.SignerInfo:PrepareDigest(ubyte):System.Security.Cryptography.IncrementalHash:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 37 single block inlinees; 17 inlinees without PGO data
+; 0 inlinees with PGO data; 36 single block inlinees; 18 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T07] ( 11, 8.50) ref -> rbx this class-hnd single-def <System.Security.Cryptography.Pkcs.SignerInfo>
; V01 arg1 [V01,T27] ( 5, 3.50) ubyte -> r15 single-def
;* V02 loc0 [V02 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Security.Cryptography.HashAlgorithmName>
; V03 loc1 [V03,T19] ( 15, 7.50) ref -> r14 class-hnd exact single-def <System.Security.Cryptography.IncrementalHash>
; V04 loc2 [V04,T37] ( 3, 3.50) ubyte -> r13
;* V05 loc3 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.PlatformNotSupportedException>
; V06 loc4 [V06,T58] ( 3, 1.50) byref -> rdx single-def
; V07 loc5 [V07,T66] ( 3, 1.50) struct (24) [rbp-0x40] do-not-enreg[SF] must-init ld-addr-op <System.Nullable`1[System.ReadOnlyMemory`1[ubyte]]>
; V08 loc6 [V08 ] ( 10, 5 ) struct (16) [rbp-0x50] do-not-enreg[SBR] multireg-ret must-init ld-addr-op single-def <System.ReadOnlyMemory`1[ubyte]>
; V09 loc7 [V09,T21] ( 4, 6.50) ref -> r12 class-hnd single-def <ubyte[]>
; V10 loc8 [V10,T20] ( 8, 7.50) ref -> [rbp-0xC8] class-hnd exact spill-single-def <System.Formats.Asn1.AsnWriter>
;* V11 loc9 [V11,T77] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SA] multireg-arg ld-addr-op <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
; V12 loc10 [V12,T28] ( 3, 5 ) ref -> rbx class-hnd exact single-def <System.Security.Cryptography.Asn1.AttributeAsn[]>
;* V13 loc11 [V13,T85] ( 0, 0 ) int -> zero-ref
; V14 loc12 [V14 ] ( 5, 16 ) struct (16) [rbp-0x60] do-not-enreg[XSA] multireg-arg must-init addr-exposed ld-addr-op <System.Security.Cryptography.Asn1.AttributeAsn>
; V15 loc13 [V15,T11] ( 4, 8 ) ref -> r13 class-hnd exact <System.Security.Cryptography.Pkcs.Pkcs9MessageDigest>
; V16 loc14 [V16,T51] ( 4, 2 ) ref -> rax class-hnd single-def <ubyte[]>
;# V17 OutArgs [V17 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V18 tmp1 [V18 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
; V19 tmp2 [V19,T53] ( 3, 2 ) int -> rdi
; V20 tmp3 [V20,T87] ( 3, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.CryptographicException>
; V21 tmp4 [V21,T42] ( 3, 3 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" <System.Formats.Asn1.AsnWriter>
; V22 tmp5 [V22,T82] ( 1, 1 ) struct (32) [rbp-0x80] do-not-enreg[HS] must-init hidden-struct-arg "location for address-of(RValue)" <System.Formats.Asn1.AsnWriter+Scope>
; V23 tmp6 [V23,T15] ( 2, 8 ) ref -> rax class-hnd exact "dup spill" <System.Security.Cryptography.CryptographicAttributeObject>
;* V24 tmp7 [V24 ] ( 0, 0 ) ref -> zero-ref
;* V25 tmp8 [V25 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Span`1[ubyte]>
;* V26 tmp9 [V26 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
; V27 tmp10 [V27,T88] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.Security.Cryptography.CryptographicException>
; V28 tmp11 [V28,T89] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.Security.Cryptography.CryptographicException>
; V29 tmp12 [V29,T83] ( 1, 1 ) struct (32) [rbp-0xA0] do-not-enreg[HS] must-init hidden-struct-arg "location for address-of(RValue)" <System.Formats.Asn1.AsnWriter+Scope>
;* V30 tmp13 [V30 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret single-def "Return value temp for multireg return" <System.ReadOnlySpan`1[ubyte]>
;* V31 tmp14 [V31 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlyMemory`1[ubyte]>
;* V32 tmp15 [V32 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.ReadOnlyMemory`1[ubyte]>
;* V33 tmp16 [V33 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
; V34 tmp17 [V34,T92] ( 2, 0 ) ref -> rbx class-hnd single-def "impSpillSpecialSideEff" <System.PlatformNotSupportedException>
; V35 tmp18 [V35,T90] ( 3, 0 ) ref -> r15 class-hnd exact single-def "Single-def Box Helper" <System.Security.Cryptography.HashAlgorithmName>
; V36 tmp19 [V36,T93] ( 2, 0 ) ref -> r14 class-hnd exact single-def "impImportAndPushBox" <System.String>
; V37 tmp20 [V37,T91] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Security.Cryptography.CryptographicException>
;* V38 tmp21 [V38 ] ( 0, 0 ) long -> zero-ref class-hnd exact "NewObj constructor temp" <System.Security.Cryptography.Oid>
;* V39 tmp22 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
;* V40 tmp23 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Security.Cryptography.Pkcs.SignedCms>
; V41 tmp24 [V41,T43] ( 3, 3 ) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Security.Cryptography.Pkcs.SignedCms>
;* V42 tmp25 [V42 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
; V43 tmp26 [V43,T38] ( 6, 3 ) byref -> r13 "Inline stloc first use temp"
; V44 tmp27 [V44,T40] ( 6, 3 ) int -> rdx "Inline stloc first use temp"
;* V45 tmp28 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <System.Object>
;* V46 tmp29 [V46 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V47 tmp30 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Buffers.MemoryManager`1[ubyte]>
;* V48 tmp31 [V48 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
;* V49 tmp32 [V49 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op single-def "Inline stloc first use temp" <System.Span`1[ubyte]>
; V50 tmp33 [V50,T67] ( 3, 1.50) long -> rdi single-def "Inline stloc first use temp"
;* V51 tmp34 [V51 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
;* V52 tmp35 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "updating class info" <ubyte[]>
;* V53 tmp36 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <ubyte[]>
; V54 tmp37 [V54,T54] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
;* V55 tmp38 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V56 tmp39 [V56 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V57 tmp40 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Security.Cryptography.HMACCommon>
;* V58 tmp41 [V58 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V59 tmp42 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Security.Cryptography.HMACCommon>
;* V60 tmp43 [V60 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
; V61 tmp44 [V61,T39] ( 6, 3 ) byref -> r12 "Inline stloc first use temp"
; V62 tmp45 [V62,T41] ( 6, 3 ) int -> rdx "Inline stloc first use temp"
; V63 tmp46 [V63,T30] ( 4, 4 ) byref -> r13 single-def "Inlining Arg"
; V64 tmp47 [V64,T35] ( 7, 3.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.Object>
;* V65 tmp48 [V65 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V66 tmp49 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Buffers.MemoryManager`1[ubyte]>
;* V67 tmp50 [V67 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
;* V68 tmp51 [V68 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op single-def "Inline stloc first use temp" <System.Span`1[ubyte]>
; V69 tmp52 [V69,T68] ( 3, 1.50) long -> rdi single-def "Inline stloc first use temp"
; V70 tmp53 [V70,T69] ( 3, 1.50) int -> rsi single-def "Inline stloc first use temp"
;* V71 tmp54 [V71 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "updating class info" <ubyte[]>
;* V72 tmp55 [V72 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <ubyte[]>
; V73 tmp56 [V73,T55] ( 2, 2 ) byref -> rdx single-def "Inlining Arg"
;* V74 tmp57 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V75 tmp58 [V75 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V76 tmp59 [V76 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Security.Cryptography.HMACCommon>
; V77 tmp60 [V77,T00] ( 5, 26 ) ref -> rdi class-hnd exact "Inlining Arg" <System.String>
;* V78 tmp61 [V78 ] ( 0, 0 ) ref -> zero-ref "spilling varStr"
; V79 tmp62 [V79,T05] ( 2, 8 ) int -> rdi "spilling unroll qmark"
;* V80 tmp63 [V80 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Security.Cryptography.AsnEncodedDataCollection>
; V81 tmp64 [V81,T16] ( 2, 8 ) ref -> rsi class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.AsnEncodedData]>
;* V82 tmp65 [V82 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Security.Cryptography.AsnEncodedDataCollection>
; V83 tmp66 [V83,T17] ( 2, 8 ) ref -> rdi class-hnd "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.AsnEncodedData]>
-;* V84 tmp67 [V84 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-;* V85 tmp68 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <ubyte[]>
-; V86 tmp69 [V86,T18] ( 2, 8 ) ref -> rdx class-hnd "dup spill" <ubyte[]>
-; V87 tmp70 [V87,T04] ( 6, 12 ) ref -> rdx
-;* V88 tmp71 [V88 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <ubyte[]>
-;* V89 tmp72 [V89 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <ubyte[]>
-; V90 tmp73 [V90,T12] ( 4, 8 ) ref -> [rbp-0xD0] class-hnd "Inline return value spill temp" <ubyte[]>
-; V91 tmp74 [V91,T02] ( 4, 16 ) ref -> rdi class-hnd "Inlining Arg" <ubyte[]>
-;* V92 tmp75 [V92 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlyMemory`1[ubyte]>
-; V93 tmp76 [V93 ] ( 5, 20 ) struct (16) [rbp-0xB0] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
-;* V94 tmp77 [V94 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
-; V95 tmp78 [V95,T31] ( 2, 4 ) ubyte -> rax "Inline return value spill temp"
-;* V96 tmp79 [V96 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;* V97 tmp80 [V97 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V98 tmp81 [V98 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V99 tmp82 [V99 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-;* V100 tmp83 [V100 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V84 tmp67 [V84 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Span`1[ubyte]>
+;* V85 tmp68 [V85 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;* V86 tmp69 [V86 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <ubyte[]>
+; V87 tmp70 [V87,T18] ( 2, 8 ) ref -> rdx class-hnd "dup spill" <ubyte[]>
+; V88 tmp71 [V88,T04] ( 6, 12 ) ref -> rdx
+;* V89 tmp72 [V89 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <ubyte[]>
+;* V90 tmp73 [V90 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <ubyte[]>
+; V91 tmp74 [V91,T12] ( 4, 8 ) ref -> [rbp-0xD0] class-hnd "Inline return value spill temp" <ubyte[]>
+; V92 tmp75 [V92,T02] ( 4, 16 ) ref -> rdi class-hnd "Inlining Arg" <ubyte[]>
+;* V93 tmp76 [V93 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlyMemory`1[ubyte]>
+; V94 tmp77 [V94 ] ( 5, 20 ) struct (16) [rbp-0xB0] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
+;* V95 tmp78 [V95 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+; V96 tmp79 [V96,T31] ( 2, 4 ) ubyte -> rax "Inline return value spill temp"
+;* V97 tmp80 [V97 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V98 tmp81 [V98 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
+;* V99 tmp82 [V99 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V100 tmp83 [V100 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
;* V101 tmp84 [V101 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
-;* V102 tmp85 [V102 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;* V103 tmp86 [V103 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V104 tmp87 [V104 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;* V105 tmp88 [V105 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;* V106 tmp89 [V106 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] "stack allocated ref class temp" <System.Security.Cryptography.Oid>
-; V107 tmp90 [V107,T52] ( 3, 2 ) ref -> [rbp-0xD8] do-not-enreg[H] EH-live "field V02._name (fldOffset=0x0)" P-INDEP
-; V108 tmp91 [V108,T36] ( 7, 3.50) ref -> [rbp-0x50] do-not-enreg[] "field V08._object (fldOffset=0x0)" P-DEP
-; V109 tmp92 [V109,T78] ( 2, 1 ) int -> [rbp-0x48] do-not-enreg[] "field V08._index (fldOffset=0x8)" P-DEP
-; V110 tmp93 [V110,T70] ( 3, 1.50) int -> [rbp-0x44] do-not-enreg[] "field V08._length (fldOffset=0xc)" P-DEP
-; V111 tmp94 [V111 ] ( 4, 14 ) ref -> [rbp-0x60] do-not-enreg[X] addr-exposed "field V14.AttrType (fldOffset=0x0)" P-DEP
-; V112 tmp95 [V112 ] ( 3, 10 ) ref -> [rbp-0x58] do-not-enreg[X] addr-exposed "field V14.AttrValues (fldOffset=0x8)" P-DEP
-;* V113 tmp96 [V113 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
-;* V114 tmp97 [V114 ] ( 0, 0 ) int -> zero-ref single-def "field V18._length (fldOffset=0x8)" P-INDEP
-; V115 tmp98 [V115,T33] ( 2, 4 ) byref -> [rbp-0xE0] spill-single-def "field V25._reference (fldOffset=0x0)" P-INDEP
-; V116 tmp99 [V116,T34] ( 2, 4 ) int -> [rbp-0xB4] spill-single-def "field V25._length (fldOffset=0x8)" P-INDEP
-;* V117 tmp100 [V117 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
-;* V118 tmp101 [V118 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
-; V119 tmp102 [V119,T59] ( 3, 1.50) byref -> rax "field V30._reference (fldOffset=0x0)" P-INDEP
-; V120 tmp103 [V120,T71] ( 3, 1.50) int -> rdx "field V30._length (fldOffset=0x8)" P-INDEP
-;* V121 tmp104 [V121 ] ( 0, 0 ) ref -> zero-ref "field V31._object (fldOffset=0x0)" P-INDEP
-;* V122 tmp105 [V122 ] ( 0, 0 ) int -> zero-ref "field V31._index (fldOffset=0x8)" P-INDEP
-;* V123 tmp106 [V123 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0xc)" P-INDEP
-;* V124 tmp107 [V124 ] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP
-;* V125 tmp108 [V125 ] ( 0, 0 ) int -> zero-ref single-def "field V33._length (fldOffset=0x8)" P-INDEP
-;* V126 tmp109 [V126 ] ( 0, 0 ) byref -> zero-ref "field V42._reference (fldOffset=0x0)" P-INDEP
-;* V127 tmp110 [V127 ] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x8)" P-INDEP
-; V128 tmp111 [V128,T60] ( 3, 1.50) byref -> rsi single-def "field V46._reference (fldOffset=0x0)" P-INDEP
-; V129 tmp112 [V129,T72] ( 3, 1.50) int -> rdx single-def "field V46._length (fldOffset=0x8)" P-INDEP
-;* V130 tmp113 [V130 ] ( 0, 0 ) byref -> zero-ref "field V48._reference (fldOffset=0x0)" P-DEP
-;* V131 tmp114 [V131 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-DEP
-; V132 tmp115 [V132,T74] ( 2, 1 ) byref -> r13 "field V49._reference (fldOffset=0x0)" P-INDEP
-; V133 tmp116 [V133,T79] ( 2, 1 ) int -> rdx "field V49._length (fldOffset=0x8)" P-INDEP
-;* V134 tmp117 [V134 ] ( 0, 0 ) byref -> zero-ref single-def "field V55._reference (fldOffset=0x0)" P-INDEP
-;* V135 tmp118 [V135 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP
-;* V136 tmp119 [V136 ] ( 0, 0 ) byref -> zero-ref "field V60._reference (fldOffset=0x0)" P-INDEP
-;* V137 tmp120 [V137 ] ( 0, 0 ) int -> zero-ref "field V60._length (fldOffset=0x8)" P-INDEP
-; V138 tmp121 [V138,T61] ( 3, 1.50) byref -> rsi single-def "field V65._reference (fldOffset=0x0)" P-INDEP
-; V139 tmp122 [V139,T73] ( 3, 1.50) int -> rdx single-def "field V65._length (fldOffset=0x8)" P-INDEP
-;* V140 tmp123 [V140 ] ( 0, 0 ) byref -> zero-ref "field V67._reference (fldOffset=0x0)" P-DEP
-;* V141 tmp124 [V141 ] ( 0, 0 ) int -> zero-ref "field V67._length (fldOffset=0x8)" P-DEP
-; V142 tmp125 [V142,T75] ( 2, 1 ) byref -> r12 "field V68._reference (fldOffset=0x0)" P-INDEP
-; V143 tmp126 [V143,T80] ( 2, 1 ) int -> rdx "field V68._length (fldOffset=0x8)" P-INDEP
-;* V144 tmp127 [V144 ] ( 0, 0 ) byref -> zero-ref single-def "field V74._reference (fldOffset=0x0)" P-INDEP
-;* V145 tmp128 [V145 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP
-; V146 tmp129 [V146,T22] ( 3, 6 ) byref -> rax "field V84._reference (fldOffset=0x0)" P-INDEP
-; V147 tmp130 [V147,T25] ( 3, 6 ) int -> rcx "field V84._length (fldOffset=0x8)" P-INDEP
-;* V148 tmp131 [V148 ] ( 0, 0 ) ref -> zero-ref "field V92._object (fldOffset=0x0)" P-INDEP
-;* V149 tmp132 [V149 ] ( 0, 0 ) int -> zero-ref "field V92._index (fldOffset=0x8)" P-INDEP
-;* V150 tmp133 [V150 ] ( 0, 0 ) int -> zero-ref "field V92._length (fldOffset=0xc)" P-INDEP
-; V151 tmp134 [V151,T08] ( 3, 10 ) ref -> [rbp-0xB0] do-not-enreg[] "field V93._object (fldOffset=0x0)" P-DEP
-; V152 tmp135 [V152,T09] ( 3, 10 ) int -> [rbp-0xA8] do-not-enreg[] "field V93._index (fldOffset=0x8)" P-DEP
-; V153 tmp136 [V153,T10] ( 3, 10 ) int -> [rbp-0xA4] do-not-enreg[] "field V93._length (fldOffset=0xc)" P-DEP
-; V154 tmp137 [V154,T23] ( 3, 6 ) byref -> rsi "field V94._reference (fldOffset=0x0)" P-INDEP
-; V155 tmp138 [V155,T13] ( 4, 8 ) int -> rdi "field V94._length (fldOffset=0x8)" P-INDEP
-;* V156 tmp139 [V156 ] ( 0, 0 ) byref -> zero-ref "field V96._reference (fldOffset=0x0)" P-INDEP
-;* V157 tmp140 [V157 ] ( 0, 0 ) int -> zero-ref "field V96._length (fldOffset=0x8)" P-INDEP
-;* V158 tmp141 [V158 ] ( 0, 0 ) byref -> zero-ref "field V98._reference (fldOffset=0x0)" P-INDEP
-;* V159 tmp142 [V159 ] ( 0, 0 ) int -> zero-ref "field V98._length (fldOffset=0x8)" P-INDEP
-;* V160 tmp143 [V160 ] ( 0, 0 ) byref -> zero-ref "field V102._reference (fldOffset=0x0)" P-INDEP
-;* V161 tmp144 [V161 ] ( 0, 0 ) int -> zero-ref "field V102._length (fldOffset=0x8)" P-INDEP
-;* V162 tmp145 [V162 ] ( 0, 0 ) byref -> zero-ref "field V103._reference (fldOffset=0x0)" P-INDEP
-;* V163 tmp146 [V163 ] ( 0, 0 ) int -> zero-ref "field V103._length (fldOffset=0x8)" P-INDEP
-;* V164 tmp147 [V164 ] ( 0, 0 ) byref -> zero-ref "field V104._reference (fldOffset=0x0)" P-INDEP
-;* V165 tmp148 [V165 ] ( 0, 0 ) int -> zero-ref "field V104._length (fldOffset=0x8)" P-INDEP
-;* V166 tmp149 [V166 ] ( 0, 0 ) byref -> zero-ref "field V105._reference (fldOffset=0x0)" P-INDEP
-;* V167 tmp150 [V167 ] ( 0, 0 ) int -> zero-ref "field V105._length (fldOffset=0x8)" P-INDEP
-; V168 tmp151 [V168,T81] ( 2, 1 ) ubyte -> rsi single-def "V07.[000..001)"
-;* V169 tmp152 [V169 ] ( 0, 0 ) long -> zero-ref single-def "V106.[000..008)"
-; V170 tmp153 [V170,T56] ( 2, 2 ) ref -> rdi single-def "V106.[008..016)"
-;* V171 tmp154 [V171 ] ( 0, 0 ) ref -> zero-ref single-def "V106.[016..024)"
-;* V172 tmp155 [V172 ] ( 0, 0 ) ubyte -> zero-ref single-def "V106.[028..029)"
-; V173 tmp156 [V173,T44] ( 3, 3 ) byref -> rdi single-def "Spilling address for field-by-field copy"
-; V174 tmp157 [V174,T94] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V175 tmp158 [V175,T76] ( 2, 1 ) ref -> r13 single-def "Field obj"
-; V176 tmp159 [V176,T45] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V177 tmp160 [V177,T46] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V178 tmp161 [V178,T47] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V179 tmp162 [V179,T48] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V180 tmp163 [V180,T49] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V181 tmp164 [V181,T50] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V182 tmp165 [V182,T06] ( 3, 12 ) ref -> rdi "arr expr"
-; V183 tmp166 [V183,T14] ( 3, 8 ) ref -> rsi "argument with side effect"
-; V184 tmp167 [V184,T95] ( 2, 0 ) ref -> rsi "argument with side effect"
-; V185 tmp168 [V185,T96] ( 2, 0 ) ref -> rsi "argument with side effect"
-; V186 tmp169 [V186,T57] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
-; V187 tmp170 [V187,T97] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V188 PSPSym [V188,T84] ( 1, 1 ) long -> [rbp-0xF0] do-not-enreg[V] "PSPSym"
-; V189 cse0 [V189,T24] ( 3, 6 ) ref -> rdi "CSE #10: moderate"
-; V190 cse1 [V190,T26] ( 3, 6 ) int -> rsi "CSE #11: moderate"
-; V191 cse2 [V191,T62] ( 3, 1.50) ref -> rdx "CSE #01: conservative"
-; V192 cse3 [V192,T63] ( 3, 1.50) ref -> rdi "CSE #02: conservative"
-; V193 cse4 [V193,T64] ( 3, 1.50) ref -> rdi "CSE #03: conservative"
-; V194 cse5 [V194,T65] ( 3, 1.50) ref -> rdi "CSE #05: conservative"
-; V195 cse6 [V195,T29] ( 3, 5 ) int -> [rbp-0xB8] spill-single-def "CSE #12: moderate"
-; V196 rat0 [V196,T01] ( 5, 16.50) long -> [rbp-0xC0] "Widened IV V13"
-; V197 rat1 [V197,T03] ( 4, 14 ) ref -> r13 "replacement local"
-; V198 rat2 [V198,T32] ( 3, 4 ) long -> rdi "CSE for expectedClsNode"
-; V199 rat3 [V199,T86] ( 3, 12 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
+;* V102 tmp85 [V102 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V103 tmp86 [V103 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V104 tmp87 [V104 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V105 tmp88 [V105 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V106 tmp89 [V106 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
+;* V107 tmp90 [V107 ] ( 0, 0 ) struct (32) zero-ref do-not-enreg[SF] "stack allocated ref class temp" <System.Security.Cryptography.Oid>
+; V108 tmp91 [V108,T52] ( 3, 2 ) ref -> [rbp-0xD8] do-not-enreg[H] EH-live "field V02._name (fldOffset=0x0)" P-INDEP
+; V109 tmp92 [V109,T36] ( 7, 3.50) ref -> [rbp-0x50] do-not-enreg[] "field V08._object (fldOffset=0x0)" P-DEP
+; V110 tmp93 [V110,T78] ( 2, 1 ) int -> [rbp-0x48] do-not-enreg[] "field V08._index (fldOffset=0x8)" P-DEP
+; V111 tmp94 [V111,T70] ( 3, 1.50) int -> [rbp-0x44] do-not-enreg[] "field V08._length (fldOffset=0xc)" P-DEP
+; V112 tmp95 [V112 ] ( 4, 14 ) ref -> [rbp-0x60] do-not-enreg[X] addr-exposed "field V14.AttrType (fldOffset=0x0)" P-DEP
+; V113 tmp96 [V113 ] ( 3, 10 ) ref -> [rbp-0x58] do-not-enreg[X] addr-exposed "field V14.AttrValues (fldOffset=0x8)" P-DEP
+;* V114 tmp97 [V114 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
+;* V115 tmp98 [V115 ] ( 0, 0 ) int -> zero-ref single-def "field V18._length (fldOffset=0x8)" P-INDEP
+; V116 tmp99 [V116,T22] ( 3, 6 ) byref -> [rbp-0xE0] "field V25._reference (fldOffset=0x0)" P-INDEP
+; V117 tmp100 [V117,T25] ( 3, 6 ) int -> [rbp-0xB4] "field V25._length (fldOffset=0x8)" P-INDEP
+;* V118 tmp101 [V118 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
+;* V119 tmp102 [V119 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
+; V120 tmp103 [V120,T59] ( 3, 1.50) byref -> rax "field V30._reference (fldOffset=0x0)" P-INDEP
+; V121 tmp104 [V121,T71] ( 3, 1.50) int -> rdx "field V30._length (fldOffset=0x8)" P-INDEP
+;* V122 tmp105 [V122 ] ( 0, 0 ) ref -> zero-ref "field V31._object (fldOffset=0x0)" P-INDEP
+;* V123 tmp106 [V123 ] ( 0, 0 ) int -> zero-ref "field V31._index (fldOffset=0x8)" P-INDEP
+;* V124 tmp107 [V124 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0xc)" P-INDEP
+;* V125 tmp108 [V125 ] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP
+;* V126 tmp109 [V126 ] ( 0, 0 ) int -> zero-ref single-def "field V33._length (fldOffset=0x8)" P-INDEP
+;* V127 tmp110 [V127 ] ( 0, 0 ) byref -> zero-ref "field V42._reference (fldOffset=0x0)" P-INDEP
+;* V128 tmp111 [V128 ] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x8)" P-INDEP
+; V129 tmp112 [V129,T60] ( 3, 1.50) byref -> rsi single-def "field V46._reference (fldOffset=0x0)" P-INDEP
+; V130 tmp113 [V130,T72] ( 3, 1.50) int -> rdx single-def "field V46._length (fldOffset=0x8)" P-INDEP
+;* V131 tmp114 [V131 ] ( 0, 0 ) byref -> zero-ref "field V48._reference (fldOffset=0x0)" P-DEP
+;* V132 tmp115 [V132 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-DEP
+; V133 tmp116 [V133,T74] ( 2, 1 ) byref -> r13 "field V49._reference (fldOffset=0x0)" P-INDEP
+; V134 tmp117 [V134,T79] ( 2, 1 ) int -> rdx "field V49._length (fldOffset=0x8)" P-INDEP
+;* V135 tmp118 [V135 ] ( 0, 0 ) byref -> zero-ref single-def "field V55._reference (fldOffset=0x0)" P-INDEP
+;* V136 tmp119 [V136 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP
+;* V137 tmp120 [V137 ] ( 0, 0 ) byref -> zero-ref "field V60._reference (fldOffset=0x0)" P-INDEP
+;* V138 tmp121 [V138 ] ( 0, 0 ) int -> zero-ref "field V60._length (fldOffset=0x8)" P-INDEP
+; V139 tmp122 [V139,T61] ( 3, 1.50) byref -> rsi single-def "field V65._reference (fldOffset=0x0)" P-INDEP
+; V140 tmp123 [V140,T73] ( 3, 1.50) int -> rdx single-def "field V65._length (fldOffset=0x8)" P-INDEP
+;* V141 tmp124 [V141 ] ( 0, 0 ) byref -> zero-ref "field V67._reference (fldOffset=0x0)" P-DEP
+;* V142 tmp125 [V142 ] ( 0, 0 ) int -> zero-ref "field V67._length (fldOffset=0x8)" P-DEP
+; V143 tmp126 [V143,T75] ( 2, 1 ) byref -> r12 "field V68._reference (fldOffset=0x0)" P-INDEP
+; V144 tmp127 [V144,T80] ( 2, 1 ) int -> rdx "field V68._length (fldOffset=0x8)" P-INDEP
+;* V145 tmp128 [V145 ] ( 0, 0 ) byref -> zero-ref single-def "field V74._reference (fldOffset=0x0)" P-INDEP
+;* V146 tmp129 [V146 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP
+;* V147 tmp130 [V147 ] ( 0, 0 ) byref -> zero-ref "field V84._reference (fldOffset=0x0)" P-INDEP
+;* V148 tmp131 [V148 ] ( 0, 0 ) int -> zero-ref "field V84._length (fldOffset=0x8)" P-INDEP
+; V149 tmp132 [V149,T33] ( 2, 4 ) byref -> rax "field V85._reference (fldOffset=0x0)" P-INDEP
+; V150 tmp133 [V150,T34] ( 2, 4 ) int -> rcx "field V85._length (fldOffset=0x8)" P-INDEP
+;* V151 tmp134 [V151 ] ( 0, 0 ) ref -> zero-ref "field V93._object (fldOffset=0x0)" P-INDEP
+;* V152 tmp135 [V152 ] ( 0, 0 ) int -> zero-ref "field V93._index (fldOffset=0x8)" P-INDEP
+;* V153 tmp136 [V153 ] ( 0, 0 ) int -> zero-ref "field V93._length (fldOffset=0xc)" P-INDEP
+; V154 tmp137 [V154,T08] ( 3, 10 ) ref -> [rbp-0xB0] do-not-enreg[] "field V94._object (fldOffset=0x0)" P-DEP
+; V155 tmp138 [V155,T09] ( 3, 10 ) int -> [rbp-0xA8] do-not-enreg[] "field V94._index (fldOffset=0x8)" P-DEP
+; V156 tmp139 [V156,T10] ( 3, 10 ) int -> [rbp-0xA4] do-not-enreg[] "field V94._length (fldOffset=0xc)" P-DEP
+; V157 tmp140 [V157,T23] ( 3, 6 ) byref -> rsi "field V95._reference (fldOffset=0x0)" P-INDEP
+; V158 tmp141 [V158,T13] ( 4, 8 ) int -> rdi "field V95._length (fldOffset=0x8)" P-INDEP
+;* V159 tmp142 [V159 ] ( 0, 0 ) byref -> zero-ref "field V97._reference (fldOffset=0x0)" P-INDEP
+;* V160 tmp143 [V160 ] ( 0, 0 ) int -> zero-ref "field V97._length (fldOffset=0x8)" P-INDEP
+;* V161 tmp144 [V161 ] ( 0, 0 ) byref -> zero-ref "field V99._reference (fldOffset=0x0)" P-INDEP
+;* V162 tmp145 [V162 ] ( 0, 0 ) int -> zero-ref "field V99._length (fldOffset=0x8)" P-INDEP
+;* V163 tmp146 [V163 ] ( 0, 0 ) byref -> zero-ref "field V103._reference (fldOffset=0x0)" P-INDEP
+;* V164 tmp147 [V164 ] ( 0, 0 ) int -> zero-ref "field V103._length (fldOffset=0x8)" P-INDEP
+;* V165 tmp148 [V165 ] ( 0, 0 ) byref -> zero-ref "field V104._reference (fldOffset=0x0)" P-INDEP
+;* V166 tmp149 [V166 ] ( 0, 0 ) int -> zero-ref "field V104._length (fldOffset=0x8)" P-INDEP
+;* V167 tmp150 [V167 ] ( 0, 0 ) byref -> zero-ref "field V105._reference (fldOffset=0x0)" P-INDEP
+;* V168 tmp151 [V168 ] ( 0, 0 ) int -> zero-ref "field V105._length (fldOffset=0x8)" P-INDEP
+;* V169 tmp152 [V169 ] ( 0, 0 ) byref -> zero-ref "field V106._reference (fldOffset=0x0)" P-INDEP
+;* V170 tmp153 [V170 ] ( 0, 0 ) int -> zero-ref "field V106._length (fldOffset=0x8)" P-INDEP
+; V171 tmp154 [V171,T81] ( 2, 1 ) ubyte -> rsi single-def "V07.[000..001)"
+;* V172 tmp155 [V172 ] ( 0, 0 ) long -> zero-ref single-def "V107.[000..008)"
+; V173 tmp156 [V173,T56] ( 2, 2 ) ref -> rdi single-def "V107.[008..016)"
+;* V174 tmp157 [V174 ] ( 0, 0 ) ref -> zero-ref single-def "V107.[016..024)"
+;* V175 tmp158 [V175 ] ( 0, 0 ) ubyte -> zero-ref single-def "V107.[028..029)"
+; V176 tmp159 [V176,T44] ( 3, 3 ) byref -> rdi single-def "Spilling address for field-by-field copy"
+; V177 tmp160 [V177,T94] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V178 tmp161 [V178,T76] ( 2, 1 ) ref -> r13 single-def "Field obj"
+; V179 tmp162 [V179,T45] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
+; V180 tmp163 [V180,T46] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
+; V181 tmp164 [V181,T47] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
+; V182 tmp165 [V182,T48] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
+; V183 tmp166 [V183,T49] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
+; V184 tmp167 [V184,T50] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
+; V185 tmp168 [V185,T06] ( 3, 12 ) ref -> rdi "arr expr"
+; V186 tmp169 [V186,T14] ( 3, 8 ) ref -> rsi "argument with side effect"
+; V187 tmp170 [V187,T95] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V188 tmp171 [V188,T96] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V189 tmp172 [V189,T57] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
+; V190 tmp173 [V190,T97] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V191 PSPSym [V191,T84] ( 1, 1 ) long -> [rbp-0xF0] do-not-enreg[V] "PSPSym"
+; V192 cse0 [V192,T24] ( 3, 6 ) ref -> rdi "CSE #10: moderate"
+; V193 cse1 [V193,T26] ( 3, 6 ) int -> rsi "CSE #11: moderate"
+; V194 cse2 [V194,T62] ( 3, 1.50) ref -> rdx "CSE #01: conservative"
+; V195 cse3 [V195,T63] ( 3, 1.50) ref -> rdi "CSE #02: conservative"
+; V196 cse4 [V196,T64] ( 3, 1.50) ref -> rdi "CSE #03: conservative"
+; V197 cse5 [V197,T65] ( 3, 1.50) ref -> rdi "CSE #05: conservative"
+; V198 cse6 [V198,T29] ( 3, 5 ) int -> [rbp-0xB8] spill-single-def "CSE #12: moderate"
+; V199 rat0 [V199,T01] ( 5, 16.50) long -> [rbp-0xC0] "Widened IV V13"
+; V200 rat1 [V200,T03] ( 4, 14 ) ref -> r13 "replacement local"
+; V201 rat2 [V201,T32] ( 3, 4 ) long -> rdi "CSE for expectedClsNode"
+; V202 rat3 [V202,T86] ( 3, 12 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 200
G_M28512_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 200
lea rbp, [rsp+0xF0]
vxorps xmm8, xmm8, xmm8
vmovdqu32 zmmword ptr [rbp-0xB0], zmm8
vmovdqu32 zmmword ptr [rbp-0x70], zmm8
xor eax, eax
mov qword ptr [rbp-0x30], rax
mov qword ptr [rbp-0xF0], rsp
mov rbx, rdi
mov r15d, esi
;; size=69 bbWeight=1 PerfScore 13.83
G_M28512_IG02:
mov rdi, gword ptr [rbx+0x10]
mov esi, 1
mov rax, 0xD1FFAB1E ; code for Internal.Cryptography.PkcsHelpers:GetDigestAlgorithm(System.String,ubyte):System.Security.Cryptography.HashAlgorithmName
call [rax]Internal.Cryptography.PkcsHelpers:GetDigestAlgorithm(System.String,ubyte):System.Security.Cryptography.HashAlgorithmName
mov gword ptr [rbp-0xD8], rax
;; size=28 bbWeight=1 PerfScore 6.50
G_M28512_IG03:
mov rdi, gword ptr [rbp-0xD8]
mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.IncrementalHash:CreateHash(System.Security.Cryptography.HashAlgorithmName):System.Security.Cryptography.IncrementalHash
call [rax]System.Security.Cryptography.IncrementalHash:CreateHash(System.Security.Cryptography.HashAlgorithmName):System.Security.Cryptography.IncrementalHash
mov r14, rax
;; size=22 bbWeight=1 PerfScore 4.50
G_M28512_IG04:
cmp gword ptr [rbx+0x40], 0
jne G_M28512_IG08
;; size=11 bbWeight=1 PerfScore 4.00
G_M28512_IG05:
mov rdx, gword ptr [rbx+0x30]
cmp byte ptr [rdx+0x22], 0
je G_M28512_IG17
cmp byte ptr [rdx], dl
add rdx, 40
lea rdi, bword ptr [rdx+0x30]
movzx rsi, byte ptr [rdi]
;; size=28 bbWeight=0.50 PerfScore 5.88
G_M28512_IG06:
vmovdqu xmm0, xmmword ptr [rdi]
vmovdqu xmmword ptr [rbp-0x40], xmm0
mov rax, qword ptr [rdi+0x10]
mov qword ptr [rbp-0x30], rax
;; size=17 bbWeight=0.50 PerfScore 4.00
G_M28512_IG07:
test esi, esi
je G_M28512_IG17
mov rdi, gword ptr [rbp-0x38]
mov rsi, qword ptr [rbp-0x30]
mov rdx, gword ptr [rdx+0x28]
mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.Pkcs.SignedCms:GetContent(System.ReadOnlyMemory`1[ubyte],System.String):System.ReadOnlyMemory`1[ubyte]
call [rax]System.Security.Cryptography.Pkcs.SignedCms:GetContent(System.ReadOnlyMemory`1[ubyte],System.String):System.ReadOnlyMemory`1[ubyte]
mov gword ptr [rbp-0x50], rax
mov qword ptr [rbp-0x48], rdx
xor r13, r13
xor edx, edx
cmp gword ptr [rbp-0x50], 0
je G_M28512_IG15
mov rdx, gword ptr [rbp-0x50]
mov rdi, qword ptr [rdx]
test dword ptr [rdi], 0xD1FFAB1E
je G_M28512_IG13
mov r13, gword ptr [rbp-0x50]
add r13, 16
mov rdi, gword ptr [rbp-0x50]
mov edx, dword ptr [rdi+0x08]
jmp G_M28512_IG14
;; size=95 bbWeight=0.50 PerfScore 13.62
G_M28512_IG08:
mov r13, gword ptr [rbx+0x40]
add r13, 144
xor r12, r12
xor edx, edx
mov rdi, gword ptr [r13]
test rdi, rdi
je SHORT G_M28512_IG11
mov rdx, qword ptr [rdi]
test dword ptr [rdx], 0xD1FFAB1E
je SHORT G_M28512_IG09
lea r12, bword ptr [rdi+0x10]
mov edx, dword ptr [rdi+0x08]
jmp SHORT G_M28512_IG10
;; size=45 bbWeight=0.50 PerfScore 8.25
G_M28512_IG09:
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x28]System.Buffers.MemoryManager`1[ubyte]:GetSpan():System.Span`1[ubyte]:this
mov r12, rax
;; size=13 bbWeight=0.50 PerfScore 3.62
G_M28512_IG10:
mov edi, dword ptr [r13+0x08]
and edi, 0xD1FFAB1E
mov esi, dword ptr [r13+0x0C]
mov eax, esi
add rax, rdi
mov edx, edx
cmp rax, rdx
ja G_M28512_IG53
add r12, rdi
mov edx, esi
;; size=35 bbWeight=0.50 PerfScore 3.38
G_M28512_IG11:
mov rsi, r12
cmp byte ptr [r14+0x1C], 0
jne G_M28512_IG52
mov rdi, gword ptr [r14+0x08]
test rdi, rdi
je SHORT G_M28512_IG12
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x20]System.Security.Cryptography.HashProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this
jmp G_M28512_IG19
;; size=38 bbWeight=0.50 PerfScore 8.25
G_M28512_IG12:
mov rdi, gword ptr [r14+0x10]
mov rdi, gword ptr [rdi+0x18]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x20]System.Security.Cryptography.HashProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this
jmp G_M28512_IG19
;; size=23 bbWeight=0.50 PerfScore 6.50
G_M28512_IG13:
mov rdi, gword ptr [rbp-0x50]
mov rax, gword ptr [rbp-0x50]
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x40]
call [rax+0x28]System.Buffers.MemoryManager`1[ubyte]:GetSpan():System.Span`1[ubyte]:this
mov r13, rax
;; size=21 bbWeight=0.50 PerfScore 4.62
G_M28512_IG14:
mov edi, dword ptr [rbp-0x48]
and edi, 0xD1FFAB1E
mov esi, dword ptr [rbp-0x44]
add rsi, rdi
mov edx, edx
cmp rsi, rdx
ja G_M28512_IG53
add r13, rdi
mov edx, dword ptr [rbp-0x44]
;; size=32 bbWeight=0.50 PerfScore 2.62
G_M28512_IG15:
mov rsi, r13
cmp byte ptr [r14+0x1C], 0
jne G_M28512_IG52
mov rdi, gword ptr [r14+0x08]
test rdi, rdi
je SHORT G_M28512_IG16
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x20]System.Security.Cryptography.HashProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this
jmp SHORT G_M28512_IG17
;; size=35 bbWeight=0.50 PerfScore 8.25
G_M28512_IG16:
mov rdi, gword ptr [r14+0x10]
mov rdi, gword ptr [rdi+0x18]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x20]System.Security.Cryptography.HashProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this
;; size=18 bbWeight=0.50 PerfScore 5.50
G_M28512_IG17:
mov rdi, gword ptr [rbx+0x30]
mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.Pkcs.SignedCms:GetHashableContentSpan():System.ReadOnlySpan`1[ubyte]:this
cmp dword ptr [rdi], edi
call [rax]System.Security.Cryptography.Pkcs.SignedCms:GetHashableContentSpan():System.ReadOnlySpan`1[ubyte]:this
cmp byte ptr [r14+0x1C], 0
jne G_M28512_IG52
mov rdi, gword ptr [r14+0x08]
test rdi, rdi
je SHORT G_M28512_IG18
mov rsi, rax
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x20]System.Security.Cryptography.HashProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this
jmp SHORT G_M28512_IG19
;; size=53 bbWeight=0.50 PerfScore 12.38
G_M28512_IG18:
mov rdi, gword ptr [r14+0x10]
mov rdi, gword ptr [rdi+0x18]
mov rsi, rax
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x20]System.Security.Cryptography.HashProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this
;; size=21 bbWeight=0.50 PerfScore 5.62
G_M28512_IG19:
cmp gword ptr [rbx+0x40], 0
jne SHORT G_M28512_IG21
;; size=7 bbWeight=1 PerfScore 4.00
G_M28512_IG20:
cmp gword ptr [rbx+0x18], 0
setne dil
movzx rdi, dil
jmp SHORT G_M28512_IG22
;; size=15 bbWeight=0.50 PerfScore 3.12
G_M28512_IG21:
mov edi, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M28512_IG22:
movzx r13, dil
cmp gword ptr [rbx+0x18], 0
je SHORT G_M28512_IG24
;; size=11 bbWeight=1 PerfScore 4.25
G_M28512_IG23:
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.IncrementalHash:GetHashAndReset():ubyte[]:this
call [rax]System.Security.Cryptography.IncrementalHash:GetHashAndReset():ubyte[]:this
mov r12, rax
mov rdi, 0xD1FFAB1E ; System.Formats.Asn1.AsnWriter
call CORINFO_HELP_NEWSFAST
mov dword ptr [rax+0x1C], 2
mov gword ptr [rbp-0xC8], rax
test r15b, r15b
je SHORT G_M28512_IG26
xor edx, edx
xor ecx, ecx
lea rsi, [rbp-0xA0]
mov rdi, rax
mov r8, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:PushSequence(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.Formats.Asn1.AsnWriter+Scope:this
call [r8]System.Formats.Asn1.AsnWriter:PushSequence(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.Formats.Asn1.AsnWriter+Scope:this
jmp SHORT G_M28512_IG27
;; size=81 bbWeight=0.50 PerfScore 7.38
G_M28512_IG24:
test r15b, r15b
je G_M28512_IG45
xor rax, rax
;; size=11 bbWeight=0.50 PerfScore 0.75
G_M28512_IG25:
vzeroupper
add rsp, 200
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=21 bbWeight=0.50 PerfScore 2.62
G_M28512_IG26:
xor edx, edx
xor ecx, ecx
lea rsi, [rbp-0x80]
mov rdi, rax
mov r8, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:PushSetOf(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.Formats.Asn1.AsnWriter+Scope:this
call [r8]System.Formats.Asn1.AsnWriter:PushSetOf(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.Formats.Asn1.AsnWriter+Scope:this
;; size=24 bbWeight=0.50 PerfScore 2.25
G_M28512_IG27:
mov rbx, gword ptr [rbx+0x18]
xor eax, eax
mov ecx, dword ptr [rbx+0x08]
mov dword ptr [rbp-0xB8], ecx
test ecx, ecx
jle G_M28512_IG43
;; size=23 bbWeight=0.50 PerfScore 3.25
G_M28512_IG28:
mov qword ptr [rbp-0xC0], rax
mov rdi, rax
shl rdi, 4
;; size=14 bbWeight=4 PerfScore 7.00
G_M28512_IG29:
vmovdqu xmm0, xmmword ptr [rbx+rdi+0x10]
vmovdqu xmmword ptr [rbp-0x60], xmm0
;; size=11 bbWeight=4 PerfScore 20.00
G_M28512_IG30:
lea rdi, [rbp-0x60]
mov rsi, gword ptr [rbp-0xC8]
mov rdx, 0xD1FFAB1E ; code for System.Security.Cryptography.Asn1.AttributeAsn:Encode(System.Formats.Asn1.AsnWriter):this
call [rdx]System.Security.Cryptography.Asn1.AttributeAsn:Encode(System.Formats.Asn1.AsnWriter):this
mov rdi, gword ptr [rbp-0x60]
test rdi, rdi
je G_M28512_IG42
;; size=36 bbWeight=4 PerfScore 28.00
G_M28512_IG31:
cmp dword ptr [rdi+0x08], 20
jne G_M28512_IG42
;; size=10 bbWeight=1 PerfScore 4.00
G_M28512_IG32:
vmovups ymm0, ymmword ptr [rdi+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD00]
vmovups ymm1, ymmword ptr [rdi+0x14]
vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD32], -10
vptest ymm0, ymm0
sete dil
movzx rdi, dil
test edi, edi
je G_M28512_IG42
mov rdi, gword ptr [rbp-0x60]
mov rsi, gword ptr [rbp-0x58]
mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.Pkcs.SignerInfo:MakeAttribute(System.Security.Cryptography.Asn1.AttributeAsn):System.Security.Cryptography.CryptographicAttributeObject
call [rax]System.Security.Cryptography.Pkcs.SignerInfo:MakeAttribute(System.Security.Cryptography.Asn1.AttributeAsn):System.Security.Cryptography.CryptographicAttributeObject
mov rdi, gword ptr [rax+0x08]
mov rdi, gword ptr [rdi+0x08]
mov rsi, rdi
mov esi, dword ptr [rsi+0x10]
cmp esi, 1
jne G_M28512_IG51
test esi, esi
je G_M28512_IG50
mov rdi, gword ptr [rdi+0x08]
cmp dword ptr [rdi+0x08], 0
jbe G_M28512_IG54
mov rsi, gword ptr [rdi+0x10]
mov r13, rsi
test r13, r13
je SHORT G_M28512_IG34
;; size=127 bbWeight=2 PerfScore 90.00
G_M28512_IG33:
mov rdi, 0xD1FFAB1E ; System.Security.Cryptography.Pkcs.Pkcs9MessageDigest
cmp qword ptr [r13], rdi
jne G_M28512_IG49
;; size=20 bbWeight=1 PerfScore 4.25
G_M28512_IG34:
test r12, r12
- jne SHORT G_M28512_IG35
- xor rax, rax
- xor ecx, ecx
- jmp SHORT G_M28512_IG36
- ;; size=11 bbWeight=2 PerfScore 7.50
-G_M28512_IG35:
+ je SHORT G_M28512_IG35
lea rax, bword ptr [r12+0x10]
mov ecx, dword ptr [r12+0x08]
- ;; size=10 bbWeight=2 PerfScore 5.00
-G_M28512_IG36:
+ jmp SHORT G_M28512_IG36
+ ;; size=17 bbWeight=2 PerfScore 11.50
+G_M28512_IG35:
+ xor rax, rax
mov bword ptr [rbp-0xE0], rax
+ xor ecx, ecx
mov dword ptr [rbp-0xB4], ecx
+ mov rax, bword ptr [rbp-0xE0]
+ mov ecx, dword ptr [rbp-0xB4]
+ ;; size=30 bbWeight=2 PerfScore 9.00
+G_M28512_IG36:
mov rdx, gword ptr [r13+0x18]
test rdx, rdx
- mov rax, bword ptr [rbp-0xE0]
- jne SHORT G_M28512_IG39
+ jne G_M28512_IG39
mov rdi, gword ptr [r13+0x10]
test rdi, rdi
jne SHORT G_M28512_IG37
xor rdx, rdx
+ mov bword ptr [rbp-0xE0], rax
+ mov dword ptr [rbp-0xB4], ecx
jmp SHORT G_M28512_IG38
- ;; size=42 bbWeight=2 PerfScore 23.50
+ ;; size=39 bbWeight=2 PerfScore 21.50
G_M28512_IG37:
+ mov bword ptr [rbp-0xE0], rax
+ mov dword ptr [rbp-0xB4], ecx
mov gword ptr [rbp-0xB0], rdi
xor esi, esi
mov dword ptr [rbp-0xA8], esi
mov edi, dword ptr [rdi+0x08]
mov dword ptr [rbp-0xA4], edi
mov rdi, gword ptr [rbp-0xB0]
mov rsi, qword ptr [rbp-0xA8]
mov rdx, 0xD1FFAB1E ; code for Internal.Cryptography.PkcsHelpers:DecodeOctetString(System.ReadOnlyMemory`1[ubyte]):ubyte[]
call [rdx]Internal.Cryptography.PkcsHelpers:DecodeOctetString(System.ReadOnlyMemory`1[ubyte]):ubyte[]
mov rdx, rax
- ;; size=53 bbWeight=2 PerfScore 21.50
+ ;; size=66 bbWeight=2 PerfScore 25.50
G_M28512_IG38:
lea rdi, bword ptr [r13+0x18]
mov gword ptr [rbp-0xD0], rdx
mov rsi, rdx
call CORINFO_HELP_ASSIGN_REF
mov r13, gword ptr [rbp-0xD0]
mov rdx, r13
mov rax, bword ptr [rbp-0xE0]
- ;; size=36 bbWeight=2 PerfScore 10.00
+ mov ecx, dword ptr [rbp-0xB4]
+ ;; size=42 bbWeight=2 PerfScore 12.00
G_M28512_IG39:
test rdx, rdx
jne SHORT G_M28512_IG40
xor rsi, rsi
xor edi, edi
jmp SHORT G_M28512_IG41
;; size=11 bbWeight=2 PerfScore 7.50
G_M28512_IG40:
lea rsi, bword ptr [rdx+0x10]
mov edi, dword ptr [rdx+0x08]
;; size=7 bbWeight=2 PerfScore 5.00
G_M28512_IG41:
- cmp dword ptr [rbp-0xB4], edi
+ cmp ecx, edi
jne G_M28512_IG48
mov edx, edi
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
je G_M28512_IG48
xor r13d, r13d
- ;; size=40 bbWeight=2 PerfScore 16.50
+ ;; size=36 bbWeight=2 PerfScore 13.00
G_M28512_IG42:
mov rsi, qword ptr [rbp-0xC0]
inc esi
mov edx, dword ptr [rbp-0xB8]
cmp edx, esi
mov rax, rsi
jg G_M28512_IG28
;; size=26 bbWeight=4 PerfScore 15.00
G_M28512_IG43:
test r15b, r15b
je SHORT G_M28512_IG44
xor esi, esi
xor edx, edx
mov rdi, gword ptr [rbp-0xC8]
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:PopSequence(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this
call [rax]System.Formats.Asn1.AsnWriter:PopSequence(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this
mov rdi, gword ptr [rbp-0xC8]
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:Encode():ubyte[]:this
call [rax]System.Formats.Asn1.AsnWriter:Encode():ubyte[]:this
cmp dword ptr [rax+0x08], 0
jbe G_M28512_IG54
mov byte ptr [rax+0x10], 49
mov rdi, r14
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.IncrementalHash:AppendData(ubyte[]):this
call [rax]System.Security.Cryptography.IncrementalHash:AppendData(ubyte[]):this
jmp SHORT G_M28512_IG45
;; size=81 bbWeight=0.50 PerfScore 10.50
G_M28512_IG44:
xor esi, esi
xor edx, edx
mov rdi, gword ptr [rbp-0xC8]
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:PopSetOf(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this
call [rax]System.Formats.Asn1.AsnWriter:PopSetOf(System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this
mov rdi, gword ptr [rbp-0xC8]
mov rax, 0xD1FFAB1E ; code for System.Formats.Asn1.AsnWriter:Encode():ubyte[]:this
call [rax]System.Formats.Asn1.AsnWriter:Encode():ubyte[]:this
mov rsi, rax
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.IncrementalHash:AppendData(ubyte[]):this
call [rax]System.Security.Cryptography.IncrementalHash:AppendData(ubyte[]):this
;; size=60 bbWeight=0.50 PerfScore 6.38
G_M28512_IG45:
test r13d, r13d
jne SHORT G_M28512_IG47
mov rax, r14
;; size=8 bbWeight=0.50 PerfScore 0.75
G_M28512_IG46:
vzeroupper
add rsp, 200
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=21 bbWeight=0.50 PerfScore 2.62
G_M28512_IG47:
mov rdi, 0xD1FFAB1E ; System.Security.Cryptography.CryptographicException
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_Cryptography_Cms_MissingAuthenticatedAttribute():System.String
call [rax]System.SR:get_Cryptography_Cms_MissingAuthenticatedAttribute():System.String
mov rsi, rax
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.CryptographicException:.ctor(System.String):this
call [rax]System.Security.Cryptography.CryptographicException:.ctor(System.String):this
mov rdi, r14
call CORINFO_HELP_THROW
int3
;; size=57 bbWeight=0 PerfScore 0.00
G_M28512_IG48:
mov rdi, 0xD1FFAB1E ; System.Security.Cryptography.CryptographicException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_Cryptography_BadHashValue():System.String
call [rax]System.SR:get_Cryptography_BadHashValue():System.String
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.CryptographicException:.ctor(System.String):this
call [rax]System.Security.Cryptography.CryptographicException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=57 bbWeight=0 PerfScore 0.00
G_M28512_IG49:
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
call [rax]CORINFO_HELP_CHKCASTCLASS
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M28512_IG50:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M28512_IG51:
mov rdi, 0xD1FFAB1E ; System.Security.Cryptography.CryptographicException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_Cryptography_BadHashValue():System.String
call [rax]System.SR:get_Cryptography_BadHashValue():System.String
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.CryptographicException:.ctor(System.String):this
call [rax]System.Security.Cryptography.CryptographicException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=57 bbWeight=0 PerfScore 0.00
G_M28512_IG52:
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowObjectDisposedException(System.Object)
call [rax]System.ThrowHelper:ThrowObjectDisposedException(System.Object)
int3
;; size=16 bbWeight=0 PerfScore 0.00
G_M28512_IG53:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M28512_IG54:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
G_M28512_IG55:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0xF0]
;; size=25 bbWeight=0 PerfScore 0.00
G_M28512_IG56:
mov rbx, rsi
mov rdi, 0xD1FFAB1E ; System.Security.Cryptography.HashAlgorithmName
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_Cryptography_UnknownHashAlgorithm():System.String
call [rax]System.SR:get_Cryptography_UnknownHashAlgorithm():System.String
mov r14, rax
lea rdi, bword ptr [r15+0x08]
mov rsi, gword ptr [rbp-0xD8]
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Security.Cryptography.CryptographicException
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov rsi, r15
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.SR:Format(System.String,System.Object):System.String
call [rax]System.SR:Format(System.String,System.Object):System.String
mov rsi, rax
mov rdi, r13
mov rdx, rbx
mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.CryptographicException:.ctor(System.String,System.Exception):this
call [rax]System.Security.Cryptography.CryptographicException:.ctor(System.String,System.Exception):this
mov rdi, r13
call CORINFO_HELP_THROW
int3
;; size=118 bbWeight=0 PerfScore 0.00
RWD00 dq 002E0032002E0031h, 002E003000340038h, 0035003300310031h, 0031002E00390034h
RWD32 dq 002E003000340038h, 0035003300310031h, 0031002E00390034h, 0034002E0039002Eh
-; Total bytes of code 1801, prolog size 69, PerfScore 434.08, instruction count 434, allocated bytes for code 1801 (MethodHash=5b9d909f) for method System.Security.Cryptography.Pkcs.SignerInfo:PrepareDigest(ubyte):System.Security.Cryptography.IncrementalHash:this (FullOpts)
+; Total bytes of code 1839, prolog size 69, PerfScore 442.58, instruction count 440, allocated bytes for code 1839 (MethodHash=5b9d909f) for method System.Security.Cryptography.Pkcs.SignerInfo:PrepareDigest(ubyte):System.Security.Cryptography.IncrementalHash:this (FullOpts) Larger list of diffs: https://gist.github.com/MihuBot/383325f6d3dd9bae167a7b61b3db0901 |
Top method improvements-33 (-2.79 % of base) - System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte ; Assembly listing for method System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 20 single block inlinees; 18 inlinees without PGO data
+; 0 inlinees with PGO data; 18 single block inlinees; 20 inlinees without PGO data
; Final local variable assignments
;
;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[System.String]>
-; V01 arg1 [V01,T09] ( 9, 26.50) ref -> r14 class-hnd single-def <ubyte[]>
-; V02 arg2 [V02,T13] ( 11, 17 ) ref -> [rbp-0x80] class-hnd single-def <System.Text.Encoding>
+; V01 arg1 [V01,T31] ( 5, 6.50) ref -> [rbp-0x80] class-hnd single-def <ubyte[]>
+; V02 arg2 [V02,T12] ( 11, 17 ) ref -> r12 class-hnd single-def <System.Text.Encoding>
;* V03 arg3 [V03 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.Span`1[ubyte]>
-; V04 arg4 [V04,T59] ( 4, 2 ) byref -> [rbp+0x10] single-def
-; V05 loc0 [V05,T14] ( 8, 18 ) int -> [rbp-0x2C]
+; V04 arg4 [V04,T64] ( 4, 2 ) byref -> [rbp+0x10] single-def
+; V05 loc0 [V05,T13] ( 8, 18 ) int -> [rbp-0x2C]
; V06 loc1 [V06 ] ( 3, 1.50) int -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op
;* V07 loc2 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[System.String]>
; V08 loc3 [V08,T03] ( 10, 33 ) int -> [rbp-0x3C]
;* V09 loc4 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.String>
;* V10 loc5 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.String>
-; V11 loc6 [V11,T16] ( 8, 17.50) ref -> [rbp-0x88] class-hnd <System.String>
-;* V12 loc7 [V12,T78] ( 0, 0 ) int -> zero-ref
-; V13 loc8 [V13,T15] ( 8, 18 ) int -> rax
-;* V14 loc9 [V14,T79] ( 0, 0 ) int -> zero-ref
+; V11 loc6 [V11,T15] ( 8, 17.50) ref -> [rbp-0x88] class-hnd <System.String>
+;* V12 loc7 [V12,T83] ( 0, 0 ) int -> zero-ref
+; V13 loc8 [V13,T14] ( 8, 18 ) int -> rax
+;* V14 loc9 [V14,T84] ( 0, 0 ) int -> zero-ref
;# V15 OutArgs [V15 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V16 tmp1 [V16 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V17 tmp2 [V17 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V18 tmp3 [V18,T52] ( 4, 4 ) int -> rsi "Inlining Arg"
+; V18 tmp3 [V18,T55] ( 4, 4 ) int -> rsi "Inlining Arg"
;* V19 tmp4 [V19 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-; V20 tmp5 [V20,T48] ( 5, 5 ) byref -> r15 single-def "Inlining Arg"
-; V21 tmp6 [V21,T33] ( 8, 8 ) int -> rbx "Inlining Arg"
-; V22 tmp7 [V22,T53] ( 4, 4 ) int -> r9 "Inlining Arg"
+; V20 tmp5 [V20,T47] ( 5, 5 ) byref -> r15 single-def "Inlining Arg"
+; V21 tmp6 [V21,T32] ( 8, 8 ) int -> rbx "Inlining Arg"
+; V22 tmp7 [V22,T56] ( 4, 4 ) int -> r12 "Inlining Arg"
;* V23 tmp8 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-; V24 tmp9 [V24,T60] ( 2, 2 ) byref -> rdx single-def "Inlining Arg"
-; V25 tmp10 [V25,T63] ( 2, 2 ) int -> rbx "Inlining Arg"
+; V24 tmp9 [V24,T65] ( 2, 2 ) byref -> rdx single-def "Inlining Arg"
+; V25 tmp10 [V25,T68] ( 2, 2 ) int -> rbx "Inlining Arg"
;* V26 tmp11 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V27 tmp12 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V28 tmp13 [V28 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[ubyte]>
;* V29 tmp14 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V30 tmp15 [V30 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V31 tmp16 [V31 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V32 tmp17 [V32 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
; V33 tmp18 [V33,T05] ( 4, 32 ) int -> rdi "Inlining Arg"
;* V34 tmp19 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
; V35 tmp20 [V35,T04] ( 4, 32 ) byref -> r15 "Inlining Arg"
; V36 tmp21 [V36,T02] ( 5, 36 ) int -> rbx "Inlining Arg"
;* V37 tmp22 [V37 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[ubyte]>
;* V38 tmp23 [V38 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp"
;* V39 tmp24 [V39 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V40 tmp25 [V40,T80] ( 4, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.Net.Http.QPack.QPackEncodingException>
+; V40 tmp25 [V40,T85] ( 4, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" <System.Net.Http.QPack.QPackEncodingException>
;* V41 tmp26 [V41 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V42 tmp27 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V43 tmp28 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V44 tmp29 [V44,T37] ( 2, 8 ) byref -> rdi "Inlining Arg"
-; V45 tmp30 [V45,T44] ( 2, 8 ) int -> rsi "Inlining Arg"
-; V46 tmp31 [V46,T35] ( 3, 8 ) int -> rax "Inline return value spill temp"
+; V44 tmp29 [V44,T38] ( 2, 8 ) byref -> rdi "Inlining Arg"
+; V45 tmp30 [V45,T43] ( 2, 8 ) int -> rsi "Inlining Arg"
+; V46 tmp31 [V46,T34] ( 3, 8 ) int -> rax "Inline return value spill temp"
;* V47 tmp32 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V48 tmp33 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
; V49 tmp34 [V49,T29] ( 4, 12 ) long -> [rbp-0x48] "Inline stloc first use temp"
-; V50 tmp35 [V50,T49] ( 3, 6 ) int -> [rbp-0x4C] "Inline stloc first use temp"
+; V50 tmp35 [V50,T48] ( 3, 6 ) int -> [rbp-0x4C] "Inline stloc first use temp"
; V51 tmp36 [V51 ] ( 2, 8 ) byref -> [rbp-0x58] must-init pinned "Inline stloc first use temp"
; V52 tmp37 [V52 ] ( 2, 8 ) byref -> [rbp-0x60] must-init pinned "Inline stloc first use temp"
;* V53 tmp38 [V53 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V54 tmp39 [V54 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
;* V55 tmp40 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V56 tmp41 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V57 tmp42 [V57,T81] ( 2, 0 ) ref -> r15 class-hnd exact "Inlining Arg" <System.String>
+; V57 tmp42 [V57,T86] ( 2, 0 ) ref -> r15 class-hnd exact "Inlining Arg" <System.String>
; V58 tmp43 [V58,T06] ( 4, 32 ) int -> rax "Inlining Arg"
;* V59 tmp44 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-; V60 tmp45 [V60,T19] ( 2, 16 ) byref -> r15 "Inlining Arg"
-; V61 tmp46 [V61,T22] ( 2, 16 ) int -> rbx "Inlining Arg"
+; V60 tmp45 [V60,T18] ( 2, 16 ) byref -> r15 "Inlining Arg"
+; V61 tmp46 [V61,T21] ( 2, 16 ) int -> rbx "Inlining Arg"
;* V62 tmp47 [V62 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V63 tmp48 [V63,T51] ( 4, 4 ) ref -> r8 class-hnd single-def "Inlining Arg" <System.String>
+; V63 tmp48 [V63,T54] ( 4, 4 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.String>
;* V64 tmp49 [V64 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V65 tmp50 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V66 tmp51 [V66,T61] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
-; V67 tmp52 [V67,T64] ( 2, 2 ) int -> rdx "Inlining Arg"
+; V66 tmp51 [V66,T66] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
+; V67 tmp52 [V67,T69] ( 2, 2 ) int -> rdx "Inlining Arg"
;* V68 tmp53 [V68 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-; V69 tmp54 [V69,T62] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
-; V70 tmp55 [V70,T65] ( 2, 2 ) int -> rbx "Inlining Arg"
+; V69 tmp54 [V69,T67] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
+; V70 tmp55 [V70,T70] ( 2, 2 ) int -> rbx "Inlining Arg"
;* V71 tmp56 [V71 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V72 tmp57 [V72 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V73 tmp58 [V73 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Span`1[ubyte]>
;* V74 tmp59 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V75 tmp60 [V75 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V76 tmp61 [V76 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V77 tmp62 [V77 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
; V78 tmp63 [V78,T07] ( 4, 32 ) int -> rcx "Inlining Arg"
;* V79 tmp64 [V79 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-; V80 tmp65 [V80,T20] ( 2, 16 ) byref -> r8 "Inlining Arg"
+; V80 tmp65 [V80,T19] ( 2, 16 ) byref -> r8 "Inlining Arg"
; V81 tmp66 [V81,T08] ( 3, 24 ) int -> rsi "Inlining Arg"
;* V82 tmp67 [V82 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-; V83 tmp68 [V83,T11] ( 4, 24 ) ref -> rcx class-hnd "Inlining Arg" <System.String>
+; V83 tmp68 [V83,T10] ( 4, 24 ) ref -> rcx class-hnd "Inlining Arg" <System.String>
;* V84 tmp69 [V84 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V85 tmp70 [V85 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V86 tmp71 [V86,T38] ( 2, 8 ) byref -> rdx "Inlining Arg"
-; V87 tmp72 [V87,T45] ( 2, 8 ) int -> rdi "Inlining Arg"
+; V86 tmp71 [V86,T39] ( 2, 8 ) byref -> rdx "Inlining Arg"
+; V87 tmp72 [V87,T44] ( 2, 8 ) int -> rdi "Inlining Arg"
;* V88 tmp73 [V88 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-; V89 tmp74 [V89,T21] ( 2, 16 ) byref -> rdx "Inlining Arg"
-; V90 tmp75 [V90,T23] ( 2, 16 ) int -> rbx "Inlining Arg"
-; V91 tmp76 [V91,T12] ( 8, 18.50) byref -> r12 single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-; V92 tmp77 [V92,T10] ( 12, 21 ) int -> r13 single-def "field V00._length (fldOffset=0x8)" P-INDEP
-; V93 tmp78 [V93,T01] ( 17, 40.50) byref -> r15 "field V03._reference (fldOffset=0x0)" P-INDEP
-; V94 tmp79 [V94,T00] ( 20, 49 ) int -> rbx "field V03._length (fldOffset=0x8)" P-INDEP
-;* V95 tmp80 [V95,T68] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
-;* V96 tmp81 [V96,T72] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
+; V89 tmp74 [V89,T20] ( 2, 16 ) byref -> rdx "Inlining Arg"
+; V90 tmp75 [V90,T22] ( 2, 16 ) int -> rbx "Inlining Arg"
+; V91 tmp76 [V91,T11] ( 8, 18.50) byref -> r13 single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+; V92 tmp77 [V92,T09] ( 12, 21 ) int -> r14 single-def "field V00._length (fldOffset=0x8)" P-INDEP
+; V93 tmp78 [V93,T01] ( 17, 36.50) byref -> r15 "field V03._reference (fldOffset=0x0)" P-INDEP
+; V94 tmp79 [V94,T00] ( 20, 45 ) int -> rbx "field V03._length (fldOffset=0x8)" P-INDEP
+;* V95 tmp80 [V95,T73] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP
+;* V96 tmp81 [V96,T77] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP
;* V97 tmp82 [V97 ] ( 0, 0 ) byref -> zero-ref "field V16._reference (fldOffset=0x0)" P-INDEP
;* V98 tmp83 [V98 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP
;* V99 tmp84 [V99 ] ( 0, 0 ) byref -> zero-ref "field V17._reference (fldOffset=0x0)" P-INDEP
;* V100 tmp85 [V100 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
-;* V101 tmp86 [V101,T77] ( 0, 0 ) byref -> zero-ref single-def "field V19._reference (fldOffset=0x0)" P-INDEP
-; V102 tmp87 [V102,T73] ( 2, 1 ) int -> rsi "field V19._length (fldOffset=0x8)" P-INDEP
-; V103 tmp88 [V103,T69] ( 2, 1 ) byref -> r15 single-def "field V23._reference (fldOffset=0x0)" P-INDEP
-; V104 tmp89 [V104,T74] ( 2, 1 ) int -> rbx "field V23._length (fldOffset=0x8)" P-INDEP
-; V105 tmp90 [V105,T39] ( 2, 8 ) byref -> rsi "field V26._reference (fldOffset=0x0)" P-INDEP
-; V106 tmp91 [V106,T30] ( 3, 12 ) int -> rdx "field V26._length (fldOffset=0x8)" P-INDEP
+;* V101 tmp86 [V101,T82] ( 0, 0 ) byref -> zero-ref single-def "field V19._reference (fldOffset=0x0)" P-INDEP
+; V102 tmp87 [V102,T78] ( 2, 1 ) int -> rsi "field V19._length (fldOffset=0x8)" P-INDEP
+; V103 tmp88 [V103,T74] ( 2, 1 ) byref -> r15 single-def "field V23._reference (fldOffset=0x0)" P-INDEP
+; V104 tmp89 [V104,T79] ( 2, 1 ) int -> rbx "field V23._length (fldOffset=0x8)" P-INDEP
+; V105 tmp90 [V105,T49] ( 2, 6 ) byref -> rsi "field V26._reference (fldOffset=0x0)" P-INDEP
+; V106 tmp91 [V106,T35] ( 3, 8 ) int -> r8 "field V26._length (fldOffset=0x8)" P-INDEP
;* V107 tmp92 [V107 ] ( 0, 0 ) byref -> zero-ref "field V27._reference (fldOffset=0x0)" P-INDEP
;* V108 tmp93 [V108 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP
-;* V109 tmp94 [V109 ] ( 0, 0 ) byref -> zero-ref "field V28._reference (fldOffset=0x0)" P-INDEP
-;* V110 tmp95 [V110 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
+; V109 tmp94 [V109,T50] ( 2, 6 ) byref -> rdi "field V28._reference (fldOffset=0x0)" P-INDEP
+; V110 tmp95 [V110,T59] ( 2, 4 ) int -> rdx "field V28._length (fldOffset=0x8)" P-INDEP
;* V111 tmp96 [V111 ] ( 0, 0 ) byref -> zero-ref "field V29._reference (fldOffset=0x0)" P-INDEP
;* V112 tmp97 [V112 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP
;* V113 tmp98 [V113 ] ( 0, 0 ) byref -> zero-ref "field V34._reference (fldOffset=0x0)" P-INDEP
;* V114 tmp99 [V114 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
;* V115 tmp100 [V115 ] ( 0, 0 ) byref -> zero-ref "field V37._reference (fldOffset=0x0)" P-INDEP
;* V116 tmp101 [V116 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
;* V117 tmp102 [V117 ] ( 0, 0 ) byref -> zero-ref "field V39._reference (fldOffset=0x0)" P-INDEP
;* V118 tmp103 [V118 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
; V119 tmp104 [V119,T28] ( 4, 12 ) byref -> rdi "field V41._reference (fldOffset=0x0)" P-INDEP
-; V120 tmp105 [V120,T32] ( 4, 10 ) int -> rsi "field V41._length (fldOffset=0x8)" P-INDEP
-; V121 tmp106 [V121,T54] ( 2, 4 ) byref -> rdi "field V42._reference (fldOffset=0x0)" P-INDEP
-; V122 tmp107 [V122,T56] ( 2, 4 ) int -> rsi "field V42._length (fldOffset=0x8)" P-INDEP
+; V120 tmp105 [V120,T30] ( 4, 10 ) int -> rsi "field V41._length (fldOffset=0x8)" P-INDEP
+; V121 tmp106 [V121,T57] ( 2, 4 ) byref -> rdi "field V42._reference (fldOffset=0x0)" P-INDEP
+; V122 tmp107 [V122,T60] ( 2, 4 ) int -> rsi "field V42._length (fldOffset=0x8)" P-INDEP
;* V123 tmp108 [V123 ] ( 0, 0 ) byref -> zero-ref "field V43._reference (fldOffset=0x0)" P-INDEP
;* V124 tmp109 [V124 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
;* V125 tmp110 [V125 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP
;* V126 tmp111 [V126 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
;* V127 tmp112 [V127 ] ( 0, 0 ) byref -> zero-ref "field V48._reference (fldOffset=0x0)" P-INDEP
;* V128 tmp113 [V128 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP
;* V129 tmp114 [V129 ] ( 0, 0 ) byref -> zero-ref "field V55._reference (fldOffset=0x0)" P-INDEP
;* V130 tmp115 [V130 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP
;* V131 tmp116 [V131 ] ( 0, 0 ) byref -> zero-ref "field V56._reference (fldOffset=0x0)" P-INDEP
;* V132 tmp117 [V132 ] ( 0, 0 ) int -> zero-ref "field V56._length (fldOffset=0x8)" P-INDEP
; V133 tmp118 [V133,T40] ( 2, 8 ) byref -> r15 "field V59._reference (fldOffset=0x0)" P-INDEP
-; V134 tmp119 [V134,T46] ( 2, 8 ) int -> rbx "field V59._length (fldOffset=0x8)" P-INDEP
-; V135 tmp120 [V135,T66] ( 3, 1.50) byref -> rsi "field V62._reference (fldOffset=0x0)" P-INDEP
-; V136 tmp121 [V136,T67] ( 3, 1.50) int -> rdx "field V62._length (fldOffset=0x8)" P-INDEP
-; V137 tmp122 [V137,T70] ( 2, 1 ) byref -> rsi single-def "field V64._reference (fldOffset=0x0)" P-INDEP
-; V138 tmp123 [V138,T75] ( 2, 1 ) int -> rdx "field V64._length (fldOffset=0x8)" P-INDEP
+; V134 tmp119 [V134,T45] ( 2, 8 ) int -> rbx "field V59._length (fldOffset=0x8)" P-INDEP
+; V135 tmp120 [V135,T71] ( 3, 1.50) byref -> rsi "field V62._reference (fldOffset=0x0)" P-INDEP
+; V136 tmp121 [V136,T72] ( 3, 1.50) int -> rdx "field V62._length (fldOffset=0x8)" P-INDEP
+; V137 tmp122 [V137,T75] ( 2, 1 ) byref -> rsi single-def "field V64._reference (fldOffset=0x0)" P-INDEP
+; V138 tmp123 [V138,T80] ( 2, 1 ) int -> rdx "field V64._length (fldOffset=0x8)" P-INDEP
;* V139 tmp124 [V139 ] ( 0, 0 ) byref -> zero-ref single-def "field V65._reference (fldOffset=0x0)" P-INDEP
;* V140 tmp125 [V140 ] ( 0, 0 ) int -> zero-ref "field V65._length (fldOffset=0x8)" P-INDEP
-; V141 tmp126 [V141,T71] ( 2, 1 ) byref -> r15 single-def "field V68._reference (fldOffset=0x0)" P-INDEP
-; V142 tmp127 [V142,T76] ( 2, 1 ) int -> rbx "field V68._length (fldOffset=0x8)" P-INDEP
-; V143 tmp128 [V143,T41] ( 2, 8 ) byref -> rsi "field V71._reference (fldOffset=0x0)" P-INDEP
-; V144 tmp129 [V144,T31] ( 3, 12 ) int -> rdx "field V71._length (fldOffset=0x8)" P-INDEP
+; V141 tmp126 [V141,T76] ( 2, 1 ) byref -> r15 single-def "field V68._reference (fldOffset=0x0)" P-INDEP
+; V142 tmp127 [V142,T81] ( 2, 1 ) int -> rbx "field V68._length (fldOffset=0x8)" P-INDEP
+; V143 tmp128 [V143,T51] ( 2, 6 ) byref -> rsi "field V71._reference (fldOffset=0x0)" P-INDEP
+; V144 tmp129 [V144,T36] ( 3, 8 ) int -> rax "field V71._length (fldOffset=0x8)" P-INDEP
;* V145 tmp130 [V145 ] ( 0, 0 ) byref -> zero-ref "field V72._reference (fldOffset=0x0)" P-INDEP
;* V146 tmp131 [V146 ] ( 0, 0 ) int -> zero-ref "field V72._length (fldOffset=0x8)" P-INDEP
-;* V147 tmp132 [V147 ] ( 0, 0 ) byref -> zero-ref "field V73._reference (fldOffset=0x0)" P-INDEP
-;* V148 tmp133 [V148 ] ( 0, 0 ) int -> zero-ref "field V73._length (fldOffset=0x8)" P-INDEP
+; V147 tmp132 [V147,T52] ( 2, 6 ) byref -> rdi "field V73._reference (fldOffset=0x0)" P-INDEP
+; V148 tmp133 [V148,T61] ( 2, 4 ) int -> rdx "field V73._length (fldOffset=0x8)" P-INDEP
;* V149 tmp134 [V149 ] ( 0, 0 ) byref -> zero-ref "field V74._reference (fldOffset=0x0)" P-INDEP
;* V150 tmp135 [V150 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP
-; V151 tmp136 [V151,T42] ( 2, 8 ) byref -> r15 "field V79._reference (fldOffset=0x0)" P-INDEP
-;* V152 tmp137 [V152,T58] ( 0, 0 ) int -> zero-ref "field V79._length (fldOffset=0x8)" P-INDEP
-; V153 tmp138 [V153,T34] ( 3, 8 ) byref -> rdx "field V82._reference (fldOffset=0x0)" P-INDEP
-; V154 tmp139 [V154,T36] ( 3, 8 ) int -> rdi "field V82._length (fldOffset=0x8)" P-INDEP
-; V155 tmp140 [V155,T55] ( 2, 4 ) byref -> rdx "field V84._reference (fldOffset=0x0)" P-INDEP
-; V156 tmp141 [V156,T57] ( 2, 4 ) int -> rdi "field V84._length (fldOffset=0x8)" P-INDEP
+; V151 tmp136 [V151,T41] ( 2, 8 ) byref -> r15 "field V79._reference (fldOffset=0x0)" P-INDEP
+;* V152 tmp137 [V152,T63] ( 0, 0 ) int -> zero-ref "field V79._length (fldOffset=0x8)" P-INDEP
+; V153 tmp138 [V153,T33] ( 3, 8 ) byref -> rdx "field V82._reference (fldOffset=0x0)" P-INDEP
+; V154 tmp139 [V154,T37] ( 3, 8 ) int -> rdi "field V82._length (fldOffset=0x8)" P-INDEP
+; V155 tmp140 [V155,T58] ( 2, 4 ) byref -> rdx "field V84._reference (fldOffset=0x0)" P-INDEP
+; V156 tmp141 [V156,T62] ( 2, 4 ) int -> rdi "field V84._length (fldOffset=0x8)" P-INDEP
;* V157 tmp142 [V157 ] ( 0, 0 ) byref -> zero-ref "field V85._reference (fldOffset=0x0)" P-INDEP
;* V158 tmp143 [V158 ] ( 0, 0 ) int -> zero-ref "field V85._length (fldOffset=0x8)" P-INDEP
-; V159 tmp144 [V159,T43] ( 2, 8 ) byref -> r15 "field V88._reference (fldOffset=0x0)" P-INDEP
-; V160 tmp145 [V160,T47] ( 2, 8 ) int -> rbx "field V88._length (fldOffset=0x8)" P-INDEP
-; V161 tmp146 [V161,T24] ( 2, 16 ) long -> rdi "Cast away GC"
-; V162 tmp147 [V162,T25] ( 2, 16 ) long -> rsi "Cast away GC"
-; V163 tmp148 [V163,T26] ( 2, 16 ) long -> rdi "argument with side effect"
-; V164 tmp149 [V164,T27] ( 2, 16 ) long -> rsi "argument with side effect"
-; V165 cse0 [V165,T50] ( 3, 5 ) long -> [rbp-0x68] spill-single-def "CSE #08: conservative"
-; V166 rat0 [V166,T17] ( 5, 16.50) long -> [rbp-0x70] "Widened IV V14"
-; V167 rat1 [V167,T18] ( 5, 16.50) long -> [rbp-0x78] "Widened IV V12"
+; V159 tmp144 [V159,T42] ( 2, 8 ) byref -> r15 "field V88._reference (fldOffset=0x0)" P-INDEP
+; V160 tmp145 [V160,T46] ( 2, 8 ) int -> rbx "field V88._length (fldOffset=0x8)" P-INDEP
+; V161 tmp146 [V161,T23] ( 2, 16 ) long -> rdi "Cast away GC"
+; V162 tmp147 [V162,T24] ( 2, 16 ) long -> rsi "Cast away GC"
+; V163 tmp148 [V163,T25] ( 2, 16 ) long -> rdi "argument with side effect"
+; V164 tmp149 [V164,T26] ( 2, 16 ) long -> rsi "argument with side effect"
+; V165 cse0 [V165,T53] ( 3, 5 ) long -> [rbp-0x68] spill-single-def "CSE #08: conservative"
+; V166 cse1 [V166,T27] ( 6, 13 ) int -> [rbp-0x6C] spill-single-def "CSE #01: moderate"
+; V167 rat0 [V167,T16] ( 5, 16.50) long -> [rbp-0x78] "Widened IV V14"
+; V168 rat1 [V168,T17] ( 5, 16.50) long -> r12 "Widened IV V12"
;
; Lcl frame size = 104
G_M6373_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 104
lea rbp, [rsp+0x90]
xor eax, eax
mov qword ptr [rbp-0x58], rax
mov qword ptr [rbp-0x60], rax
- mov r12, rdi
- mov r13d, esi
- mov r14, rdx
- mov rax, rcx
+ mov r13, rdi
+ mov r14d, esi
+ mov rax, rdx
+ mov r12, rcx
mov r15, r8
mov ebx, r9d
mov r9, bword ptr [rbp+0x10]
;; size=54 bbWeight=1 PerfScore 11.50
G_M6373_IG02:
- cmp r13d, 1
+ cmp r14d, 1
jne SHORT G_M6373_IG05
;; size=6 bbWeight=1 PerfScore 1.25
G_M6373_IG03:
mov rdx, r15
mov ecx, ebx
- mov rdi, gword ptr [r12]
- mov rsi, rax
+ mov rdi, gword ptr [r13]
+ mov rsi, r12
mov r8, r9
mov rax, 0xD1FFAB1E ; code for System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.String,System.Text.Encoding,System.Span`1[ubyte],byref):ubyte
call [rax]System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.String,System.Text.Encoding,System.Span`1[ubyte],byref):ubyte
nop
;; size=28 bbWeight=0.50 PerfScore 3.25
G_M6373_IG04:
add rsp, 104
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M6373_IG05:
- test r13d, r13d
+ test r14d, r14d
jne SHORT G_M6373_IG07
mov rdx, r15
mov ecx, ebx
mov r8, r9
mov rdi, 0xD1FFAB1E ; ''
xor rsi, rsi
mov rax, 0xD1FFAB1E ; code for System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.String,System.Text.Encoding,System.Span`1[ubyte],byref):ubyte
call [rax]System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.String,System.Text.Encoding,System.Span`1[ubyte],byref):ubyte
nop
;; size=38 bbWeight=0.50 PerfScore 3.00
G_M6373_IG06:
add rsp, 104
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M6373_IG07:
test ebx, ebx
- jle G_M6373_IG23
- lea esi, [r13-0x01]
- imul esi, dword ptr [r14+0x08]
- test rax, rax
+ jle G_M6373_IG22
+ mov gword ptr [rbp-0x80], rax
+ mov ecx, dword ptr [rax+0x08]
+ mov dword ptr [rbp-0x6C], ecx
+ lea esi, [r14-0x01]
+ imul esi, ecx
+ test r12, r12
je SHORT G_M6373_IG09
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
- je G_M6373_IG46
- ;; size=41 bbWeight=0.50 PerfScore 6.12
+ je G_M6373_IG47
+ ;; size=49 bbWeight=0.50 PerfScore 6.62
G_M6373_IG08:
mov rdi, 0xD1FFAB1E ; data for System.Text.Latin1Encoding:s_default
- cmp rax, gword ptr [rdi]
+ cmp r12, gword ptr [rdi]
jne SHORT G_M6373_IG13
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M6373_IG09:
xor edi, edi
- test r13d, r13d
+ test r14d, r14d
jle SHORT G_M6373_IG12
- align [5 bytes for IG10]
- ;; size=12 bbWeight=0.50 PerfScore 0.88
+ align [0 bytes for IG10]
+ ;; size=7 bbWeight=0.50 PerfScore 0.75
G_M6373_IG10:
- mov ecx, edi
- mov rcx, gword ptr [r12+8*rcx]
- add esi, dword ptr [rcx+0x08]
+ mov edx, edi
+ mov rdx, gword ptr [r13+8*rdx]
+ add esi, dword ptr [rdx+0x08]
mov dword ptr [rbp-0x2C], esi
inc edi
- cmp edi, r13d
+ cmp edi, r14d
mov esi, dword ptr [rbp-0x2C]
jl SHORT G_M6373_IG10
- ;; size=22 bbWeight=4 PerfScore 35.00
+ ;; size=23 bbWeight=4 PerfScore 35.00
G_M6373_IG11:
- mov gword ptr [rbp-0x80], rax
mov bword ptr [rbp+0x10], r9
jmp SHORT G_M6373_IG17
- ;; size=10 bbWeight=2 PerfScore 8.00
+ ;; size=6 bbWeight=2 PerfScore 6.00
G_M6373_IG12:
- mov gword ptr [rbp-0x80], rax
mov bword ptr [rbp+0x10], r9
jmp SHORT G_M6373_IG17
- ;; size=10 bbWeight=0.25 PerfScore 1.00
+ ;; size=6 bbWeight=0.25 PerfScore 0.75
G_M6373_IG13:
xor edi, edi
- xor ecx, ecx
- test r13d, r13d
+ xor edx, edx
+ test r14d, r14d
mov bword ptr [rbp+0x10], r9
- jle SHORT G_M6373_IG20
+ jle SHORT G_M6373_IG17
;; size=13 bbWeight=0.50 PerfScore 1.38
G_M6373_IG14:
mov dword ptr [rbp-0x2C], esi
;; size=3 bbWeight=0.25 PerfScore 0.25
G_M6373_IG15:
- mov dword ptr [rbp-0x3C], ecx
- mov edi, ecx
- mov rsi, gword ptr [r12+8*rdi]
- mov rdi, rax
- mov gword ptr [rbp-0x80], rax
- mov rdx, qword ptr [rax]
- mov rdx, qword ptr [rdx+0x50]
- call [rdx+0x18]System.Text.Encoding:GetByteCount(System.String):int:this
+ mov dword ptr [rbp-0x3C], edx
+ mov edi, edx
+ mov rsi, gword ptr [r13+8*rdi]
+ mov rdi, r12
+ mov r8, qword ptr [r12]
+ mov r8, qword ptr [r8+0x50]
+ call [r8+0x18]System.Text.Encoding:GetByteCount(System.String):int:this
mov esi, eax
add esi, dword ptr [rbp-0x2C]
mov eax, esi
mov edx, dword ptr [rbp-0x3C]
inc edx
- cmp edx, r13d
- mov ecx, edx
+ cmp edx, r14d
jl SHORT G_M6373_IG19
- ;; size=45 bbWeight=4 PerfScore 67.00
+ ;; size=42 bbWeight=4 PerfScore 62.00
G_M6373_IG16:
mov esi, eax
;; size=2 bbWeight=2 PerfScore 0.50
G_M6373_IG17:
mov byte ptr [r15], 0
mov rdx, r15
mov ecx, ebx
lea r8, [rbp-0x38]
mov dword ptr [rbp-0x2C], esi
mov edi, esi
mov esi, 7
mov r10, 0xD1FFAB1E ; code for System.Net.Http.HPack.IntegerEncoder:Encode(int,int,System.Span`1[ubyte],byref):ubyte
call [r10]System.Net.Http.HPack.IntegerEncoder:Encode(int,int,System.Span`1[ubyte],byref):ubyte
test eax, eax
je SHORT G_M6373_IG18
mov esi, dword ptr [rbp-0x38]
cmp esi, ebx
- jbe SHORT G_M6373_IG21
- jmp G_M6373_IG49
+ jbe SHORT G_M6373_IG20
+ jmp G_M6373_IG50
;; size=52 bbWeight=0.50 PerfScore 6.12
G_M6373_IG18:
mov r9, bword ptr [rbp+0x10]
- jmp SHORT G_M6373_IG23
+ jmp SHORT G_M6373_IG22
;; size=6 bbWeight=0.25 PerfScore 0.75
G_M6373_IG19:
mov dword ptr [rbp-0x2C], eax
- mov rax, gword ptr [rbp-0x80]
jmp SHORT G_M6373_IG15
- ;; size=9 bbWeight=2 PerfScore 8.00
+ ;; size=5 bbWeight=2 PerfScore 6.00
G_M6373_IG20:
- mov gword ptr [rbp-0x80], rax
- jmp SHORT G_M6373_IG17
- ;; size=6 bbWeight=0.25 PerfScore 0.75
-G_M6373_IG21:
mov eax, esi
add r15, rax
sub ebx, esi
mov esi, ebx
mov eax, dword ptr [rbp-0x2C]
cmp esi, eax
- jl SHORT G_M6373_IG22
- cmp gword ptr [rbp-0x80], 0
- jne SHORT G_M6373_IG25
- mov r8, gword ptr [r12]
+ jl SHORT G_M6373_IG21
+ test r12, r12
+ jne SHORT G_M6373_IG24
+ mov r12, gword ptr [r13]
mov rsi, r15
mov edx, ebx
- mov gword ptr [rbp-0x88], r8
- mov rdi, r8
+ mov rdi, r12
mov rcx, 0xD1FFAB1E ; code for System.Net.Http.QPack.QPackEncoder:EncodeValueStringPart(System.String,System.Span`1[ubyte])
call [rcx]System.Net.Http.QPack.QPackEncoder:EncodeValueStringPart(System.String,System.Span`1[ubyte])
- mov r9, gword ptr [rbp-0x88]
- mov r9d, dword ptr [r9+0x08]
- cmp r9d, ebx
+ mov r12d, dword ptr [r12+0x08]
+ cmp r12d, ebx
jbe G_M6373_IG32
- jmp G_M6373_IG49
- ;; size=79 bbWeight=0.50 PerfScore 9.75
-G_M6373_IG22:
+ jmp G_M6373_IG50
+ ;; size=64 bbWeight=0.50 PerfScore 7.88
+G_M6373_IG21:
mov r9, bword ptr [rbp+0x10]
;; size=4 bbWeight=0.25 PerfScore 0.25
-G_M6373_IG23:
+G_M6373_IG22:
xor eax, eax
mov dword ptr [r9], eax
;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M6373_IG24:
+G_M6373_IG23:
add rsp, 104
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M6373_IG25:
- mov r8, gword ptr [r12]
- test r8, r8
- jne SHORT G_M6373_IG26
+G_M6373_IG24:
+ mov rcx, gword ptr [r13]
+ test rcx, rcx
+ jne SHORT G_M6373_IG25
xor rsi, rsi
xor edx, edx
- jmp SHORT G_M6373_IG27
+ jmp SHORT G_M6373_IG26
;; size=15 bbWeight=0.50 PerfScore 2.88
+G_M6373_IG25:
+ lea rsi, bword ptr [rcx+0x0C]
+ mov edx, dword ptr [rcx+0x08]
+ ;; size=7 bbWeight=0.50 PerfScore 1.25
G_M6373_IG26:
- lea rsi, bword ptr [r8+0x0C]
- mov edx, dword ptr [r8+0x08]
- ;; size=8 bbWeight=0.50 PerfScore 1.25
-G_M6373_IG27:
mov rcx, r15
mov r8d, ebx
- mov rdi, gword ptr [rbp-0x80]
- mov gword ptr [rbp-0x80], rdi
- mov r10, qword ptr [rdi]
+ mov rdi, r12
+ mov r10, qword ptr [r12]
mov r10, qword ptr [r10+0x58]
mov qword ptr [rbp-0x68], r10
call [r10+0x28]System.Text.Encoding:GetBytes(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int:this
cmp eax, ebx
- ja G_M6373_IG49
+ ja G_M6373_IG50
mov edx, eax
add r15, rdx
sub ebx, eax
- mov qword ptr [rbp-0x70], 1
- cmp r13d, 1
- jle G_M6373_IG44
- ;; size=62 bbWeight=0.50 PerfScore 7.38
-G_M6373_IG28:
- lea rsi, bword ptr [r14+0x10]
- mov edx, dword ptr [r14+0x08]
- cmp edx, ebx
- ja G_M6373_IG47
+ mov qword ptr [rbp-0x78], 1
+ cmp r14d, 1
+ jle G_M6373_IG45
+ ;; size=58 bbWeight=0.50 PerfScore 6.50
+G_M6373_IG27:
mov rdi, r15
+ mov edx, ebx
+ mov r8, gword ptr [rbp-0x80]
+ lea rsi, bword ptr [r8+0x10]
+ mov r9d, dword ptr [rbp-0x6C]
+ mov eax, r9d
+ cmp eax, edx
+ ja G_M6373_IG48
+ ;; size=28 bbWeight=2 PerfScore 9.00
+G_M6373_IG28:
+ mov edx, eax
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
- mov ecx, dword ptr [r14+0x08]
+ mov eax, dword ptr [rbp-0x6C]
+ mov ecx, eax
cmp ecx, ebx
- ja G_M6373_IG49
+ ja G_M6373_IG50
mov r8d, ecx
add r8, r15
mov esi, ebx
sub esi, ecx
mov r15, r8
mov ebx, esi
- mov rax, qword ptr [rbp-0x70]
- mov rcx, gword ptr [r12+8*rax]
+ mov r9, qword ptr [rbp-0x78]
+ mov rcx, gword ptr [r13+8*r9]
test rcx, rcx
jne SHORT G_M6373_IG30
- ;; size=71 bbWeight=4 PerfScore 65.00
+ ;; size=56 bbWeight=4 PerfScore 47.00
G_M6373_IG29:
xor rdx, rdx
xor edi, edi
jmp SHORT G_M6373_IG31
;; size=6 bbWeight=2 PerfScore 5.00
G_M6373_IG30:
lea rdx, bword ptr [rcx+0x0C]
mov edi, dword ptr [rcx+0x08]
;; size=7 bbWeight=2 PerfScore 5.00
G_M6373_IG31:
mov rcx, r15
mov r8d, esi
mov rsi, rdx
mov edx, edi
- mov rdi, gword ptr [rbp-0x80]
- mov r9, qword ptr [rbp-0x68]
- call [r9+0x28]System.Text.Encoding:GetBytes(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int:this
+ mov rdi, r12
+ mov r10, qword ptr [rbp-0x68]
+ call [r10+0x28]System.Text.Encoding:GetBytes(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int:this
cmp eax, ebx
- ja G_M6373_IG49
+ ja G_M6373_IG50
mov edx, eax
add rdx, r15
sub ebx, eax
mov r15, rdx
- mov rdx, qword ptr [rbp-0x70]
+ mov rdx, qword ptr [rbp-0x78]
inc edx
- cmp edx, r13d
- mov qword ptr [rbp-0x70], rdx
- jl G_M6373_IG28
- jmp G_M6373_IG44
- ;; size=65 bbWeight=4 PerfScore 55.00
+ cmp edx, r14d
+ mov qword ptr [rbp-0x78], rdx
+ jl G_M6373_IG27
+ jmp G_M6373_IG45
+ ;; size=64 bbWeight=4 PerfScore 52.00
G_M6373_IG32:
- mov edx, r9d
+ mov edx, r12d
add rdx, r15
- sub ebx, r9d
+ sub ebx, r12d
mov r15, rdx
- mov qword ptr [rbp-0x78], 1
- cmp r13d, 1
- jle G_M6373_IG44
- ;; size=30 bbWeight=0.50 PerfScore 1.62
+ mov r12d, 1
+ cmp r14d, 1
+ jle G_M6373_IG45
+ ;; size=28 bbWeight=0.50 PerfScore 1.25
G_M6373_IG33:
- lea rsi, bword ptr [r14+0x10]
- mov edx, dword ptr [r14+0x08]
- cmp edx, ebx
- ja G_M6373_IG47
mov rdi, r15
- mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
- call [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
- mov edi, dword ptr [r14+0x08]
+ mov edx, ebx
+ mov rax, gword ptr [rbp-0x80]
+ lea rsi, bword ptr [rax+0x10]
+ mov ecx, dword ptr [rbp-0x6C]
+ mov r8d, ecx
+ cmp r8d, edx
+ ja G_M6373_IG48
+ ;; size=28 bbWeight=2 PerfScore 9.00
+G_M6373_IG34:
+ mov edx, r8d
+ mov r8, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+ call [r8]System.SpanHelpers:Memmove(byref,byref,ulong)
+ mov eax, dword ptr [rbp-0x6C]
+ mov edi, eax
cmp edi, ebx
- ja G_M6373_IG49
- mov eax, edi
- add r15, rax
+ ja G_M6373_IG50
+ mov ecx, edi
+ add r15, rcx
sub ebx, edi
- mov rax, qword ptr [rbp-0x78]
- mov r9, gword ptr [r12+8*rax]
- mov rcx, r9
+ mov rdi, gword ptr [r13+8*r12]
+ mov rcx, rdi
test rcx, rcx
- jne SHORT G_M6373_IG35
- ;; size=66 bbWeight=4 PerfScore 63.00
-G_M6373_IG34:
+ jne SHORT G_M6373_IG36
+ ;; size=49 bbWeight=4 PerfScore 41.00
+G_M6373_IG35:
xor rdi, rdi
xor esi, esi
- jmp SHORT G_M6373_IG36
+ jmp SHORT G_M6373_IG37
;; size=6 bbWeight=2 PerfScore 5.00
-G_M6373_IG35:
+G_M6373_IG36:
lea rdi, bword ptr [rcx+0x0C]
mov gword ptr [rbp-0x88], rcx
mov esi, dword ptr [rcx+0x08]
mov rcx, gword ptr [rbp-0x88]
;; size=21 bbWeight=2 PerfScore 9.00
-G_M6373_IG36:
+G_M6373_IG37:
cmp esi, ebx
- jg SHORT G_M6373_IG38
+ jg SHORT G_M6373_IG39
;; size=4 bbWeight=4 PerfScore 5.00
-G_M6373_IG37:
+G_M6373_IG38:
mov r8d, esi
xor r9d, r9d
mov gword ptr [rbp-0x88], rcx
mov dword ptr [rbp-0x4C], r9d
- jmp SHORT G_M6373_IG39
+ jmp SHORT G_M6373_IG40
;; size=19 bbWeight=2 PerfScore 9.00
-G_M6373_IG38:
+G_M6373_IG39:
mov r8d, ebx
mov dword ptr [rbp-0x4C], 1
mov gword ptr [rbp-0x88], rcx
;; size=17 bbWeight=2 PerfScore 4.50
-G_M6373_IG39:
+G_M6373_IG40:
mov bword ptr [rbp-0x58], rdi
mov bword ptr [rbp-0x60], r15
mov rsi, r15
mov qword ptr [rbp-0x48], r8
mov rdx, r8
mov r10, 0xD1FFAB1E ; code for System.Text.Ascii:NarrowUtf16ToAscii(ulong,ulong,ulong):ulong
call [r10]System.Text.Ascii:NarrowUtf16ToAscii(ulong,ulong,ulong):ulong
cmp rax, qword ptr [rbp-0x48]
- je SHORT G_M6373_IG41
+ je SHORT G_M6373_IG42
;; size=37 bbWeight=4 PerfScore 39.00
-G_M6373_IG40:
+G_M6373_IG41:
mov eax, 3
- jmp SHORT G_M6373_IG42
+ jmp SHORT G_M6373_IG43
;; size=7 bbWeight=2 PerfScore 4.50
-G_M6373_IG41:
+G_M6373_IG42:
mov eax, dword ptr [rbp-0x4C]
;; size=3 bbWeight=2 PerfScore 2.00
-G_M6373_IG42:
+G_M6373_IG43:
xor rdi, rdi
mov bword ptr [rbp-0x58], rdi
;; size=6 bbWeight=4 PerfScore 5.00
-G_M6373_IG43:
+G_M6373_IG44:
mov bword ptr [rbp-0x60], rdi
cmp eax, 3
- je G_M6373_IG48
+ je SHORT G_M6373_IG49
mov rax, gword ptr [rbp-0x88]
mov eax, dword ptr [rax+0x08]
cmp eax, ebx
- ja G_M6373_IG49
+ ja G_M6373_IG50
mov edi, eax
add r15, rdi
sub ebx, eax
- mov rax, qword ptr [rbp-0x78]
- inc eax
- cmp eax, r13d
- mov qword ptr [rbp-0x78], rax
+ inc r12d
+ cmp r12d, r14d
jl G_M6373_IG33
- ;; size=57 bbWeight=4 PerfScore 43.00
-G_M6373_IG44:
- mov ebx, dword ptr [rbp-0x2C]
- mov eax, ebx
+ ;; size=46 bbWeight=4 PerfScore 35.00
+G_M6373_IG45:
+ mov r12d, dword ptr [rbp-0x2C]
+ mov eax, r12d
add eax, dword ptr [rbp-0x38]
mov rbx, bword ptr [rbp+0x10]
mov dword ptr [rbx], eax
mov eax, 1
- ;; size=19 bbWeight=0.50 PerfScore 2.75
-G_M6373_IG45:
+ ;; size=21 bbWeight=0.50 PerfScore 2.75
+G_M6373_IG46:
add rsp, 104
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M6373_IG46:
- mov gword ptr [rbp-0x80], rax
+G_M6373_IG47:
mov dword ptr [rbp-0x2C], esi
mov bword ptr [rbp+0x10], r9
mov rdi, 0xD1FFAB1E ; System.Text.Latin1Encoding
call CORINFO_HELP_GET_GCSTATIC_BASE
- mov rax, gword ptr [rbp-0x80]
mov esi, dword ptr [rbp-0x2C]
mov r9, bword ptr [rbp+0x10]
jmp G_M6373_IG08
- ;; size=42 bbWeight=0 PerfScore 0.00
-G_M6373_IG47:
+ ;; size=34 bbWeight=0 PerfScore 0.00
+G_M6373_IG48:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
call [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M6373_IG48:
+G_M6373_IG49:
mov rdi, 0xD1FFAB1E ; System.Net.Http.QPack.QPackEncodingException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_net_http_request_invalid_char_encoding():System.String
call [rax]System.SR:get_net_http_request_invalid_char_encoding():System.String
mov r15, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Exception:.ctor():this
call [rax]System.Exception:.ctor():this
lea rdi, bword ptr [rbx+0x10]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=69 bbWeight=0 PerfScore 0.00
-G_M6373_IG49:
+G_M6373_IG50:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1183, prolog size 54, PerfScore 510.88, instruction count 344, allocated bytes for code 1183 (MethodHash=9010e71a) for method System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (FullOpts)
+; Total bytes of code 1150, prolog size 54, PerfScore 465.12, instruction count 342, allocated bytes for code 1150 (MethodHash=9010e71a) for method System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (FullOpts) Larger list of diffs: https://gist.github.com/MihuBot/1cec336577121ac356ff0a80a35f96aa |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 14 minutes.
Diffs
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: