forked from MihaZupan/runtime-utils
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[JitDiff X64] [MichalPetryka] Remove ldsfld quirk #735
Comments
Top method regressions42 (2.78 % of base) - System.DirectoryServices.Protocols.LdapSessionOptions:ProcessQueryConnection(long,long,long,long,int,ulong,ulong,ulong):int:this ; Assembly listing for method System.DirectoryServices.Protocols.LdapSessionOptions:ProcessQueryConnection(long,long,long,long,int,ulong,ulong,ulong):int:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 20 single block inlinees; 15 inlinees without PGO data
+; 0 inlinees with PGO data; 26 single block inlinees; 17 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 8, 5.50) ref -> rbx this class-hnd single-def <System.DirectoryServices.Protocols.LdapSessionOptions>
;* V01 arg1 [V01 ] ( 0, 0 ) long -> zero-ref single-def
; V02 arg2 [V02,T02] ( 7, 4.50) long -> r15 single-def
; V03 arg3 [V03,T04] ( 4, 3 ) long -> rcx single-def
; V04 arg4 [V04,T05] ( 3, 2.50) long -> r14 single-def
; V05 arg5 [V05,T06] ( 3, 2.50) int -> r13 single-def
-; V06 arg6 [V06,T58] ( 1, 0.50) long -> [rbp+0x10] single-def
-; V07 arg7 [V07,T55] ( 2, 1 ) long -> [rbp+0x18] single-def
+; V06 arg6 [V06,T61] ( 1, 0.50) long -> [rbp+0x10] single-def
+; V07 arg7 [V07,T57] ( 2, 1 ) long -> [rbp+0x18] single-def
; V08 arg8 [V08,T49] ( 2, 1.50) long -> r12 single-def
-; V09 loc0 [V09,T31] ( 3, 2 ) ref -> [rbp-0x78] class-hnd <System.String>
+; V09 loc0 [V09,T32] ( 3, 2 ) ref -> [rbp-0x78] class-hnd <System.String>
;* V10 loc1 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.DirectoryServices.Protocols.LdapDirectoryIdentifier>
-; V11 loc2 [V11,T54] ( 2, 1 ) ref -> r13 class-hnd single-def <System.Net.NetworkCredential>
+; V11 loc2 [V11,T54] ( 2, 1 ) ref -> r14 class-hnd single-def <System.Net.NetworkCredential>
; V12 loc3 [V12,T07] ( 8, 4 ) ref -> [rbp-0x80] class-hnd <System.DirectoryServices.Protocols.LdapConnection>
;* V13 loc4 [V13 ] ( 0, 0 ) long -> zero-ref
-; V14 loc5 [V14,T23] ( 5, 2.50) ref -> rbx class-hnd single-def <System.DirectoryServices.Protocols.LdapConnection>
-; V15 loc6 [V15 ] ( 23, 11.50) struct (40) [rbp-0x50] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
+; V14 loc5 [V14,T24] ( 5, 2.50) ref -> rbx class-hnd single-def <System.DirectoryServices.Protocols.LdapConnection>
+; V15 loc6 [V15 ] ( 27, 13.50) struct (40) [rbp-0x50] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
; V16 loc7 [V16,T53] ( 4, 1 ) ref -> [rbp-0x88] class-hnd exact EH-live spill-single-def <System.Object>
; V17 loc8 [V17 ] ( 5, 2 ) ubyte -> [rbp-0x58] do-not-enreg[X] must-init addr-exposed ld-addr-op
-; V18 loc9 [V18,T24] ( 5, 2.50) ref -> [rbp-0x90] class-hnd spill-single-def <System.WeakReference>
+; V18 loc9 [V18,T25] ( 5, 2.50) ref -> [rbp-0x90] class-hnd spill-single-def <System.WeakReference>
; V19 OutArgs [V19 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V20 tmp1 [V20,T14] ( 3, 3 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.DirectoryServices.Protocols.LdapDirectoryIdentifier>
+; V20 tmp1 [V20,T14] ( 3, 3 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.DirectoryServices.Protocols.LdapDirectoryIdentifier>
;* V21 tmp2 [V21 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
; V22 tmp3 [V22,T15] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.IntPtr>
-; V23 tmp4 [V23,T32] ( 2, 2 ) ref -> rdi class-hnd exact single-def "impImportAndPushBox" <System.Collections.Hashtable>
-; V24 tmp5 [V24,T33] ( 2, 2 ) ref -> [rbp-0x98] class-hnd spill-single-def "impAppendStmt" <System.DirectoryServices.Protocols.LdapDirectoryIdentifier>
-; V25 tmp6 [V25,T34] ( 2, 2 ) ref -> [rbp-0xA0] class-hnd spill-single-def "impAppendStmt" <System.Net.NetworkCredential>
-; V26 tmp7 [V26,T16] ( 3, 3 ) ref -> [rbp-0xA8] class-hnd exact spill-single-def "NewObj constructor temp" <System.DirectoryServices.Protocols.LdapConnection>
-; V27 tmp8 [V27,T39] ( 2, 2 ) int -> [rbp-0x5C] spill-single-def "finalizable newobj spill"
-; V28 tmp9 [V28,T17] ( 3, 3 ) ref -> [rbp-0xB0] class-hnd exact spill-single-def "Single-def Box Helper" <System.IntPtr>
-; V29 tmp10 [V29,T35] ( 2, 2 ) ref -> [rbp-0xB8] class-hnd exact spill-single-def "impImportAndPushBox" <System.Collections.Hashtable>
-; V30 tmp11 [V30,T08] ( 4, 4 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.WeakReference>
-; V31 tmp12 [V31,T18] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.IntPtr>
-; V32 tmp13 [V32,T36] ( 2, 2 ) ref -> rdi class-hnd exact single-def "impImportAndPushBox" <System.Collections.Hashtable>
-;* V33 tmp14 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.DirectoryServices.Protocols.ReferralCallback>
-;* V34 tmp15 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
-; V35 tmp16 [V35,T03] ( 5, 5 ) ref -> rax class-hnd single-def "dup spill" <ushort[]>
-;* V36 tmp17 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
-;* V37 tmp18 [V37 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V38 tmp19 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V39 tmp20 [V39,T01] ( 7, 7 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.String>
-;* V40 tmp21 [V40 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V41 tmp22 [V41,T09] ( 4, 4 ) int -> rdi "Inlining Arg"
-;* V42 tmp23 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V43 tmp24 [V43,T37] ( 2, 2 ) byref -> rax single-def "Inlining Arg"
-; V44 tmp25 [V44,T40] ( 2, 2 ) int -> rsi "Inlining Arg"
-;* V45 tmp26 [V45,T59] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V46 tmp27 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V47 tmp28 [V47 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V48 tmp29 [V48 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V49 tmp30 [V49 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V50 tmp31 [V50 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
-; V51 tmp32 [V51,T10] ( 4, 4 ) int -> rdi "Inlining Arg"
-;* V52 tmp33 [V52 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
-; V53 tmp34 [V53,T38] ( 2, 2 ) byref -> r14 single-def "Inlining Arg"
-; V54 tmp35 [V54,T41] ( 2, 2 ) int -> rsi "Inlining Arg"
-;* V55 tmp36 [V55,T60] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V56 tmp37 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
-;* V57 tmp38 [V57 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V58 tmp39 [V58 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V59 tmp40 [V59,T19] ( 3, 3 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.String>
-;* V60 tmp41 [V60 ] ( 0, 0 ) ref -> zero-ref single-def
-; V61 tmp42 [V61,T20] ( 3, 3 ) ref -> [rbp-0xC0] class-hnd exact spill-single-def "dup spill" <System.String[]>
-;* V62 tmp43 [V62 ] ( 0, 0 ) ref -> zero-ref
-; V63 tmp44 [V63,T43] ( 3, 1.50) ref -> rsi
-;* V64 tmp45 [V64 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.DirectoryServices.Protocols.LdapConnection>
-;* V65 tmp46 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.DirectoryServices.Protocols.LdapConnection>
-;* V66 tmp47 [V66 ] ( 0, 0 ) ref -> zero-ref
+; V23 tmp4 [V23,T33] ( 2, 2 ) ref -> [rbp-0x98] class-hnd spill-single-def "impAppendStmt" <System.DirectoryServices.Protocols.LdapDirectoryIdentifier>
+; V24 tmp5 [V24,T34] ( 2, 2 ) ref -> [rbp-0xA0] class-hnd spill-single-def "impAppendStmt" <System.Net.NetworkCredential>
+; V25 tmp6 [V25,T16] ( 3, 3 ) ref -> [rbp-0xA8] class-hnd exact spill-single-def "NewObj constructor temp" <System.DirectoryServices.Protocols.LdapConnection>
+; V26 tmp7 [V26,T37] ( 2, 2 ) int -> [rbp-0x5C] spill-single-def "finalizable newobj spill"
+; V27 tmp8 [V27,T17] ( 3, 3 ) ref -> [rbp-0xB0] class-hnd exact spill-single-def "Single-def Box Helper" <System.IntPtr>
+; V28 tmp9 [V28,T08] ( 4, 4 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.WeakReference>
+; V29 tmp10 [V29,T18] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.IntPtr>
+;* V30 tmp11 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.DirectoryServices.Protocols.ReferralCallback>
+;* V31 tmp12 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Buffers.SharedArrayPool`1[ushort]>
+; V32 tmp13 [V32,T03] ( 5, 5 ) ref -> rax class-hnd single-def "dup spill" <ushort[]>
+;* V33 tmp14 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" <ushort[]>
+;* V34 tmp15 [V34 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V35 tmp16 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V36 tmp17 [V36,T01] ( 7, 7 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.String>
+;* V37 tmp18 [V37 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V38 tmp19 [V38,T09] ( 4, 4 ) int -> rdi "Inlining Arg"
+;* V39 tmp20 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V40 tmp21 [V40,T35] ( 2, 2 ) byref -> rax single-def "Inlining Arg"
+; V41 tmp22 [V41,T38] ( 2, 2 ) int -> rsi "Inlining Arg"
+;* V42 tmp23 [V42,T62] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V43 tmp24 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V44 tmp25 [V44 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V45 tmp26 [V45 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V46 tmp27 [V46 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V47 tmp28 [V47 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V48 tmp29 [V48,T10] ( 4, 4 ) int -> rdi "Inlining Arg"
+;* V49 tmp30 [V49 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+; V50 tmp31 [V50,T36] ( 2, 2 ) byref -> r14 single-def "Inlining Arg"
+; V51 tmp32 [V51,T39] ( 2, 2 ) int -> rsi "Inlining Arg"
+;* V52 tmp33 [V52,T63] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V53 tmp34 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V54 tmp35 [V54 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V55 tmp36 [V55 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V56 tmp37 [V56 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
+; V57 tmp38 [V57,T19] ( 3, 3 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.String>
+;* V58 tmp39 [V58 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
+; V59 tmp40 [V59,T23] ( 3, 3 ) int -> rsi "Inlining Arg"
+;* V60 tmp41 [V60 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
+;* V61 tmp42 [V61 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V62 tmp43 [V62 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
+;* V63 tmp44 [V63 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V64 tmp45 [V64 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V65 tmp46 [V65 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V66 tmp47 [V66,T41] ( 3, 1.50) ref -> rsi class-hnd single-def "Inline stloc first use temp" <ushort[]>
;* V67 tmp48 [V67 ] ( 0, 0 ) ref -> zero-ref single-def
-;* V68 tmp49 [V68 ] ( 0, 0 ) int -> zero-ref single-def
-;* V69 tmp50 [V69 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-;* V70 tmp51 [V70 ] ( 0, 0 ) ref -> zero-ref
-;* V71 tmp52 [V71 ] ( 0, 0 ) ref -> zero-ref
-;* V72 tmp53 [V72 ] ( 0, 0 ) long -> zero-ref
-;* V73 tmp54 [V73 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.ComAwareWeakReference+ComInfo>
-; V74 tmp55 [V74,T30] ( 4, 2 ) long -> rax "Inline stloc first use temp"
-; V75 tmp56 [V75,T28] ( 4, 2 ) ref -> registers class-hnd "Inline return value spill temp" <System.ComAwareWeakReference+ComInfo>
-; V76 tmp57 [V76,T56] ( 2, 1 ) ubyte -> rdi single-def "Inline return value spill temp"
-; V77 tmp58 [V77 ] ( 3, 1.50) byref -> [rbp-0x68] must-init pinned "Inline stloc first use temp"
-;* V78 tmp59 [V78 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.IntPtr>
-;* V79 tmp60 [V79 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.DirectoryServices.Protocols.ReferralCallback>
-;* V80 tmp61 [V80 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.DirectoryServices.Protocols.ConnectionHandle>
-; V81 tmp62 [V81,T44] ( 3, 1.50) byref -> rdi "field V38._reference (fldOffset=0x0)" P-INDEP
-; V82 tmp63 [V82,T47] ( 3, 1.50) int -> rax "field V38._length (fldOffset=0x8)" P-INDEP
-;* V83 tmp64 [V83 ] ( 0, 0 ) byref -> zero-ref "field V40._reference (fldOffset=0x0)" P-INDEP
-;* V84 tmp65 [V84 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP
-;* V85 tmp66 [V85 ] ( 0, 0 ) byref -> zero-ref single-def "field V42._reference (fldOffset=0x0)" P-INDEP
-;* V86 tmp67 [V86 ] ( 0, 0 ) int -> zero-ref single-def "field V42._length (fldOffset=0x8)" P-INDEP
-;* V87 tmp68 [V87 ] ( 0, 0 ) byref -> zero-ref single-def "field V46._reference (fldOffset=0x0)" P-INDEP
-;* V88 tmp69 [V88 ] ( 0, 0 ) int -> zero-ref single-def "field V46._length (fldOffset=0x8)" P-INDEP
-;* V89 tmp70 [V89 ] ( 0, 0 ) byref -> zero-ref "field V50._reference (fldOffset=0x0)" P-INDEP
-;* V90 tmp71 [V90 ] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP
-;* V91 tmp72 [V91 ] ( 0, 0 ) byref -> zero-ref single-def "field V52._reference (fldOffset=0x0)" P-INDEP
-;* V92 tmp73 [V92 ] ( 0, 0 ) int -> zero-ref single-def "field V52._length (fldOffset=0x8)" P-INDEP
-;* V93 tmp74 [V93 ] ( 0, 0 ) byref -> zero-ref single-def "field V56._reference (fldOffset=0x0)" P-INDEP
-;* V94 tmp75 [V94 ] ( 0, 0 ) int -> zero-ref single-def "field V56._length (fldOffset=0x8)" P-INDEP
-; V95 tmp76 [V95,T25] ( 3, 2.25) ref -> rax single-def "argument with side effect"
-; V96 tmp77 [V96,T21] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V97 tmp78 [V97,T26] ( 3, 2.25) ref -> rax single-def "argument with side effect"
-; V98 tmp79 [V98,T42] ( 2, 2 ) long -> rdi "Cast away GC"
-; V99 tmp80 [V99,T27] ( 3, 2.25) ref -> rax single-def "argument with side effect"
-; V100 PSPSym [V100,T57] ( 1, 1 ) long -> [rbp-0xD8] do-not-enreg[V] "PSPSym"
-; V101 cse0 [V101,T48] ( 3, 1.50) long -> [rbp-0x70] spill-single-def "CSE #06: conservative"
-; V102 cse1 [V102,T29] ( 4, 2 ) ref -> [rbp-0xC8] spill-single-def "CSE #08: conservative"
-; V103 cse2 [V103,T45] ( 3, 1.50) ref -> rdi "CSE #09: conservative"
-; V104 cse3 [V104,T46] ( 3, 1.50) ref -> rdi "CSE #10: conservative"
-; V105 rat0 [V105,T11] ( 5, 3.75) ref -> registers "replacement local"
-; V106 rat1 [V106,T50] ( 3, 1.25) long -> rdi "CSE for expectedClsNode"
-; V107 rat2 [V107,T12] ( 5, 3.75) ref -> registers "replacement local"
-; V108 rat3 [V108,T51] ( 3, 1.25) long -> rdi "CSE for expectedClsNode"
-; V109 rat4 [V109,T13] ( 5, 3.75) ref -> registers "replacement local"
-; V110 rat5 [V110,T52] ( 3, 1.25) long -> rdi "CSE for expectedClsNode"
-; V111 rat6 [V111,T22] ( 3, 3 ) ref -> rax "delegate invoke call"
+; V68 tmp49 [V68,T20] ( 3, 3 ) ref -> [rbp-0xB8] class-hnd exact spill-single-def "dup spill" <System.String[]>
+;* V69 tmp50 [V69 ] ( 0, 0 ) ref -> zero-ref
+; V70 tmp51 [V70,T42] ( 3, 1.50) ref -> rsi
+;* V71 tmp52 [V71 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.DirectoryServices.Protocols.LdapConnection>
+;* V72 tmp53 [V72 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.DirectoryServices.Protocols.LdapConnection>
+;* V73 tmp54 [V73 ] ( 0, 0 ) ref -> zero-ref
+;* V74 tmp55 [V74 ] ( 0, 0 ) ref -> zero-ref single-def
+;* V75 tmp56 [V75 ] ( 0, 0 ) int -> zero-ref single-def
+;* V76 tmp57 [V76 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
+;* V77 tmp58 [V77 ] ( 0, 0 ) ref -> zero-ref
+;* V78 tmp59 [V78 ] ( 0, 0 ) ref -> zero-ref
+;* V79 tmp60 [V79 ] ( 0, 0 ) long -> zero-ref
+;* V80 tmp61 [V80 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.ComAwareWeakReference+ComInfo>
+; V81 tmp62 [V81,T31] ( 4, 2 ) long -> rax "Inline stloc first use temp"
+; V82 tmp63 [V82,T29] ( 4, 2 ) ref -> registers class-hnd "Inline return value spill temp" <System.ComAwareWeakReference+ComInfo>
+; V83 tmp64 [V83,T58] ( 2, 1 ) ubyte -> rdi single-def "Inline return value spill temp"
+; V84 tmp65 [V84 ] ( 3, 1.50) byref -> [rbp-0x68] must-init pinned "Inline stloc first use temp"
+;* V85 tmp66 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Collections.Hashtable>
+;* V86 tmp67 [V86 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.IntPtr>
+;* V87 tmp68 [V87 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.DirectoryServices.Protocols.ReferralCallback>
+;* V88 tmp69 [V88 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.DirectoryServices.Protocols.ConnectionHandle>
+; V89 tmp70 [V89,T43] ( 3, 1.50) byref -> rdi "field V35._reference (fldOffset=0x0)" P-INDEP
+; V90 tmp71 [V90,T47] ( 3, 1.50) int -> rax "field V35._length (fldOffset=0x8)" P-INDEP
+;* V91 tmp72 [V91 ] ( 0, 0 ) byref -> zero-ref "field V37._reference (fldOffset=0x0)" P-INDEP
+;* V92 tmp73 [V92 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
+;* V93 tmp74 [V93 ] ( 0, 0 ) byref -> zero-ref single-def "field V39._reference (fldOffset=0x0)" P-INDEP
+;* V94 tmp75 [V94 ] ( 0, 0 ) int -> zero-ref single-def "field V39._length (fldOffset=0x8)" P-INDEP
+;* V95 tmp76 [V95 ] ( 0, 0 ) byref -> zero-ref single-def "field V43._reference (fldOffset=0x0)" P-INDEP
+;* V96 tmp77 [V96 ] ( 0, 0 ) int -> zero-ref single-def "field V43._length (fldOffset=0x8)" P-INDEP
+;* V97 tmp78 [V97 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP
+;* V98 tmp79 [V98 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
+;* V99 tmp80 [V99 ] ( 0, 0 ) byref -> zero-ref single-def "field V49._reference (fldOffset=0x0)" P-INDEP
+;* V100 tmp81 [V100 ] ( 0, 0 ) int -> zero-ref single-def "field V49._length (fldOffset=0x8)" P-INDEP
+;* V101 tmp82 [V101 ] ( 0, 0 ) byref -> zero-ref single-def "field V53._reference (fldOffset=0x0)" P-INDEP
+;* V102 tmp83 [V102 ] ( 0, 0 ) int -> zero-ref single-def "field V53._length (fldOffset=0x8)" P-INDEP
+;* V103 tmp84 [V103 ] ( 0, 0 ) byref -> zero-ref "field V56._reference (fldOffset=0x0)" P-INDEP
+;* V104 tmp85 [V104 ] ( 0, 0 ) int -> zero-ref "field V56._length (fldOffset=0x8)" P-INDEP
+;* V105 tmp86 [V105 ] ( 0, 0 ) byref -> zero-ref "field V58._reference (fldOffset=0x0)" P-INDEP
+;* V106 tmp87 [V106 ] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP
+; V107 tmp88 [V107,T55] ( 2, 1 ) byref -> rdi single-def "field V60._reference (fldOffset=0x0)" P-INDEP
+;* V108 tmp89 [V108 ] ( 0, 0 ) int -> zero-ref single-def "field V60._length (fldOffset=0x8)" P-INDEP
+;* V109 tmp90 [V109 ] ( 0, 0 ) byref -> zero-ref single-def "field V62._reference (fldOffset=0x0)" P-INDEP
+;* V110 tmp91 [V110 ] ( 0, 0 ) int -> zero-ref single-def "field V62._length (fldOffset=0x8)" P-INDEP
+; V111 tmp92 [V111,T56] ( 2, 1 ) byref -> rdi single-def "field V63._reference (fldOffset=0x0)" P-INDEP
+; V112 tmp93 [V112,T59] ( 2, 1 ) int -> rsi single-def "field V63._length (fldOffset=0x8)" P-INDEP
+; V113 tmp94 [V113,T26] ( 3, 2.25) ref -> rax single-def "argument with side effect"
+; V114 tmp95 [V114,T21] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
+; V115 tmp96 [V115,T27] ( 3, 2.25) ref -> rax single-def "argument with side effect"
+; V116 tmp97 [V116,T40] ( 2, 2 ) long -> rdi "Cast away GC"
+; V117 tmp98 [V117,T28] ( 3, 2.25) ref -> rax single-def "argument with side effect"
+; V118 PSPSym [V118,T60] ( 1, 1 ) long -> [rbp-0xD8] do-not-enreg[V] "PSPSym"
+; V119 cse0 [V119,T48] ( 3, 1.50) long -> [rbp-0x70] spill-single-def "CSE #07: conservative"
+; V120 cse1 [V120,T30] ( 4, 2 ) ref -> [rbp-0xC0] spill-single-def "CSE #09: conservative"
+; V121 cse2 [V121,T44] ( 3, 1.50) ref -> [rbp-0xC8] spill-single-def "CSE #05: conservative"
+; V122 cse3 [V122,T45] ( 3, 1.50) ref -> rdi "CSE #10: conservative"
+; V123 cse4 [V123,T46] ( 3, 1.50) ref -> rdi "CSE #11: conservative"
+; V124 rat0 [V124,T11] ( 5, 3.75) ref -> registers "replacement local"
+; V125 rat1 [V125,T50] ( 3, 1.25) long -> rdi "CSE for expectedClsNode"
+; V126 rat2 [V126,T12] ( 5, 3.75) ref -> registers "replacement local"
+; V127 rat3 [V127,T51] ( 3, 1.25) long -> rdi "CSE for expectedClsNode"
+; V128 rat4 [V128,T13] ( 5, 3.75) ref -> registers "replacement local"
+; V129 rat5 [V129,T52] ( 3, 1.25) long -> rdi "CSE for expectedClsNode"
+; V130 rat6 [V130,T22] ( 3, 3 ) ref -> rax "delegate invoke call"
;
; Lcl frame size = 184
G_M17757_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 184
lea rbp, [rsp+0xE0]
xor eax, eax
mov qword ptr [rbp-0x68], rax
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x60], ymm8
vmovdqa xmmword ptr [rbp-0x40], xmm8
mov qword ptr [rbp-0x30], rax
mov qword ptr [rbp-0xD8], rsp
mov rbx, rdi
mov r15, rdx
mov r14, r8
mov r13d, r9d
mov r12, qword ptr [rbp+0x20]
;; size=73 bbWeight=1 PerfScore 16.33
G_M17757_IG02:
xor eax, eax
mov qword ptr [r12], rax
;; size=6 bbWeight=1 PerfScore 1.25
G_M17757_IG03:
xor rdx, rdx
mov rax, gword ptr [rbx+0x10]
cmp gword ptr [rax+0x08], 0
jne SHORT G_M17757_IG06
;; size=13 bbWeight=1 PerfScore 6.25
G_M17757_IG04:
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M17757_IG05:
add rsp, 184
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0.50 PerfScore 2.12
G_M17757_IG06:
test rcx, rcx
mov gword ptr [rbp-0x78], rdx
je SHORT G_M17757_IG07
mov rdi, rcx
mov rax, 0xD1FFAB1E ; code for System.Runtime.InteropServices.Marshal:PtrToStringAnsi(long):System.String
call [rax]System.Runtime.InteropServices.Marshal:PtrToStringAnsi(long):System.String
mov gword ptr [rbp-0x78], rax
;; size=28 bbWeight=0.50 PerfScore 3.38
G_M17757_IG07:
xor rdi, rdi
mov gword ptr [rbp-0x50], rdi
mov rdi, 0xD1FFAB1E ; const ptr
- mov rdi, gword ptr [rdi]
+ mov rax, gword ptr [rdi]
+ mov gword ptr [rbp-0xC8], rax
+ mov rdi, rax
mov esi, 256
- mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this
- call [rax]System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this
+ mov rcx, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this
+ call [rcx]System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this
mov gword ptr [rbp-0x48], rax
test rax, rax
je SHORT G_M17757_IG08
lea rdi, bword ptr [rax+0x10]
mov eax, dword ptr [rax+0x08]
jmp SHORT G_M17757_IG09
- ;; size=54 bbWeight=0.50 PerfScore 6.88
+ ;; size=64 bbWeight=0.50 PerfScore 7.50
G_M17757_IG08:
xor rdi, rdi
xor eax, eax
;; size=4 bbWeight=0.50 PerfScore 0.25
G_M17757_IG09:
mov bword ptr [rbp-0x38], rdi
mov dword ptr [rbp-0x30], eax
xor edi, edi
mov dword ptr [rbp-0x40], edi
mov byte ptr [rbp-0x3C], 0
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Runtime.InteropServices.Marshal:PtrToStringUni(long):System.String
call [rax]System.Runtime.InteropServices.Marshal:PtrToStringUni(long):System.String
mov r14, rax
cmp byte ptr [rbp-0x3C], 0
jne SHORT G_M17757_IG10
test r14, r14
je SHORT G_M17757_IG10
mov edi, dword ptr [rbp-0x40]
cmp edi, dword ptr [rbp-0x30]
- ja G_M17757_IG40
+ ja G_M17757_IG41
mov rsi, bword ptr [rbp-0x38]
mov eax, edi
lea rax, bword ptr [rsi+2*rax]
mov esi, dword ptr [rbp-0x30]
sub esi, edi
cmp dword ptr [r14+0x08], esi
jbe SHORT G_M17757_IG11
;; size=78 bbWeight=0.50 PerfScore 11.62
G_M17757_IG10:
lea rdi, [rbp-0x50]
mov rsi, r14
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this
jmp SHORT G_M17757_IG12
;; size=21 bbWeight=0.50 PerfScore 3.00
G_M17757_IG11:
mov edx, dword ptr [r14+0x08]
add rdx, rdx
lea rsi, bword ptr [r14+0x0C]
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
mov edi, dword ptr [rbp-0x40]
add edi, dword ptr [r14+0x08]
mov dword ptr [rbp-0x40], edi
;; size=36 bbWeight=0.50 PerfScore 5.62
G_M17757_IG12:
mov edi, dword ptr [rbp-0x40]
cmp edi, dword ptr [rbp-0x30]
- ja G_M17757_IG40
+ ja G_M17757_IG41
mov rsi, bword ptr [rbp-0x38]
mov eax, edi
lea r14, bword ptr [rsi+2*rax]
mov esi, dword ptr [rbp-0x30]
sub esi, edi
jne SHORT G_M17757_IG13
lea rdi, [rbp-0x50]
mov rsi, 0xD1FFAB1E ; ':'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M17757_IG14
;; size=57 bbWeight=0.50 PerfScore 7.00
G_M17757_IG13:
mov word ptr [r14], 58
mov edi, dword ptr [rbp-0x40]
inc edi
mov dword ptr [rbp-0x40], edi
;; size=14 bbWeight=0.50 PerfScore 1.62
G_M17757_IG14:
lea rdi, [rbp-0x50]
mov esi, r13d
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
+ mov esi, dword ptr [rbp-0x40]
+ cmp esi, dword ptr [rbp-0x30]
+ ja G_M17757_IG41
+ mov rdi, bword ptr [rbp-0x38]
+ call System.String:.ctor(System.ReadOnlySpan`1[ushort]):this
+ mov r14, rax
+ mov rsi, gword ptr [rbp-0x48]
+ vxorps ymm0, ymm0, ymm0
+ vmovdqu ymmword ptr [rbp-0x50], ymm0
+ vmovdqu xmmword ptr [rbp-0x38], xmm0
+ test rsi, rsi
+ je SHORT G_M17757_IG15
+ mov rdi, gword ptr [rbp-0xC8]
+ xor edx, edx
+ mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[ushort]:Return(ushort[],ubyte):this
+ call [rax]System.Buffers.SharedArrayPool`1[ushort]:Return(ushort[],ubyte):this
+ ;; size=87 bbWeight=0.50 PerfScore 9.67
+G_M17757_IG15:
mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.LdapDirectoryIdentifier
call CORINFO_HELP_NEWSFAST
- mov r14, rax
- lea rdi, [rbp-0x50]
- mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
- call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
mov r13, rax
- test r13, r13
- je SHORT G_M17757_IG15
+ test r14, r14
+ je SHORT G_M17757_IG16
mov rdi, 0xD1FFAB1E ; System.String[]
mov esi, 1
call CORINFO_HELP_NEWARR_1_OBJ
mov rsi, rax
- mov gword ptr [rbp-0xC0], rsi
+ mov gword ptr [rbp-0xB8], rsi
lea rdi, bword ptr [rsi+0x10]
- mov rsi, r13
+ mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
- mov r13, gword ptr [rbp-0xC0]
- mov rsi, r13
- jmp SHORT G_M17757_IG16
- ;; size=115 bbWeight=0.50 PerfScore 9.25
-G_M17757_IG15:
+ mov r14, gword ptr [rbp-0xB8]
+ mov rsi, r14
+ jmp SHORT G_M17757_IG17
+ ;; size=77 bbWeight=0.50 PerfScore 5.25
+G_M17757_IG16:
xor rsi, rsi
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M17757_IG16:
- mov rdi, r14
+G_M17757_IG17:
+ mov rdi, r13
xor edx, edx
xor ecx, ecx
mov rax, 0xD1FFAB1E ; code for System.DirectoryServices.Protocols.LdapDirectoryIdentifier:.ctor(System.String[],ubyte,ubyte):this
call [rax]System.DirectoryServices.Protocols.LdapDirectoryIdentifier:.ctor(System.String[],ubyte,ubyte):this
mov rdi, rbx
mov rsi, qword ptr [rbp+0x10]
mov rax, 0xD1FFAB1E ; code for System.DirectoryServices.Protocols.LdapSessionOptions:ProcessSecAuthIdentity(ulong):System.Net.NetworkCredential:this
call [rax]System.DirectoryServices.Protocols.LdapSessionOptions:ProcessSecAuthIdentity(ulong):System.Net.NetworkCredential:this
- mov r13, rax
+ mov r14, rax
xor rax, rax
test r15, r15
- jne SHORT G_M17757_IG18
+ jne SHORT G_M17757_IG19
;; size=48 bbWeight=0.50 PerfScore 5.12
-G_M17757_IG17:
- mov r15, rax
- jmp G_M17757_IG37
- ;; size=8 bbWeight=0.25 PerfScore 0.56
G_M17757_IG18:
+ mov r15, rax
+ jmp G_M17757_IG38
+ ;; size=8 bbWeight=0.25 PerfScore 0.56
+G_M17757_IG19:
mov rsi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rsi]
mov gword ptr [rbp-0x88], rdi
xor esi, esi
mov dword ptr [rbp-0x58], esi
;; size=25 bbWeight=0.50 PerfScore 2.25
-G_M17757_IG19:
+G_M17757_IG20:
cmp byte ptr [rbp-0x58], 0
- jne G_M17757_IG35
+ jne G_M17757_IG36
lea rsi, [rbp-0x58]
call System.Threading.Monitor:ReliableEnter(System.Object,byref)
mov rdi, 0xD1FFAB1E ; System.IntPtr
call CORINFO_HELP_NEWSFAST
- mov rsi, 0xD1FFAB1E ; const ptr
- mov rcx, gword ptr [rsi]
- mov gword ptr [rbp-0xC8], rcx
- mov rdi, rcx
mov qword ptr [rax+0x08], r15
mov rsi, rax
- mov rax, 0xD1FFAB1E ; code for System.Collections.Hashtable:get_Item(System.Object):System.Object:this
- call [rax]System.Collections.Hashtable:get_Item(System.Object):System.Object:this
+ mov rdi, 0xD1FFAB1E ; const ptr
+ mov rax, gword ptr [rdi]
+ mov gword ptr [rbp-0xC0], rax
+ mov rdi, rax
+ mov rcx, 0xD1FFAB1E ; code for System.Collections.Hashtable:get_Item(System.Object):System.Object:this
+ call [rcx]System.Collections.Hashtable:get_Item(System.Object):System.Object:this
mov rcx, rax
test rcx, rcx
- je SHORT G_M17757_IG22
+ je SHORT G_M17757_IG23
;; size=84 bbWeight=0.50 PerfScore 7.62
-G_M17757_IG20:
+G_M17757_IG21:
mov rdi, 0xD1FFAB1E ; System.WeakReference
cmp qword ptr [rcx], rdi
- je SHORT G_M17757_IG22
+ je SHORT G_M17757_IG23
;; size=15 bbWeight=0.25 PerfScore 1.06
-G_M17757_IG21:
+G_M17757_IG22:
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
call [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
mov rcx, rax
;; size=18 bbWeight=0.12 PerfScore 0.47
-G_M17757_IG22:
+G_M17757_IG23:
mov rax, rcx
mov gword ptr [rbp-0x90], rax
test rax, rax
- je SHORT G_M17757_IG23
+ je SHORT G_M17757_IG24
mov rdi, rax
mov rcx, qword ptr [rax]
mov rcx, qword ptr [rcx+0x40]
mov qword ptr [rbp-0x70], rcx
call [rcx+0x30]System.WeakReference:get_IsAlive():ubyte:this
test eax, eax
- jne G_M17757_IG31
+ jne G_M17757_IG32
mov rdi, 0xD1FFAB1E ; System.IntPtr
call CORINFO_HELP_NEWSFAST
- mov rcx, gword ptr [rbp-0xC8]
- mov rdi, rcx
mov qword ptr [rax+0x08], r15
mov rsi, rax
+ mov rdi, gword ptr [rbp-0xC0]
mov rax, 0xD1FFAB1E ; code for System.Collections.Hashtable:Remove(System.Object):this
call [rax]System.Collections.Hashtable:Remove(System.Object):this
- ;; size=84 bbWeight=0.50 PerfScore 9.50
-G_M17757_IG23:
+ ;; size=81 bbWeight=0.50 PerfScore 9.38
+G_M17757_IG24:
mov rdi, gword ptr [rbx+0x08]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x20]System.DirectoryServices.Protocols.DirectoryConnection:get_Directory():System.DirectoryServices.Protocols.DirectoryIdentifier:this
mov rcx, rax
test rcx, rcx
- je SHORT G_M17757_IG26
+ je SHORT G_M17757_IG27
;; size=22 bbWeight=0.50 PerfScore 5.25
-G_M17757_IG24:
+G_M17757_IG25:
mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.LdapDirectoryIdentifier
cmp qword ptr [rcx], rdi
- je SHORT G_M17757_IG26
+ je SHORT G_M17757_IG27
;; size=15 bbWeight=0.25 PerfScore 1.06
-G_M17757_IG25:
+G_M17757_IG26:
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
call [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
mov rcx, rax
;; size=18 bbWeight=0.12 PerfScore 0.47
-G_M17757_IG26:
+G_M17757_IG27:
mov gword ptr [rbp-0x98], rcx
mov rdi, gword ptr [rbx+0x08]
mov rcx, gword ptr [rdi+0x08]
mov gword ptr [rbp-0xA0], rcx
mov edx, dword ptr [rdi+0x40]
mov dword ptr [rbp-0x5C], edx
mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.LdapConnection
call CORINFO_HELP_NEWFAST
mov gword ptr [rbp-0xA8], rax
mov rdi, rax
mov rsi, gword ptr [rbp-0x98]
mov rdx, gword ptr [rbp-0xA0]
mov ecx, dword ptr [rbp-0x5C]
mov r8, r15
mov r9, 0xD1FFAB1E ; code for System.DirectoryServices.Protocols.LdapConnection:.ctor(System.DirectoryServices.Protocols.LdapDirectoryIdentifier,System.Net.NetworkCredential,int,long):this
call [r9]System.DirectoryServices.Protocols.LdapConnection:.ctor(System.DirectoryServices.Protocols.LdapDirectoryIdentifier,System.Net.NetworkCredential,int,long):this
mov rax, gword ptr [rbp-0xA8]
mov gword ptr [rbp-0x80], rax
mov rdi, 0xD1FFAB1E ; System.IntPtr
call CORINFO_HELP_NEWSFAST
mov gword ptr [rbp-0xB0], rax
- mov rcx, gword ptr [rbp-0xC8]
- mov gword ptr [rbp-0xB8], rcx
mov qword ptr [rax+0x08], r15
mov rdi, 0xD1FFAB1E ; System.WeakReference
call CORINFO_HELP_NEWFAST
mov r15, rax
mov rdi, gword ptr [rbp-0x80]
xor esi, esi
call System.Runtime.InteropServices.GCHandle:_InternalAlloc(System.Object,int):long
test rax, rax
- jne SHORT G_M17757_IG27
+ jne SHORT G_M17757_IG28
mov rdi, gword ptr [rbp-0x80]
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Runtime.InteropServices.GCHandle:InternalAllocWithGCTransition(System.Object,int):long
call [rax]System.Runtime.InteropServices.GCHandle:InternalAllocWithGCTransition(System.Object,int):long
- ;; size=189 bbWeight=0.50 PerfScore 17.38
-G_M17757_IG27:
+ ;; size=175 bbWeight=0.50 PerfScore 16.38
+G_M17757_IG28:
mov qword ptr [r15+0x08], rax
mov rax, gword ptr [rbp-0x80]
lea rdi, bword ptr [rax+0x08]
mov bword ptr [rbp-0x68], rdi
mov rdi, bword ptr [rbp-0x68]
mov edi, dword ptr [rdi-0x0C]
and edi, 0xD1FFAB1E
cmp edi, 0xD1FFAB1E
sete dil
movzx rdi, dil
xor rcx, rcx
mov bword ptr [rbp-0x68], rcx
test edi, edi
- je SHORT G_M17757_IG28
+ je SHORT G_M17757_IG29
mov gword ptr [rbp-0x80], rax
mov rdi, rax
mov rcx, 0xD1FFAB1E ; code for System.ComAwareWeakReference+ComInfo:FromObjectSlow(System.Object):System.ComAwareWeakReference+ComInfo
call [rcx]System.ComAwareWeakReference+ComInfo:FromObjectSlow(System.Object):System.ComAwareWeakReference+ComInfo
mov rcx, rax
mov rax, gword ptr [rbp-0x80]
- jmp SHORT G_M17757_IG29
+ jmp SHORT G_M17757_IG30
;; size=81 bbWeight=0.50 PerfScore 9.25
-G_M17757_IG28:
+G_M17757_IG29:
xor rdi, rdi
xor rcx, rcx
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M17757_IG29:
+G_M17757_IG30:
test rcx, rcx
mov gword ptr [rbp-0x80], rax
- je SHORT G_M17757_IG30
+ je SHORT G_M17757_IG31
lea rdi, bword ptr [r15+0x08]
mov rsi, rcx
mov rcx, 0xD1FFAB1E ; code for System.ComAwareWeakReference:SetComInfoInConstructor(byref,System.ComAwareWeakReference+ComInfo)
call [rcx]System.ComAwareWeakReference:SetComInfoInConstructor(byref,System.ComAwareWeakReference+ComInfo)
;; size=28 bbWeight=0.50 PerfScore 3.12
-G_M17757_IG30:
+G_M17757_IG31:
mov rsi, gword ptr [rbp-0xB0]
- mov rdi, gword ptr [rbp-0xB8]
+ mov rdi, gword ptr [rbp-0xC0]
mov rdx, r15
mov ecx, 1
mov rax, 0xD1FFAB1E ; code for System.Collections.Hashtable:Insert(System.Object,System.Object,ubyte):this
call [rax]System.Collections.Hashtable:Insert(System.Object,System.Object,ubyte):this
mov r15, gword ptr [rbp-0x80]
- jmp SHORT G_M17757_IG36
+ jmp SHORT G_M17757_IG37
;; size=40 bbWeight=0.50 PerfScore 4.38
-G_M17757_IG31:
+G_M17757_IG32:
mov rdi, gword ptr [rbp-0x90]
mov r15, qword ptr [rbp-0x70]
call [r15+0x38]System.WeakReference:get_Target():System.Object:this
mov rcx, rax
test rcx, rcx
- je SHORT G_M17757_IG34
+ je SHORT G_M17757_IG35
;; size=23 bbWeight=0.50 PerfScore 3.25
-G_M17757_IG32:
+G_M17757_IG33:
mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.LdapConnection
cmp qword ptr [rcx], rdi
- je SHORT G_M17757_IG34
+ je SHORT G_M17757_IG35
;; size=15 bbWeight=0.25 PerfScore 1.06
-G_M17757_IG33:
+G_M17757_IG34:
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
call [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
mov rcx, rax
;; size=18 bbWeight=0.12 PerfScore 0.47
-G_M17757_IG34:
- mov r15, rcx
- jmp SHORT G_M17757_IG36
- ;; size=5 bbWeight=0.50 PerfScore 1.12
G_M17757_IG35:
+ mov r15, rcx
+ jmp SHORT G_M17757_IG37
+ ;; size=5 bbWeight=0.50 PerfScore 1.12
+G_M17757_IG36:
mov rax, 0xD1FFAB1E ; code for System.Threading.Monitor:ThrowLockTakenException()
call [rax]System.Threading.Monitor:ThrowLockTakenException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M17757_IG36:
+G_M17757_IG37:
cmp byte ptr [rbp-0x58], 0
- je SHORT G_M17757_IG37
+ je SHORT G_M17757_IG38
mov rdi, gword ptr [rbp-0x88]
call System.Threading.Monitor:Exit(System.Object)
;; size=18 bbWeight=0.50 PerfScore 2.50
-G_M17757_IG37:
+G_M17757_IG38:
mov rsi, bword ptr [rbp+0x18]
mov edx, dword ptr [rsi]
movsxd rsi, dword ptr [rsi+0x04]
shl rsi, 32
add rsi, rdx
mov qword ptr [rsp], rsi
mov rsi, gword ptr [rbx+0x10]
mov rax, gword ptr [rsi+0x08]
mov rsi, gword ptr [rbx+0x08]
mov rdx, r15
mov rcx, gword ptr [rbp-0x78]
- mov r8, r14
- mov r9, r13
+ mov r8, r13
+ mov r9, r14
mov rdi, gword ptr [rax+0x08]
call [rax+0x18]System.DirectoryServices.Protocols.QueryForConnectionCallback:Invoke(System.DirectoryServices.Protocols.LdapConnection,System.DirectoryServices.Protocols.LdapConnection,System.String,System.DirectoryServices.Protocols.LdapDirectoryIdentifier,System.Net.NetworkCredential,long):System.DirectoryServices.Protocols.LdapConnection:this
mov rbx, rax
test rbx, rbx
- je SHORT G_M17757_IG38
+ je SHORT G_M17757_IG39
mov rdi, gword ptr [rbx+0x28]
test rdi, rdi
- je SHORT G_M17757_IG38
+ je SHORT G_M17757_IG39
mov rax, 0xD1FFAB1E ; code for Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid:get_IsInvalid():ubyte:this
cmp dword ptr [rdi], edi
call [rax]Microsoft.Win32.SafeHandles.SafeHandleZeroOrMinusOneIsInvalid:get_IsInvalid():ubyte:this
test eax, eax
- jne SHORT G_M17757_IG38
+ jne SHORT G_M17757_IG39
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.DirectoryServices.Protocols.LdapSessionOptions:AddLdapHandleRef(System.DirectoryServices.Protocols.LdapConnection):ubyte
call [rax]System.DirectoryServices.Protocols.LdapSessionOptions:AddLdapHandleRef(System.DirectoryServices.Protocols.LdapConnection):ubyte
test eax, eax
- je SHORT G_M17757_IG38
+ je SHORT G_M17757_IG39
mov rax, gword ptr [rbx+0x28]
mov rax, qword ptr [rax+0x08]
mov qword ptr [r12], rax
;; size=119 bbWeight=0.50 PerfScore 21.75
-G_M17757_IG38:
+G_M17757_IG39:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M17757_IG39:
+G_M17757_IG40:
add rsp, 184
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0.50 PerfScore 2.12
-G_M17757_IG40:
+G_M17757_IG41:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M17757_IG41:
+G_M17757_IG42:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
mov rbp, qword ptr [rdi+0x08]
mov qword ptr [rsp+0x08], rbp
lea rbp, [rbp+0xE0]
;; size=30 bbWeight=0 PerfScore 0.00
-G_M17757_IG42:
+G_M17757_IG43:
cmp byte ptr [rbp-0x58], 0
- je SHORT G_M17757_IG43
+ je SHORT G_M17757_IG44
mov rdi, gword ptr [rbp-0x88]
call System.Threading.Monitor:Exit(System.Object)
;; size=18 bbWeight=0 PerfScore 0.00
-G_M17757_IG43:
+G_M17757_IG44:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M17757_IG44:
+G_M17757_IG45:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1511, prolog size 73, PerfScore 174.99, instruction count 379, allocated bytes for code 1511 (MethodHash=9408baa2) for method System.DirectoryServices.Protocols.LdapSessionOptions:ProcessQueryConnection(long,long,long,long,int,ulong,ulong,ulong):int:this (FullOpts)
+; Total bytes of code 1553, prolog size 73, PerfScore 180.16, instruction count 390, allocated bytes for code 1553 (MethodHash=9408baa2) for method System.DirectoryServices.Protocols.LdapSessionOptions:ProcessQueryConnection(long,long,long,long,int,ulong,ulong,ulong):int:this (FullOpts)
; ============================================================ 12 (3.46 % of base) - System.Net.Mail.MailMessage:.ctor(System.String,System.String):this ; Assembly listing for method System.Net.Mail.MailMessage:.ctor(System.String,System.String):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 8, 6.50) ref -> rbx this class-hnd single-def <System.Net.Mail.MailMessage>
; V01 arg1 [V01,T01] ( 6, 4.50) ref -> r15 class-hnd single-def <System.String>
; V02 arg2 [V02,T02] ( 6, 4.50) ref -> r14 class-hnd single-def <System.String>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T03] ( 3, 6 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Net.Mail.Message>
-;* V05 tmp2 [V05,T16] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V06 tmp3 [V06,T17] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V05 tmp2 [V05,T15] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V06 tmp3 [V06,T16] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
-; V08 tmp5 [V08,T05] ( 2, 2 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.Net.Mail.Message>
-; V09 tmp6 [V09,T06] ( 2, 2 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.Net.NetEventSource>
-; V10 tmp7 [V10,T07] ( 2, 2 ) ref -> r13 class-hnd exact single-def "impAppendStmt" <System.String>
-; V11 tmp8 [V11,T08] ( 2, 2 ) ref -> rbx class-hnd exact single-def "impAppendStmt" <System.String>
+; V08 tmp5 [V08,T04] ( 2, 2 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.Net.Mail.Message>
+; V09 tmp6 [V09,T05] ( 2, 2 ) ref -> r15 class-hnd exact single-def "impAppendStmt" <System.String>
+; V10 tmp7 [V10,T06] ( 2, 2 ) ref -> rbx class-hnd exact single-def "impAppendStmt" <System.String>
+; V11 tmp8 [V11,T07] ( 2, 2 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.Net.NetEventSource>
;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" <System.String>
-; V13 tmp10 [V13,T10] ( 2, 1 ) ref -> rdi single-def
-;* V14 tmp11 [V14,T13] ( 0, 0 ) int -> zero-ref
-; V15 tmp12 [V15,T11] ( 2, 1 ) ref -> rdx single-def
-;* V16 tmp13 [V16,T12] ( 0, 0 ) ref -> zero-ref single-def
-; V17 tmp14 [V17,T09] ( 2, 2 ) ref -> r9 class-hnd exact single-def "Inlining Arg" <System.String>
-; V18 tmp15 [V18,T14] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V19 tmp16 [V19,T15] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V20 cse0 [V20,T04] ( 3, 2.50) ref -> r14 "CSE #01: moderate"
+; V13 tmp10 [V13,T09] ( 2, 1 ) ref -> rdi single-def
+;* V14 tmp11 [V14,T12] ( 0, 0 ) int -> zero-ref
+; V15 tmp12 [V15,T10] ( 2, 1 ) ref -> rdx single-def
+;* V16 tmp13 [V16,T11] ( 0, 0 ) ref -> zero-ref single-def
+; V17 tmp14 [V17,T08] ( 2, 2 ) ref -> r9 class-hnd exact single-def "Inlining Arg" <System.String>
+; V18 tmp15 [V18,T13] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V19 tmp16 [V19,T14] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
;
; Lcl frame size = 0
G_M48074_IG01:
push rbp
push r15
push r14
push r13
push rbx
lea rbp, [rsp+0x20]
mov rbx, rdi
mov r15, rsi
mov r14, rdx
;; size=22 bbWeight=1 PerfScore 6.25
G_M48074_IG02:
mov rdi, 0xD1FFAB1E ; ''
mov gword ptr [rbx+0x20], rdi
mov dword ptr [rbx+0x38], -1
test r15, r15
je G_M48074_IG11
;; size=30 bbWeight=1 PerfScore 3.50
G_M48074_IG03:
cmp dword ptr [r15+0x08], 0
je G_M48074_IG11
;; size=11 bbWeight=0.50 PerfScore 2.00
G_M48074_IG04:
test r14, r14
je G_M48074_IG10
;; size=9 bbWeight=1 PerfScore 1.25
G_M48074_IG05:
cmp dword ptr [r14+0x08], 0
je G_M48074_IG10
;; size=11 bbWeight=0.50 PerfScore 2.00
G_M48074_IG06:
mov rdi, 0xD1FFAB1E ; System.Net.Mail.Message
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov rdi, r13
mov rsi, r15
mov rdx, r14
mov rax, 0xD1FFAB1E ; code for System.Net.Mail.Message:.ctor(System.String,System.String):this
call [rax]System.Net.Mail.Message:.ctor(System.String,System.String):this
lea rdi, bword ptr [rbx+0x30]
mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; const ptr
- mov r14, gword ptr [rdi]
- cmp byte ptr [r14+0x9D], 0
+ mov rdi, gword ptr [rdi]
+ cmp byte ptr [rdi+0x9D], 0
jne SHORT G_M48074_IG08
- ;; size=74 bbWeight=1 PerfScore 13.50
+ ;; size=73 bbWeight=1 PerfScore 13.50
G_M48074_IG07:
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
;; size=9 bbWeight=0.50 PerfScore 1.75
G_M48074_IG08:
- mov r15, gword ptr [rbx+0x30]
+ mov r14, gword ptr [rbx+0x30]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String
call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String
- mov r13, rax
+ mov r15, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String
call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String
mov rbx, rax
- mov rdi, r15
+ mov rdi, 0xD1FFAB1E ; const ptr
+ mov r13, gword ptr [rdi]
+ mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String
call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String
mov r9, rax
- mov rdi, r14
- mov rdx, r13
+ mov rdi, r13
+ mov rdx, r15
mov esi, 3
mov rcx, 0xD1FFAB1E ; '.ctor'
mov r8, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:WriteEvent(int,System.String,System.String,System.String,System.String):this
- ;; size=92 bbWeight=0.50 PerfScore 7.38
+ ;; size=105 bbWeight=0.50 PerfScore 8.50
G_M48074_IG09:
pop rbx
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Net.NetEventSource:WriteEvent(int,System.String,System.String,System.String,System.String):this
;; size=11 bbWeight=0.50 PerfScore 2.25
G_M48074_IG10:
mov edi, 0x13FD
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rsi, rax
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)
call [rax]System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)
int3
;; size=39 bbWeight=0 PerfScore 0.00
G_M48074_IG11:
mov edi, 0x13F3
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rsi, rax
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)
call [rax]System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String)
int3
;; size=39 bbWeight=0 PerfScore 0.00
-; Total bytes of code 347, prolog size 13, PerfScore 39.88, instruction count 82, allocated bytes for code 347 (MethodHash=398c4435) for method System.Net.Mail.MailMessage:.ctor(System.String,System.String):this (FullOpts)
+; Total bytes of code 359, prolog size 13, PerfScore 41.00, instruction count 84, allocated bytes for code 359 (MethodHash=398c4435) for method System.Net.Mail.MailMessage:.ctor(System.String,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/2ebd2fb1b7b35143703ea3b8991d9048 |
Top method improvements-157 (-10.14 % of base) - System.Net.HttpListenerResponse:SendHeaders(ubyte,System.IO.MemoryStream,ubyte):this ; Assembly listing for method System.Net.HttpListenerResponse:SendHeaders(ubyte,System.IO.MemoryStream,ubyte):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 38 single block inlinees; 11 inlinees without PGO data
+; 0 inlinees with PGO data; 36 single block inlinees; 9 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 39, 23 ) ref -> rbx this class-hnd single-def <System.Net.HttpListenerResponse>
-; V01 arg1 [V01,T06] ( 3, 2.50) ubyte -> r13 single-def
+; V01 arg1 [V01,T05] ( 3, 2.50) ubyte -> r13 single-def
; V02 arg2 [V02,T02] ( 7, 7 ) ref -> r15 class-hnd single-def <System.IO.MemoryStream>
-; V03 arg3 [V03,T04] ( 4, 4 ) ubyte -> r14 single-def
-; V04 loc0 [V04,T09] ( 3, 3 ) ref -> r13 class-hnd exact single-def <System.Text.UTF8Encoding+UTF8EncodingSealed>
-; V05 loc1 [V05,T10] ( 3, 3 ) ref -> rax class-hnd single-def <ubyte[]>
+; V03 arg3 [V03,T03] ( 4, 4 ) ubyte -> r14 single-def
+; V04 loc0 [V04,T08] ( 3, 3 ) ref -> r13 class-hnd exact single-def <System.Text.UTF8Encoding+UTF8EncodingSealed>
+; V05 loc1 [V05,T09] ( 3, 3 ) ref -> rax class-hnd single-def <ubyte[]>
;* V06 loc2 [V06 ] ( 0, 0 ) int -> zero-ref
-; V07 loc3 [V07,T07] ( 8, 4 ) ubyte -> r13
+; V07 loc3 [V07,T06] ( 8, 4 ) ubyte -> r13
;* V08 loc4 [V08 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.DateTime>
;* V09 loc5 [V09 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op <System.ReadOnlySpan`1[ubyte]>
;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V11 tmp1 [V11,T01] ( 9, 18 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.IO.StreamWriter>
-; V12 tmp2 [V12,T05] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.Int32>
+; V12 tmp2 [V12,T04] ( 3, 6 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.Int32>
;* V13 tmp3 [V13 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.ReadOnlySpan`1[ubyte]>
-; V14 tmp4 [V14,T35] ( 3, 1.50) int -> rax
-; V15 tmp5 [V15,T11] ( 3, 3 ) ref -> r13 class-hnd single-def "impAppendStmt" <System.Net.WebHeaderCollection>
-; V16 tmp6 [V16,T25] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
+; V14 tmp4 [V14,T30] ( 3, 1.50) int -> rax
+; V15 tmp5 [V15,T10] ( 3, 3 ) ref -> r13 class-hnd single-def "impAppendStmt" <System.Net.WebHeaderCollection>
+;* V16 tmp6 [V16 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V17 tmp7 [V17 ] ( 0, 0 ) ref -> zero-ref
;* V18 tmp8 [V18 ] ( 0, 0 ) ref -> zero-ref single-def
-; V19 tmp9 [V19,T38] ( 2, 1 ) int -> rdi
-; V20 tmp10 [V20,T12] ( 3, 3 ) ref -> r12 class-hnd single-def "impAppendStmt" <System.Net.WebHeaderCollection>
+; V19 tmp9 [V19,T33] ( 2, 1 ) int -> rdi
+; V20 tmp10 [V20,T11] ( 3, 3 ) ref -> r12 class-hnd single-def "impAppendStmt" <System.Net.WebHeaderCollection>
;* V21 tmp11 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Net.WebHeaderCollection>
;* V22 tmp12 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Net.WebHeaderCollection>
-; V23 tmp13 [V23,T26] ( 2, 2 ) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+;* V23 tmp13 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureInfo>
;* V24 tmp14 [V24 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.DateTime>
-;* V25 tmp15 [V25 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
-;* V26 tmp16 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpListenerContext>
-;* V27 tmp17 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpListenerRequest>
-;* V28 tmp18 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V29 tmp19 [V29,T13] ( 3, 3 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <System.Version>
-; V30 tmp20 [V30,T27] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.Version>
-;* V31 tmp21 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpListenerResponse>
-; V32 tmp22 [V32,T28] ( 2, 2 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.Net.HttpListenerResponse>
-; V33 tmp23 [V33,T29] ( 2, 2 ) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
-; V34 tmp24 [V34,T37] ( 2, 1 ) ref -> rdx class-hnd single-def "Inline return value spill temp" <System.String>
-; V35 tmp25 [V35,T33] ( 2, 2 ) long -> rdi "Inlining Arg"
-;* V36 tmp26 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-;* V37 tmp27 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
-;* V38 tmp28 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpListenerContext>
-;* V39 tmp29 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpListenerContext>
-;* V40 tmp30 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpConnection>
+;* V25 tmp15 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureInfo>
+;* V26 tmp16 [V26 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
+;* V27 tmp17 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpListenerContext>
+;* V28 tmp18 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpListenerRequest>
+;* V29 tmp19 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V30 tmp20 [V30,T12] ( 3, 3 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <System.Version>
+; V31 tmp21 [V31,T23] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.Version>
+;* V32 tmp22 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpListenerResponse>
+; V33 tmp23 [V33,T24] ( 2, 2 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.Net.HttpListenerResponse>
+;* V34 tmp24 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Globalization.CultureInfo>
+; V35 tmp25 [V35,T32] ( 2, 1 ) ref -> rdx class-hnd single-def "Inline return value spill temp" <System.String>
+; V36 tmp26 [V36,T28] ( 2, 2 ) long -> rdi "Inlining Arg"
+; V37 tmp27 [V37,T25] ( 2, 2 ) ref -> rdx class-hnd exact single-def "Inlining Arg" <System.Globalization.CultureInfo>
+;* V38 tmp28 [V38 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+;* V39 tmp29 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Globalization.NumberFormatInfo>
+;* V40 tmp30 [V40 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpListenerContext>
;* V41 tmp31 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpListenerContext>
-;* V42 tmp32 [V42 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpListenerRequest>
-;* V43 tmp33 [V43 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V44 tmp34 [V44,T14] ( 3, 3 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <System.Version>
-; V45 tmp35 [V45,T30] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.Version>
-; V46 tmp36 [V46,T03] ( 6, 6 ) ref -> r12 class-hnd single-def "Inlining Arg" <System.Net.WebHeaderCollection>
-; V47 tmp37 [V47,T44] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
-;* V48 tmp38 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V49 tmp39 [V49 ] ( 2, 4 ) ref -> [rbp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
-;* V50 tmp40 [V50 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
-;* V51 tmp41 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Object>
-;* V52 tmp42 [V52 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <System.IFormatProvider>
-;* V53 tmp43 [V53 ] ( 0, 0 ) ref -> zero-ref
-;* V54 tmp44 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
-;* V55 tmp45 [V55 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V56 tmp46 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
-;* V57 tmp47 [V57 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V58 tmp48 [V58 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V59 tmp49 [V59,T39] ( 2, 1 ) long -> rdi "field V08._dateData (fldOffset=0x0)" P-INDEP
-; V60 tmp50 [V60,T40] ( 1, 1 ) byref -> rax "field V09._reference (fldOffset=0x0)" P-INDEP
-; V61 tmp51 [V61,T34] ( 2, 2 ) int -> r13 "field V09._length (fldOffset=0x8)" P-INDEP
-;* V62 tmp52 [V62 ] ( 0, 0 ) byref -> zero-ref "field V13._reference (fldOffset=0x0)" P-DEP
-;* V63 tmp53 [V63 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-DEP
-;* V64 tmp54 [V64 ] ( 0, 0 ) long -> zero-ref "field V24._dateData (fldOffset=0x0)" P-INDEP
-;* V65 tmp55 [V65,T43] ( 0, 0 ) long -> zero-ref "field V25._ticks (fldOffset=0x0)" P-INDEP
-;* V66 tmp56 [V66,T41] ( 0, 0 ) byref -> zero-ref single-def "field V50._reference (fldOffset=0x0)" P-INDEP
-;* V67 tmp57 [V67,T42] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP
+;* V42 tmp32 [V42 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpConnection>
+;* V43 tmp33 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpListenerContext>
+;* V44 tmp34 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.HttpListenerRequest>
+;* V45 tmp35 [V45 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V46 tmp36 [V46,T13] ( 3, 3 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <System.Version>
+; V47 tmp37 [V47,T26] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.Version>
+; V48 tmp38 [V48 ] ( 2, 4 ) ref -> [rbp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
+;* V49 tmp39 [V49 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
+;* V50 tmp40 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Object>
+;* V51 tmp41 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" <System.IFormatProvider>
+;* V52 tmp42 [V52 ] ( 0, 0 ) ref -> zero-ref
+;* V53 tmp43 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
+;* V54 tmp44 [V54 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V55 tmp45 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Threading.Tasks.Task>
+;* V56 tmp46 [V56 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V57 tmp47 [V57 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+; V58 tmp48 [V58,T34] ( 2, 1 ) long -> rdi "field V08._dateData (fldOffset=0x0)" P-INDEP
+; V59 tmp49 [V59,T35] ( 1, 1 ) byref -> rax "field V09._reference (fldOffset=0x0)" P-INDEP
+; V60 tmp50 [V60,T29] ( 2, 2 ) int -> r13 "field V09._length (fldOffset=0x8)" P-INDEP
+;* V61 tmp51 [V61 ] ( 0, 0 ) byref -> zero-ref "field V13._reference (fldOffset=0x0)" P-DEP
+;* V62 tmp52 [V62 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-DEP
+;* V63 tmp53 [V63 ] ( 0, 0 ) long -> zero-ref "field V24._dateData (fldOffset=0x0)" P-INDEP
+;* V64 tmp54 [V64,T38] ( 0, 0 ) long -> zero-ref "field V26._ticks (fldOffset=0x0)" P-INDEP
+;* V65 tmp55 [V65,T36] ( 0, 0 ) byref -> zero-ref single-def "field V49._reference (fldOffset=0x0)" P-INDEP
+;* V66 tmp56 [V66,T37] ( 0, 0 ) int -> zero-ref "field V49._length (fldOffset=0x8)" P-INDEP
+; V67 tmp57 [V67,T14] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
; V68 tmp58 [V68,T15] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
; V69 tmp59 [V69,T16] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V70 tmp60 [V70,T17] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V71 tmp61 [V71,T31] ( 2, 2 ) ref -> rdx single-def "argument with side effect"
+; V70 tmp60 [V70,T27] ( 2, 2 ) ref -> rdx single-def "argument with side effect"
+; V71 tmp61 [V71,T17] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
; V72 tmp62 [V72,T18] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
; V73 tmp63 [V73,T19] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
; V74 tmp64 [V74,T20] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V75 tmp65 [V75,T21] ( 3, 3 ) ref -> rsi single-def "arr expr"
-; V76 tmp66 [V76,T32] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
-; V77 tmp67 [V77,T22] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-;* V78 tmp68 [V78 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
-; V79 tmp69 [V79,T08] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
-; V80 tmp70 [V80,T45] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V81 cse0 [V81,T24] ( 4, 2 ) int -> rdi "CSE #05: moderate"
-; V82 cse1 [V82,T36] ( 3, 1.50) int -> rdi "CSE #03: conservative"
-; V83 rat0 [V83,T23] ( 3, 3.00) int -> rax "ReplaceWithLclVar is creating a new local variable"
+;* V75 tmp65 [V75 ] ( 0, 0 ) ref -> zero-ref "argument with side effect"
+; V76 tmp66 [V76,T07] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
+; V77 cse0 [V77,T22] ( 4, 2 ) int -> rdi "CSE #05: moderate"
+; V78 cse1 [V78,T31] ( 3, 1.50) int -> rdi "CSE #03: conservative"
+; V79 rat0 [V79,T21] ( 3, 3.00) int -> rax "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 8
G_M40620_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
xor eax, eax
mov qword ptr [rbp-0x30], rax
mov rbx, rdi
mov r13d, esi
mov r15, rdx
mov r14d, ecx
;; size=34 bbWeight=1 PerfScore 9.75
G_M40620_IG02:
test r14b, r14b
- jne G_M40620_IG30
+ jne G_M40620_IG28
;; size=9 bbWeight=1 PerfScore 1.25
G_M40620_IG03:
mov rdi, gword ptr [rbx+0x28]
mov rsi, 0xD1FFAB1E ; 'Server'
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x48]
call [rax+0x38]System.Collections.Specialized.NameValueCollection:Get(System.String):System.String:this
test rax, rax
jne SHORT G_M40620_IG04
mov rdi, gword ptr [rbx+0x28]
mov rsi, 0xD1FFAB1E ; 'Server'
mov rdx, 0xD1FFAB1E ; 'Microsoft-NetCore/2.0'
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x50]
call [rax+0x08]System.Collections.Specialized.NameValueCollection:Set(System.String,System.String):this
;; size=63 bbWeight=0.50 PerfScore 10.00
G_M40620_IG04:
mov rdi, gword ptr [rbx+0x28]
mov rsi, 0xD1FFAB1E ; 'Date'
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x48]
call [rax+0x38]System.Collections.Specialized.NameValueCollection:Get(System.String):System.String:this
test rax, rax
jne SHORT G_M40620_IG05
mov r12, gword ptr [rbx+0x28]
mov rax, 0xD1FFAB1E ; code for System.DateTime:get_UtcNow():System.DateTime
call [rax]System.DateTime:get_UtcNow():System.DateTime
mov rdi, rax
- mov rcx, 0xD1FFAB1E ; const ptr
- mov rdx, gword ptr [rcx]
+ mov rdx, 0xD1FFAB1E ; const ptr
+ mov rdx, gword ptr [rdx]
mov rcx, 0xD1FFAB1E
mov rsi, 0xD1FFAB1E ; 'r'
mov rax, 0xD1FFAB1E ; code for System.DateTimeFormat:Format(System.DateTime,System.String,System.IFormatProvider,System.TimeSpan):System.String
call [rax]System.DateTimeFormat:Format(System.DateTime,System.String,System.IFormatProvider,System.TimeSpan):System.String
mov rdx, rax
mov rdi, r12
mov rsi, 0xD1FFAB1E ; 'Date'
mov rax, qword ptr [r12]
mov rax, qword ptr [rax+0x50]
call [rax+0x08]System.Collections.Specialized.NameValueCollection:Set(System.String,System.String):this
;; size=120 bbWeight=0.50 PerfScore 14.88
G_M40620_IG05:
cmp dword ptr [rbx+0x50], 4
jne G_M40620_IG12
mov rdi, gword ptr [rbx+0x10]
mov rdi, gword ptr [rdi+0x20]
mov r12, gword ptr [rdi+0x20]
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
- je G_M40620_IG33
+ je G_M40620_IG31
;; size=41 bbWeight=0.50 PerfScore 7.12
G_M40620_IG06:
mov rdi, 0xD1FFAB1E ; data for System.Net.HttpVersion:Version10
mov rsi, gword ptr [rdi]
test r12, r12
je SHORT G_M40620_IG07
mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.Version:CompareTo(System.Version):int:this
call [rax]System.Version:CompareTo(System.Version):int:this
test eax, eax
jg SHORT G_M40620_IG08
;; size=37 bbWeight=0.50 PerfScore 4.12
G_M40620_IG07:
mov byte ptr [rbx+0x58], 0
jmp SHORT G_M40620_IG09
;; size=6 bbWeight=0.50 PerfScore 1.50
G_M40620_IG08:
mov dword ptr [rbx+0x50], 1
;; size=7 bbWeight=0.50 PerfScore 0.50
G_M40620_IG09:
mov rdi, gword ptr [rbx+0x10]
mov rax, 0xD1FFAB1E ; code for System.Net.HttpListenerContext:get_Response():System.Net.HttpListenerResponse:this
cmp dword ptr [rdi], edi
call [rax]System.Net.HttpListenerContext:get_Response():System.Net.HttpListenerResponse:this
mov edi, dword ptr [rax+0x54]
mov rax, 0xD1FFAB1E ; code for System.Net.HttpListenerResponse:CanSendResponseBody(int):ubyte
call [rax]System.Net.HttpListenerResponse:CanSendResponseBody(int):ubyte
test eax, eax
jne SHORT G_M40620_IG11
xor edi, edi
mov dword ptr [rbx+0x50], edi
;; size=42 bbWeight=0.50 PerfScore 8.00
G_M40620_IG10:
mov qword ptr [rbx+0x48], rdi
jmp SHORT G_M40620_IG12
;; size=6 bbWeight=0.50 PerfScore 1.50
G_M40620_IG11:
mov qword ptr [rbx+0x48], -1
;; size=8 bbWeight=0.50 PerfScore 0.50
G_M40620_IG12:
mov edi, dword ptr [rbx+0x50]
cmp edi, 1
je G_M40620_IG14
test edi, edi
setne dil
movzx rdi, dil
movzx rax, r13b
test edi, eax
je SHORT G_M40620_IG13
mov rdi, gword ptr [rbx+0x10]
mov rax, 0xD1FFAB1E ; code for System.Net.HttpListenerContext:get_Response():System.Net.HttpListenerResponse:this
cmp dword ptr [rdi], edi
call [rax]System.Net.HttpListenerContext:get_Response():System.Net.HttpListenerResponse:this
mov edi, dword ptr [rax+0x54]
mov rax, 0xD1FFAB1E ; code for System.Net.HttpListenerResponse:CanSendResponseBody(int):ubyte
call [rax]System.Net.HttpListenerResponse:CanSendResponseBody(int):ubyte
mov edi, -1
xor edx, edx
test eax, eax
cmove edi, edx
movsxd rdi, edi
mov qword ptr [rbx+0x48], rdi
;; size=82 bbWeight=0.50 PerfScore 11.00
G_M40620_IG13:
cmp dword ptr [rbx+0x50], 0
jne SHORT G_M40620_IG14
mov r13, gword ptr [rbx+0x28]
- lea rdi, bword ptr [rbx+0x48]
+ mov rdi, qword ptr [rbx+0x48]
mov rdx, 0xD1FFAB1E ; const ptr
mov rdx, gword ptr [rdx]
- mov rdi, qword ptr [rdi]
mov rsi, 0xD1FFAB1E ; 'D'
mov rax, 0xD1FFAB1E ; code for System.Number:<FormatInt64>g__FormatInt64Slow|22_0(long,System.String,System.IFormatProvider):System.String
call [rax]System.Number:<FormatInt64>g__FormatInt64Slow|22_0(long,System.String,System.IFormatProvider):System.String
mov rdx, rax
mov rdi, r13
mov rsi, 0xD1FFAB1E ; 'Content-Length'
mov rax, qword ptr [r13]
mov rax, qword ptr [rax+0x50]
call [rax+0x08]System.Collections.Specialized.NameValueCollection:Set(System.String,System.String):this
- ;; size=79 bbWeight=0.50 PerfScore 11.00
+ ;; size=76 bbWeight=0.50 PerfScore 10.75
G_M40620_IG14:
mov edi, dword ptr [rbx+0x54]
mov eax, edi
sub eax, 400
cmp eax, 14
ja SHORT G_M40620_IG16
;; size=15 bbWeight=0.50 PerfScore 1.88
G_M40620_IG15:
mov ecx, 0x6901
bt ecx, eax
jb SHORT G_M40620_IG17
;; size=10 bbWeight=0.50 PerfScore 0.87
G_M40620_IG16:
cmp edi, 500
jne SHORT G_M40620_IG18
;; size=8 bbWeight=0.50 PerfScore 0.62
G_M40620_IG17:
mov eax, 1
jmp SHORT G_M40620_IG19
;; size=7 bbWeight=0.50 PerfScore 1.12
G_M40620_IG18:
cmp edi, 503
sete al
movzx rax, al
;; size=12 bbWeight=0.50 PerfScore 0.75
G_M40620_IG19:
movzx r13, al
test r13d, r13d
jne SHORT G_M40620_IG20
mov rdi, gword ptr [rbx+0x10]
mov rdi, gword ptr [rdi+0x20]
mov rax, 0xD1FFAB1E ; code for System.Net.HttpListenerRequest:get_KeepAlive():ubyte:this
cmp dword ptr [rdi], edi
call [rax]System.Net.HttpListenerRequest:get_KeepAlive():ubyte:this
test eax, eax
sete r13b
movzx r13, r13b
;; size=41 bbWeight=0.50 PerfScore 6.62
G_M40620_IG20:
cmp byte ptr [rbx+0x58], 0
sete dil
movzx rdi, dil
or edi, r13d
je SHORT G_M40620_IG21
mov rdi, gword ptr [rbx+0x28]
mov rsi, 0xD1FFAB1E ; 'Connection'
mov rdx, 0xD1FFAB1E ; 'close'
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x50]
call [rax+0x08]System.Collections.Specialized.NameValueCollection:Set(System.String,System.String):this
mov r13d, 1
;; size=57 bbWeight=0.50 PerfScore 7.62
G_M40620_IG21:
cmp dword ptr [rbx+0x50], 1
jne SHORT G_M40620_IG22
mov rdi, gword ptr [rbx+0x28]
mov rsi, 0xD1FFAB1E ; 'Transfer-Encoding'
mov rdx, 0xD1FFAB1E ; 'chunked'
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x50]
call [rax+0x08]System.Collections.Specialized.NameValueCollection:Set(System.String,System.String):this
;; size=40 bbWeight=0.50 PerfScore 6.75
G_M40620_IG22:
mov rdi, gword ptr [rbx+0x10]
mov rdi, gword ptr [rdi+0x28]
cmp dword ptr [rdi+0x90], 100
jl SHORT G_M40620_IG23
mov byte ptr [rbx+0x59], 1
test r13d, r13d
jne SHORT G_M40620_IG23
mov rdi, gword ptr [rbx+0x28]
mov rsi, 0xD1FFAB1E ; 'Connection'
mov rdx, 0xD1FFAB1E ; 'close'
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x50]
call [rax+0x08]System.Collections.Specialized.NameValueCollection:Set(System.String,System.String):this
mov r13d, 1
;; size=66 bbWeight=0.50 PerfScore 10.00
G_M40620_IG23:
mov rdi, gword ptr [rbx+0x10]
mov rdi, gword ptr [rdi+0x20]
mov r12, gword ptr [rdi+0x20]
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
- je G_M40620_IG34
+ je G_M40620_IG32
;; size=31 bbWeight=0.50 PerfScore 5.12
G_M40620_IG24:
mov rdi, 0xD1FFAB1E ; data for System.Net.HttpVersion:Version10
mov rsi, gword ptr [rdi]
test r12, r12
je SHORT G_M40620_IG25
mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.Version:CompareTo(System.Version):int:this
call [rax]System.Version:CompareTo(System.Version):int:this
test eax, eax
- jg G_M40620_IG29
- ;; size=41 bbWeight=0.50 PerfScore 4.12
+ jg SHORT G_M40620_IG27
+ ;; size=37 bbWeight=0.50 PerfScore 4.12
G_M40620_IG25:
cmp byte ptr [rbx+0x58], 0
- je SHORT G_M40620_IG28
- mov r12, gword ptr [rbx+0x28]
- cmp byte ptr [r12+0x50], 0
- jne SHORT G_M40620_IG26
- mov byte ptr [r12+0x50], 2
- ;; size=24 bbWeight=0.50 PerfScore 5.50
-G_M40620_IG26:
- cmp byte ptr [r12+0x50], 2
- jne G_M40620_IG37
- mov rdi, 0xD1FFAB1E ; global ptr
- test byte ptr [rdi], 1
- je G_M40620_IG35
- ;; size=31 bbWeight=0.50 PerfScore 4.12
-G_M40620_IG27:
- mov rsi, 0xD1FFAB1E ; data for System.Net.HttpResponseHeaderExtensions:s_names
- mov rsi, gword ptr [rsi]
- cmp dword ptr [rsi+0x08], 3
- jbe G_M40620_IG38
- mov rsi, gword ptr [rsi+0x28]
- mov rdi, r12
+ je SHORT G_M40620_IG26
+ mov rdi, gword ptr [rbx+0x28]
+ mov esi, 3
mov rdx, 0xD1FFAB1E ; 'true'
- mov rax, qword ptr [r12]
- mov rax, qword ptr [rax+0x50]
- call [rax+0x08]System.Collections.Specialized.NameValueCollection:Set(System.String,System.String):this
- ;; size=51 bbWeight=0.50 PerfScore 7.88
-G_M40620_IG28:
+ mov rax, 0xD1FFAB1E ; code for System.Net.WebHeaderCollection:set_Item(int,System.String):this
+ cmp dword ptr [rdi], edi
+ call [rax]System.Net.WebHeaderCollection:set_Item(int,System.String):this
+ ;; size=39 bbWeight=0.50 PerfScore 6.38
+G_M40620_IG26:
test r13d, r13d
- jne SHORT G_M40620_IG29
+ jne SHORT G_M40620_IG27
mov rdi, gword ptr [rbx+0x28]
mov rsi, 0xD1FFAB1E ; 'Connection'
mov rdx, 0xD1FFAB1E ; 'keep-alive'
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x50]
call [rax+0x08]System.Collections.Specialized.NameValueCollection:Set(System.String,System.String):this
;; size=39 bbWeight=0.50 PerfScore 5.38
-G_M40620_IG29:
+G_M40620_IG27:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.HttpListenerResponse:ComputeCookies():this
call [rax]System.Net.HttpListenerResponse:ComputeCookies():this
;; size=15 bbWeight=0.50 PerfScore 1.75
-G_M40620_IG30:
+G_M40620_IG28:
mov rdi, 0xD1FFAB1E ; const ptr
mov r13, gword ptr [rdi]
mov rdi, 0xD1FFAB1E ; System.IO.StreamWriter
call CORINFO_HELP_NEWSFAST
mov r12, rax
mov rdi, r12
mov rsi, r15
mov rdx, r13
mov ecx, 256
xor r8d, r8d
mov rax, 0xD1FFAB1E ; code for System.IO.StreamWriter:.ctor(System.IO.Stream,System.Text.Encoding,int,ubyte):this
call [rax]System.IO.StreamWriter:.ctor(System.IO.Stream,System.Text.Encoding,int,ubyte):this
mov rdi, 0xD1FFAB1E ; System.Int32
call CORINFO_HELP_NEWSFAST
mov edx, dword ptr [rbx+0x54]
mov dword ptr [rax+0x08], edx
mov gword ptr [rbp-0x30], rax
lea rdx, bword ptr [rbp-0x30]
mov ecx, 1
mov rdi, r12
mov rsi, 0xD1FFAB1E ; 'HTTP/1.1 {0} '
xor r8d, r8d
mov rax, 0xD1FFAB1E ; code for System.IO.StreamWriter:WriteFormatHelper(System.String,System.ReadOnlySpan`1[System.Object],ubyte):this
call [rax]System.IO.StreamWriter:WriteFormatHelper(System.String,System.ReadOnlySpan`1[System.Object],ubyte):this
mov rdi, gword ptr [r12+0x48]
test dword ptr [rdi+0x34], 0xD1FFAB1E
- je G_M40620_IG36
+ je G_M40620_IG33
mov rdi, r12
mov esi, 1
mov edx, 1
mov rax, 0xD1FFAB1E ; code for System.IO.StreamWriter:Flush(ubyte,ubyte):this
call [rax]System.IO.StreamWriter:Flush(ubyte,ubyte):this
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.HttpListenerResponse:get_StatusDescription():System.String:this
call [rax]System.Net.HttpListenerResponse:get_StatusDescription():System.String:this
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Net.WebHeaderEncoding:GetBytes(System.String):ubyte[]
call [rax]System.Net.WebHeaderEncoding:GetBytes(System.String):ubyte[]
mov ecx, dword ptr [rax+0x08]
mov rdi, r15
mov rsi, rax
xor edx, edx
mov rax, qword ptr [r15]
mov rax, qword ptr [rax+0x60]
call [rax+0x30]System.IO.Stream:Write(ubyte[],int,int):this
mov rdi, r12
mov rsi, 0xD1FFAB1E ; ' '
mov rax, 0xD1FFAB1E ; code for System.IO.StreamWriter:Write(System.String):this
call [rax]System.IO.StreamWriter:Write(System.String):this
mov rdi, gword ptr [rbx+0x28]
mov rax, 0xD1FFAB1E ; code for System.Net.HttpListenerResponse:FormatHeaders(System.Net.WebHeaderCollection):System.String
call [rax]System.Net.HttpListenerResponse:FormatHeaders(System.Net.WebHeaderCollection):System.String
mov rsi, rax
mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.IO.StreamWriter:Write(System.String):this
call [rax]System.IO.StreamWriter:Write(System.String):this
mov rdi, gword ptr [r12+0x48]
test dword ptr [rdi+0x34], 0xD1FFAB1E
;; size=287 bbWeight=1 PerfScore 62.75
-G_M40620_IG31:
- je G_M40620_IG36
+G_M40620_IG29:
+ je G_M40620_IG33
mov rdi, r12
mov esi, 1
mov edx, 1
mov rax, 0xD1FFAB1E ; code for System.IO.StreamWriter:Flush(ubyte,ubyte):this
call [rax]System.IO.StreamWriter:Flush(ubyte,ubyte):this
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Text.UTF8Encoding+UTF8EncodingSealed:get_Preamble():System.ReadOnlySpan`1[ubyte]:this
call [rax]System.Text.UTF8Encoding+UTF8EncodingSealed:get_Preamble():System.ReadOnlySpan`1[ubyte]:this
mov r13d, edx
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.HttpListenerResponse:EnsureResponseStream():this
call [rax]System.Net.HttpListenerResponse:EnsureResponseStream():this
mov esi, r13d
mov rdi, r15
mov rax, qword ptr [r15]
mov rax, qword ptr [rax+0x48]
call [rax+0x18]System.IO.Stream:set_Position(long):this
test r14b, r14b
sete al
mov byte ptr [rbx+0x5B], al
;; size=89 bbWeight=1 PerfScore 22.00
-G_M40620_IG32:
+G_M40620_IG30:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-G_M40620_IG33:
+G_M40620_IG31:
mov rdi, 0xD1FFAB1E ; System.Net.HttpVersion
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M40620_IG06
;; size=20 bbWeight=0 PerfScore 0.00
-G_M40620_IG34:
+G_M40620_IG32:
mov rdi, 0xD1FFAB1E ; System.Net.HttpVersion
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M40620_IG24
;; size=20 bbWeight=0 PerfScore 0.00
-G_M40620_IG35:
- mov rdi, 0xD1FFAB1E ; System.Net.HttpResponseHeaderExtensions
- call CORINFO_HELP_GET_GCSTATIC_BASE
- jmp G_M40620_IG27
- ;; size=20 bbWeight=0 PerfScore 0.00
-G_M40620_IG36:
+G_M40620_IG33:
mov rax, 0xD1FFAB1E ; code for System.IO.StreamWriter:ThrowAsyncIOInProgress()
call [rax]System.IO.StreamWriter:ThrowAsyncIOInProgress()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M40620_IG37:
- mov rdi, 0xD1FFAB1E ; System.InvalidOperationException
- call CORINFO_HELP_NEWSFAST
- mov rbx, rax
- mov rax, 0xD1FFAB1E ; code for System.SR:get_net_headers_rsp():System.String
- call [rax]System.SR:get_net_headers_rsp():System.String
- mov rsi, rax
- mov rdi, rbx
- mov rax, 0xD1FFAB1E ; code for System.InvalidOperationException:.ctor(System.String):this
- call [rax]System.InvalidOperationException:.ctor(System.String):this
- mov rdi, rbx
- call CORINFO_HELP_THROW
- int3
- ;; size=57 bbWeight=0 PerfScore 0.00
-G_M40620_IG38:
- call CORINFO_HELP_RNGCHKFAIL
- int3
- ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1549, prolog size 22, PerfScore 240.25, instruction count 344, allocated bytes for code 1549 (MethodHash=8c746153) for method System.Net.HttpListenerResponse:SendHeaders(ubyte,System.IO.MemoryStream,ubyte):this (FullOpts)
+; Total bytes of code 1392, prolog size 22, PerfScore 228.87, instruction count 313, allocated bytes for code 1392 (MethodHash=8c746153) for method System.Net.HttpListenerResponse:SendHeaders(ubyte,System.IO.MemoryStream,ubyte):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/73f47c2a1c2994b21abc6bd220462d1a |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 19 minutes 9 seconds.
dotnet/runtime#108606
Diffs
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: