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
[X64] [EgorBo] Keep this alive for classes with finalizers #462
Comments
Top method regressions153 (9.71 % of base) - System.Net.Http.Headers.HttpHeaders:ToString():System.String:this ; Assembly listing for method System.Net.Http.Headers.HttpHeaders:ToString():System.String: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; 13 single block inlinees; 40 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T49] ( 4, 4 ) ref -> rbx this class-hnd single-def <System.Net.Http.Headers.HttpHeaders>
-; V01 loc0 [V01 ] ( 86,318 ) struct (32) [rbp-0x48] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Text.ValueStringBuilder>
+; V01 loc0 [V01 ] ( 86,318 ) struct (32) [rbp-0x50] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Text.ValueStringBuilder>
;* V02 loc1 [V02 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[ushort]>
;* V03 loc2 [V03 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[System.Net.Http.Headers.HeaderEntry]>
;* V04 loc3 [V04,T60] ( 0, 0 ) int -> zero-ref
;* V05 loc4 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Net.Http.Headers.HeaderEntry>
-; V06 loc5 [V06 ] ( 3, 10 ) ref -> [rbp-0x50] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String>
-; V07 loc6 [V07 ] ( 7, 58 ) ref -> [rbp-0x58] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String[]>
-; V08 loc7 [V08,T04] ( 5, 42 ) ref -> r13 class-hnd exact <System.String>
+; V06 loc5 [V06 ] ( 3, 10 ) ref -> [rbp-0x58] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String>
+; V07 loc6 [V07 ] ( 7, 58 ) ref -> [rbp-0x60] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <System.String[]>
+; V08 loc7 [V08,T04] ( 5, 42 ) ref -> r12 class-hnd exact <System.String>
;* V09 loc8 [V09,T59] ( 0, 0 ) int -> zero-ref
;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V11 tmp1 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V12 tmp2 [V12,T55] ( 2, 4 ) long -> rdi "Inlining Arg"
;* V13 tmp3 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Net.Http.Headers.HeaderEntry]>
; V14 tmp4 [V14,T50] ( 4, 6 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.Net.Http.Headers.HeaderEntry[]>
-; V15 tmp5 [V15,T52] ( 4, 5 ) int -> rbx "Inlining Arg"
-; V16 tmp6 [V16,T30] ( 6, 10.50) ref -> [rbp-0x88] class-hnd "Inline return value spill temp" <System.String>
+; V15 tmp5 [V15,T52] ( 4, 5 ) int -> r15 "Inlining Arg"
+; V16 tmp6 [V16,T30] ( 6, 10.50) ref -> [rbp-0xA0] class-hnd "Inline return value spill temp" <System.String>
;* V17 tmp7 [V17 ] ( 0, 0 ) ref -> zero-ref "ISINST eval op1"
;* V18 tmp8 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Net.Http.Headers.KnownHeader>
;* V19 tmp9 [V19,T53] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Net.Http.Headers.KnownHeader>
;* V20 tmp10 [V20 ] ( 0, 0 ) ref -> zero-ref "ISINST eval op1"
;* V21 tmp11 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.String>
; V22 tmp12 [V22,T31] ( 5, 10 ) int -> rdi "Inline stloc first use temp"
-; V23 tmp13 [V23,T32] ( 5, 10 ) int -> [rbp-0x5C] spill-single-def "Inline stloc first use temp"
+; V23 tmp13 [V23,T32] ( 5, 10 ) int -> [rbp-0x64] spill-single-def "Inline stloc first use temp"
;* V24 tmp14 [V24 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
;* V25 tmp15 [V25 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V26 tmp16 [V26,T40] ( 2, 8 ) byref -> rdi "Inlining Arg"
-; V27 tmp17 [V27,T45] ( 2, 8 ) int -> rdx "Inlining Arg"
+; V27 tmp17 [V27,T45] ( 2, 8 ) int -> r8 "Inlining Arg"
;* V28 tmp18 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V29 tmp19 [V29 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V30 tmp20 [V30 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V31 tmp21 [V31 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V32 tmp22 [V32 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V33 tmp23 [V33,T21] ( 5, 20 ) int -> [rbp-0x60] spill-single-def "Inline stloc first use temp"
+; V33 tmp23 [V33,T21] ( 5, 20 ) int -> [rbp-0x68] spill-single-def "Inline stloc first use temp"
;* V34 tmp24 [V34 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
;* V35 tmp25 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V36 tmp26 [V36,T24] ( 2, 16 ) byref -> rdx "Inlining Arg"
-; V37 tmp27 [V37,T25] ( 2, 16 ) int -> rcx "Inlining Arg"
+; V37 tmp27 [V37,T25] ( 2, 16 ) int -> rdi "Inlining Arg"
;* V38 tmp28 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V39 tmp29 [V39 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V40 tmp30 [V40 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V41 tmp31 [V41,T23] ( 4, 16 ) ref -> r13 class-hnd exact "Inlining Arg" <System.String>
+; V41 tmp31 [V41,T23] ( 4, 16 ) ref -> r12 class-hnd exact "Inlining Arg" <System.String>
; V42 tmp32 [V42,T33] ( 5, 10 ) int -> rsi "Inline stloc first use temp"
-; V43 tmp33 [V43,T34] ( 5, 10 ) int -> [rbp-0x64] spill-single-def "Inline stloc first use temp"
+; V43 tmp33 [V43,T34] ( 5, 10 ) int -> [rbp-0x6C] spill-single-def "Inline stloc first use temp"
;* V44 tmp34 [V44 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
;* V45 tmp35 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V46 tmp36 [V46,T41] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V47 tmp37 [V47,T46] ( 2, 8 ) int -> rdx "Inlining Arg"
;* V48 tmp38 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V49 tmp39 [V49 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V50 tmp40 [V50 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V51 tmp41 [V51 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V52 tmp42 [V52,T51] ( 3, 6 ) ref -> r13 class-hnd "Inline return value spill temp" <System.String>
+; V52 tmp42 [V52,T51] ( 3, 6 ) ref -> r12 class-hnd "Inline return value spill temp" <System.String>
;* V53 tmp43 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Net.Http.Headers.HttpHeaderParser>
; V54 tmp44 [V54,T39] ( 4, 8 ) ref -> rdi class-hnd "Inline return value spill temp" <System.Net.Http.Headers.HttpHeaderParser>
;* V55 tmp45 [V55 ] ( 0, 0 ) ref -> zero-ref "ISINST eval op1"
; V56 tmp46 [V56,T22] ( 4, 17 ) ref -> rsi class-hnd "spilling qmarkNull" <System.Net.Http.Headers.KnownHeader>
;* V57 tmp47 [V57 ] ( 0, 0 ) ref -> zero-ref
-; V58 tmp48 [V58,T20] ( 5, 20 ) ref -> r12 class-hnd exact "Inlining Arg" <System.String>
-; V59 tmp49 [V59,T35] ( 5, 10 ) int -> rsi "Inline stloc first use temp"
-; V60 tmp50 [V60,T36] ( 5, 10 ) int -> [rbp-0x68] spill-single-def "Inline stloc first use temp"
+; V58 tmp48 [V58,T20] ( 5, 20 ) ref -> [rbp-0xA8] class-hnd exact spill-single-def "Inlining Arg" <System.String>
+; V59 tmp49 [V59,T35] ( 5, 10 ) int -> rdi "Inline stloc first use temp"
+; V60 tmp50 [V60,T36] ( 5, 10 ) int -> [rbp-0x70] spill-single-def "Inline stloc first use temp"
;* V61 tmp51 [V61 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
;* V62 tmp52 [V62 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V63 tmp53 [V63,T42] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V64 tmp54 [V64,T47] ( 2, 8 ) int -> rdx "Inlining Arg"
;* V65 tmp55 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V66 tmp56 [V66 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V67 tmp57 [V67 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V68 tmp58 [V68 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
; V69 tmp59 [V69,T05] ( 5, 40 ) int -> rsi "Inline stloc first use temp"
-; V70 tmp60 [V70,T06] ( 5, 40 ) int -> [rbp-0x6C] spill-single-def "Inline stloc first use temp"
+; V70 tmp60 [V70,T06] ( 5, 40 ) int -> [rbp-0x74] spill-single-def "Inline stloc first use temp"
;* V71 tmp61 [V71 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
;* V72 tmp62 [V72 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V73 tmp63 [V73,T09] ( 2, 32 ) byref -> rdi "Inlining Arg"
-; V74 tmp64 [V74,T11] ( 2, 32 ) int -> rdx "Inlining Arg"
+; V74 tmp64 [V74,T11] ( 2, 32 ) int -> rsi "Inlining Arg"
;* V75 tmp65 [V75 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V76 tmp66 [V76 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V77 tmp67 [V77 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V78 tmp68 [V78 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V79 tmp69 [V79,T00] ( 5,112 ) ref -> [rbp-0x90] class-hnd exact spill-single-def "Inlining Arg" <System.String>
+; V79 tmp69 [V79,T00] ( 5,112 ) ref -> [rbp-0xB0] class-hnd exact spill-single-def "Inlining Arg" <System.String>
; V80 tmp70 [V80,T07] ( 5, 40 ) int -> rdi "Inline stloc first use temp"
-; V81 tmp71 [V81,T08] ( 5, 40 ) int -> [rbp-0x70] spill-single-def "Inline stloc first use temp"
+; V81 tmp71 [V81,T08] ( 5, 40 ) int -> [rbp-0x78] spill-single-def "Inline stloc first use temp"
;* V82 tmp72 [V82 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
;* V83 tmp73 [V83 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V84 tmp74 [V84,T10] ( 2, 32 ) byref -> rdi "Inlining Arg"
-; V85 tmp75 [V85,T12] ( 2, 32 ) int -> rdx "Inlining Arg"
+; V84 tmp74 [V84,T10] ( 2, 32 ) byref -> r8 "Inlining Arg"
+; V85 tmp75 [V85,T12] ( 2, 32 ) int -> rdi "Inlining Arg"
;* V86 tmp76 [V86 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V87 tmp77 [V87 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V88 tmp78 [V88 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V89 tmp79 [V89 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
; V90 tmp80 [V90,T29] ( 5, 14 ) int -> rsi "Inline stloc first use temp"
-; V91 tmp81 [V91,T37] ( 5, 10 ) int -> r13 "Inline stloc first use temp"
+; V91 tmp81 [V91,T37] ( 5, 10 ) int -> r12 "Inline stloc first use temp"
;* V92 tmp82 [V92 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
;* V93 tmp83 [V93 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V94 tmp84 [V94,T43] ( 2, 8 ) byref -> rdi "Inlining Arg"
; V95 tmp85 [V95,T48] ( 2, 8 ) int -> rax "Inlining Arg"
;* V96 tmp86 [V96 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V97 tmp87 [V97 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V98 tmp88 [V98 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V99 tmp89 [V99 ] ( 0, 0 ) byref -> zero-ref single-def "field V02._reference (fldOffset=0x0)" P-INDEP
;* V100 tmp90 [V100 ] ( 0, 0 ) int -> zero-ref "field V02._length (fldOffset=0x8)" P-INDEP
-; V101 tmp91 [V101,T54] ( 2, 5 ) byref -> r15 single-def "field V03._reference (fldOffset=0x0)" P-INDEP
-; V102 tmp92 [V102,T38] ( 4, 10 ) int -> rbx "field V03._length (fldOffset=0x8)" P-INDEP
-; V103 tmp93 [V103,T44] ( 2, 8 ) ref -> r13 "field V05.Value (fldOffset=0x0)" P-INDEP
-; V104 tmp94 [V104,T13] ( 10, 27 ) ref -> r12 "field V05.Key (fldOffset=0x8)" P-INDEP
+; V101 tmp91 [V101,T54] ( 2, 5 ) byref -> r14 single-def "field V03._reference (fldOffset=0x0)" P-INDEP
+; V102 tmp92 [V102,T38] ( 4, 10 ) int -> r15 "field V03._length (fldOffset=0x8)" P-INDEP
+; V103 tmp93 [V103,T44] ( 2, 8 ) ref -> r12 "field V05.Value (fldOffset=0x0)" P-INDEP
+; V104 tmp94 [V104,T13] ( 10, 27 ) ref -> [rbp-0xB8] spill-single-def "field V05.Key (fldOffset=0x8)" P-INDEP
; V105 tmp95 [V105,T58] ( 2, 2 ) byref -> rdi single-def "field V11._reference (fldOffset=0x0)" P-INDEP
;* V106 tmp96 [V106,T61] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
-; V107 tmp97 [V107,T56] ( 3, 2 ) byref -> r15 "field V13._reference (fldOffset=0x0)" P-INDEP
-; V108 tmp98 [V108,T57] ( 3, 2 ) int -> rbx "field V13._length (fldOffset=0x8)" P-INDEP
+; V107 tmp97 [V107,T56] ( 3, 2 ) byref -> r14 "field V13._reference (fldOffset=0x0)" P-INDEP
+; V108 tmp98 [V108,T57] ( 3, 2 ) int -> r15 "field V13._length (fldOffset=0x8)" P-INDEP
;* V109 tmp99 [V109 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP
;* V110 tmp100 [V110 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
;* V111 tmp101 [V111 ] ( 0, 0 ) byref -> zero-ref "field V25._reference (fldOffset=0x0)" P-INDEP
;* V112 tmp102 [V112 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP
;* V113 tmp103 [V113 ] ( 0, 0 ) byref -> zero-ref "field V28._reference (fldOffset=0x0)" P-INDEP
;* V114 tmp104 [V114 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP
;* V115 tmp105 [V115 ] ( 0, 0 ) byref -> zero-ref "field V34._reference (fldOffset=0x0)" P-INDEP
;* V116 tmp106 [V116 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
;* V117 tmp107 [V117 ] ( 0, 0 ) byref -> zero-ref "field V35._reference (fldOffset=0x0)" P-INDEP
;* V118 tmp108 [V118 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
;* V119 tmp109 [V119 ] ( 0, 0 ) byref -> zero-ref "field V38._reference (fldOffset=0x0)" P-INDEP
;* V120 tmp110 [V120 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP
;* V121 tmp111 [V121 ] ( 0, 0 ) byref -> zero-ref "field V44._reference (fldOffset=0x0)" P-INDEP
;* V122 tmp112 [V122 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0x8)" P-INDEP
;* V123 tmp113 [V123 ] ( 0, 0 ) byref -> zero-ref "field V45._reference (fldOffset=0x0)" P-INDEP
;* V124 tmp114 [V124 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP
;* V125 tmp115 [V125 ] ( 0, 0 ) byref -> zero-ref "field V48._reference (fldOffset=0x0)" P-INDEP
;* V126 tmp116 [V126 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP
;* V127 tmp117 [V127 ] ( 0, 0 ) byref -> zero-ref "field V61._reference (fldOffset=0x0)" P-INDEP
;* V128 tmp118 [V128 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
;* V129 tmp119 [V129 ] ( 0, 0 ) byref -> zero-ref "field V62._reference (fldOffset=0x0)" P-INDEP
;* V130 tmp120 [V130 ] ( 0, 0 ) int -> zero-ref "field V62._length (fldOffset=0x8)" P-INDEP
;* V131 tmp121 [V131 ] ( 0, 0 ) byref -> zero-ref "field V65._reference (fldOffset=0x0)" P-INDEP
;* V132 tmp122 [V132 ] ( 0, 0 ) int -> zero-ref "field V65._length (fldOffset=0x8)" P-INDEP
;* V133 tmp123 [V133 ] ( 0, 0 ) byref -> zero-ref "field V71._reference (fldOffset=0x0)" P-INDEP
;* V134 tmp124 [V134 ] ( 0, 0 ) int -> zero-ref "field V71._length (fldOffset=0x8)" P-INDEP
;* V135 tmp125 [V135 ] ( 0, 0 ) byref -> zero-ref "field V72._reference (fldOffset=0x0)" P-INDEP
;* V136 tmp126 [V136 ] ( 0, 0 ) int -> zero-ref "field V72._length (fldOffset=0x8)" P-INDEP
;* V137 tmp127 [V137 ] ( 0, 0 ) byref -> zero-ref "field V75._reference (fldOffset=0x0)" P-INDEP
;* V138 tmp128 [V138 ] ( 0, 0 ) int -> zero-ref "field V75._length (fldOffset=0x8)" P-INDEP
;* V139 tmp129 [V139 ] ( 0, 0 ) byref -> zero-ref "field V82._reference (fldOffset=0x0)" P-INDEP
;* V140 tmp130 [V140 ] ( 0, 0 ) int -> zero-ref "field V82._length (fldOffset=0x8)" P-INDEP
;* V141 tmp131 [V141 ] ( 0, 0 ) byref -> zero-ref "field V83._reference (fldOffset=0x0)" P-INDEP
;* V142 tmp132 [V142 ] ( 0, 0 ) int -> zero-ref "field V83._length (fldOffset=0x8)" P-INDEP
;* V143 tmp133 [V143 ] ( 0, 0 ) byref -> zero-ref "field V86._reference (fldOffset=0x0)" P-INDEP
;* V144 tmp134 [V144 ] ( 0, 0 ) int -> zero-ref "field V86._length (fldOffset=0x8)" P-INDEP
;* V145 tmp135 [V145 ] ( 0, 0 ) byref -> zero-ref "field V92._reference (fldOffset=0x0)" P-INDEP
;* V146 tmp136 [V146 ] ( 0, 0 ) int -> zero-ref "field V92._length (fldOffset=0x8)" P-INDEP
;* V147 tmp137 [V147 ] ( 0, 0 ) byref -> zero-ref "field V93._reference (fldOffset=0x0)" P-INDEP
;* V148 tmp138 [V148 ] ( 0, 0 ) int -> zero-ref "field V93._length (fldOffset=0x8)" P-INDEP
;* V149 tmp139 [V149 ] ( 0, 0 ) byref -> zero-ref "field V96._reference (fldOffset=0x0)" P-INDEP
;* V150 tmp140 [V150 ] ( 0, 0 ) int -> zero-ref "field V96._length (fldOffset=0x8)" P-INDEP
; V151 tmp141 [V151,T14] ( 3, 24 ) byref -> rdi "BlockOp address local"
-; V152 GsCookie [V152 ] ( 1, 1 ) long -> [rbp-0x98] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V153 cse0 [V153,T02] ( 7, 56 ) int -> [rbp-0x74] spill-single-def "CSE #21: aggressive"
-; V154 cse1 [V154,T03] ( 7, 56 ) int -> [rbp-0x78] spill-single-def "CSE #25: aggressive"
-; V155 cse2 [V155,T26] ( 7, 14 ) int -> [rbp-0x7C] spill-single-def "CSE #03: moderate"
-; V156 cse3 [V156,T27] ( 7, 14 ) int -> r12 "CSE #08: moderate"
-; V157 cse4 [V157,T28] ( 7, 14 ) int -> [rbp-0x80] spill-single-def "CSE #15: moderate"
-; V158 cse5 [V158,T15] ( 3, 24 ) int -> rax "CSE #22: moderate"
-; V159 cse6 [V159,T16] ( 3, 24 ) int -> rdx "CSE #23: moderate"
-; V160 cse7 [V160,T17] ( 3, 24 ) int -> rax "CSE #26: moderate"
-; V161 cse8 [V161,T18] ( 3, 24 ) int -> rdx "CSE #27: moderate"
-; V162 rat0 [V162,T19] ( 6, 21 ) long -> r14 "Widened IV V04"
-; V163 rat1 [V163,T01] ( 6, 82 ) long -> r12 "Widened IV V09"
+; V152 GsCookie [V152 ] ( 1, 1 ) long -> [rbp-0xC0] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V153 cse0 [V153,T02] ( 7, 56 ) int -> [rbp-0x7C] spill-single-def "CSE #21: aggressive"
+; V154 cse1 [V154,T03] ( 7, 56 ) int -> [rbp-0x80] spill-single-def "CSE #25: aggressive"
+; V155 cse2 [V155,T26] ( 7, 14 ) int -> [rbp-0x84] spill-single-def "CSE #03: moderate"
+; V156 cse3 [V156,T27] ( 7, 14 ) int -> [rbp-0x88] spill-single-def "CSE #08: moderate"
+; V157 cse4 [V157,T28] ( 7, 14 ) int -> [rbp-0x8C] spill-single-def "CSE #15: moderate"
+; V158 cse5 [V158,T15] ( 3, 24 ) int -> rcx "CSE #22: moderate"
+; V159 cse6 [V159,T16] ( 3, 24 ) int -> rsi "CSE #23: moderate"
+; V160 cse7 [V160,T17] ( 3, 24 ) int -> rcx "CSE #26: moderate"
+; V161 cse8 [V161,T18] ( 3, 24 ) int -> rdi "CSE #27: moderate"
+; V162 rat0 [V162,T19] ( 6, 21 ) long -> r13 "Widened IV V04"
+; V163 rat1 [V163,T01] ( 6, 82 ) long -> [rbp-0x98] "Widened IV V09"
;
-; Lcl frame size = 120
+; Lcl frame size = 152
G_M63021_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 120
- lea rbp, [rsp+0xA0]
- xor eax, eax
- mov qword ptr [rbp-0x58], rax
+ sub rsp, 152
+ lea rbp, [rsp+0xC0]
vxorps xmm8, xmm8, xmm8
- vmovdqu ymmword ptr [rbp-0x50], ymm8
- mov qword ptr [rbp-0x30], rax
- mov qword ptr [rbp-0x98], 0xD1FFAB1E
+ vmovdqu ymmword ptr [rbp-0x60], ymm8
+ vmovdqa xmmword ptr [rbp-0x40], xmm8
+ mov qword ptr [rbp-0x30], rdi
+ mov qword ptr [rbp-0xC0], 0xD1FFAB1E
mov rbx, rdi
- ;; size=56 bbWeight=1 PerfScore 12.58
+ ;; size=58 bbWeight=1 PerfScore 13.33
G_M63021_IG02:
test dword ptr [rsp], esp
sub rsp, 0x400
lea rdi, [rsp]
- mov bword ptr [rbp-0x38], rdi
- mov dword ptr [rbp-0x30], 512
+ mov bword ptr [rbp-0x40], rdi
+ mov dword ptr [rbp-0x38], 512
xor edi, edi
- mov dword ptr [rbp-0x40], edi
+ mov dword ptr [rbp-0x48], edi
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.Http.Headers.HttpHeaders:GetEntriesArray():System.Net.Http.Headers.HeaderEntry[]:this
call [rax]System.Net.Http.Headers.HttpHeaders:GetEntriesArray():System.Net.Http.Headers.HeaderEntry[]:this
- mov ebx, dword ptr [rbx+0x10]
+ mov r15d, dword ptr [rbx+0x10]
test rax, rax
jne SHORT G_M63021_IG04
- ;; size=53 bbWeight=1 PerfScore 13.75
+ ;; size=54 bbWeight=1 PerfScore 13.75
G_M63021_IG03:
- test ebx, ebx
+ test r15d, r15d
je SHORT G_M63021_IG05
- jmp G_M63021_IG51
- ;; size=9 bbWeight=0.50 PerfScore 1.62
+ jmp G_M63021_IG52
+ ;; size=10 bbWeight=0.50 PerfScore 1.62
G_M63021_IG04:
- cmp dword ptr [rax+0x08], ebx
- jb G_M63021_IG51
+ cmp dword ptr [rax+0x08], r15d
+ jb G_M63021_IG52
add rax, 16
- mov r15, rax
+ mov r14, rax
jmp SHORT G_M63021_IG06
- ;; size=18 bbWeight=0.50 PerfScore 3.25
+ ;; size=19 bbWeight=0.50 PerfScore 3.25
G_M63021_IG05:
- xor r15, r15
- xor ebx, ebx
- ;; size=5 bbWeight=0.50 PerfScore 0.25
+ xor r14, r14
+ xor r15d, r15d
+ ;; size=6 bbWeight=0.50 PerfScore 0.25
G_M63021_IG06:
- xor r14d, r14d
- test ebx, ebx
- jle G_M63021_IG47
- ;; size=11 bbWeight=1 PerfScore 1.50
+ xor r13d, r13d
+ test r15d, r15d
+ jle G_M63021_IG48
+ ;; size=12 bbWeight=1 PerfScore 1.50
G_M63021_IG07:
- cmp r14d, ebx
- jae G_M63021_IG52
- mov rdi, r14
+ cmp r13d, r15d
+ jae G_M63021_IG53
+ mov rdi, r13
shl rdi, 4
- add rdi, r15
- mov r13, gword ptr [rdi]
- mov r12, gword ptr [rdi+0x08]
- test r12, r12
+ add rdi, r14
+ mov r12, gword ptr [rdi]
+ mov rax, gword ptr [rdi+0x08]
+ mov gword ptr [rbp-0xB8], rax
+ test rax, rax
jne SHORT G_M63021_IG11
- ;; size=31 bbWeight=4 PerfScore 30.00
+ ;; size=38 bbWeight=4 PerfScore 34.00
G_M63021_IG08:
- mov eax, dword ptr [rbp-0x40]
- mov dword ptr [rbp-0x60], eax
- mov edi, dword ptr [rbp-0x30]
+ mov ecx, dword ptr [rbp-0x48]
+ mov dword ptr [rbp-0x68], ecx
+ mov edi, dword ptr [rbp-0x38]
add edi, -2
- cmp eax, edi
+ cmp ecx, edi
jle SHORT G_M63021_IG10
;; size=16 bbWeight=4 PerfScore 18.00
G_M63021_IG09:
- lea rdi, [rbp-0x48]
+ lea rdi, [rbp-0x50]
mov esi, 2
- mov rcx, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
- call [rcx]System.Text.ValueStringBuilder:Grow(int):this
+ mov rdx, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
+ call [rdx]System.Text.ValueStringBuilder:Grow(int):this
;; size=21 bbWeight=2 PerfScore 8.00
G_M63021_IG10:
- mov eax, dword ptr [rbp-0x60]
- cmp eax, dword ptr [rbp-0x30]
- jbe G_M63021_IG17
- jmp G_M63021_IG51
+ mov ecx, dword ptr [rbp-0x68]
+ cmp ecx, dword ptr [rbp-0x38]
+ jbe G_M63021_IG18
+ jmp G_M63021_IG52
;; size=17 bbWeight=4 PerfScore 24.00
G_M63021_IG11:
mov rsi, 0xD1FFAB1E ; System.Net.Http.Headers.KnownHeader
- cmp qword ptr [r12], rsi
+ mov rax, gword ptr [rbp-0xB8]
+ cmp qword ptr [rax], rsi
je SHORT G_M63021_IG13
mov rsi, 0xD1FFAB1E ; System.String
- cmp qword ptr [r12], rsi
+ cmp qword ptr [rax], rsi
jne SHORT G_M63021_IG08
- ;; size=32 bbWeight=1 PerfScore 8.50
+ ;; size=37 bbWeight=1 PerfScore 9.50
G_M63021_IG12:
- mov rsi, r12
+ mov rax, gword ptr [rbp-0xB8]
+ mov rsi, rax
+ mov rax, gword ptr [rbp-0xB8]
jmp SHORT G_M63021_IG14
- ;; size=5 bbWeight=0.50 PerfScore 1.12
+ ;; size=19 bbWeight=0.50 PerfScore 2.12
G_M63021_IG13:
- mov rax, gword ptr [r12+0x08]
- mov rsi, rax
- ;; size=8 bbWeight=2 PerfScore 4.50
+ mov rcx, gword ptr [rax+0x08]
+ mov rsi, rcx
+ ;; size=7 bbWeight=2 PerfScore 4.50
G_M63021_IG14:
test rsi, rsi
- je SHORT G_M63021_IG08
- mov edi, dword ptr [rbp-0x40]
- mov eax, dword ptr [rsi+0x08]
- mov dword ptr [rbp-0x7C], eax
- cmp eax, 1
- jne SHORT G_M63021_IG15
- cmp edi, dword ptr [rbp-0x30]
- jae SHORT G_M63021_IG15
- cmp edi, dword ptr [rbp-0x30]
- jae G_M63021_IG52
- mov rax, bword ptr [rbp-0x38]
- mov ecx, edi
+ je SHORT G_M63021_IG15
+ mov edi, dword ptr [rbp-0x48]
+ mov ecx, dword ptr [rsi+0x08]
+ mov dword ptr [rbp-0x84], ecx
+ cmp ecx, 1
+ jne SHORT G_M63021_IG16
+ cmp edi, dword ptr [rbp-0x38]
+ jae SHORT G_M63021_IG16
+ cmp edi, dword ptr [rbp-0x38]
+ jae G_M63021_IG53
+ mov rcx, bword ptr [rbp-0x40]
+ mov edx, edi
movzx rsi, word ptr [rsi+0x0C]
- mov word ptr [rax+2*rcx], si
+ mov word ptr [rcx+2*rdx], si
inc edi
- mov dword ptr [rbp-0x40], edi
+ mov dword ptr [rbp-0x48], edi
jmp G_M63021_IG08
- ;; size=57 bbWeight=2 PerfScore 40.00
+ ;; size=60 bbWeight=2 PerfScore 40.00
G_M63021_IG15:
- mov ecx, dword ptr [rbp-0x40]
- mov dword ptr [rbp-0x5C], ecx
- mov edi, dword ptr [rbp-0x30]
- sub edi, eax
- cmp edi, ecx
- jge SHORT G_M63021_IG16
- mov gword ptr [rbp-0x88], rsi
- mov esi, eax
- lea rdi, [rbp-0x48]
- mov rdx, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
- call [rdx]System.Text.ValueStringBuilder:Grow(int):this
- mov eax, dword ptr [rbp-0x7C]
- mov rsi, gword ptr [rbp-0x88]
- ;; size=50 bbWeight=2 PerfScore 23.00
+ jmp G_M63021_IG08
+ ;; size=5 bbWeight=1 PerfScore 2.00
G_M63021_IG16:
- mov ecx, dword ptr [rbp-0x5C]
- cmp ecx, dword ptr [rbp-0x30]
+ mov edx, dword ptr [rbp-0x48]
+ mov dword ptr [rbp-0x64], edx
+ mov edi, dword ptr [rbp-0x38]
+ sub edi, ecx
+ cmp edi, edx
+ jge SHORT G_M63021_IG17
+ mov gword ptr [rbp-0xA0], rsi
+ mov esi, ecx
+ lea rdi, [rbp-0x50]
+ mov r8, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
+ call [r8]System.Text.ValueStringBuilder:Grow(int):this
+ mov rax, gword ptr [rbp-0xB8]
+ mov ecx, dword ptr [rbp-0x84]
+ mov rsi, gword ptr [rbp-0xA0]
+ ;; size=61 bbWeight=2 PerfScore 25.00
+G_M63021_IG17:
+ mov edx, dword ptr [rbp-0x64]
+ cmp edx, dword ptr [rbp-0x38]
+ ja G_M63021_IG52
+ mov rdi, bword ptr [rbp-0x40]
+ mov r8d, edx
+ lea rdi, bword ptr [rdi+2*r8]
+ mov r8d, dword ptr [rbp-0x38]
+ sub r8d, edx
+ cmp ecx, r8d
ja G_M63021_IG51
- mov rdx, bword ptr [rbp-0x38]
- mov edi, ecx
- lea rdi, bword ptr [rdx+2*rdi]
- mov edx, dword ptr [rbp-0x30]
- sub edx, ecx
- cmp eax, edx
- ja G_M63021_IG50
- mov edx, eax
+ mov edx, ecx
add rdx, rdx
add rsi, 12
- mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
- call [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
- mov edx, dword ptr [rbp-0x7C]
- add edx, dword ptr [rbp-0x40]
- mov dword ptr [rbp-0x40], edx
+ mov r8, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+ call [r8]System.SpanHelpers:Memmove(byref,byref,ulong)
+ mov edx, dword ptr [rbp-0x84]
+ add edx, dword ptr [rbp-0x48]
+ mov dword ptr [rbp-0x48], edx
jmp G_M63021_IG08
- ;; size=70 bbWeight=2 PerfScore 36.50
-G_M63021_IG17:
- mov rdx, bword ptr [rbp-0x38]
- mov ecx, eax
- lea rdx, bword ptr [rdx+2*rcx]
- mov ecx, dword ptr [rbp-0x30]
- sub ecx, eax
- cmp ecx, 2
- jb G_M63021_IG50
+ ;; size=78 bbWeight=2 PerfScore 36.50
+G_M63021_IG18:
+ mov rax, gword ptr [rbp-0xB8]
+ mov rdx, bword ptr [rbp-0x40]
+ mov edi, ecx
+ lea rdx, bword ptr [rdx+2*rdi]
+ mov edi, dword ptr [rbp-0x38]
+ sub edi, ecx
+ cmp edi, 2
+ jb G_M63021_IG51
mov rcx, 0xD1FFAB1E
mov edi, dword ptr [rcx]
mov dword ptr [rdx], edi
- mov edx, dword ptr [rbp-0x40]
+ mov edx, dword ptr [rbp-0x48]
add edx, 2
- mov dword ptr [rbp-0x40], edx
- lea rdx, [rbp-0x50]
- lea rcx, [rbp-0x58]
- mov rdi, r12
- mov rsi, r13
- mov rax, 0xD1FFAB1E ; code for System.Net.Http.Headers.HttpHeaders:GetStoreValuesAsStringOrStringArray(System.Net.Http.Headers.HeaderDescriptor,System.Object,byref,byref)
- call [rax]System.Net.Http.Headers.HttpHeaders:GetStoreValuesAsStringOrStringArray(System.Net.Http.Headers.HeaderDescriptor,System.Object,byref,byref)
- cmp gword ptr [rbp-0x50], 0
- je SHORT G_M63021_IG19
- ;; size=80 bbWeight=4 PerfScore 70.00
-G_M63021_IG18:
- mov r13, gword ptr [rbp-0x50]
- mov esi, dword ptr [rbp-0x40]
- mov r12d, dword ptr [r13+0x08]
- cmp r12d, 1
- jne G_M63021_IG42
- cmp esi, dword ptr [rbp-0x30]
- jae G_M63021_IG42
- cmp esi, dword ptr [rbp-0x30]
- jae G_M63021_IG52
- mov rdi, bword ptr [rbp-0x38]
+ mov dword ptr [rbp-0x48], edx
+ lea rdx, [rbp-0x58]
+ lea rcx, [rbp-0x60]
+ mov rdi, rax
+ mov rsi, r12
+ mov r8, 0xD1FFAB1E ; code for System.Net.Http.Headers.HttpHeaders:GetStoreValuesAsStringOrStringArray(System.Net.Http.Headers.HeaderDescriptor,System.Object,byref,byref)
+ call [r8]System.Net.Http.Headers.HttpHeaders:GetStoreValuesAsStringOrStringArray(System.Net.Http.Headers.HeaderDescriptor,System.Object,byref,byref)
+ cmp gword ptr [rbp-0x58], 0
+ je SHORT G_M63021_IG20
+ ;; size=88 bbWeight=4 PerfScore 74.00
+G_M63021_IG19:
+ mov r12, gword ptr [rbp-0x58]
+ mov esi, dword ptr [rbp-0x48]
+ mov eax, dword ptr [r12+0x08]
+ mov dword ptr [rbp-0x88], eax
+ cmp eax, 1
+ jne G_M63021_IG43
+ cmp esi, dword ptr [rbp-0x38]
+ jae G_M63021_IG43
+ cmp esi, dword ptr [rbp-0x38]
+ jae G_M63021_IG53
+ mov rdi, bword ptr [rbp-0x40]
mov eax, esi
- movzx rcx, word ptr [r13+0x0C]
+ movzx rcx, word ptr [r12+0x0C]
mov word ptr [rdi+2*rax], cx
inc esi
- mov dword ptr [rbp-0x40], esi
- jmp G_M63021_IG40
- ;; size=64 bbWeight=2 PerfScore 37.50
-G_M63021_IG19:
- test r12, r12
- jne SHORT G_M63021_IG22
- ;; size=5 bbWeight=2 PerfScore 2.50
+ mov dword ptr [rbp-0x48], esi
+ jmp G_M63021_IG41
+ ;; size=71 bbWeight=2 PerfScore 39.50
G_M63021_IG20:
+ mov r12, gword ptr [rbp-0xB8]
+ test r12, r12
+ jne SHORT G_M63021_IG23
+ ;; size=12 bbWeight=2 PerfScore 4.50
+G_M63021_IG21:
xor rsi, rsi
;; size=2 bbWeight=4 PerfScore 1.00
-G_M63021_IG21:
+G_M63021_IG22:
test rsi, rsi
- jne SHORT G_M63021_IG24
+ jne SHORT G_M63021_IG25
xor rdi, rdi
- jmp SHORT G_M63021_IG25
+ jmp SHORT G_M63021_IG26
;; size=9 bbWeight=2 PerfScore 7.00
-G_M63021_IG22:
+G_M63021_IG23:
mov rsi, 0xD1FFAB1E ; System.Net.Http.Headers.KnownHeader
cmp qword ptr [r12], rsi
- jne SHORT G_M63021_IG20
+ jne SHORT G_M63021_IG21
;; size=16 bbWeight=8 PerfScore 34.00
-G_M63021_IG23:
+G_M63021_IG24:
mov rsi, r12
- jmp SHORT G_M63021_IG21
+ jmp SHORT G_M63021_IG22
;; size=5 bbWeight=0.50 PerfScore 1.12
-G_M63021_IG24:
+G_M63021_IG25:
mov rdi, gword ptr [rsi+0x10]
;; size=4 bbWeight=2 PerfScore 4.00
-G_M63021_IG25:
+G_M63021_IG26:
test rdi, rdi
- jne SHORT G_M63021_IG26
- mov r13, 0xD1FFAB1E ; ', '
- jmp SHORT G_M63021_IG27
+ jne SHORT G_M63021_IG27
+ mov r12, 0xD1FFAB1E ; ', '
+ jmp SHORT G_M63021_IG28
;; size=17 bbWeight=2 PerfScore 7.00
-G_M63021_IG26:
- mov r13, gword ptr [rdi+0x08]
- ;; size=4 bbWeight=2 PerfScore 4.00
G_M63021_IG27:
- mov rsi, gword ptr [rbp-0x58]
+ mov r12, gword ptr [rdi+0x08]
+ ;; size=4 bbWeight=2 PerfScore 4.00
+G_M63021_IG28:
+ mov rsi, gword ptr [rbp-0x60]
cmp dword ptr [rsi+0x08], 0
- jbe G_M63021_IG52
- mov rsi, gword ptr [rbp-0x58]
- mov r12, gword ptr [rsi+0x10]
- test r12, r12
- je G_M63021_IG30
- mov esi, dword ptr [rbp-0x40]
- mov eax, dword ptr [r12+0x08]
- mov dword ptr [rbp-0x80], eax
+ jbe G_M63021_IG53
+ mov rsi, gword ptr [rbp-0x60]
+ mov rax, gword ptr [rsi+0x10]
+ mov rsi, rax
+ mov gword ptr [rbp-0xA8], rsi
+ test rsi, rsi
+ je G_M63021_IG31
+ mov edi, dword ptr [rbp-0x48]
+ mov eax, dword ptr [rsi+0x08]
+ mov dword ptr [rbp-0x8C], eax
cmp eax, 1
- jne SHORT G_M63021_IG28
- cmp esi, dword ptr [rbp-0x30]
- jae SHORT G_M63021_IG28
- cmp esi, dword ptr [rbp-0x30]
- jae G_M63021_IG52
- mov rax, bword ptr [rbp-0x38]
- mov edi, esi
- movzx rcx, word ptr [r12+0x0C]
- mov word ptr [rax+2*rdi], cx
- inc esi
- mov dword ptr [rbp-0x40], esi
- jmp SHORT G_M63021_IG30
- ;; size=84 bbWeight=2 PerfScore 56.00
-G_M63021_IG28:
- mov ecx, dword ptr [rbp-0x40]
- mov dword ptr [rbp-0x68], ecx
- mov esi, dword ptr [rbp-0x30]
- sub esi, eax
- cmp esi, ecx
- jge SHORT G_M63021_IG29
+ jne SHORT G_M63021_IG29
+ cmp edi, dword ptr [rbp-0x38]
+ jae SHORT G_M63021_IG29
+ cmp edi, dword ptr [rbp-0x38]
+ jae G_M63021_IG53
+ mov rax, bword ptr [rbp-0x40]
+ mov ecx, edi
+ movzx rsi, word ptr [rsi+0x0C]
+ mov word ptr [rax+2*rcx], si
+ inc edi
+ mov dword ptr [rbp-0x48], edi
+ jmp SHORT G_M63021_IG31
+ ;; size=93 bbWeight=2 PerfScore 58.50
+G_M63021_IG29:
+ mov ecx, dword ptr [rbp-0x48]
+ mov dword ptr [rbp-0x70], ecx
+ mov edi, dword ptr [rbp-0x38]
+ sub edi, eax
+ cmp edi, ecx
+ jge SHORT G_M63021_IG30
mov esi, eax
- lea rdi, [rbp-0x48]
+ lea rdi, [rbp-0x50]
mov rdx, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
call [rdx]System.Text.ValueStringBuilder:Grow(int):this
- mov eax, dword ptr [rbp-0x80]
- ;; size=36 bbWeight=2 PerfScore 19.00
-G_M63021_IG29:
- mov ecx, dword ptr [rbp-0x68]
- cmp ecx, dword ptr [rbp-0x30]
- ja G_M63021_IG51
- mov rdx, bword ptr [rbp-0x38]
- mov esi, ecx
- lea rdi, bword ptr [rdx+2*rsi]
- mov edx, dword ptr [rbp-0x30]
+ mov eax, dword ptr [rbp-0x8C]
+ mov rsi, gword ptr [rbp-0xA8]
+ ;; size=46 bbWeight=2 PerfScore 21.00
+G_M63021_IG30:
+ mov ecx, dword ptr [rbp-0x70]
+ cmp ecx, dword ptr [rbp-0x38]
+ ja G_M63021_IG52
+ mov rdx, bword ptr [rbp-0x40]
+ mov edi, ecx
+ lea rdi, bword ptr [rdx+2*rdi]
+ mov edx, dword ptr [rbp-0x38]
sub edx, ecx
cmp eax, edx
- ja G_M63021_IG50
+ ja G_M63021_IG51
mov edx, eax
add rdx, rdx
- lea rsi, bword ptr [r12+0x0C]
+ add rsi, 12
mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
- mov r12d, dword ptr [rbp-0x80]
- add r12d, dword ptr [rbp-0x40]
- mov dword ptr [rbp-0x40], r12d
- ;; size=69 bbWeight=2 PerfScore 33.00
-G_M63021_IG30:
- mov r12d, 1
- mov rsi, gword ptr [rbp-0x58]
- cmp dword ptr [rsi+0x08], 1
- jle G_M63021_IG40
- ;; size=20 bbWeight=2 PerfScore 10.50
+ mov esi, dword ptr [rbp-0x8C]
+ add esi, dword ptr [rbp-0x48]
+ mov dword ptr [rbp-0x48], esi
+ ;; size=68 bbWeight=2 PerfScore 32.50
G_M63021_IG31:
- test r13, r13
- je G_M63021_IG35
- ;; size=9 bbWeight=16 PerfScore 20.00
+ mov qword ptr [rbp-0x98], 1
+ mov rsi, gword ptr [rbp-0x60]
+ cmp dword ptr [rsi+0x08], 1
+ jle G_M63021_IG41
+ ;; size=25 bbWeight=2 PerfScore 12.00
G_M63021_IG32:
- mov eax, dword ptr [rbp-0x40]
- mov esi, eax
- mov ecx, dword ptr [r13+0x08]
- mov dword ptr [rbp-0x74], ecx
- cmp ecx, 1
- jne SHORT G_M63021_IG33
- cmp esi, dword ptr [rbp-0x30]
- jae SHORT G_M63021_IG33
- cmp esi, dword ptr [rbp-0x30]
- jae G_M63021_IG52
- mov rax, bword ptr [rbp-0x38]
- mov ecx, esi
- movzx rdi, word ptr [r13+0x0C]
- mov word ptr [rax+2*rcx], di
- inc esi
- mov dword ptr [rbp-0x40], esi
- jmp SHORT G_M63021_IG35
- ;; size=53 bbWeight=8 PerfScore 152.00
+ test r12, r12
+ je G_M63021_IG36
+ ;; size=9 bbWeight=16 PerfScore 20.00
G_M63021_IG33:
- mov dword ptr [rbp-0x6C], eax
- mov esi, dword ptr [rbp-0x30]
- sub esi, ecx
- cmp esi, eax
- jge SHORT G_M63021_IG34
+ mov ecx, dword ptr [rbp-0x48]
mov esi, ecx
- lea rdi, [rbp-0x48]
- mov rdx, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
- call [rdx]System.Text.ValueStringBuilder:Grow(int):this
- mov ecx, dword ptr [rbp-0x74]
- ;; size=33 bbWeight=8 PerfScore 68.00
+ mov edx, dword ptr [r12+0x08]
+ mov dword ptr [rbp-0x7C], edx
+ cmp edx, 1
+ jne SHORT G_M63021_IG34
+ cmp esi, dword ptr [rbp-0x38]
+ jae SHORT G_M63021_IG34
+ cmp esi, dword ptr [rbp-0x38]
+ jae G_M63021_IG53
+ mov rcx, bword ptr [rbp-0x40]
+ mov edx, esi
+ movzx rdi, word ptr [r12+0x0C]
+ mov word ptr [rcx+2*rdx], di
+ inc esi
+ mov dword ptr [rbp-0x48], esi
+ jmp SHORT G_M63021_IG36
+ ;; size=55 bbWeight=8 PerfScore 152.00
G_M63021_IG34:
- mov edx, dword ptr [rbp-0x30]
- mov eax, dword ptr [rbp-0x6C]
- cmp eax, edx
- ja G_M63021_IG51
- mov rsi, bword ptr [rbp-0x38]
- mov edi, eax
- lea rdi, bword ptr [rsi+2*rdi]
- sub edx, eax
- cmp ecx, edx
- ja G_M63021_IG50
- mov edx, ecx
- add rdx, rdx
- lea rsi, bword ptr [r13+0x0C]
- mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
- call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
- mov esi, dword ptr [rbp-0x74]
- add esi, dword ptr [rbp-0x40]
- mov dword ptr [rbp-0x40], esi
- ;; size=64 bbWeight=8 PerfScore 118.00
+ mov dword ptr [rbp-0x74], ecx
+ mov esi, dword ptr [rbp-0x38]
+ sub esi, edx
+ cmp esi, ecx
+ jge SHORT G_M63021_IG35
+ mov esi, edx
+ lea rdi, [rbp-0x50]
+ mov r8, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
+ call [r8]System.Text.ValueStringBuilder:Grow(int):this
+ mov edx, dword ptr [rbp-0x7C]
+ ;; size=34 bbWeight=8 PerfScore 68.00
G_M63021_IG35:
- mov rsi, gword ptr [rbp-0x58]
- cmp r12d, dword ptr [rsi+0x08]
- jae G_M63021_IG52
- mov rsi, gword ptr [rbp-0x58]
- mov rax, gword ptr [rsi+8*r12+0x10]
- mov rsi, rax
- mov gword ptr [rbp-0x90], rsi
- test rsi, rsi
- je G_M63021_IG39
- ;; size=42 bbWeight=16 PerfScore 168.00
+ mov esi, dword ptr [rbp-0x38]
+ mov ecx, dword ptr [rbp-0x74]
+ cmp ecx, esi
+ ja G_M63021_IG52
+ mov rdi, bword ptr [rbp-0x40]
+ mov r8d, ecx
+ lea rdi, bword ptr [rdi+2*r8]
+ sub esi, ecx
+ cmp edx, esi
+ ja G_M63021_IG51
+ mov esi, edx
+ lea rdx, [rsi+rsi]
+ lea rsi, bword ptr [r12+0x0C]
+ mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+ call [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
+ mov esi, dword ptr [rbp-0x7C]
+ add esi, dword ptr [rbp-0x48]
+ mov dword ptr [rbp-0x48], esi
+ ;; size=67 bbWeight=8 PerfScore 120.00
G_M63021_IG36:
- mov eax, dword ptr [rbp-0x40]
- mov edi, eax
- mov ecx, dword ptr [rsi+0x08]
- mov dword ptr [rbp-0x78], ecx
- cmp ecx, 1
- jne SHORT G_M63021_IG37
- cmp edi, dword ptr [rbp-0x30]
- jae SHORT G_M63021_IG37
- cmp edi, dword ptr [rbp-0x30]
- jae G_M63021_IG52
- mov rax, bword ptr [rbp-0x38]
- mov ecx, edi
+ mov rsi, gword ptr [rbp-0x60]
+ mov rax, qword ptr [rbp-0x98]
+ cmp eax, dword ptr [rsi+0x08]
+ jae G_M63021_IG53
+ mov rsi, gword ptr [rbp-0x60]
+ mov qword ptr [rbp-0x98], rax
+ mov rcx, gword ptr [rsi+8*rax+0x10]
+ mov rsi, rcx
+ mov gword ptr [rbp-0xB0], rsi
+ test rsi, rsi
+ je G_M63021_IG40
+ ;; size=55 bbWeight=16 PerfScore 200.00
+G_M63021_IG37:
+ mov ecx, dword ptr [rbp-0x48]
+ mov edi, ecx
+ mov edx, dword ptr [rsi+0x08]
+ mov dword ptr [rbp-0x80], edx
+ cmp edx, 1
+ jne SHORT G_M63021_IG38
+ cmp edi, dword ptr [rbp-0x38]
+ jae SHORT G_M63021_IG38
+ cmp edi, dword ptr [rbp-0x38]
+ jae G_M63021_IG53
+ mov rcx, bword ptr [rbp-0x40]
+ mov edx, edi
movzx rsi, word ptr [rsi+0x0C]
- mov word ptr [rax+2*rcx], si
+ mov word ptr [rcx+2*rdx], si
inc edi
- mov dword ptr [rbp-0x40], edi
- jmp SHORT G_M63021_IG39
+ mov dword ptr [rbp-0x48], edi
+ jmp SHORT G_M63021_IG40
;; size=51 bbWeight=8 PerfScore 152.00
-G_M63021_IG37:
- mov dword ptr [rbp-0x70], eax
- mov edi, dword ptr [rbp-0x30]
- sub edi, ecx
- cmp edi, eax
- jge SHORT G_M63021_IG38
- mov esi, ecx
- lea rdi, [rbp-0x48]
- mov rdx, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
- call [rdx]System.Text.ValueStringBuilder:Grow(int):this
- mov ecx, dword ptr [rbp-0x78]
- mov rsi, gword ptr [rbp-0x90]
- ;; size=40 bbWeight=8 PerfScore 76.00
G_M63021_IG38:
- mov edx, dword ptr [rbp-0x30]
- mov eax, dword ptr [rbp-0x70]
- cmp eax, edx
+ mov dword ptr [rbp-0x78], ecx
+ mov edi, dword ptr [rbp-0x38]
+ sub edi, edx
+ cmp edi, ecx
+ jge SHORT G_M63021_IG39
+ mov esi, edx
+ lea rdi, [rbp-0x50]
+ mov r8, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
+ call [r8]System.Text.ValueStringBuilder:Grow(int):this
+ mov edx, dword ptr [rbp-0x80]
+ mov rsi, gword ptr [rbp-0xB0]
+ ;; size=41 bbWeight=8 PerfScore 76.00
+G_M63021_IG39:
+ mov edi, dword ptr [rbp-0x38]
+ mov ecx, dword ptr [rbp-0x78]
+ cmp ecx, edi
+ ja G_M63021_IG52
+ mov r8, bword ptr [rbp-0x40]
+ mov r9d, ecx
+ lea r8, bword ptr [r8+2*r9]
+ sub edi, ecx
+ cmp edx, edi
ja G_M63021_IG51
- mov rdi, bword ptr [rbp-0x38]
- mov r8d, eax
- lea rdi, bword ptr [rdi+2*r8]
- sub edx, eax
- cmp ecx, edx
- ja G_M63021_IG50
- mov edx, ecx
- add rdx, rdx
+ mov edi, edx
+ lea rdx, [rdi+rdi]
add rsi, 12
- mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
- call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
- mov esi, dword ptr [rbp-0x78]
- add esi, dword ptr [rbp-0x40]
- mov dword ptr [rbp-0x40], esi
- ;; size=65 bbWeight=8 PerfScore 116.00
-G_M63021_IG39:
- inc r12d
- mov rsi, gword ptr [rbp-0x58]
- cmp dword ptr [rsi+0x08], r12d
- jg G_M63021_IG31
- ;; size=17 bbWeight=16 PerfScore 84.00
+ mov rdi, r8
+ mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+ call [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
+ mov esi, dword ptr [rbp-0x80]
+ add esi, dword ptr [rbp-0x48]
+ mov dword ptr [rbp-0x48], esi
+ ;; size=69 bbWeight=8 PerfScore 120.00
G_M63021_IG40:
- mov esi, dword ptr [rbp-0x40]
- cmp esi, dword ptr [rbp-0x30]
- jae G_M63021_IG44
- ;; size=12 bbWeight=4 PerfScore 16.00
+ mov rax, qword ptr [rbp-0x98]
+ inc eax
+ mov rsi, rax
+ mov rdi, gword ptr [rbp-0x60]
+ cmp dword ptr [rdi+0x08], esi
+ mov qword ptr [rbp-0x98], rsi
+ jg G_M63021_IG32
+ ;; size=32 bbWeight=16 PerfScore 120.00
G_M63021_IG41:
- cmp esi, dword ptr [rbp-0x30]
- jae G_M63021_IG52
- mov rdi, bword ptr [rbp-0x38]
+ mov esi, dword ptr [rbp-0x48]
+ cmp esi, dword ptr [rbp-0x38]
+ jae G_M63021_IG45
+ ;; size=12 bbWeight=4 PerfScore 16.00
+G_M63021_IG42:
+ cmp esi, dword ptr [rbp-0x38]
+ jae G_M63021_IG53
+ mov rdi, bword ptr [rbp-0x40]
mov eax, esi
mov word ptr [rdi+2*rax], 10
inc esi
- mov dword ptr [rbp-0x40], esi
- jmp G_M63021_IG46
+ mov dword ptr [rbp-0x48], esi
+ jmp G_M63021_IG47
;; size=31 bbWeight=2 PerfScore 17.00
-G_M63021_IG42:
- mov eax, dword ptr [rbp-0x40]
- mov dword ptr [rbp-0x64], eax
- mov esi, dword ptr [rbp-0x30]
- sub esi, r12d
- cmp esi, eax
- jge SHORT G_M63021_IG43
- mov esi, r12d
- lea rdi, [rbp-0x48]
- mov rcx, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
- call [rcx]System.Text.ValueStringBuilder:Grow(int):this
- ;; size=35 bbWeight=2 PerfScore 17.00
G_M63021_IG43:
- mov eax, dword ptr [rbp-0x64]
- cmp eax, dword ptr [rbp-0x30]
- ja G_M63021_IG51
- mov rdx, bword ptr [rbp-0x38]
+ mov ecx, dword ptr [rbp-0x48]
+ mov dword ptr [rbp-0x6C], ecx
+ mov esi, dword ptr [rbp-0x38]
+ sub esi, eax
+ cmp esi, ecx
+ jge SHORT G_M63021_IG44
mov esi, eax
+ lea rdi, [rbp-0x50]
+ mov rdx, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
+ call [rdx]System.Text.ValueStringBuilder:Grow(int):this
+ mov eax, dword ptr [rbp-0x88]
+ ;; size=39 bbWeight=2 PerfScore 19.00
+G_M63021_IG44:
+ mov ecx, dword ptr [rbp-0x6C]
+ cmp ecx, dword ptr [rbp-0x38]
+ ja G_M63021_IG52
+ mov rdx, bword ptr [rbp-0x40]
+ mov esi, ecx
lea rdi, bword ptr [rdx+2*rsi]
- mov edx, dword ptr [rbp-0x30]
- sub edx, eax
- cmp r12d, edx
- ja G_M63021_IG50
- mov edx, r12d
+ mov edx, dword ptr [rbp-0x38]
+ sub edx, ecx
+ cmp eax, edx
+ ja G_M63021_IG51
+ mov edx, eax
add rdx, rdx
- lea rsi, bword ptr [r13+0x0C]
- mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
- call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
- add r12d, dword ptr [rbp-0x40]
- mov dword ptr [rbp-0x40], r12d
- jmp G_M63021_IG40
- ;; size=71 bbWeight=2 PerfScore 35.00
-G_M63021_IG44:
- mov r13d, dword ptr [rbp-0x40]
- mov edi, dword ptr [rbp-0x30]
+ lea rsi, bword ptr [r12+0x0C]
+ mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+ call [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
+ mov r12d, dword ptr [rbp-0x88]
+ add r12d, dword ptr [rbp-0x48]
+ mov dword ptr [rbp-0x48], r12d
+ jmp G_M63021_IG41
+ ;; size=77 bbWeight=2 PerfScore 37.00
+G_M63021_IG45:
+ mov r12d, dword ptr [rbp-0x48]
+ mov edi, dword ptr [rbp-0x38]
dec edi
- cmp r13d, edi
- jle SHORT G_M63021_IG45
- lea rdi, [rbp-0x48]
+ cmp r12d, edi
+ jle SHORT G_M63021_IG46
+ lea rdi, [rbp-0x50]
mov esi, 1
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:Grow(int):this
call [rax]System.Text.ValueStringBuilder:Grow(int):this
;; size=35 bbWeight=2 PerfScore 15.00
-G_M63021_IG45:
- cmp r13d, dword ptr [rbp-0x30]
- ja SHORT G_M63021_IG51
- mov rdi, bword ptr [rbp-0x38]
- mov eax, r13d
+G_M63021_IG46:
+ cmp r12d, dword ptr [rbp-0x38]
+ ja SHORT G_M63021_IG52
+ mov rdi, bword ptr [rbp-0x40]
+ mov eax, r12d
lea rdi, bword ptr [rdi+2*rax]
- mov eax, dword ptr [rbp-0x30]
- sub eax, r13d
- je SHORT G_M63021_IG50
+ mov eax, dword ptr [rbp-0x38]
+ sub eax, r12d
+ je SHORT G_M63021_IG51
mov rax, 0xD1FFAB1E
movzx rcx, word ptr [rax]
mov word ptr [rdi], cx
- mov edi, dword ptr [rbp-0x40]
+ mov edi, dword ptr [rbp-0x48]
inc edi
- mov dword ptr [rbp-0x40], edi
+ mov dword ptr [rbp-0x48], edi
;; size=49 bbWeight=2 PerfScore 25.00
-G_M63021_IG46:
- inc r14d
- cmp r14d, ebx
+G_M63021_IG47:
+ inc r13d
+ cmp r13d, r15d
jl G_M63021_IG07
;; size=12 bbWeight=4 PerfScore 6.00
-G_M63021_IG47:
- lea rdi, [rbp-0x48]
+G_M63021_IG48:
+ lea rdi, [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.Text.ValueStringBuilder:ToString():System.String:this
call [rax]System.Text.ValueStringBuilder:ToString():System.String:this
- cmp qword ptr [rbp-0x98], 0xD1FFAB1E
- je SHORT G_M63021_IG48
+ cmp qword ptr [rbp-0xC0], 0xD1FFAB1E
+ je SHORT G_M63021_IG49
call CORINFO_HELP_FAIL_FAST
;; size=34 bbWeight=1 PerfScore 7.75
-G_M63021_IG48:
+G_M63021_IG49:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M63021_IG49:
+G_M63021_IG50:
lea rsp, [rbp-0x28]
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.50
-G_M63021_IG50:
+G_M63021_IG51:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
call [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M63021_IG51:
+G_M63021_IG52:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M63021_IG52:
+G_M63021_IG53:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1575, prolog size 56, PerfScore 1610.71, instruction count 429, allocated bytes for code 1575 (MethodHash=264609d2) for method System.Net.Http.Headers.HttpHeaders:ToString():System.String:this (FullOpts)
+; Total bytes of code 1728, prolog size 58, PerfScore 1712.96, instruction count 448, allocated bytes for code 1728 (MethodHash=264609d2) for method System.Net.Http.Headers.HttpHeaders:ToString():System.String:this (FullOpts) Note: some changes were skipped as they were too large to fit into a comment. Larger list of diffs: https://gist.github.com/MihuBot/d2d7fb25779ff0c83add7017a1361405 |
Top method improvements-51 (-3.19 % of base) - System.Configuration.ConfigurationElement:ReportInvalidLock(System.String,int,System.Configuration.ConfigurationValue,System.String):this ; Assembly listing for method System.Configuration.ConfigurationElement:ReportInvalidLock(System.String,int,System.Configuration.ConfigurationValue,System.String):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; 29 single block inlinees; 13 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T43] ( 4, 4 ) ref -> r14 this class-hnd single-def <System.Configuration.ConfigurationElement>
-; V01 arg1 [V01,T46] ( 4, 2 ) ref -> r12 class-hnd single-def <System.String>
+; V00 this [V00,T43] ( 4, 4 ) ref -> [rbp-0x38] this class-hnd EH-live single-def <System.Configuration.ConfigurationElement>
+; V01 arg1 [V01,T46] ( 4, 2 ) ref -> r13 class-hnd single-def <System.String>
; V02 arg2 [V02,T28] ( 8, 12 ) int -> rbx single-def
-; V03 arg3 [V03,T45] ( 7, 2 ) ref -> r13 class-hnd single-def <System.Configuration.ConfigurationValue>
+; V03 arg3 [V03,T45] ( 7, 2 ) ref -> r14 class-hnd single-def <System.Configuration.ConfigurationValue>
; V04 arg4 [V04,T39] ( 6, 6 ) ref -> r15 class-hnd single-def <System.String>
-; V05 loc0 [V05,T00] ( 38,411 ) ref -> [rbp-0x30] class-hnd exact spill-single-def <System.Text.StringBuilder>
+; V05 loc0 [V05,T00] ( 38,411 ) ref -> r12 class-hnd exact single-def <System.Text.StringBuilder>
; V06 loc1 [V06,T57] ( 4, 0 ) ref -> rbx class-hnd <System.String>
-; V07 loc2 [V07,T25] ( 6, 17 ) ref -> [rbp-0x38] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
+; V07 loc2 [V07,T25] ( 6, 17 ) ref -> [rbp-0x40] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
; V08 loc3 [V08,T04] ( 6, 88 ) ref -> r15 class-hnd exact <System.Configuration.ConfigurationProperty>
; V09 loc4 [V09,T56] ( 6, 0 ) ref -> rax class-hnd <System.IDisposable>
;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V11 tmp1 [V11,T40] ( 4, 8 ) ref -> [rbp-0x40] class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.StringBuilder>
+; V11 tmp1 [V11,T40] ( 4, 8 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Text.StringBuilder>
;* V12 tmp2 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.RuntimeType>
;* V13 tmp3 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.RuntimeType>
; V14 tmp4 [V14,T58] ( 3, 0 ) ref -> rbx
-; V15 tmp5 [V15,T59] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Configuration.ConfigurationErrorsException>
+; V15 tmp5 [V15,T59] ( 3, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Configuration.ConfigurationErrorsException>
; V16 tmp6 [V16,T62] ( 2, 0 ) ref -> rbx class-hnd exact single-def "impAppendStmt" <System.String>
; V17 tmp7 [V17,T63] ( 2, 0 ) ref -> r15 class-hnd exact single-def "impAppendStmt" <System.String>
; V18 tmp8 [V18,T60] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Configuration.ConfigurationErrorsException>
; V19 tmp9 [V19,T61] ( 3, 0 ) ref -> rbx
;* V20 tmp10 [V20,T50] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V21 tmp11 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.StringBuilder>
; V22 tmp12 [V22,T49] ( 3, 3 ) int -> rdi single-def "Inline stloc first use temp"
-; V23 tmp13 [V23,T48] ( 3, 3 ) ref -> rcx class-hnd single-def "Inline stloc first use temp" <ushort[]>
+; V23 tmp13 [V23,T48] ( 3, 3 ) ref -> rax class-hnd single-def "Inline stloc first use temp" <ushort[]>
;* V24 tmp14 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Configuration.ConfigurationPropertyCollection>
;* V25 tmp15 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V26 tmp16 [V26,T10] ( 5, 52 ) ref -> rdi "spilling varStr"
; V27 tmp17 [V27,T21] ( 2, 16 ) int -> rdi "spilling unroll qmark"
;* V28 tmp18 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V29 tmp19 [V29,T15] ( 5, 36 ) ref -> rdi "spilling varStr"
; V30 tmp20 [V30,T22] ( 2, 16 ) int -> rdi "spilling unroll qmark"
;* V31 tmp21 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V32 tmp22 [V32,T16] ( 5, 36 ) ref -> rdi "spilling varStr"
; V33 tmp23 [V33,T23] ( 2, 16 ) int -> rdi "spilling unroll qmark"
;* V34 tmp24 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V35 tmp25 [V35,T17] ( 5, 36 ) ref -> rsi "spilling varStr"
; V36 tmp26 [V36,T24] ( 2, 16 ) int -> rsi "spilling unroll qmark"
; V37 tmp27 [V37,T29] ( 3, 12 ) ref -> rax class-hnd "Inline stloc first use temp" <ushort[]>
; V38 tmp28 [V38,T33] ( 3, 12 ) int -> rdi "Inline stloc first use temp"
; V39 tmp29 [V39,T27] ( 2, 16 ) byref -> rsi "Inlining Arg"
; V40 tmp30 [V40,T30] ( 3, 12 ) byref -> rsi "Inline stloc first use temp"
;* V41 tmp31 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.StringBuilder>
; V42 tmp32 [V42,T34] ( 3, 12 ) int -> rsi "Inline stloc first use temp"
; V43 tmp33 [V43,T31] ( 3, 12 ) ref -> rax class-hnd "Inline stloc first use temp" <ushort[]>
; V44 tmp34 [V44,T18] ( 4, 32 ) ref -> rsi class-hnd exact "Inlining Arg" <System.String>
;* V45 tmp35 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.StringBuilder>
; V46 tmp36 [V46,T35] ( 3, 12 ) int -> rdi "Inline stloc first use temp"
; V47 tmp37 [V47,T32] ( 3, 12 ) ref -> rsi class-hnd "Inline stloc first use temp" <ushort[]>
; V48 tmp38 [V48,T11] ( 3, 48 ) ref -> rdi class-hnd "Inline stloc first use temp" <ushort[]>
; V49 tmp39 [V49,T13] ( 3, 48 ) int -> rdx "Inline stloc first use temp"
; V50 tmp40 [V50,T07] ( 2, 64 ) byref -> rsi "Inlining Arg"
; V51 tmp41 [V51,T12] ( 3, 48 ) byref -> rdi "Inline stloc first use temp"
;* V52 tmp42 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.StringBuilder>
; V53 tmp43 [V53,T06] ( 3, 80 ) int -> rdi "Inline stloc first use temp"
; V54 tmp44 [V54,T05] ( 3, 80 ) ref -> rsi class-hnd "Inline stloc first use temp" <ushort[]>
; V55 tmp45 [V55,T01] ( 4,192 ) ref -> rsi class-hnd exact "Inlining Arg" <System.String>
;* V56 tmp46 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.StringBuilder>
; V57 tmp47 [V57,T03] ( 3, 96 ) int -> rdi "Inline stloc first use temp"
; V58 tmp48 [V58,T02] ( 3, 96 ) ref -> r11 class-hnd "Inline stloc first use temp" <ushort[]>
;* V59 tmp49 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Configuration.PropertySourceInfo>
; V60 tmp50 [V60,T64] ( 2, 0 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.Configuration.PropertySourceInfo>
; V61 tmp51 [V61,T44] ( 3, 6 ) ref -> rdi single-def "argument with side effect"
; V62 tmp52 [V62,T19] ( 3, 32 ) ref -> rax "argument with side effect"
; V63 tmp53 [V63,T65] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V64 PSPSym [V64,T51] ( 1, 1 ) long -> [rbp-0x50] do-not-enreg[V] "PSPSym"
; V65 cse0 [V65,T20] ( 5, 28 ) ref -> rsi "CSE #04: moderate"
; V66 cse1 [V66,T36] ( 3, 12 ) int -> rdi "CSE #08: moderate"
; V67 cse2 [V67,T37] ( 3, 12 ) int -> rdi "CSE #11: moderate"
; V68 cse3 [V68,T47] ( 4, 4 ) int -> rsi "CSE #01: conservative"
; V69 cse4 [V69,T08] ( 2, 64 ) int -> rax "CSE #21: moderate"
; V70 cse5 [V70,T14] ( 3, 48 ) int -> rax "CSE #18: moderate"
; V71 cse6 [V71,T38] ( 3, 12 ) int -> rcx "CSE #09: moderate"
; V72 cse7 [V72,T41] ( 2, 8 ) int -> rcx "CSE #10: moderate"
; V73 cse8 [V73,T42] ( 2, 8 ) int -> rax "CSE #12: moderate"
; V74 rat0 [V74,T09] ( 4, 56 ) ref -> r15 "replacement local"
; V75 rat1 [V75,T26] ( 3, 16 ) long -> rdi "CSE for expectedClsNode"
; V76 rat2 [V76,T52] ( 3, 24 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V77 rat3 [V77,T53] ( 3, 24 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V78 rat4 [V78,T54] ( 3, 24 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable"
; V79 rat5 [V79,T55] ( 3, 24 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 40
G_M47939_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 40
lea rbp, [rsp+0x50]
mov qword ptr [rbp-0x50], rsp
- mov r14, rdi
- mov r12, rsi
+ mov qword ptr [rbp-0x30], rdi
+ mov gword ptr [rbp-0x38], rdi
+ mov r13, rsi
mov ebx, edx
- mov r13, rcx
+ mov r14, rcx
mov r15, r8
- ;; size=37 bbWeight=1 PerfScore 9.00
+ ;; size=42 bbWeight=1 PerfScore 10.75
G_M47939_IG02:
mov rdi, 0xD1FFAB1E ; System.Text.StringBuilder
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x40], rax
- mov dword ptr [rax+0x20], 0xD1FFAB1E
+ mov r12, rax
+ mov dword ptr [r12+0x20], 0xD1FFAB1E
mov rdi, 0xD1FFAB1E ; ushort[]
mov esi, 16
call CORINFO_HELP_NEWARR_1_VC
- mov rcx, gword ptr [rbp-0x40]
- lea rdi, bword ptr [rcx+0x08]
+ lea rdi, bword ptr [r12+0x08]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0x40]
- mov gword ptr [rbp-0x30], rax
test r15, r15
je SHORT G_M47939_IG06
cmp dword ptr [r15+0x08], 0
- je SHORT G_M47939_IG05
+ je SHORT G_M47939_IG06
cmp ebx, 3
je SHORT G_M47939_IG03
cmp ebx, 4
- jne SHORT G_M47939_IG04
- ;; size=92 bbWeight=1 PerfScore 17.25
+ jne SHORT G_M47939_IG06
+ ;; size=82 bbWeight=1 PerfScore 13.50
G_M47939_IG03:
- mov edi, dword ptr [rax+0x1C]
- mov esi, dword ptr [rax+0x18]
+ mov edi, dword ptr [r12+0x1C]
+ mov esi, dword ptr [r12+0x18]
add edi, esi
- je SHORT G_M47939_IG08
+ je SHORT G_M47939_IG05
mov edi, esi
- mov rcx, gword ptr [rax+0x08]
- cmp dword ptr [rcx+0x08], edi
- jbe SHORT G_M47939_IG07
- mov word ptr [rcx+2*rdi+0x10], 44
+ mov rax, gword ptr [r12+0x08]
+ cmp dword ptr [rax+0x08], edi
+ jbe SHORT G_M47939_IG04
+ mov word ptr [rax+2*rdi+0x10], 44
inc esi
- mov dword ptr [rax+0x18], esi
- jmp SHORT G_M47939_IG08
- ;; size=35 bbWeight=1 PerfScore 15.75
+ mov dword ptr [r12+0x18], esi
+ jmp SHORT G_M47939_IG05
+ ;; size=42 bbWeight=1 PerfScore 15.75
G_M47939_IG04:
- jmp SHORT G_M47939_IG09
- ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M47939_IG05:
- jmp SHORT G_M47939_IG09
- ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M47939_IG06:
- jmp SHORT G_M47939_IG09
- ;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M47939_IG07:
- mov rdi, rax
+ mov rdi, r12
mov esi, 44
- mov rcx, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(ushort):this
- call [rcx]System.Text.StringBuilder:AppendWithExpansion(ushort):this
- mov rax, gword ptr [rbp-0x30]
- ;; size=24 bbWeight=1 PerfScore 4.75
-G_M47939_IG08:
+ mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(ushort):this
+ call [rax]System.Text.StringBuilder:AppendWithExpansion(ushort):this
+ ;; size=20 bbWeight=1 PerfScore 3.75
+G_M47939_IG05:
mov edx, dword ptr [r15+0x08]
lea rsi, bword ptr [r15+0x0C]
- mov rdi, rax
- mov rcx, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
- call [rcx]System.Text.StringBuilder:Append(byref,int):this
+ mov rdi, r12
+ mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
+ call [rax]System.Text.StringBuilder:Append(byref,int):this
;; size=23 bbWeight=1 PerfScore 6.00
-G_M47939_IG09:
- mov rdi, r14
- mov rcx, qword ptr [r14]
- mov rcx, qword ptr [rcx+0x40]
- call [rcx+0x20]System.Configuration.ConfigurationElement:get_Properties():System.Configuration.ConfigurationPropertyCollection:this
+G_M47939_IG06:
+ mov rdi, gword ptr [rbp-0x38]
+ mov rax, qword ptr [rdi]
+ mov rax, qword ptr [rax+0x40]
+ call [rax+0x20]System.Configuration.ConfigurationElement:get_Properties():System.Configuration.ConfigurationPropertyCollection:this
mov rdi, gword ptr [rax+0x08]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x58]
call [rax]System.Collections.ArrayList:GetEnumerator():System.Collections.IEnumerator:this
- mov gword ptr [rbp-0x38], rax
- ;; size=30 bbWeight=1 PerfScore 17.25
-G_M47939_IG10:
+ mov gword ptr [rbp-0x40], rax
+ ;; size=31 bbWeight=1 PerfScore 18.00
+G_M47939_IG07:
mov rdi, rax
mov r11, 0xD1FFAB1E ; function address
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
- je SHORT G_M47939_IG13
- ;; size=20 bbWeight=1 PerfScore 4.75
-G_M47939_IG11:
- mov rdi, gword ptr [rbp-0x38]
+ je G_M47939_IG42
+ ;; size=24 bbWeight=1 PerfScore 4.75
+G_M47939_IG08:
+ mov rdi, gword ptr [rbp-0x40]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:get_Current():System.Object:this
call [r11]System.Collections.IEnumerator:get_Current():System.Object:this
mov r15, rax
test r15, r15
- je SHORT G_M47939_IG14
+ je SHORT G_M47939_IG10
;; size=25 bbWeight=8 PerfScore 46.00
-G_M47939_IG12:
+G_M47939_IG09:
mov rdi, 0xD1FFAB1E ; System.Configuration.ConfigurationProperty
cmp qword ptr [r15], rdi
- je SHORT G_M47939_IG14
- jmp G_M47939_IG52
- ;; size=20 bbWeight=4 PerfScore 25.00
-G_M47939_IG13:
- mov r14, gword ptr [rbp-0x30]
- jmp G_M47939_IG53
- ;; size=9 bbWeight=0.50 PerfScore 1.50
-G_M47939_IG14:
+ jne G_M47939_IG41
+ ;; size=19 bbWeight=4 PerfScore 17.00
+G_M47939_IG10:
mov rsi, gword ptr [r15+0x10]
mov rdi, rsi
test rdi, rdi
- je SHORT G_M47939_IG17
+ je SHORT G_M47939_IG13
;; size=12 bbWeight=8 PerfScore 28.00
-G_M47939_IG15:
+G_M47939_IG11:
cmp dword ptr [rdi+0x08], 14
- jne SHORT G_M47939_IG17
+ jne SHORT G_M47939_IG13
;; size=6 bbWeight=2 PerfScore 8.00
-G_M47939_IG16:
+G_M47939_IG12:
vmovups xmm0, xmmword ptr [rdi+0x0C]
vpxor xmm0, xmm0, xmmword ptr [reloc @RWD00]
vmovups xmm1, xmmword ptr [rdi+0x18]
vpternlogq xmm0, xmm1, xmmword ptr [reloc @RWD16], -10
vptest xmm0, xmm0
sete dil
movzx rdi, dil
test edi, edi
- jne G_M47939_IG32
+ jne G_M47939_IG34
;; size=50 bbWeight=4 PerfScore 70.00
-G_M47939_IG17:
+G_M47939_IG13:
mov rdi, rsi
test rdi, rdi
- je SHORT G_M47939_IG20
+ je SHORT G_M47939_IG16
;; size=8 bbWeight=4 PerfScore 6.00
-G_M47939_IG18:
+G_M47939_IG14:
cmp dword ptr [rdi+0x08], 23
- jne SHORT G_M47939_IG20
+ jne SHORT G_M47939_IG16
;; size=6 bbWeight=2 PerfScore 8.00
-G_M47939_IG19:
+G_M47939_IG15:
vmovups ymm0, ymmword ptr [rdi+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD32]
vmovups ymm1, ymmword ptr [rdi+0x1A]
vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD64], -10
vptest ymm0, ymm0
sete dil
movzx rdi, dil
test edi, edi
- jne G_M47939_IG31
+ jne G_M47939_IG34
;; size=50 bbWeight=4 PerfScore 86.00
-G_M47939_IG20:
+G_M47939_IG16:
mov rdi, rsi
test rdi, rdi
- je SHORT G_M47939_IG23
+ je SHORT G_M47939_IG19
;; size=8 bbWeight=4 PerfScore 6.00
-G_M47939_IG21:
+G_M47939_IG17:
cmp dword ptr [rdi+0x08], 12
- jne SHORT G_M47939_IG23
+ jne SHORT G_M47939_IG19
;; size=6 bbWeight=2 PerfScore 8.00
-G_M47939_IG22:
+G_M47939_IG18:
vmovups xmm0, xmmword ptr [rdi+0x0C]
vpxor xmm0, xmm0, xmmword ptr [reloc @RWD96]
vmovups xmm1, xmmword ptr [rdi+0x14]
vpternlogq xmm0, xmm1, xmmword ptr [reloc @RWD112], -10
vptest xmm0, xmm0
sete dil
movzx rdi, dil
test edi, edi
- jne G_M47939_IG30
+ jne G_M47939_IG34
;; size=50 bbWeight=4 PerfScore 70.00
-G_M47939_IG23:
+G_M47939_IG19:
test rsi, rsi
- je SHORT G_M47939_IG26
+ je SHORT G_M47939_IG22
;; size=5 bbWeight=4 PerfScore 5.00
-G_M47939_IG24:
+G_M47939_IG20:
cmp dword ptr [rsi+0x08], 21
- jne SHORT G_M47939_IG26
+ jne SHORT G_M47939_IG22
;; size=6 bbWeight=2 PerfScore 8.00
-G_M47939_IG25:
+G_M47939_IG21:
vmovups ymm0, ymmword ptr [rsi+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD128]
vmovups ymm1, ymmword ptr [rsi+0x16]
vpternlogq ymm0, ymm1, ymmword ptr [reloc @RWD160], -10
vptest ymm0, ymm0
sete sil
movzx rsi, sil
test esi, esi
- jne G_M47939_IG29
+ jne G_M47939_IG34
;; size=50 bbWeight=4 PerfScore 86.00
-G_M47939_IG26:
+G_M47939_IG22:
cmp ebx, 3
- je SHORT G_M47939_IG27
+ je SHORT G_M47939_IG23
cmp ebx, 4
- jne G_M47939_IG33
- ;; size=14 bbWeight=4 PerfScore 10.00
-G_M47939_IG27:
+ jne SHORT G_M47939_IG24
+ ;; size=10 bbWeight=4 PerfScore 10.00
+G_M47939_IG23:
mov rsi, gword ptr [r15+0x28]
mov rdi, 0xD1FFAB1E ; 'System.Configuration.ConfigurationElement'
mov rax, 0xD1FFAB1E ; code for System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this
call [rax]System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this
test eax, eax
- je SHORT G_M47939_IG28
- mov r14, gword ptr [rbp-0x30]
- mov esi, dword ptr [r14+0x1C]
- mov edi, dword ptr [r14+0x18]
+ je G_M47939_IG34
+ mov esi, dword ptr [r12+0x1C]
+ mov edi, dword ptr [r12+0x18]
add esi, edi
- je G_M47939_IG47
+ je G_M47939_IG36
mov rsi, 0xD1FFAB1E
- mov rax, gword ptr [r14+0x08]
+ mov rax, gword ptr [r12+0x08]
lea ecx, [rdi+0x02]
cmp dword ptr [rax+0x08], ecx
- jb G_M47939_IG46
+ jb G_M47939_IG35
movsxd rsi, edi
lea rsi, bword ptr [rax+2*rsi+0x10]
mov word ptr [rsi], 44
mov word ptr [rsi+0x02], 32
- mov dword ptr [r14+0x18], ecx
- jmp G_M47939_IG47
- ;; size=104 bbWeight=4 PerfScore 104.00
-G_M47939_IG28:
- mov r14, gword ptr [rbp-0x30]
- jmp G_M47939_IG44
- ;; size=9 bbWeight=2 PerfScore 6.00
-G_M47939_IG29:
- mov r14, gword ptr [rbp-0x30]
- jmp G_M47939_IG44
- ;; size=9 bbWeight=2 PerfScore 6.00
-G_M47939_IG30:
- mov r14, gword ptr [rbp-0x30]
- jmp G_M47939_IG44
- ;; size=9 bbWeight=2 PerfScore 6.00
-G_M47939_IG31:
- mov r14, gword ptr [rbp-0x30]
- jmp G_M47939_IG44
- ;; size=9 bbWeight=2 PerfScore 6.00
-G_M47939_IG32:
- mov r14, gword ptr [rbp-0x30]
- jmp G_M47939_IG44
- ;; size=9 bbWeight=2 PerfScore 6.00
-G_M47939_IG33:
+ mov dword ptr [r12+0x18], ecx
+ jmp G_M47939_IG36
+ ;; size=108 bbWeight=4 PerfScore 100.00
+G_M47939_IG24:
mov rsi, gword ptr [r15+0x28]
mov rdi, 0xD1FFAB1E ; 'System.Configuration.ConfigurationElement'
mov rax, 0xD1FFAB1E ; code for System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this
call [rax]System.RuntimeType:IsAssignableFrom(System.Type):ubyte:this
test eax, eax
- jne SHORT G_M47939_IG35
- mov r14, gword ptr [rbp-0x30]
- mov edi, dword ptr [r14+0x1C]
- add edi, dword ptr [r14+0x18]
- je SHORT G_M47939_IG37
- ;; size=44 bbWeight=32 PerfScore 440.00
-G_M47939_IG34:
+ jne G_M47939_IG34
+ mov edi, dword ptr [r12+0x1C]
+ add edi, dword ptr [r12+0x18]
+ je SHORT G_M47939_IG27
+ ;; size=46 bbWeight=32 PerfScore 408.00
+G_M47939_IG25:
mov rsi, 0xD1FFAB1E
- mov rdi, gword ptr [r14+0x08]
- mov edx, dword ptr [r14+0x18]
+ mov rdi, gword ptr [r12+0x08]
+ mov edx, dword ptr [r12+0x18]
lea eax, [rdx+0x02]
cmp dword ptr [rdi+0x08], eax
- jb SHORT G_M47939_IG36
+ jb SHORT G_M47939_IG26
movsxd rsi, edx
lea rdi, bword ptr [rdi+2*rsi+0x10]
mov word ptr [rdi], 44
mov word ptr [rdi+0x02], 32
- mov dword ptr [r14+0x18], eax
- jmp SHORT G_M47939_IG37
- ;; size=51 bbWeight=16 PerfScore 240.00
-G_M47939_IG35:
- mov r14, gword ptr [rbp-0x30]
- jmp G_M47939_IG44
- ;; size=9 bbWeight=16 PerfScore 48.00
-G_M47939_IG36:
- mov rdi, r14
+ mov dword ptr [r12+0x18], eax
+ jmp SHORT G_M47939_IG27
+ ;; size=54 bbWeight=16 PerfScore 240.00
+G_M47939_IG26:
+ mov rdi, r12
mov edx, 2
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=16 PerfScore 60.00
-G_M47939_IG37:
- mov edi, dword ptr [r14+0x18]
- mov rsi, gword ptr [r14+0x08]
+G_M47939_IG27:
+ mov edi, dword ptr [r12+0x18]
+ mov rsi, gword ptr [r12+0x08]
cmp dword ptr [rsi+0x08], edi
- jbe SHORT G_M47939_IG39
- ;; size=13 bbWeight=32 PerfScore 256.00
-G_M47939_IG38:
+ jbe SHORT G_M47939_IG29
+ ;; size=15 bbWeight=32 PerfScore 256.00
+G_M47939_IG28:
mov edi, edi
mov word ptr [rsi+2*rdi+0x10], 39
- inc dword ptr [r14+0x18]
- jmp SHORT G_M47939_IG40
- ;; size=15 bbWeight=16 PerfScore 100.00
-G_M47939_IG39:
- mov rdi, r14
+ inc dword ptr [r12+0x18]
+ jmp SHORT G_M47939_IG30
+ ;; size=16 bbWeight=16 PerfScore 100.00
+G_M47939_IG29:
+ mov rdi, r12
mov esi, 39
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(ushort):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(ushort):this
;; size=20 bbWeight=16 PerfScore 60.00
-G_M47939_IG40:
+G_M47939_IG30:
mov rsi, gword ptr [r15+0x10]
test rsi, rsi
- je SHORT G_M47939_IG42
+ je SHORT G_M47939_IG32
;; size=9 bbWeight=32 PerfScore 104.00
-G_M47939_IG41:
+G_M47939_IG31:
mov edx, dword ptr [rsi+0x08]
add rsi, 12
- mov rdi, r14
+ mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
;; size=22 bbWeight=16 PerfScore 92.00
-G_M47939_IG42:
- mov edi, dword ptr [r14+0x18]
- mov r11, gword ptr [r14+0x08]
+G_M47939_IG32:
+ mov edi, dword ptr [r12+0x18]
+ mov r11, gword ptr [r12+0x08]
mov eax, dword ptr [r11+0x08]
cmp eax, edi
- jbe G_M47939_IG51
+ jbe G_M47939_IG40
mov word ptr [r11+2*rdi+0x10], 39
- ;; size=28 bbWeight=32 PerfScore 264.00
-G_M47939_IG43:
- inc dword ptr [r14+0x18]
- ;; size=4 bbWeight=16 PerfScore 48.00
-G_M47939_IG44:
- mov rdi, gword ptr [rbp-0x38]
+ ;; size=30 bbWeight=32 PerfScore 264.00
+G_M47939_IG33:
+ inc dword ptr [r12+0x18]
+ ;; size=5 bbWeight=16 PerfScore 48.00
+G_M47939_IG34:
+ mov rdi, gword ptr [rbp-0x40]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
- je G_M47939_IG53
- ;; size=25 bbWeight=8 PerfScore 44.00
-G_M47939_IG45:
- jmp G_M47939_IG11
- ;; size=5 bbWeight=4 PerfScore 8.00
-G_M47939_IG46:
- mov rdi, r14
+ jne G_M47939_IG08
+ jmp G_M47939_IG42
+ ;; size=30 bbWeight=8 PerfScore 60.00
+G_M47939_IG35:
+ mov rdi, r12
mov edx, 2
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
;; size=20 bbWeight=4 PerfScore 15.00
-G_M47939_IG47:
- mov edi, dword ptr [r14+0x18]
+G_M47939_IG36:
+ mov edi, dword ptr [r12+0x18]
mov esi, edi
- mov rax, gword ptr [r14+0x08]
+ mov rax, gword ptr [r12+0x08]
mov ecx, dword ptr [rax+0x08]
cmp ecx, esi
- jbe SHORT G_M47939_IG48
+ jbe SHORT G_M47939_IG37
mov word ptr [rax+2*rsi+0x10], 39
inc edi
- mov dword ptr [r14+0x18], edi
- jmp SHORT G_M47939_IG49
- ;; size=32 bbWeight=4 PerfScore 47.00
-G_M47939_IG48:
- mov rdi, r14
+ mov dword ptr [r12+0x18], edi
+ jmp SHORT G_M47939_IG38
+ ;; size=35 bbWeight=4 PerfScore 47.00
+G_M47939_IG37:
+ mov rdi, r12
mov esi, 39
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(ushort):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(ushort):this
;; size=20 bbWeight=4 PerfScore 15.00
-G_M47939_IG49:
+G_M47939_IG38:
mov rsi, gword ptr [r15+0x10]
test rsi, rsi
- je SHORT G_M47939_IG50
+ je SHORT G_M47939_IG39
mov edx, dword ptr [rsi+0x08]
add rsi, 12
- mov rdi, r14
+ mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
;; size=31 bbWeight=4 PerfScore 36.00
-G_M47939_IG50:
- mov edi, dword ptr [r14+0x18]
- mov rsi, gword ptr [r14+0x08]
+G_M47939_IG39:
+ mov edi, dword ptr [r12+0x18]
+ mov rsi, gword ptr [r12+0x08]
mov eax, dword ptr [rsi+0x08]
cmp eax, edi
- jbe SHORT G_M47939_IG51
+ jbe SHORT G_M47939_IG40
mov word ptr [rsi+2*rdi+0x10], 39
- jmp G_M47939_IG43
- ;; size=27 bbWeight=4 PerfScore 41.00
-G_M47939_IG51:
- mov rdi, r14
+ jmp G_M47939_IG33
+ ;; size=29 bbWeight=4 PerfScore 41.00
+G_M47939_IG40:
+ mov rdi, r12
mov esi, 39
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(ushort):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(ushort):this
- jmp G_M47939_IG44
+ jmp G_M47939_IG34
;; size=25 bbWeight=4 PerfScore 23.00
-G_M47939_IG52:
+G_M47939_IG41:
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
call [rax]CORINFO_HELP_CHKCASTCLASS
int3
;; size=16 bbWeight=0 PerfScore 0.00
-G_M47939_IG53:
- mov rsi, gword ptr [rbp-0x38]
+G_M47939_IG42:
+ mov rsi, gword ptr [rbp-0x40]
mov rdi, 0xD1FFAB1E ; System.IDisposable
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE
call [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE
test rax, rax
- je SHORT G_M47939_IG54
+ je SHORT G_M47939_IG43
mov rdi, rax
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=47 bbWeight=0 PerfScore 0.00
-G_M47939_IG54:
+G_M47939_IG43:
cmp ebx, 3
- je SHORT G_M47939_IG57
+ je SHORT G_M47939_IG46
cmp ebx, 4
- je SHORT G_M47939_IG57
- test r13, r13
- je SHORT G_M47939_IG55
+ je SHORT G_M47939_IG46
+ test r14, r14
+ je SHORT G_M47939_IG44
mov rdi, 0xD1FFAB1E ; 'Config_base_invalid_attribute_to_lock'
mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String
call [rax]System.SR:GetResourceString(System.String):System.String
mov rbx, rax
- jmp SHORT G_M47939_IG56
+ jmp SHORT G_M47939_IG45
;; size=42 bbWeight=0 PerfScore 0.00
-G_M47939_IG55:
+G_M47939_IG44:
mov rdi, 0xD1FFAB1E ; 'Config_base_invalid_attribute_to_lock_by_add'
mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String
call [rax]System.SR:GetResourceString(System.String):System.String
mov rbx, rax
;; size=25 bbWeight=0 PerfScore 0.00
-G_M47939_IG56:
- jmp SHORT G_M47939_IG59
+G_M47939_IG45:
+ jmp SHORT G_M47939_IG48
;; size=2 bbWeight=0 PerfScore 0.00
-G_M47939_IG57:
- test r13, r13
- je SHORT G_M47939_IG58
+G_M47939_IG46:
+ test r14, r14
+ je SHORT G_M47939_IG47
mov rdi, 0xD1FFAB1E ; 'Config_base_invalid_element_to_lock'
mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String
call [rax]System.SR:GetResourceString(System.String):System.String
mov rbx, rax
- jmp SHORT G_M47939_IG59
+ jmp SHORT G_M47939_IG48
;; size=32 bbWeight=0 PerfScore 0.00
-G_M47939_IG58:
+G_M47939_IG47:
mov rdi, 0xD1FFAB1E ; 'Config_base_invalid_element_to_lock_by_add'
mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String
call [rax]System.SR:GetResourceString(System.String):System.String
mov rbx, rax
;; size=25 bbWeight=0 PerfScore 0.00
-G_M47939_IG59:
- test r13, r13
- jne SHORT G_M47939_IG60
+G_M47939_IG48:
+ test r14, r14
+ jne SHORT G_M47939_IG49
mov rdi, 0xD1FFAB1E ; System.Configuration.ConfigurationErrorsException
call CORINFO_HELP_NEWSFAST
- mov r13, rax
+ mov r14, rax
mov rdi, rbx
- mov rsi, r12
- mov rdx, r14
+ mov rsi, r13
+ mov rdx, r12
mov rax, 0xD1FFAB1E ; code for System.SR:Format(System.String,System.Object,System.Object):System.String
call [rax]System.SR:Format(System.String,System.Object,System.Object):System.String
mov rsi, rax
- mov rdi, r13
+ mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Configuration.ConfigurationErrorsException:.ctor(System.String):this
call [rax]System.Configuration.ConfigurationErrorsException:.ctor(System.String):this
- mov rdi, r13
+ mov rdi, r14
call CORINFO_HELP_THROW
int3
;; size=71 bbWeight=0 PerfScore 0.00
-G_M47939_IG60:
+G_M47939_IG49:
mov rdi, rbx
- mov rsi, r12
- mov rdx, r14
+ mov rsi, r13
+ mov rdx, r12
mov rax, 0xD1FFAB1E ; code for System.SR:Format(System.String,System.Object,System.Object):System.String
call [rax]System.SR:Format(System.String,System.Object,System.Object):System.String
mov rbx, rax
- mov rdi, gword ptr [r13+0x08]
+ mov rdi, gword ptr [r14+0x08]
mov r15, gword ptr [rdi+0x08]
- mov r14, gword ptr [r13+0x08]
+ mov r14, gword ptr [r14+0x08]
mov rdi, 0xD1FFAB1E ; System.Configuration.ConfigurationErrorsException
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov ecx, dword ptr [r14+0x10]
mov rdi, r13
mov rsi, rbx
mov rdx, r15
mov rax, 0xD1FFAB1E ; code for System.Configuration.ConfigurationErrorsException:.ctor(System.String,System.String,int):this
call [rax]System.Configuration.ConfigurationErrorsException:.ctor(System.String,System.String,int):this
mov rdi, r13
call CORINFO_HELP_THROW
int3
;; size=88 bbWeight=0 PerfScore 0.00
-G_M47939_IG61:
+G_M47939_IG50:
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+0x50]
;; size=22 bbWeight=0 PerfScore 0.00
-G_M47939_IG62:
- mov rsi, gword ptr [rbp-0x38]
+G_M47939_IG51:
+ mov rsi, gword ptr [rbp-0x40]
mov rdi, 0xD1FFAB1E ; System.IDisposable
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE
call [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE
test rax, rax
- je SHORT G_M47939_IG63
+ je SHORT G_M47939_IG52
mov rdi, rax
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=47 bbWeight=0 PerfScore 0.00
-G_M47939_IG63:
+G_M47939_IG52:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M47939_IG64:
+G_M47939_IG53:
vzeroupper
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0 PerfScore 0.00
RWD00 dq 006B0063006F006Ch, 0072007400740041h
RWD16 dq 0062006900720074h, 0073006500740075h
RWD32 dq 006B0063006F006Ch, 0041006C006C0041h, 0069007200740074h, 0065007400750062h
RWD64 dq 0072007400740041h, 0074007500620069h, 0078004500730065h, 0074007000650063h
RWD96 dq 006B0063006F006Ch, 006D0065006C0045h
RWD112 dq 006D0065006C0045h, 00730074006E0065h
RWD128 dq 006B0063006F006Ch, 0045006C006C0041h, 0065006D0065006Ch, 004500730074006Eh
RWD160 dq 006C0045006C006Ch, 006E0065006D0065h, 0078004500730074h, 0074007000650063h
-; Total bytes of code 1597, prolog size 37, PerfScore 2624.25, instruction count 384, allocated bytes for code 1597 (MethodHash=a7aa44bc) for method System.Configuration.ConfigurationElement:ReportInvalidLock(System.String,int,System.Configuration.ConfigurationValue,System.String):this (FullOpts)
+; Total bytes of code 1546, prolog size 42, PerfScore 2503.50, instruction count 361, allocated bytes for code 1546 (MethodHash=a7aa44bc) for method System.Configuration.ConfigurationElement:ReportInvalidLock(System.String,int,System.Configuration.ConfigurationValue,System.String):this (FullOpts) -28 (-2.69 % of base) - System.Text.Json.Serialization.JsonConverter`1[double]:ReadCore(byref,System.Text.Json.JsonSerializerOptions,byref):double:this ; Assembly listing for method System.Text.Json.Serialization.JsonConverter`1[double]:ReadCore(byref,System.Text.Json.JsonSerializerOptions,byref):double: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; 5 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T02] ( 4, 4 ) ref -> rbx this class-hnd single-def <System.Text.Json.Serialization.JsonConverter`1[double]>
-; V01 arg1 [V01,T01] ( 12, 8 ) byref -> [rbp-0x30] EH-live single-def
-; V02 arg2 [V02,T04] ( 3, 3 ) ref -> r15 class-hnd single-def <System.Text.Json.JsonSerializerOptions>
-; V03 arg3 [V03,T00] ( 13, 8 ) byref -> [rbp-0x38] EH-live single-def
+; V00 this [V00,T02] ( 4, 4 ) ref -> [rbp-0x30] this class-hnd EH-live single-def <System.Text.Json.Serialization.JsonConverter`1[double]>
+; V01 arg1 [V01,T01] ( 12, 8 ) byref -> [rbp-0x38] EH-live single-def
+; V02 arg2 [V02,T04] ( 3, 3 ) ref -> rbx class-hnd single-def <System.Text.Json.JsonSerializerOptions>
+; V03 arg3 [V03,T00] ( 13, 8 ) byref -> [rbp-0x40] EH-live single-def
; V04 loc0 [V04 ] ( 3, 3 ) double -> [rbp-0x18] do-not-enreg[X] addr-exposed ld-addr-op
; V05 loc1 [V05,T05] ( 5, 4.50) ref -> rbx class-hnd single-def <System.Object>
; V06 loc2 [V06,T10] ( 8, 4 ) double -> [rbp-0x20] do-not-enreg[Z] EH-live
;* V07 loc3 [V07 ] ( 0, 0 ) double -> zero-ref ld-addr-op
; V08 loc4 [V08 ] ( 1, 1 ) ubyte -> [rbp-0x28] do-not-enreg[X] addr-exposed ld-addr-op
;* V09 loc5 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.Json.JsonReaderException>
-; V10 loc6 [V10,T11] ( 4, 0 ) ref -> [rbp-0x40] must-init class-hnd EH-live single-def <System.FormatException>
-; V11 loc7 [V11,T12] ( 4, 0 ) ref -> [rbp-0x48] must-init class-hnd EH-live single-def <System.InvalidOperationException>
-; V12 loc8 [V12,T14] ( 3, 0 ) ref -> [rbp-0x50] must-init class-hnd EH-live single-def <System.Text.Json.JsonException>
+; V10 loc6 [V10,T11] ( 4, 0 ) ref -> [rbp-0x48] must-init class-hnd EH-live single-def <System.FormatException>
+; V11 loc7 [V11,T12] ( 4, 0 ) ref -> [rbp-0x50] must-init class-hnd EH-live single-def <System.InvalidOperationException>
+; V12 loc8 [V12,T14] ( 3, 0 ) ref -> [rbp-0x58] must-init class-hnd EH-live single-def <System.Text.Json.JsonException>
;* V13 loc9 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.NotSupportedException>
; V14 OutArgs [V14 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V15 tmp1 [V15,T03] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.Double>
; V16 tmp2 [V16,T06] ( 2, 4 ) byref -> rdi single-def "impImportAndPushBox"
; V17 tmp3 [V17,T13] ( 4, 0 ) ref -> rbx class-hnd single-def "impSpillSpecialSideEff" <System.NotSupportedException>
; V18 tmp4 [V18,T21] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <System.Object>
; V19 tmp5 [V19,T15] ( 3, 0 ) ref -> rdi class-hnd single-def "dup spill" <System.Text.Json.JsonException>
;* V20 tmp6 [V20 ] ( 0, 0 ) ref -> zero-ref single-def
; V21 tmp7 [V21,T18] ( 3, 0 ) int -> rax
;* V22 tmp8 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.Object>
; V23 tmp9 [V23,T22] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <System.Object>
; V24 tmp10 [V24,T16] ( 3, 0 ) ref -> rdi class-hnd single-def "dup spill" <System.InvalidOperationException>
;* V25 tmp11 [V25 ] ( 0, 0 ) ref -> zero-ref single-def
; V26 tmp12 [V26,T19] ( 3, 0 ) int -> rax
;* V27 tmp13 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.Object>
; V28 tmp14 [V28,T23] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <System.Object>
; V29 tmp15 [V29,T17] ( 3, 0 ) ref -> rdi class-hnd single-def "dup spill" <System.FormatException>
;* V30 tmp16 [V30 ] ( 0, 0 ) ref -> zero-ref single-def
; V31 tmp17 [V31,T20] ( 3, 0 ) int -> rax
;* V32 tmp18 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.Object>
; V33 tmp19 [V33,T24] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <System.Text.Json.JsonReaderException>
; V34 tmp20 [V34,T07] ( 3, 3 ) ubyte -> rax "Inline return value spill temp"
;* V35 tmp21 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V36 tmp22 [V36,T08] ( 0, 0 ) int -> zero-ref
;* V37 tmp23 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
; V38 tmp24 [V38,T25] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
; V39 tmp25 [V39,T26] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
; V40 tmp26 [V40,T27] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
-; V41 PSPSym [V41,T09] ( 1, 1 ) long -> [rbp-0x58] do-not-enreg[V] "PSPSym"
+; V41 PSPSym [V41,T09] ( 1, 1 ) long -> [rbp-0x68] do-not-enreg[V] "PSPSym"
;
-; Lcl frame size = 80
+; Lcl frame size = 104
G_M57453_IG01:
push rbp
- push r15
push rbx
- sub rsp, 80
- lea rbp, [rsp+0x60]
+ sub rsp, 104
+ lea rbp, [rsp+0x70]
vxorps xmm8, xmm8, xmm8
- vmovdqa xmmword ptr [rbp-0x50], xmm8
+ vmovdqu xmmword ptr [rbp-0x58], xmm8
xor eax, eax
- mov qword ptr [rbp-0x40], rax
- mov qword ptr [rbp-0x58], rsp
- mov bword ptr [rbp-0x30], rsi
- mov bword ptr [rbp-0x38], rcx
- mov rbx, rdi
- mov r15, rdx
- ;; size=47 bbWeight=1 PerfScore 10.83
+ mov qword ptr [rbp-0x48], rax
+ mov qword ptr [rbp-0x68], rsp
+ mov qword ptr [rbp-0x10], rdi
+ mov gword ptr [rbp-0x30], rdi
+ mov bword ptr [rbp-0x38], rsi
+ mov bword ptr [rbp-0x40], rcx
+ mov rbx, rdx
+ ;; size=50 bbWeight=1 PerfScore 11.58
G_M57453_IG02:
cmp dword ptr [rcx+0x24], 0
jne G_M57453_IG08
- cmp byte ptr [rbx+0x13], 0
+ cmp byte ptr [rdi+0x13], 0
je SHORT G_M57453_IG03
cmp byte ptr [rsi+0x24], 0
je SHORT G_M57453_IG04
;; size=22 bbWeight=1 PerfScore 12.00
G_M57453_IG03:
mov rdi, rsi
mov rax, 0xD1FFAB1E ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
call [rax]System.Text.Json.Utf8JsonReader:Read():ubyte:this
jmp SHORT G_M57453_IG05
;; size=17 bbWeight=1 PerfScore 5.50
G_M57453_IG04:
mov rdi, rsi
mov rax, 0xD1FFAB1E ; code for System.Text.Json.JsonHelpers:<TryAdvanceWithOptionalReadAhead>g__TryAdvanceWithReadAhead|4_0(byref):ubyte
call [rax]System.Text.Json.JsonHelpers:<TryAdvanceWithOptionalReadAhead>g__TryAdvanceWithReadAhead|4_0(byref):ubyte
;; size=15 bbWeight=1 PerfScore 3.50
G_M57453_IG05:
test eax, eax
jne SHORT G_M57453_IG08
- mov rcx, bword ptr [rbp-0x38]
+ mov rcx, bword ptr [rbp-0x40]
cmp byte ptr [rcx+0x28], 0
je G_M57453_IG10
mov rbx, gword ptr [rcx+0x50]
test rbx, rbx
je G_M57453_IG10
mov rsi, 0xD1FFAB1E ; System.Double
cmp qword ptr [rbx], rsi
je SHORT G_M57453_IG07
;; size=46 bbWeight=1 PerfScore 13.75
G_M57453_IG06:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.Double
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_UNBOX
call [rax]CORINFO_HELP_UNBOX
;; size=25 bbWeight=0.50 PerfScore 1.88
G_M57453_IG07:
vmovsd xmm0, qword ptr [rbx+0x08]
vmovsd qword ptr [rbp-0x20], xmm0
jmp G_M57453_IG11
;; size=15 bbWeight=1 PerfScore 7.00
G_M57453_IG08:
- mov rsi, bword ptr [rbp-0x30]
+ mov rsi, bword ptr [rbp-0x38]
+ mov rdi, gword ptr [rbp-0x30]
lea rdx, [rbp-0x28]
mov qword ptr [rsp], rdx
- mov rcx, bword ptr [rbp-0x38]
+ mov rcx, bword ptr [rbp-0x40]
mov rdx, gword ptr [rcx+0x58]
mov rdx, gword ptr [rdx+0xB8]
lea r9, [rbp-0x18]
- mov rdi, rbx
- mov rcx, r15
- mov r8, bword ptr [rbp-0x38]
+ mov rcx, rbx
+ mov r8, bword ptr [rbp-0x40]
mov rax, 0xD1FFAB1E ; code for System.Text.Json.Serialization.JsonConverter`1[double]:TryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref,byref):ubyte:this
call [rax]System.Text.Json.Serialization.JsonConverter`1[double]:TryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref,byref):ubyte:this
test eax, eax
je SHORT G_M57453_IG09
- mov rdi, bword ptr [rbp-0x30]
+ mov rdi, bword ptr [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
call [rax]System.Text.Json.Utf8JsonReader:Read():ubyte:this
test eax, eax
jne SHORT G_M57453_IG09
- mov rdi, bword ptr [rbp-0x30]
+ mov rdi, bword ptr [rbp-0x38]
cmp byte ptr [rdi+0x24], 0
jne SHORT G_M57453_IG09
mov rdi, 0xD1FFAB1E ; System.Double
call CORINFO_HELP_NEWSFAST
- mov r8, bword ptr [rbp-0x38]
+ mov r8, bword ptr [rbp-0x40]
lea rdi, bword ptr [r8+0x30]
vmovsd xmm0, qword ptr [rbp-0x18]
vmovsd qword ptr [rax+0x08], xmm0
lea rdi, bword ptr [rdi+0x20]
mov rsi, rax
call CORINFO_HELP_CHECKED_ASSIGN_REF
- ;; size=132 bbWeight=1 PerfScore 34.00
+ ;; size=133 bbWeight=1 PerfScore 34.75
G_M57453_IG09:
vmovsd xmm0, qword ptr [rbp-0x18]
vmovsd qword ptr [rbp-0x20], xmm0
jmp SHORT G_M57453_IG11
;; size=12 bbWeight=1 PerfScore 6.00
G_M57453_IG10:
- mov rcx, bword ptr [rbp-0x38]
+ mov rcx, bword ptr [rbp-0x40]
xor esi, esi
mov qword ptr [rbp-0x20], rsi
;; size=10 bbWeight=1 PerfScore 2.25
G_M57453_IG11:
vmovsd xmm0, qword ptr [rbp-0x20]
;; size=5 bbWeight=1 PerfScore 3.00
G_M57453_IG12:
- add rsp, 80
+ add rsp, 104
pop rbx
- pop r15
pop rbp
ret
- ;; size=9 bbWeight=1 PerfScore 2.75
+ ;; size=7 bbWeight=1 PerfScore 2.25
G_M57453_IG13:
push rbp
- push r15
push rbx
- sub rsp, 16
+ sub rsp, 24
mov rbp, qword ptr [rdi+0x08]
mov qword ptr [rsp+0x08], rbp
- lea rbp, [rbp+0x60]
- ;; size=21 bbWeight=0 PerfScore 0.00
+ lea rbp, [rbp+0x70]
+ ;; size=19 bbWeight=0 PerfScore 0.00
G_M57453_IG14:
- mov rdi, bword ptr [rbp-0x38]
+ mov rdi, bword ptr [rbp-0x40]
mov rax, 0xD1FFAB1E ; code for System.Text.Json.ThrowHelper:ReThrowWithPath(byref,System.Text.Json.JsonReaderException)
call [rax]System.Text.Json.ThrowHelper:ReThrowWithPath(byref,System.Text.Json.JsonReaderException)
xor esi, esi
mov qword ptr [rbp-0x20], rsi
lea rax, G_M57453_IG11
;; size=29 bbWeight=0 PerfScore 0.00
G_M57453_IG15:
- add rsp, 16
+ add rsp, 24
pop rbx
- pop r15
pop rbp
ret
- ;; size=9 bbWeight=0 PerfScore 0.00
+ ;; size=7 bbWeight=0 PerfScore 0.00
G_M57453_IG16:
push rbp
- push r15
push rbx
- sub rsp, 16
+ sub rsp, 24
mov rbp, qword ptr [rdi+0x08]
mov qword ptr [rsp+0x08], rbp
- lea rbp, [rbp+0x60]
- ;; size=21 bbWeight=0 PerfScore 0.00
+ lea rbp, [rbp+0x70]
+ ;; size=19 bbWeight=0 PerfScore 0.00
G_M57453_IG17:
mov rdi, 0xD1FFAB1E ; System.FormatException
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
mov rdi, rax
test rdi, rdi
jne SHORT G_M57453_IG18
xor eax, eax
jmp SHORT G_M57453_IG19
;; size=34 bbWeight=0 PerfScore 0.00
G_M57453_IG18:
- mov gword ptr [rbp-0x40], rdi
- mov rdi, gword ptr [rbp-0x40]
+ mov gword ptr [rbp-0x48], rdi
+ mov rdi, gword ptr [rbp-0x48]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x48]
call [rax+0x08]System.Exception:get_Source():System.String:this
mov rdi, rax
mov rsi, 0xD1FFAB1E ; 'System.Text.Json.Rethrowable'
mov rax, 0xD1FFAB1E ; code for System.String:op_Equality(System.String,System.String):ubyte
call [rax]System.String:op_Equality(System.String,System.String):ubyte
test eax, eax
setne al
movzx rax, al
;; size=51 bbWeight=0 PerfScore 0.00
G_M57453_IG19:
- add rsp, 16
+ add rsp, 24
pop rbx
- pop r15
pop rbp
ret
- ;; size=9 bbWeight=0 PerfScore 0.00
+ ;; size=7 bbWeight=0 PerfScore 0.00
G_M57453_IG20:
push rbp
- push r15
push rbx
- sub rsp, 16
+ sub rsp, 24
mov rbp, qword ptr [rdi+0x08]
mov qword ptr [rsp+0x08], rbp
- lea rbp, [rbp+0x60]
- ;; size=21 bbWeight=0 PerfScore 0.00
+ lea rbp, [rbp+0x70]
+ ;; size=19 bbWeight=0 PerfScore 0.00
G_M57453_IG21:
- mov rdi, bword ptr [rbp-0x38]
- mov rsi, bword ptr [rbp-0x30]
- mov rdx, gword ptr [rbp-0x40]
+ mov rdi, bword ptr [rbp-0x40]
+ mov rsi, bword ptr [rbp-0x38]
+ mov rdx, gword ptr [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.Text.Json.ThrowHelper:ReThrowWithPath(byref,byref,System.Exception)
call [rax]System.Text.Json.ThrowHelper:ReThrowWithPath(byref,byref,System.Exception)
xor esi, esi
mov qword ptr [rbp-0x20], rsi
lea rax, G_M57453_IG11
;; size=37 bbWeight=0 PerfScore 0.00
G_M57453_IG22:
- add rsp, 16
+ add rsp, 24
pop rbx
- pop r15
pop rbp
ret
- ;; size=9 bbWeight=0 PerfScore 0.00
+ ;; size=7 bbWeight=0 PerfScore 0.00
G_M57453_IG23:
push rbp
- push r15
push rbx
- sub rsp, 16
+ sub rsp, 24
mov rbp, qword ptr [rdi+0x08]
mov qword ptr [rsp+0x08], rbp
- lea rbp, [rbp+0x60]
- ;; size=21 bbWeight=0 PerfScore 0.00
+ lea rbp, [rbp+0x70]
+ ;; size=19 bbWeight=0 PerfScore 0.00
G_M57453_IG24:
mov rdi, 0xD1FFAB1E ; System.InvalidOperationException
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
mov rdi, rax
test rdi, rdi
jne SHORT G_M57453_IG25
xor eax, eax
jmp SHORT G_M57453_IG26
;; size=34 bbWeight=0 PerfScore 0.00
G_M57453_IG25:
- mov gword ptr [rbp-0x48], rdi
- mov rdi, gword ptr [rbp-0x48]
+ mov gword ptr [rbp-0x50], rdi
+ mov rdi, gword ptr [rbp-0x50]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x48]
call [rax+0x08]System.Exception:get_Source():System.String:this
mov rdi, rax
mov rsi, 0xD1FFAB1E ; 'System.Text.Json.Rethrowable'
mov rax, 0xD1FFAB1E ; code for System.String:op_Equality(System.String,System.String):ubyte
call [rax]System.String:op_Equality(System.String,System.String):ubyte
test eax, eax
setne al
movzx rax, al
;; size=51 bbWeight=0 PerfScore 0.00
G_M57453_IG26:
- add rsp, 16
+ add rsp, 24
pop rbx
- pop r15
pop rbp
ret
- ;; size=9 bbWeight=0 PerfScore 0.00
+ ;; size=7 bbWeight=0 PerfScore 0.00
G_M57453_IG27:
push rbp
- push r15
push rbx
- sub rsp, 16
+ sub rsp, 24
mov rbp, qword ptr [rdi+0x08]
mov qword ptr [rsp+0x08], rbp
- lea rbp, [rbp+0x60]
- ;; size=21 bbWeight=0 PerfScore 0.00
+ lea rbp, [rbp+0x70]
+ ;; size=19 bbWeight=0 PerfScore 0.00
G_M57453_IG28:
- mov rdi, bword ptr [rbp-0x38]
- mov rsi, bword ptr [rbp-0x30]
- mov rdx, gword ptr [rbp-0x48]
+ mov rdi, bword ptr [rbp-0x40]
+ mov rsi, bword ptr [rbp-0x38]
+ mov rdx, gword ptr [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.Text.Json.ThrowHelper:ReThrowWithPath(byref,byref,System.Exception)
call [rax]System.Text.Json.ThrowHelper:ReThrowWithPath(byref,byref,System.Exception)
xor esi, esi
mov qword ptr [rbp-0x20], rsi
lea rax, G_M57453_IG11
;; size=37 bbWeight=0 PerfScore 0.00
G_M57453_IG29:
- add rsp, 16
+ add rsp, 24
pop rbx
- pop r15
pop rbp
ret
- ;; size=9 bbWeight=0 PerfScore 0.00
+ ;; size=7 bbWeight=0 PerfScore 0.00
G_M57453_IG30:
push rbp
- push r15
push rbx
- sub rsp, 16
+ sub rsp, 24
mov rbp, qword ptr [rdi+0x08]
mov qword ptr [rsp+0x08], rbp
- lea rbp, [rbp+0x60]
- ;; size=21 bbWeight=0 PerfScore 0.00
+ lea rbp, [rbp+0x70]
+ ;; size=19 bbWeight=0 PerfScore 0.00
G_M57453_IG31:
mov rdi, 0xD1FFAB1E ; System.Text.Json.JsonException
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
mov rdi, rax
test rdi, rdi
jne SHORT G_M57453_IG32
xor eax, eax
jmp SHORT G_M57453_IG33
;; size=34 bbWeight=0 PerfScore 0.00
G_M57453_IG32:
- mov gword ptr [rbp-0x50], rdi
- mov rdi, gword ptr [rbp-0x50]
+ mov gword ptr [rbp-0x58], rdi
+ mov rdi, gword ptr [rbp-0x58]
mov rax, 0xD1FFAB1E ; code for System.Text.Json.JsonException:get_Path():System.String:this
call [rax]System.Text.Json.JsonException:get_Path():System.String:this
test rax, rax
sete al
movzx rax, al
;; size=29 bbWeight=0 PerfScore 0.00
G_M57453_IG33:
- add rsp, 16
+ add rsp, 24
pop rbx
- pop r15
pop rbp
ret
- ;; size=9 bbWeight=0 PerfScore 0.00
+ ;; size=7 bbWeight=0 PerfScore 0.00
G_M57453_IG34:
push rbp
- push r15
push rbx
- sub rsp, 16
+ sub rsp, 24
mov rbp, qword ptr [rdi+0x08]
mov qword ptr [rsp+0x08], rbp
- lea rbp, [rbp+0x60]
- ;; size=21 bbWeight=0 PerfScore 0.00
+ lea rbp, [rbp+0x70]
+ ;; size=19 bbWeight=0 PerfScore 0.00
G_M57453_IG35:
- mov rdi, bword ptr [rbp-0x38]
- mov rsi, bword ptr [rbp-0x30]
- mov rdx, gword ptr [rbp-0x50]
+ mov rdi, bword ptr [rbp-0x40]
+ mov rsi, bword ptr [rbp-0x38]
+ mov rdx, gword ptr [rbp-0x58]
mov rax, 0xD1FFAB1E ; code for System.Text.Json.ThrowHelper:AddJsonExceptionInformation(byref,byref,System.Text.Json.JsonException)
call [rax]System.Text.Json.ThrowHelper:AddJsonExceptionInformation(byref,byref,System.Text.Json.JsonException)
call CORINFO_HELP_RETHROW
int3
;; size=30 bbWeight=0 PerfScore 0.00
G_M57453_IG36:
push rbp
- push r15
push rbx
- sub rsp, 16
+ sub rsp, 24
mov rbp, qword ptr [rdi+0x08]
mov qword ptr [rsp+0x08], rbp
- lea rbp, [rbp+0x60]
- ;; size=21 bbWeight=0 PerfScore 0.00
+ lea rbp, [rbp+0x70]
+ ;; size=19 bbWeight=0 PerfScore 0.00
G_M57453_IG37:
mov rbx, rsi
mov rdi, rbx
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x40]
call [rax+0x20]System.Exception:get_Message():System.String:this
mov rdi, rax
mov rsi, 0xD1FFAB1E ; ' Path: '
mov rax, 0xD1FFAB1E ; code for System.String:Contains(System.String):ubyte:this
cmp dword ptr [rdi], edi
call [rax]System.String:Contains(System.String):ubyte:this
test eax, eax
jne SHORT G_M57453_IG39
- mov rdi, bword ptr [rbp-0x38]
- mov rsi, bword ptr [rbp-0x30]
+ mov rdi, bword ptr [rbp-0x40]
+ mov rsi, bword ptr [rbp-0x38]
mov rdx, rbx
mov rax, 0xD1FFAB1E ; code for System.Text.Json.ThrowHelper:ThrowNotSupportedException(byref,byref,System.NotSupportedException)
call [rax]System.Text.Json.ThrowHelper:ThrowNotSupportedException(byref,byref,System.NotSupportedException)
xor eax, eax
mov qword ptr [rbp-0x20], rax
lea rax, G_M57453_IG11
;; size=83 bbWeight=0 PerfScore 0.00
G_M57453_IG38:
- add rsp, 16
+ add rsp, 24
pop rbx
- pop r15
pop rbp
ret
- ;; size=9 bbWeight=0 PerfScore 0.00
+ ;; size=7 bbWeight=0 PerfScore 0.00
G_M57453_IG39:
call CORINFO_HELP_RETHROW
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1041, prolog size 47, PerfScore 102.46, instruction count 285, allocated bytes for code 1041 (MethodHash=9b0d1f92) for method System.Text.Json.Serialization.JsonConverter`1[double]:ReadCore(byref,System.Text.Json.JsonSerializerOptions,byref):double:this (FullOpts)
+; Total bytes of code 1013, prolog size 50, PerfScore 103.46, instruction count 269, allocated bytes for code 1013 (MethodHash=9b0d1f92) for method System.Text.Json.Serialization.JsonConverter`1[double]:ReadCore(byref,System.Text.Json.JsonSerializerOptions,byref):double:this (FullOpts) Larger list of diffs: https://gist.github.com/MihuBot/54a842b88f973e5b39d4f1405955ece5 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 16 minutes.
dotnet/runtime#103813
Diffs
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: