-61 (-3.39 % of base) - System.Net.Sockets.Socket:.ctor(System.Net.Sockets.SafeSocketHandle,ubyte):this
; Assembly listing for method System.Net.Sockets.Socket:.ctor(System.Net.Sockets.SafeSocketHandle,ubyte):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; 43 single block inlinees; 13 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T23] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Net.Sockets.Socket>
+; V00 this [V00,T23] ( 3, 3 ) ref -> [rbp-0xE0] this class-hnd EH-live single-def ptr <System.Net.Sockets.Socket>
; V01 arg1 [V01,T24] ( 3, 3 ) ref -> rsi class-hnd single-def <System.Net.Sockets.SafeSocketHandle>
; V02 arg2 [V02,T25] ( 3, 3 ) ubyte -> rbx single-def
-; V03 loc0 [V03 ] ( 2, 2 ) ubyte -> [rbp-0x58] do-not-enreg[X] addr-exposed ld-addr-op
+; V03 loc0 [V03 ] ( 2, 2 ) ubyte -> [rbp-0x60] do-not-enreg[X] addr-exposed ld-addr-op
;* V04 loc1 [V04 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Span`1[ubyte]>
-; V05 loc2 [V05 ] ( 11, 11 ) int -> [rbp-0x60] do-not-enreg[X] addr-exposed ld-addr-op ptr
+; V05 loc2 [V05 ] ( 11, 11 ) int -> [rbp-0x68] do-not-enreg[X] addr-exposed ld-addr-op ptr
; V06 loc3 [V06,T02] ( 17, 17 ) int -> rbx
;* V07 loc4 [V07 ] ( 0, 0 ) long -> zero-ref ptr
-; V08 loc5 [V08 ] ( 3, 3 ) byref -> [rbp-0x68] must-init pinned ptr
+; V08 loc5 [V08 ] ( 3, 3 ) byref -> [rbp-0x70] must-init pinned ptr
;* V09 loc6 [V09 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[ubyte]>
-; V10 loc7 [V10,T62] ( 2, 2 ) int -> r12 ld-addr-op
-; V11 loc8 [V11,T03] ( 8, 8 ) int -> r13
+; V10 loc7 [V10,T62] ( 2, 2 ) int -> [rbp-0x74] ld-addr-op spill-single-def ptr
+; V11 loc8 [V11,T03] ( 8, 8 ) int -> r12
;* V12 loc9 [V12 ] ( 0, 0 ) int -> zero-ref
;* V13 loc10 [V13 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[ubyte]>
-; V14 loc11 [V14,T63] ( 2, 2 ) int -> r13 ld-addr-op
+; V14 loc11 [V14,T63] ( 2, 2 ) int -> r12 ld-addr-op
; V15 OutArgs [V15 ] ( 1, 1 ) struct (16) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V16 tmp1 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V17 tmp2 [V17 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
-; V18 tmp3 [V18,T04] ( 3, 6 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Net.Sockets.UnixDomainSocketEndPoint>
+; V18 tmp3 [V18,T04] ( 3, 6 ) ref -> [rbp-0xE8] class-hnd exact spill-single-def ptr "NewObj constructor temp" <System.Net.Sockets.UnixDomainSocketEndPoint>
;* V19 tmp4 [V19 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
;* V20 tmp5 [V20 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
; V21 tmp6 [V21,T05] ( 3, 6 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Net.Sockets.UnixDomainSocketEndPoint>
;* V22 tmp7 [V22 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
;* V23 tmp8 [V23 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V24 tmp9 [V24 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V25 tmp10 [V25,T06] ( 3, 6 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Net.IPAddress>
+; V25 tmp10 [V25,T06] ( 3, 6 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Net.IPAddress>
;* V26 tmp11 [V26 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
; V27 tmp12 [V27,T07] ( 3, 6 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Net.IPEndPoint>
-; V28 tmp13 [V28 ] ( 1, 1 ) struct (16) [rbp-0x40] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+; V28 tmp13 [V28 ] ( 1, 1 ) struct (16) [rbp-0x48] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
;* V29 tmp14 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V30 tmp15 [V30 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V31 tmp16 [V31 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V32 tmp17 [V32,T08] ( 3, 6 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Net.IPAddress>
+; V32 tmp17 [V32,T08] ( 3, 6 ) ref -> [rbp-0xF0] class-hnd exact spill-single-def ptr "NewObj constructor temp" <System.Net.IPAddress>
;* V33 tmp18 [V33 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
;* V34 tmp19 [V34 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V35 tmp20 [V35,T09] ( 3, 6 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Net.IPEndPoint>
+; V35 tmp20 [V35,T09] ( 3, 6 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Net.IPEndPoint>
;* V36 tmp21 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.Object>
;* V37 tmp22 [V37 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V38 tmp23 [V38 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V39 tmp24 [V39,T10] ( 3, 6 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Net.IPAddress>
+; V39 tmp24 [V39,T10] ( 3, 6 ) ref -> [rbp-0xF8] class-hnd exact spill-single-def ptr "NewObj constructor temp" <System.Net.IPAddress>
;* V40 tmp25 [V40 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V41 tmp26 [V41,T11] ( 3, 6 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Net.IPEndPoint>
-; V42 tmp27 [V42 ] ( 1, 1 ) struct (16) [rbp-0x50] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
+; V41 tmp26 [V41,T11] ( 3, 6 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Net.IPEndPoint>
+; V42 tmp27 [V42 ] ( 1, 1 ) struct (16) [rbp-0x58] do-not-enreg[XS] addr-exposed ld-addr-op unsafe-buffer "stackallocLocal"
;* V43 tmp28 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V44 tmp29 [V44 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V45 tmp30 [V45 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V46 tmp31 [V46,T12] ( 3, 6 ) ref -> [rbp-0xD0] class-hnd exact spill-single-def ptr "NewObj constructor temp" <System.Net.IPAddress>
+; V46 tmp31 [V46,T12] ( 3, 6 ) ref -> [rbp-0x100] class-hnd exact spill-single-def ptr "NewObj constructor temp" <System.Net.IPAddress>
;* V47 tmp32 [V47 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
;* V48 tmp33 [V48 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-; V49 tmp34 [V49,T13] ( 3, 6 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Net.IPEndPoint>
+; V49 tmp34 [V49,T13] ( 3, 6 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Net.IPEndPoint>
;* V50 tmp35 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.Object>
-; V51 tmp36 [V51,T29] ( 2, 4 ) long -> r14 "Inlining Arg"
+; V51 tmp36 [V51,T29] ( 2, 4 ) long -> r13 "Inlining Arg"
;* V52 tmp37 [V52 ] ( 0, 0 ) byref -> zero-ref "Inline return value spill temp"
; V53 tmp38 [V53,T20] ( 5, 5 ) byref -> rsi "Inline stloc first use temp"
; V54 tmp39 [V54,T54] ( 2, 2 ) int -> rax "Inline return value spill temp"
; V55 tmp40 [V55,T55] ( 3, 3 ) int -> rax "Inline stloc first use temp"
; V56 tmp41 [V56,T14] ( 3, 6 ) int -> rsi "Inlining Arg"
;* V57 tmp42 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V58 tmp43 [V58 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V59 tmp44 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V60 tmp45 [V60 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V61 tmp46 [V61 ] ( 0, 0 ) byref -> zero-ref single-def ptr "Inlining Arg"
;* V62 tmp47 [V62 ] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
-; V63 tmp48 [V63,T64] ( 2, 2 ) int -> r13 "Inline return value spill temp"
+; V63 tmp48 [V63,T64] ( 2, 2 ) int -> r12 "Inline return value spill temp"
;* V64 tmp49 [V64 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V65 tmp50 [V65 ] ( 2, 2 ) byref -> [rbp-0x70] must-init pinned ptr "Inline stloc first use temp"
-; V66 tmp51 [V66 ] ( 2, 2 ) int -> [rbp-0x78] do-not-enreg[X] addr-exposed ld-addr-op ptr "Inline ldloca(s) first use temp"
+; V65 tmp50 [V65 ] ( 2, 2 ) byref -> [rbp-0x80] must-init pinned ptr "Inline stloc first use temp"
+; V66 tmp51 [V66 ] ( 2, 2 ) int -> [rbp-0x88] do-not-enreg[X] addr-exposed ld-addr-op ptr "Inline ldloca(s) first use temp"
; V67 tmp52 [V67,T30] ( 2, 4 ) int -> rdi "Spill before store to pinned local"
;* V68 tmp53 [V68 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V69 tmp54 [V69 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V70 tmp55 [V70 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V71 tmp56 [V71 ] ( 0, 0 ) byref -> zero-ref single-def ptr "Inlining Arg"
;* V72 tmp57 [V72 ] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
; V73 tmp58 [V73,T15] ( 3, 6 ) int -> rsi "Inlining Arg"
;* V74 tmp59 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V75 tmp60 [V75 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V76 tmp61 [V76 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V77 tmp62 [V77 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V78 tmp63 [V78 ] ( 0, 0 ) byref -> zero-ref single-def ptr "Inlining Arg"
;* V79 tmp64 [V79 ] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
;* V80 tmp65 [V80 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V81 tmp66 [V81 ] ( 2, 2 ) byref -> [rbp-0x80] must-init pinned ptr "Inline stloc first use temp"
+; V81 tmp66 [V81 ] ( 2, 2 ) byref -> [rbp-0x90] must-init pinned ptr "Inline stloc first use temp"
;* V82 tmp67 [V82 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V83 tmp68 [V83 ] ( 2, 2 ) byref -> [rbp-0x88] must-init pinned ptr "Inline stloc first use temp"
+; V83 tmp68 [V83 ] ( 2, 2 ) byref -> [rbp-0x98] must-init pinned ptr "Inline stloc first use temp"
;* V84 tmp69 [V84 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-; V85 tmp70 [V85 ] ( 2, 2 ) int -> [rbp-0x90] do-not-enreg[X] addr-exposed ld-addr-op ptr "Inline ldloca(s) first use temp"
+; V85 tmp70 [V85 ] ( 2, 2 ) int -> [rbp-0xA0] do-not-enreg[X] addr-exposed ld-addr-op ptr "Inline ldloca(s) first use temp"
; V86 tmp71 [V86,T31] ( 2, 4 ) int -> rdi "Spill before store to pinned local"
;* V87 tmp72 [V87 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V88 tmp73 [V88 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V89 tmp74 [V89 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V90 tmp75 [V90 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V91 tmp76 [V91 ] ( 0, 0 ) byref -> zero-ref single-def ptr "Inlining Arg"
;* V92 tmp77 [V92 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V93 tmp78 [V93 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V94 tmp79 [V94 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V95 tmp80 [V95 ] ( 0, 0 ) byref -> zero-ref single-def ptr "Inlining Arg"
;* V96 tmp81 [V96 ] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
-; V97 tmp82 [V97,T16] ( 3, 6 ) int -> r13 "Inlining Arg"
+; V97 tmp82 [V97,T16] ( 3, 6 ) int -> r12 "Inlining Arg"
;* V98 tmp83 [V98 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V99 tmp84 [V99 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V100 tmp85 [V100 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V101 tmp86 [V101 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V102 tmp87 [V102 ] ( 0, 0 ) byref -> zero-ref single-def ptr "Inlining Arg"
;* V103 tmp88 [V103 ] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
; V104 tmp89 [V104,T28] ( 4, 4 ) int -> rax "Inline return value spill temp"
-; V105 tmp90 [V105 ] ( 3, 3 ) int -> [rbp-0x98] do-not-enreg[X] addr-exposed ld-addr-op ptr "Inline stloc first use temp"
+; V105 tmp90 [V105 ] ( 3, 3 ) int -> [rbp-0xA8] do-not-enreg[X] addr-exposed ld-addr-op ptr "Inline stloc first use temp"
;* V106 tmp91 [V106 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V107 tmp92 [V107 ] ( 2, 2 ) byref -> [rbp-0xA0] must-init pinned ptr "Inline stloc first use temp"
+; V107 tmp92 [V107 ] ( 2, 2 ) byref -> [rbp-0xB0] must-init pinned ptr "Inline stloc first use temp"
;* V108 tmp93 [V108 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
; V109 tmp94 [V109,T56] ( 3, 3 ) int -> rax "Inline stloc first use temp"
;* V110 tmp95 [V110 ] ( 0, 0 ) byref -> zero-ref "Inline return value spill temp"
; V111 tmp96 [V111,T21] ( 5, 5 ) byref -> rsi "Inline stloc first use temp"
; V112 tmp97 [V112,T17] ( 3, 6 ) int -> rsi "Inlining Arg"
;* V113 tmp98 [V113 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V114 tmp99 [V114 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V115 tmp100 [V115 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V116 tmp101 [V116 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V117 tmp102 [V117 ] ( 0, 0 ) byref -> zero-ref single-def ptr "Inlining Arg"
;* V118 tmp103 [V118 ] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
; V119 tmp104 [V119,T65] ( 2, 2 ) int -> r15 "Inline return value spill temp"
;* V120 tmp105 [V120 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V121 tmp106 [V121 ] ( 2, 2 ) byref -> [rbp-0xA8] must-init pinned ptr "Inline stloc first use temp"
-; V122 tmp107 [V122 ] ( 2, 2 ) int -> [rbp-0xB0] do-not-enreg[X] addr-exposed ld-addr-op ptr "Inline ldloca(s) first use temp"
+; V121 tmp106 [V121 ] ( 2, 2 ) byref -> [rbp-0xB8] must-init pinned ptr "Inline stloc first use temp"
+; V122 tmp107 [V122 ] ( 2, 2 ) int -> [rbp-0xC0] do-not-enreg[X] addr-exposed ld-addr-op ptr "Inline ldloca(s) first use temp"
; V123 tmp108 [V123,T32] ( 2, 4 ) int -> rdi "Spill before store to pinned local"
;* V124 tmp109 [V124 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V125 tmp110 [V125 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V126 tmp111 [V126 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V127 tmp112 [V127 ] ( 0, 0 ) byref -> zero-ref single-def ptr "Inlining Arg"
;* V128 tmp113 [V128 ] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
; V129 tmp114 [V129,T18] ( 3, 6 ) int -> rsi "Inlining Arg"
;* V130 tmp115 [V130 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V131 tmp116 [V131 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V132 tmp117 [V132 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V133 tmp118 [V133 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V134 tmp119 [V134 ] ( 0, 0 ) byref -> zero-ref single-def ptr "Inlining Arg"
;* V135 tmp120 [V135 ] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
;* V136 tmp121 [V136 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V137 tmp122 [V137 ] ( 2, 2 ) byref -> [rbp-0xB8] must-init pinned ptr "Inline stloc first use temp"
+; V137 tmp122 [V137 ] ( 2, 2 ) byref -> [rbp-0xC8] must-init pinned ptr "Inline stloc first use temp"
;* V138 tmp123 [V138 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-; V139 tmp124 [V139 ] ( 2, 2 ) byref -> [rbp-0xC0] must-init pinned ptr "Inline stloc first use temp"
+; V139 tmp124 [V139 ] ( 2, 2 ) byref -> [rbp-0xD0] must-init pinned ptr "Inline stloc first use temp"
;* V140 tmp125 [V140 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp"
-; V141 tmp126 [V141 ] ( 2, 2 ) int -> [rbp-0xC8] do-not-enreg[X] addr-exposed ld-addr-op ptr "Inline ldloca(s) first use temp"
+; V141 tmp126 [V141 ] ( 2, 2 ) int -> [rbp-0xD8] do-not-enreg[X] addr-exposed ld-addr-op ptr "Inline ldloca(s) first use temp"
; V142 tmp127 [V142,T33] ( 2, 4 ) int -> rdi "Spill before store to pinned local"
;* V143 tmp128 [V143 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
;* V144 tmp129 [V144 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V145 tmp130 [V145 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V146 tmp131 [V146 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V147 tmp132 [V147 ] ( 0, 0 ) byref -> zero-ref single-def ptr "Inlining Arg"
;* V148 tmp133 [V148 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V149 tmp134 [V149 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V150 tmp135 [V150 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V151 tmp136 [V151 ] ( 0, 0 ) byref -> zero-ref single-def ptr "Inlining Arg"
;* V152 tmp137 [V152 ] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
; V153 tmp138 [V153,T19] ( 3, 6 ) int -> r15 "Inlining Arg"
;* V154 tmp139 [V154 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V155 tmp140 [V155 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V156 tmp141 [V156 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V157 tmp142 [V157 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V158 tmp143 [V158 ] ( 0, 0 ) byref -> zero-ref single-def ptr "Inlining Arg"
;* V159 tmp144 [V159 ] ( 0, 0 ) int -> zero-ref ptr "Inlining Arg"
;* V160 tmp145 [V160 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V04._reference (fldOffset=0x0)" P-INDEP
;* V161 tmp146 [V161 ] ( 0, 0 ) int -> zero-ref ptr "field V04._length (fldOffset=0x8)" P-INDEP
;* V162 tmp147 [V162 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V09._reference (fldOffset=0x0)" P-INDEP
;* V163 tmp148 [V163 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
;* V164 tmp149 [V164 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V13._reference (fldOffset=0x0)" P-INDEP
;* V165 tmp150 [V165 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
-; V166 tmp151 [V166,T01] ( 17, 17 ) byref -> r14 single-def "field V16._reference (fldOffset=0x0)" P-INDEP
+; V166 tmp151 [V166,T01] ( 17, 17 ) byref -> r13 single-def "field V16._reference (fldOffset=0x0)" P-INDEP
;* V167 tmp152 [V167 ] ( 0, 0 ) int -> zero-ref ptr "field V16._length (fldOffset=0x8)" P-INDEP
;* V168 tmp153 [V168 ] ( 0, 0 ) byref -> zero-ref "field V17._reference (fldOffset=0x0)" P-INDEP
;* V169 tmp154 [V169 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
;* V170 tmp155 [V170 ] ( 0, 0 ) byref -> zero-ref "field V19._reference (fldOffset=0x0)" P-INDEP
;* V171 tmp156 [V171 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP
;* V172 tmp157 [V172 ] ( 0, 0 ) byref -> zero-ref "field V20._reference (fldOffset=0x0)" P-INDEP
;* V173 tmp158 [V173 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP
;* V174 tmp159 [V174 ] ( 0, 0 ) byref -> zero-ref "field V22._reference (fldOffset=0x0)" P-INDEP
;* V175 tmp160 [V175 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP
;* V176 tmp161 [V176 ] ( 0, 0 ) byref -> zero-ref "field V23._reference (fldOffset=0x0)" P-INDEP
;* V177 tmp162 [V177 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
;* V178 tmp163 [V178 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP
;* V179 tmp164 [V179 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
;* V180 tmp165 [V180 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V26._reference (fldOffset=0x0)" P-INDEP
;* V181 tmp166 [V181 ] ( 0, 0 ) int -> zero-ref ptr "field V26._length (fldOffset=0x8)" P-INDEP
; V182 tmp167 [V182,T26] ( 4, 4 ) byref -> r15 single-def "field V29._reference (fldOffset=0x0)" P-INDEP
;* V183 tmp168 [V183 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP
;* V184 tmp169 [V184 ] ( 0, 0 ) byref -> zero-ref "field V30._reference (fldOffset=0x0)" P-INDEP
;* V185 tmp170 [V185 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
;* V186 tmp171 [V186 ] ( 0, 0 ) byref -> zero-ref "field V31._reference (fldOffset=0x0)" P-INDEP
;* V187 tmp172 [V187 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
;* V188 tmp173 [V188 ] ( 0, 0 ) byref -> zero-ref "field V33._reference (fldOffset=0x0)" P-INDEP
;* V189 tmp174 [V189 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP
;* V190 tmp175 [V190 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V34._reference (fldOffset=0x0)" P-INDEP
;* V191 tmp176 [V191 ] ( 0, 0 ) int -> zero-ref ptr "field V34._length (fldOffset=0x8)" P-INDEP
;* V192 tmp177 [V192 ] ( 0, 0 ) byref -> zero-ref "field V37._reference (fldOffset=0x0)" P-INDEP
;* V193 tmp178 [V193 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
;* V194 tmp179 [V194 ] ( 0, 0 ) byref -> zero-ref "field V38._reference (fldOffset=0x0)" P-INDEP
;* V195 tmp180 [V195 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP
;* V196 tmp181 [V196 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V40._reference (fldOffset=0x0)" P-INDEP
;* V197 tmp182 [V197 ] ( 0, 0 ) int -> zero-ref ptr "field V40._length (fldOffset=0x8)" P-INDEP
-; V198 tmp183 [V198,T27] ( 4, 4 ) byref -> r13 single-def "field V43._reference (fldOffset=0x0)" P-INDEP
+; V198 tmp183 [V198,T27] ( 4, 4 ) byref -> r12 single-def "field V43._reference (fldOffset=0x0)" P-INDEP
;* V199 tmp184 [V199 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
;* V200 tmp185 [V200 ] ( 0, 0 ) byref -> zero-ref "field V44._reference (fldOffset=0x0)" P-INDEP
;* V201 tmp186 [V201 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0x8)" P-INDEP
;* V202 tmp187 [V202 ] ( 0, 0 ) byref -> zero-ref "field V45._reference (fldOffset=0x0)" P-INDEP
;* V203 tmp188 [V203 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP
;* V204 tmp189 [V204 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP
;* V205 tmp190 [V205 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
;* V206 tmp191 [V206 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V48._reference (fldOffset=0x0)" P-INDEP
;* V207 tmp192 [V207 ] ( 0, 0 ) int -> zero-ref ptr "field V48._length (fldOffset=0x8)" P-INDEP
;* V208 tmp193 [V208 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V57._reference (fldOffset=0x0)" P-INDEP
;* V209 tmp194 [V209 ] ( 0, 0 ) int -> zero-ref ptr "field V57._length (fldOffset=0x8)" P-INDEP
;* V210 tmp195 [V210 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V59._reference (fldOffset=0x0)" P-INDEP
;* V211 tmp196 [V211 ] ( 0, 0 ) int -> zero-ref ptr "field V59._length (fldOffset=0x8)" P-INDEP
;* V212 tmp197 [V212 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V60._reference (fldOffset=0x0)" P-INDEP
;* V213 tmp198 [V213 ] ( 0, 0 ) int -> zero-ref ptr "field V60._length (fldOffset=0x8)" P-INDEP
;* V214 tmp199 [V214 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V64._reference (fldOffset=0x0)" P-INDEP
;* V215 tmp200 [V215 ] ( 0, 0 ) int -> zero-ref ptr "field V64._length (fldOffset=0x8)" P-INDEP
;* V216 tmp201 [V216 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V68._reference (fldOffset=0x0)" P-INDEP
;* V217 tmp202 [V217 ] ( 0, 0 ) int -> zero-ref "field V68._length (fldOffset=0x8)" P-INDEP
;* V218 tmp203 [V218 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V69._reference (fldOffset=0x0)" P-INDEP
;* V219 tmp204 [V219 ] ( 0, 0 ) int -> zero-ref ptr "field V69._length (fldOffset=0x8)" P-INDEP
;* V220 tmp205 [V220,T70] ( 0, 0 ) byref -> zero-ref single-def ptr "field V70._reference (fldOffset=0x0)" P-INDEP
;* V221 tmp206 [V221,T73] ( 0, 0 ) int -> zero-ref ptr "field V70._length (fldOffset=0x8)" P-INDEP
;* V222 tmp207 [V222 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V74._reference (fldOffset=0x0)" P-INDEP
;* V223 tmp208 [V223 ] ( 0, 0 ) int -> zero-ref ptr "field V74._length (fldOffset=0x8)" P-INDEP
;* V224 tmp209 [V224 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V76._reference (fldOffset=0x0)" P-INDEP
;* V225 tmp210 [V225 ] ( 0, 0 ) int -> zero-ref ptr "field V76._length (fldOffset=0x8)" P-INDEP
;* V226 tmp211 [V226 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V77._reference (fldOffset=0x0)" P-INDEP
;* V227 tmp212 [V227 ] ( 0, 0 ) int -> zero-ref ptr "field V77._length (fldOffset=0x8)" P-INDEP
;* V228 tmp213 [V228 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V80._reference (fldOffset=0x0)" P-INDEP
;* V229 tmp214 [V229 ] ( 0, 0 ) int -> zero-ref ptr "field V80._length (fldOffset=0x8)" P-INDEP
;* V230 tmp215 [V230 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V82._reference (fldOffset=0x0)" P-INDEP
;* V231 tmp216 [V231 ] ( 0, 0 ) int -> zero-ref "field V82._length (fldOffset=0x8)" P-INDEP
;* V232 tmp217 [V232 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V87._reference (fldOffset=0x0)" P-INDEP
;* V233 tmp218 [V233 ] ( 0, 0 ) int -> zero-ref "field V87._length (fldOffset=0x8)" P-INDEP
;* V234 tmp219 [V234 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V88._reference (fldOffset=0x0)" P-INDEP
;* V235 tmp220 [V235 ] ( 0, 0 ) int -> zero-ref "field V88._length (fldOffset=0x8)" P-INDEP
;* V236 tmp221 [V236 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V89._reference (fldOffset=0x0)" P-INDEP
;* V237 tmp222 [V237 ] ( 0, 0 ) int -> zero-ref "field V89._length (fldOffset=0x8)" P-INDEP
-; V238 tmp223 [V238,T57] ( 2, 2 ) byref -> r13 single-def "field V90._reference (fldOffset=0x0)" P-INDEP
+; V238 tmp223 [V238,T57] ( 2, 2 ) byref -> r12 single-def "field V90._reference (fldOffset=0x0)" P-INDEP
;* V239 tmp224 [V239,T74] ( 0, 0 ) int -> zero-ref ptr "field V90._length (fldOffset=0x8)" P-INDEP
;* V240 tmp225 [V240 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V93._reference (fldOffset=0x0)" P-INDEP
;* V241 tmp226 [V241 ] ( 0, 0 ) int -> zero-ref ptr "field V93._length (fldOffset=0x8)" P-INDEP
;* V242 tmp227 [V242,T71] ( 0, 0 ) byref -> zero-ref single-def ptr "field V94._reference (fldOffset=0x0)" P-INDEP
;* V243 tmp228 [V243,T75] ( 0, 0 ) int -> zero-ref ptr "field V94._length (fldOffset=0x8)" P-INDEP
;* V244 tmp229 [V244 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V98._reference (fldOffset=0x0)" P-INDEP
;* V245 tmp230 [V245 ] ( 0, 0 ) int -> zero-ref ptr "field V98._length (fldOffset=0x8)" P-INDEP
;* V246 tmp231 [V246 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V100._reference (fldOffset=0x0)" P-INDEP
;* V247 tmp232 [V247 ] ( 0, 0 ) int -> zero-ref ptr "field V100._length (fldOffset=0x8)" P-INDEP
;* V248 tmp233 [V248,T72] ( 0, 0 ) byref -> zero-ref single-def ptr "field V101._reference (fldOffset=0x0)" P-INDEP
-; V249 tmp234 [V249,T66] ( 2, 2 ) int -> r13 "field V101._length (fldOffset=0x8)" P-INDEP
+; V249 tmp234 [V249,T66] ( 2, 2 ) int -> r12 "field V101._length (fldOffset=0x8)" P-INDEP
;* V250 tmp235 [V250 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V106._reference (fldOffset=0x0)" P-INDEP
;* V251 tmp236 [V251 ] ( 0, 0 ) int -> zero-ref ptr "field V106._length (fldOffset=0x8)" P-INDEP
;* V252 tmp237 [V252 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V113._reference (fldOffset=0x0)" P-INDEP
;* V253 tmp238 [V253 ] ( 0, 0 ) int -> zero-ref ptr "field V113._length (fldOffset=0x8)" P-INDEP
;* V254 tmp239 [V254 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V115._reference (fldOffset=0x0)" P-INDEP
;* V255 tmp240 [V255 ] ( 0, 0 ) int -> zero-ref ptr "field V115._length (fldOffset=0x8)" P-INDEP
;* V256 tmp241 [V256 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V116._reference (fldOffset=0x0)" P-INDEP
;* V257 tmp242 [V257 ] ( 0, 0 ) int -> zero-ref ptr "field V116._length (fldOffset=0x8)" P-INDEP
;* V258 tmp243 [V258 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V120._reference (fldOffset=0x0)" P-INDEP
;* V259 tmp244 [V259 ] ( 0, 0 ) int -> zero-ref ptr "field V120._length (fldOffset=0x8)" P-INDEP
;* V260 tmp245 [V260 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V124._reference (fldOffset=0x0)" P-INDEP
;* V261 tmp246 [V261 ] ( 0, 0 ) int -> zero-ref "field V124._length (fldOffset=0x8)" P-INDEP
;* V262 tmp247 [V262 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V125._reference (fldOffset=0x0)" P-INDEP
;* V263 tmp248 [V263 ] ( 0, 0 ) int -> zero-ref ptr "field V125._length (fldOffset=0x8)" P-INDEP
-; V264 tmp249 [V264,T58] ( 2, 2 ) byref -> r14 single-def "field V126._reference (fldOffset=0x0)" P-INDEP
+; V264 tmp249 [V264,T58] ( 2, 2 ) byref -> r13 single-def "field V126._reference (fldOffset=0x0)" P-INDEP
; V265 tmp250 [V265,T67] ( 2, 2 ) int -> rbx "field V126._length (fldOffset=0x8)" P-INDEP
;* V266 tmp251 [V266 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V130._reference (fldOffset=0x0)" P-INDEP
;* V267 tmp252 [V267 ] ( 0, 0 ) int -> zero-ref ptr "field V130._length (fldOffset=0x8)" P-INDEP
;* V268 tmp253 [V268 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V132._reference (fldOffset=0x0)" P-INDEP
;* V269 tmp254 [V269 ] ( 0, 0 ) int -> zero-ref ptr "field V132._length (fldOffset=0x8)" P-INDEP
;* V270 tmp255 [V270 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V133._reference (fldOffset=0x0)" P-INDEP
;* V271 tmp256 [V271 ] ( 0, 0 ) int -> zero-ref ptr "field V133._length (fldOffset=0x8)" P-INDEP
;* V272 tmp257 [V272 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V136._reference (fldOffset=0x0)" P-INDEP
;* V273 tmp258 [V273 ] ( 0, 0 ) int -> zero-ref ptr "field V136._length (fldOffset=0x8)" P-INDEP
;* V274 tmp259 [V274 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V138._reference (fldOffset=0x0)" P-INDEP
;* V275 tmp260 [V275 ] ( 0, 0 ) int -> zero-ref "field V138._length (fldOffset=0x8)" P-INDEP
;* V276 tmp261 [V276 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V143._reference (fldOffset=0x0)" P-INDEP
;* V277 tmp262 [V277 ] ( 0, 0 ) int -> zero-ref "field V143._length (fldOffset=0x8)" P-INDEP
;* V278 tmp263 [V278 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V144._reference (fldOffset=0x0)" P-INDEP
;* V279 tmp264 [V279 ] ( 0, 0 ) int -> zero-ref "field V144._length (fldOffset=0x8)" P-INDEP
;* V280 tmp265 [V280 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V145._reference (fldOffset=0x0)" P-INDEP
;* V281 tmp266 [V281 ] ( 0, 0 ) int -> zero-ref "field V145._length (fldOffset=0x8)" P-INDEP
; V282 tmp267 [V282,T59] ( 2, 2 ) byref -> r15 single-def "field V146._reference (fldOffset=0x0)" P-INDEP
;* V283 tmp268 [V283,T76] ( 0, 0 ) int -> zero-ref ptr "field V146._length (fldOffset=0x8)" P-INDEP
;* V284 tmp269 [V284 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V149._reference (fldOffset=0x0)" P-INDEP
;* V285 tmp270 [V285 ] ( 0, 0 ) int -> zero-ref ptr "field V149._length (fldOffset=0x8)" P-INDEP
; V286 tmp271 [V286,T60] ( 2, 2 ) byref -> r15 single-def "field V150._reference (fldOffset=0x0)" P-INDEP
; V287 tmp272 [V287,T68] ( 2, 2 ) int -> rbx "field V150._length (fldOffset=0x8)" P-INDEP
;* V288 tmp273 [V288 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V154._reference (fldOffset=0x0)" P-INDEP
;* V289 tmp274 [V289 ] ( 0, 0 ) int -> zero-ref ptr "field V154._length (fldOffset=0x8)" P-INDEP
;* V290 tmp275 [V290 ] ( 0, 0 ) byref -> zero-ref single-def ptr "field V156._reference (fldOffset=0x0)" P-INDEP
;* V291 tmp276 [V291 ] ( 0, 0 ) int -> zero-ref ptr "field V156._length (fldOffset=0x8)" P-INDEP
-; V292 tmp277 [V292,T61] ( 2, 2 ) byref -> r14 single-def "field V157._reference (fldOffset=0x0)" P-INDEP
+; V292 tmp277 [V292,T61] ( 2, 2 ) byref -> r13 single-def "field V157._reference (fldOffset=0x0)" P-INDEP
; V293 tmp278 [V293,T69] ( 2, 2 ) int -> r15 "field V157._length (fldOffset=0x8)" P-INDEP
; V294 tmp279 [V294,T34] ( 2, 4 ) long -> rsi "Cast away GC"
; V295 tmp280 [V295,T35] ( 2, 4 ) long -> rsi "argument with side effect"
-; V296 tmp281 [V296,T36] ( 2, 4 ) long -> rdx "Cast away GC"
-; V297 tmp282 [V297,T37] ( 2, 4 ) long -> rdx "argument with side effect"
+; V296 tmp281 [V296,T36] ( 2, 4 ) long -> rdi "Cast away GC"
+; V297 tmp282 [V297,T37] ( 2, 4 ) long -> rdi "argument with side effect"
; V298 tmp283 [V298,T38] ( 2, 4 ) int -> rdx "argument with side effect"
-; V299 tmp284 [V299,T39] ( 2, 4 ) long -> rdx "Cast away GC"
-; V300 tmp285 [V300,T40] ( 2, 4 ) long -> r8 "Cast away GC"
-; V301 tmp286 [V301,T41] ( 2, 4 ) long -> rdx "argument with side effect"
-; V302 tmp287 [V302,T42] ( 2, 4 ) long -> r8 "argument with side effect"
+; V299 tmp284 [V299,T39] ( 2, 4 ) long -> rdi "Cast away GC"
+; V300 tmp285 [V300,T40] ( 2, 4 ) long -> rdx "Cast away GC"
+; V301 tmp286 [V301,T41] ( 2, 4 ) long -> rdi "argument with side effect"
+; V302 tmp287 [V302,T42] ( 2, 4 ) long -> rdx "argument with side effect"
; V303 tmp288 [V303,T43] ( 2, 4 ) int -> rdx "argument with side effect"
; V304 tmp289 [V304,T44] ( 2, 4 ) long -> rsi "Cast away GC"
; V305 tmp290 [V305,T45] ( 2, 4 ) long -> rsi "argument with side effect"
-; V306 tmp291 [V306,T46] ( 2, 4 ) long -> rdx "Cast away GC"
-; V307 tmp292 [V307,T47] ( 2, 4 ) long -> rdx "argument with side effect"
+; V306 tmp291 [V306,T46] ( 2, 4 ) long -> rdi "Cast away GC"
+; V307 tmp292 [V307,T47] ( 2, 4 ) long -> rdi "argument with side effect"
; V308 tmp293 [V308,T48] ( 2, 4 ) int -> rdx "argument with side effect"
-; V309 tmp294 [V309,T49] ( 2, 4 ) long -> rdx "Cast away GC"
-; V310 tmp295 [V310,T50] ( 2, 4 ) long -> r8 "Cast away GC"
-; V311 tmp296 [V311,T51] ( 2, 4 ) long -> rdx "argument with side effect"
-; V312 tmp297 [V312,T52] ( 2, 4 ) long -> r8 "argument with side effect"
+; V309 tmp294 [V309,T49] ( 2, 4 ) long -> rdi "Cast away GC"
+; V310 tmp295 [V310,T50] ( 2, 4 ) long -> rdx "Cast away GC"
+; V311 tmp296 [V311,T51] ( 2, 4 ) long -> rdi "argument with side effect"
+; V312 tmp297 [V312,T52] ( 2, 4 ) long -> rdx "argument with side effect"
; V313 tmp298 [V313,T53] ( 2, 4 ) int -> rdx "argument with side effect"
-; V314 GsCookie [V314 ] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V315 tmp300 [V315,T00] ( 23, 20 ) ref -> [rbp-0xD8] must-init EH-live single-def ptr "shadowVar"
+; V314 GsCookie [V314 ] ( 1, 1 ) long -> [rbp-0x38] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V315 tmp300 [V315,T00] ( 23, 20 ) ref -> [rbp-0x108] must-init EH-live single-def ptr "shadowVar"
; V316 tmp301 [V316,T22] ( 5, 5 ) ref -> r15 single-def "shadowVar"
-; V317 PSPSym [V317,T77] ( 1, 1 ) long -> [rbp-0xE0] do-not-enreg[V] "PSPSym"
+; V317 PSPSym [V317,T77] ( 1, 1 ) long -> [rbp-0x110] do-not-enreg[V] "PSPSym"
;
-; Lcl frame size = 200
+; Lcl frame size = 248
G_M14481_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 200
+ sub rsp, 248
vzeroupper
- lea rbp, [rsp+0xF0]
+ lea rbp, [rsp+0x120]
xor eax, eax
- mov qword ptr [rbp-0xD8], rax
+ mov qword ptr [rbp-0x108], rax
vxorps xmm8, xmm8, xmm8
- vmovdqu32 zmmword ptr [rbp-0xD0], zmm8
- vmovdqa xmmword ptr [rbp-0x90], xmm8
+ vmovdqu32 zmmword ptr [rbp-0x100], zmm8
+ vmovdqu32 zmmword ptr [rbp-0xC0], zmm8
vmovdqa xmmword ptr [rbp-0x80], xmm8
- vmovdqa xmmword ptr [rbp-0x70], xmm8
- mov qword ptr [rbp-0xE0], rsp
- mov qword ptr [rbp-0x30], 0xD1FFAB1E
+ mov qword ptr [rbp-0x70], rax
+ mov qword ptr [rbp-0x110], rsp
+ mov qword ptr [rbp-0x30], rdi
+ mov qword ptr [rbp-0x38], 0xD1FFAB1E
+ mov gword ptr [rbp-0xE0], rdi
mov ebx, edx
- ;; size=87 bbWeight=1 PerfScore 19.58
+ ;; size=93 bbWeight=1 PerfScore 20.58
G_M14481_IG02:
mov r15, rsi
- mov gword ptr [rbp-0xD8], rdi
- mov word ptr [rdi+0x66], 257
- mov dword ptr [rdi+0x5C], -1
- lea rdi, bword ptr [rdi+0x08]
+ mov r14, rdi
+ mov gword ptr [rbp-0x108], r14
+ mov word ptr [r14+0x66], 257
+ mov dword ptr [r14+0x5C], -1
+ lea rdi, bword ptr [r14+0x08]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
- mov rdi, gword ptr [rbp-0xD8]
- mov qword ptr [rdi+0x50], -1
- mov dword ptr [rdi+0x58], -1
+ mov qword ptr [r14+0x50], -1
+ mov dword ptr [r14+0x58], -1
test bl, bl
jne SHORT G_M14481_IG06
- ;; size=61 bbWeight=1 PerfScore 9.25
+ ;; size=60 bbWeight=1 PerfScore 8.50
G_M14481_IG03:
- cmp qword ptr [rbp-0x30], 0xD1FFAB1E
+ cmp qword ptr [rbp-0x38], 0xD1FFAB1E
je SHORT G_M14481_IG04
call CORINFO_HELP_FAIL_FAST
;; size=15 bbWeight=1 PerfScore 4.00
G_M14481_IG04:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M14481_IG05:
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_M14481_IG06:
- lea rsi, [rbp-0x58]
+ lea rsi, [rbp-0x60]
mov qword ptr [rsp], rsi
- lea rsi, bword ptr [rdi+0x50]
- lea rdx, bword ptr [rdi+0x54]
- lea rcx, bword ptr [rdi+0x58]
- lea r8, bword ptr [rdi+0x67]
- lea r9, bword ptr [rdi+0x68]
+ lea rsi, bword ptr [r14+0x50]
+ lea rdx, bword ptr [r14+0x54]
+ lea rcx, bword ptr [r14+0x58]
+ lea r8, bword ptr [r14+0x67]
+ lea r9, bword ptr [r14+0x68]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:LoadSocketTypeFromHandle(System.Net.Sockets.SafeSocketHandle,byref,byref,byref,byref,byref,byref)
call [rax]System.Net.Sockets.Socket:LoadSocketTypeFromHandle(System.Net.Sockets.SafeSocketHandle,byref,byref,byref,byref,byref,byref)
- cmp byte ptr [rbp-0x58], 0
+ cmp byte ptr [rbp-0x60], 0
je SHORT G_M14481_IG03
- mov rdi, gword ptr [rbp-0xD8]
mov rsi, 0xD1FFAB1E ; global ptr
test byte ptr [rsi], 1
je G_M14481_IG30
- ;; size=75 bbWeight=1 PerfScore 15.75
+ ;; size=68 bbWeight=1 PerfScore 14.75
G_M14481_IG07:
mov rsi, 0xD1FFAB1E ; data for System.Net.Sockets.SocketPal:MaximumAddressSize
mov ebx, dword ptr [rsi]
mov esi, ebx
- mov r14, rsi
- test r14, r14
+ mov r13, rsi
+ test r13, r13
je SHORT G_M14481_IG09
- mov rdx, r14
+ mov rdx, r13
add rdx, 15
and rdx, -16
add rsp, 16
neg rdx
add rdx, rsp
jb SHORT G_M14481_IG08
xor edx, edx
;; size=47 bbWeight=1 PerfScore 6.75
G_M14481_IG08:
test dword ptr [rsp], esp
sub rsp, 0x1000
cmp rsp, rdx
jae SHORT G_M14481_IG08
mov rsp, rdx
test dword ptr [rsp], esp
sub rsp, 16
- lea r14, [rsp+0x10]
+ lea r13, [rsp+0x10]
;; size=30 bbWeight=1 PerfScore 8.50
G_M14481_IG09:
test ebx, ebx
jl G_M14481_IG31
- mov dword ptr [rbp-0x60], ebx
+ mov dword ptr [rbp-0x68], ebx
;; size=11 bbWeight=1 PerfScore 2.25
G_M14481_IG10:
xor rsi, rsi
test ebx, ebx
- cmovne rsi, r14
- mov bword ptr [rbp-0x68], rsi
- lea rdx, [rbp-0x60]
+ cmovne rsi, r13
+ mov bword ptr [rbp-0x70], rsi
+ lea rdx, [rbp-0x68]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for Interop+Sys:GetSockName(System.Runtime.InteropServices.SafeHandle,ulong,ulong):int
call [rax]Interop+Sys:GetSockName(System.Runtime.InteropServices.SafeHandle,ulong,ulong):int
test eax, eax
je SHORT G_M14481_IG13
mov edi, eax
mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.SocketErrorPal:GetSocketErrorForNativeError(int):int
call [rax]System.Net.Sockets.SocketErrorPal:GetSocketErrorForNativeError(int):int
test eax, eax
je SHORT G_M14481_IG13
;; size=53 bbWeight=1 PerfScore 11.75
G_M14481_IG11:
- mov rdi, qword ptr [rbp-0xE0]
+ mov rdi, qword ptr [rbp-0x110]
call G_M14481_IG32
;; size=12 bbWeight=1 PerfScore 2.00
G_M14481_IG12:
jmp G_M14481_IG03
;; size=5 bbWeight=1 PerfScore 2.00
G_M14481_IG13:
xor edi, edi
- mov bword ptr [rbp-0x68], rdi
- mov rdi, gword ptr [rbp-0xD8]
- mov r13d, dword ptr [rdi+0x50]
- cmp r13d, 1
+ mov bword ptr [rbp-0x70], rdi
+ mov r12d, dword ptr [r14+0x50]
+ cmp r12d, 1
je SHORT G_M14481_IG14
- cmp r13d, 2
+ cmp r12d, 2
je SHORT G_M14481_IG15
- cmp r13d, 23
+ cmp r12d, 23
jne G_M14481_IG18
- lea r13, [rbp-0x50]
- mov esi, dword ptr [rbp-0x60]
+ lea r12, [rbp-0x58]
+ mov esi, dword ptr [rbp-0x68]
cmp esi, ebx
jbe G_M14481_IG16
jmp G_M14481_IG31
- ;; size=59 bbWeight=1 PerfScore 12.75
+ ;; size=52 bbWeight=1 PerfScore 11.75
G_M14481_IG14:
- mov r13d, dword ptr [rbp-0x60]
- cmp r13d, ebx
+ mov r12d, dword ptr [rbp-0x68]
+ cmp r12d, ebx
ja G_M14481_IG31
mov rdi, 0xD1FFAB1E ; System.Net.Sockets.UnixDomainSocketEndPoint
call CORINFO_HELP_NEWSFAST
- mov r12, rax
- mov rsi, r14
- mov edx, r13d
- mov rdi, r12
- mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.UnixDomainSocketEndPoint:.ctor(System.ReadOnlySpan`1[ubyte]):this
- call [rax]System.Net.Sockets.UnixDomainSocketEndPoint:.ctor(System.ReadOnlySpan`1[ubyte]):this
- mov rdi, gword ptr [rbp-0xD8]
- lea rdi, bword ptr [rdi+0x10]
- mov rsi, r12
+ mov gword ptr [rbp-0xE8], rax
+ mov rsi, r13
+ mov edx, r12d
+ mov rdi, rax
+ mov rcx, 0xD1FFAB1E ; code for System.Net.Sockets.UnixDomainSocketEndPoint:.ctor(System.ReadOnlySpan`1[ubyte]):this
+ call [rcx]System.Net.Sockets.UnixDomainSocketEndPoint:.ctor(System.ReadOnlySpan`1[ubyte]):this
+ lea rdi, bword ptr [r14+0x10]
+ mov rsi, gword ptr [rbp-0xE8]
call CORINFO_HELP_ASSIGN_REF
jmp G_M14481_IG18
- ;; size=76 bbWeight=1 PerfScore 12.50
+ ;; size=77 bbWeight=1 PerfScore 13.00
G_M14481_IG15:
- mov esi, dword ptr [rbp-0x60]
+ mov esi, dword ptr [rbp-0x68]
cmp esi, ebx
ja G_M14481_IG31
- mov bword ptr [rbp-0x70], r14
- mov rdx, r14
- mov rdi, rdx
- lea rdx, [rbp-0x78]
+ mov bword ptr [rbp-0x80], r13
+ mov rdi, r13
+ lea rdx, [rbp-0x88]
call Interop+Sys:GetIPv4Address(ulong,int,ulong):int
mov edi, eax
xor eax, eax
- mov bword ptr [rbp-0x70], rax
+ mov bword ptr [rbp-0x80], rax
mov rax, 0xD1FFAB1E ; code for System.Net.SocketAddressPal:ThrowOnFailure(int)
call [rax]System.Net.SocketAddressPal:ThrowOnFailure(int)
- mov r13d, dword ptr [rbp-0x78]
+ mov r12d, dword ptr [rbp-0x88]
mov rdi, 0xD1FFAB1E ; System.Net.IPAddress
call CORINFO_HELP_NEWSFAST
- mov r12, rax
- mov esi, r13d
- mov rdi, r12
- mov rax, 0xD1FFAB1E ; code for System.Net.IPAddress:.ctor(long):this
- call [rax]System.Net.IPAddress:.ctor(long):this
+ mov gword ptr [rbp-0xF8], rax
+ mov esi, r12d
+ mov rdi, rax
+ mov rcx, 0xD1FFAB1E ; code for System.Net.IPAddress:.ctor(long):this
+ call [rcx]System.Net.IPAddress:.ctor(long):this
mov rdi, 0xD1FFAB1E ; System.Net.IPEndPoint
call CORINFO_HELP_NEWSFAST
- mov r13, rax
- mov rdi, r14
+ mov r12, rax
+ mov rdi, r13
mov esi, ebx
mov rax, 0xD1FFAB1E ; code for System.Net.SocketAddressPal:GetPort(System.ReadOnlySpan`1[ubyte]):ushort
call [rax]System.Net.SocketAddressPal:GetPort(System.ReadOnlySpan`1[ubyte]):ushort
mov edx, eax
- mov rsi, r12
- mov rdi, r13
+ mov rsi, gword ptr [rbp-0xF8]
+ mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this
call [rax]System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this
- mov rdi, gword ptr [rbp-0xD8]
- lea rdi, bword ptr [rdi+0x10]
- mov rsi, r13
+ lea rdi, bword ptr [r14+0x10]
+ mov rsi, r12
call CORINFO_HELP_ASSIGN_REF
jmp G_M14481_IG18
- ;; size=169 bbWeight=1 PerfScore 30.25
+ ;; size=173 bbWeight=1 PerfScore 30.50
G_M14481_IG16:
- mov bword ptr [rbp-0x80], r14
- mov bword ptr [rbp-0x88], r13
- mov rdx, r14
- mov r8, r13
- mov rdi, rdx
- mov rdx, r8
- lea r8, [rbp-0x90]
+ mov bword ptr [rbp-0x90], r13
+ mov bword ptr [rbp-0x98], r12
+ mov rdi, r13
+ mov rdx, r12
+ lea r8, [rbp-0xA0]
mov ecx, 16
call Interop+Sys:GetIPv6Address(ulong,int,ulong,int,ulong):int
mov edi, eax
xor eax, eax
- mov bword ptr [rbp-0x88], rax
- ;; size=51 bbWeight=1 PerfScore 6.25
+ mov bword ptr [rbp-0x98], rax
+ ;; size=48 bbWeight=1 PerfScore 5.75
G_M14481_IG17:
- mov bword ptr [rbp-0x80], rax
+ mov bword ptr [rbp-0x90], rax
mov rax, 0xD1FFAB1E ; code for System.Net.SocketAddressPal:ThrowOnFailure(int)
call [rax]System.Net.SocketAddressPal:ThrowOnFailure(int)
- mov r12d, dword ptr [rbp-0x90]
+ mov eax, dword ptr [rbp-0xA0]
+ mov dword ptr [rbp-0x74], eax
mov rdi, 0xD1FFAB1E ; System.Net.IPAddress
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xD0], rax
- mov rsi, r13
+ mov gword ptr [rbp-0x100], rax
+ mov rsi, r12
mov edx, 16
- mov ecx, r12d
+ mov ecx, dword ptr [rbp-0x74]
mov rdi, rax
mov r8, 0xD1FFAB1E ; code for System.Net.IPAddress:.ctor(System.ReadOnlySpan`1[ubyte],long):this
call [r8]System.Net.IPAddress:.ctor(System.ReadOnlySpan`1[ubyte],long):this
mov rdi, 0xD1FFAB1E ; System.Net.IPEndPoint
call CORINFO_HELP_NEWSFAST
- mov r13, rax
- mov rdi, r14
+ mov r12, rax
+ mov rdi, r13
mov esi, ebx
mov rax, 0xD1FFAB1E ; code for System.Net.SocketAddressPal:GetPort(System.ReadOnlySpan`1[ubyte]):ushort
call [rax]System.Net.SocketAddressPal:GetPort(System.ReadOnlySpan`1[ubyte]):ushort
mov edx, eax
- mov rsi, gword ptr [rbp-0xD0]
- mov rdi, r13
+ mov rsi, gword ptr [rbp-0x100]
+ mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this
call [rax]System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this
- mov rdi, gword ptr [rbp-0xD8]
- lea rdi, bword ptr [rdi+0x10]
- mov rsi, r13
+ lea rdi, bword ptr [r14+0x10]
+ mov rsi, r12
call CORINFO_HELP_ASSIGN_REF
- ;; size=150 bbWeight=1 PerfScore 24.50
+ ;; size=148 bbWeight=1 PerfScore 25.25
G_M14481_IG18:
- mov rdi, gword ptr [rbp-0xD8]
- cmp gword ptr [rdi+0x10], 0
+ cmp gword ptr [r14+0x10], 0
je G_M14481_IG03
- ;; size=18 bbWeight=1 PerfScore 5.00
+ ;; size=11 bbWeight=1 PerfScore 4.00
G_M14481_IG19:
- mov dword ptr [rbp-0x60], ebx
- mov esi, dword ptr [rbp-0x60]
- mov dword ptr [rbp-0x98], esi
+ mov dword ptr [rbp-0x68], ebx
+ mov esi, dword ptr [rbp-0x68]
+ mov dword ptr [rbp-0xA8], esi
xor rsi, rsi
test ebx, ebx
- cmovne rsi, r14
- mov bword ptr [rbp-0xA0], rsi
- lea rdx, [rbp-0x98]
+ cmovne rsi, r13
+ mov bword ptr [rbp-0xB0], rsi
+ lea rdx, [rbp-0xA8]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for Interop+Sys:GetPeerName(System.Runtime.InteropServices.SafeHandle,ulong,ulong):int
call [rax]Interop+Sys:GetPeerName(System.Runtime.InteropServices.SafeHandle,ulong,ulong):int
xor edi, edi
- mov bword ptr [rbp-0xA0], rdi
- mov edi, dword ptr [rbp-0x98]
- mov dword ptr [rbp-0x60], edi
+ mov bword ptr [rbp-0xB0], rdi
+ mov edi, dword ptr [rbp-0xA8]
+ mov dword ptr [rbp-0x68], edi
test eax, eax
je SHORT G_M14481_IG20
mov edi, eax
mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.SocketErrorPal:GetSocketErrorForNativeError(int):int
call [rax]System.Net.Sockets.SocketErrorPal:GetSocketErrorForNativeError(int):int
jmp SHORT G_M14481_IG21
;; size=87 bbWeight=1 PerfScore 18.75
G_M14481_IG20:
xor eax, eax
;; size=2 bbWeight=1 PerfScore 0.25
G_M14481_IG21:
test eax, eax
je SHORT G_M14481_IG22
cmp eax, 0x2726
- je G_M14481_IG24
+ je SHORT G_M14481_IG24
jmp G_M14481_IG29
- ;; size=20 bbWeight=1 PerfScore 4.50
+ ;; size=16 bbWeight=1 PerfScore 4.50
G_M14481_IG22:
- mov rdi, gword ptr [rbp-0xD8]
- mov r13d, dword ptr [rdi+0x50]
- cmp r13d, 1
+ mov r12d, dword ptr [r14+0x50]
+ cmp r12d, 1
je SHORT G_M14481_IG23
- cmp r13d, 2
+ cmp r12d, 2
je SHORT G_M14481_IG25
- cmp r13d, 23
+ cmp r12d, 23
jne SHORT G_M14481_IG24
- lea r15, [rbp-0x40]
- mov esi, dword ptr [rbp-0x60]
+ lea r15, [rbp-0x48]
+ mov esi, dword ptr [rbp-0x68]
cmp esi, ebx
jbe G_M14481_IG26
jmp G_M14481_IG28
- ;; size=49 bbWeight=1 PerfScore 11.50
+ ;; size=42 bbWeight=1 PerfScore 10.50
G_M14481_IG23:
- mov r15d, dword ptr [rbp-0x60]
+ mov r15d, dword ptr [rbp-0x68]
cmp r15d, ebx
ja G_M14481_IG28
mov rdi, 0xD1FFAB1E ; System.Net.Sockets.UnixDomainSocketEndPoint
call CORINFO_HELP_NEWSFAST
mov rbx, rax
- mov rsi, r14
+ mov rsi, r13
mov edx, r15d
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.UnixDomainSocketEndPoint:.ctor(System.ReadOnlySpan`1[ubyte]):this
call [rax]System.Net.Sockets.UnixDomainSocketEndPoint:.ctor(System.ReadOnlySpan`1[ubyte]):this
- mov rdi, gword ptr [rbp-0xD8]
- lea rdi, bword ptr [rdi+0x18]
+ lea rdi, bword ptr [r14+0x18]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
- ;; size=71 bbWeight=1 PerfScore 10.50
+ ;; size=64 bbWeight=1 PerfScore 9.50
G_M14481_IG24:
- mov rdi, gword ptr [rbp-0xD8]
- mov byte ptr [rdi+0x64], 1
+ mov byte ptr [r14+0x64], 1
jmp G_M14481_IG29
- ;; size=16 bbWeight=1 PerfScore 4.00
+ ;; size=10 bbWeight=1 PerfScore 3.00
G_M14481_IG25:
- mov esi, dword ptr [rbp-0x60]
+ mov esi, dword ptr [rbp-0x68]
cmp esi, ebx
ja G_M14481_IG28
- mov bword ptr [rbp-0xA8], r14
- mov rdx, r14
- mov rdi, rdx
- lea rdx, [rbp-0xB0]
+ mov bword ptr [rbp-0xB8], r13
+ mov rdi, r13
+ lea rdx, [rbp-0xC0]
call Interop+Sys:GetIPv4Address(ulong,int,ulong):int
mov edi, eax
xor eax, eax
- mov bword ptr [rbp-0xA8], rax
+ mov bword ptr [rbp-0xB8], rax
mov rax, 0xD1FFAB1E ; code for System.Net.SocketAddressPal:ThrowOnFailure(int)
call [rax]System.Net.SocketAddressPal:ThrowOnFailure(int)
- mov r15d, dword ptr [rbp-0xB0]
+ mov r15d, dword ptr [rbp-0xC0]
mov rdi, 0xD1FFAB1E ; System.Net.IPAddress
call CORINFO_HELP_NEWSFAST
- mov r13, rax
+ mov r12, rax
mov esi, r15d
- mov rdi, r13
+ mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.Net.IPAddress:.ctor(long):this
call [rax]System.Net.IPAddress:.ctor(long):this
mov rdi, 0xD1FFAB1E ; System.Net.IPEndPoint
call CORINFO_HELP_NEWSFAST
mov r15, rax
- mov rdi, r14
+ mov rdi, r13
mov esi, ebx
mov rax, 0xD1FFAB1E ; code for System.Net.SocketAddressPal:GetPort(System.ReadOnlySpan`1[ubyte]):ushort
call [rax]System.Net.SocketAddressPal:GetPort(System.ReadOnlySpan`1[ubyte]):ushort
mov edx, eax
- mov rsi, r13
+ mov rsi, r12
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this
call [rax]System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this
- mov rdi, gword ptr [rbp-0xD8]
- lea rdi, bword ptr [rdi+0x18]
+ lea rdi, bword ptr [r14+0x18]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
jmp G_M14481_IG24
- ;; size=181 bbWeight=1 PerfScore 30.25
+ ;; size=171 bbWeight=1 PerfScore 29.00
G_M14481_IG26:
- mov bword ptr [rbp-0xB8], r14
- mov bword ptr [rbp-0xC0], r15
- mov rdx, r14
- mov r8, r15
- mov rdi, rdx
- mov rdx, r8
- lea r8, [rbp-0xC8]
+ mov bword ptr [rbp-0xC8], r13
+ mov bword ptr [rbp-0xD0], r15
+ mov rdi, r13
+ mov rdx, r15
+ lea r8, [rbp-0xD8]
mov ecx, 16
call Interop+Sys:GetIPv6Address(ulong,int,ulong,int,ulong):int
mov edi, eax
xor eax, eax
- mov bword ptr [rbp-0xC0], rax
- ;; size=54 bbWeight=1 PerfScore 6.25
+ mov bword ptr [rbp-0xD0], rax
+ ;; size=48 bbWeight=1 PerfScore 5.75
G_M14481_IG27:
- mov bword ptr [rbp-0xB8], rax
+ mov bword ptr [rbp-0xC8], rax
mov rax, 0xD1FFAB1E ; code for System.Net.SocketAddressPal:ThrowOnFailure(int)
call [rax]System.Net.SocketAddressPal:ThrowOnFailure(int)
- mov r13d, dword ptr [rbp-0xC8]
+ mov r12d, dword ptr [rbp-0xD8]
mov rdi, 0xD1FFAB1E ; System.Net.IPAddress
call CORINFO_HELP_NEWSFAST
- mov r12, rax
+ mov gword ptr [rbp-0xF0], rax
mov rsi, r15
mov edx, 16
- mov ecx, r13d
- mov rdi, r12
- mov rax, 0xD1FFAB1E ; code for System.Net.IPAddress:.ctor(System.ReadOnlySpan`1[ubyte],long):this
- call [rax]System.Net.IPAddress:.ctor(System.ReadOnlySpan`1[ubyte],long):this
- mov r15, r14
+ mov ecx, r12d
+ mov rdi, rax
+ mov r8, 0xD1FFAB1E ; code for System.Net.IPAddress:.ctor(System.ReadOnlySpan`1[ubyte],long):this
+ call [r8]System.Net.IPAddress:.ctor(System.ReadOnlySpan`1[ubyte],long):this
+ mov r15, r13
mov rdi, 0xD1FFAB1E ; System.Net.IPEndPoint
call CORINFO_HELP_NEWSFAST
- mov r14, rax
+ mov r13, rax
mov rdi, r15
mov esi, ebx
mov rax, 0xD1FFAB1E ; code for System.Net.SocketAddressPal:GetPort(System.ReadOnlySpan`1[ubyte]):ushort
call [rax]System.Net.SocketAddressPal:GetPort(System.ReadOnlySpan`1[ubyte]):ushort
mov edx, eax
- mov rsi, r12
- mov rdi, r14
+ mov rsi, gword ptr [rbp-0xF0]
+ mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this
call [rax]System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this
- mov rdi, gword ptr [rbp-0xD8]
- lea rdi, bword ptr [rdi+0x18]
- mov rsi, r14
+ lea rdi, bword ptr [r14+0x18]
+ mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
jmp G_M14481_IG24
- ;; size=152 bbWeight=1 PerfScore 25.25
+ ;; size=154 bbWeight=1 PerfScore 25.75
G_M14481_IG28:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M14481_IG29:
nop
jmp G_M14481_IG03
;; size=6 bbWeight=1 PerfScore 2.25
G_M14481_IG30:
mov rdi, 0xD1FFAB1E ; System.Net.Sockets.SocketPal
call CORINFO_HELP_GET_NONGCSTATIC_BASE
- mov rdi, gword ptr [rbp-0xD8]
jmp G_M14481_IG07
- ;; size=27 bbWeight=0 PerfScore 0.00
+ ;; size=20 bbWeight=0 PerfScore 0.00
G_M14481_IG31:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M14481_IG32:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
vzeroupper
mov rbp, qword ptr [rdi+0x10]
mov qword ptr [rsp+0x10], rbp
- lea rbp, [rbp+0xF0]
+ lea rbp, [rbp+0x120]
;; size=33 bbWeight=1 PerfScore 10.75
G_M14481_IG33:
xor eax, eax
- mov bword ptr [rbp-0x68], rax
+ mov bword ptr [rbp-0x70], rax
;; size=6 bbWeight=1 PerfScore 1.25
G_M14481_IG34:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M14481_IG35:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
vzeroupper
mov rbp, qword ptr [rdi+0x10]
mov qword ptr [rsp+0x10], rbp
- lea rbp, [rbp+0xF0]
+ lea rbp, [rbp+0x120]
;; size=33 bbWeight=0 PerfScore 0.00
G_M14481_IG36:
lea rax, G_M14481_IG29
;; size=7 bbWeight=0 PerfScore 0.00
G_M14481_IG37:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
G_M14481_IG38:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
vzeroupper
mov rbp, qword ptr [rdi+0x10]
mov qword ptr [rsp+0x10], rbp
- lea rbp, [rbp+0xF0]
+ lea rbp, [rbp+0x120]
;; size=33 bbWeight=0 PerfScore 0.00
G_M14481_IG39:
xor rdi, rdi
- mov rbx, gword ptr [rbp-0xD8]
- mov gword ptr [rbx+0x08], rdi
- mov rdi, rbx
+ mov r14, gword ptr [rbp-0x108]
+ mov gword ptr [r14+0x08], rdi
+ mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.GC:SuppressFinalize(System.Object)
call [rax]System.GC:SuppressFinalize(System.Object)
call CORINFO_HELP_RETHROW
int3
;; size=34 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1802, prolog size 87, PerfScore 307.58, instruction count 426, allocated bytes for code 1802 (MethodHash=f641c76e) for method System.Net.Sockets.Socket:.ctor(System.Net.Sockets.SafeSocketHandle,ubyte):this (FullOpts)
+; Total bytes of code 1741, prolog size 93, PerfScore 301.58, instruction count 411, allocated bytes for code 1741 (MethodHash=f641c76e) for method System.Net.Sockets.Socket:.ctor(System.Net.Sockets.SafeSocketHandle,ubyte):this (FullOpts)
-48 (-3.13 % of base) - System.Data.DataSet:SerializeRelations(System.Runtime.Serialization.SerializationInfo):this
; Assembly listing for method System.Data.DataSet:SerializeRelations(System.Runtime.Serialization.SerializationInfo):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; 15 single block inlinees; 13 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T34] ( 5, 11 ) ref -> r15 this class-hnd single-def <System.Data.DataSet>
+; V00 this [V00,T34] ( 5, 11 ) ref -> [rbp-0x58] this class-hnd EH-live single-def <System.Data.DataSet>
; V01 arg1 [V01,T30] ( 15, 13.50) ref -> rbx class-hnd single-def <System.Runtime.Serialization.SerializationInfo>
-; V02 loc0 [V02,T11] ( 13, 39 ) ref -> r14 class-hnd exact single-def <System.Collections.ArrayList>
-; V03 loc1 [V03,T35] ( 6, 10 ) ref -> [rbp-0x50] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
-; V04 loc2 [V04,T05] ( 12, 72 ) ref -> r13 class-hnd <System.Data.DataRelation>
-; V05 loc3 [V05,T12] ( 5, 32 ) ref -> [rbp-0x58] class-hnd exact spill-single-def <int[]>
-; V06 loc4 [V06,T13] ( 5, 32 ) ref -> [rbp-0x60] class-hnd exact spill-single-def <int[]>
+; V02 loc0 [V02,T11] ( 13, 39 ) ref -> r15 class-hnd exact single-def <System.Collections.ArrayList>
+; V03 loc1 [V03,T35] ( 6, 10 ) ref -> [rbp-0x60] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
+; V04 loc2 [V04,T05] ( 12, 72 ) ref -> r14 class-hnd <System.Data.DataRelation>
+; V05 loc3 [V05,T12] ( 5, 32 ) ref -> r12 class-hnd exact <int[]>
+; V06 loc4 [V06,T13] ( 5, 32 ) ref -> [rbp-0x68] class-hnd exact spill-single-def <int[]>
;* V07 loc5 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Collections.ArrayList>
;* V08 loc6 [V08,T50] ( 0, 0 ) int -> zero-ref
;* V09 loc7 [V09,T51] ( 0, 0 ) int -> zero-ref
; V10 loc8 [V10,T53] ( 6, 2.50) ref -> rax class-hnd <System.IDisposable>
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V12 tmp1 [V12,T43] ( 3, 6 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Collections.ArrayList>
+; V12 tmp1 [V12,T43] ( 3, 6 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Collections.ArrayList>
;* V13 tmp2 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <System.Data.DataTableCollection>
; V14 tmp3 [V14,T26] ( 2, 16 ) int -> rax "Strict ordering of exceptions for Array store"
; V15 tmp4 [V15,T06] ( 2, 64 ) int -> rax "Strict ordering of exceptions for Array store"
;* V16 tmp5 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" <System.Data.DataTableCollection>
; V17 tmp6 [V17,T27] ( 2, 16 ) int -> rax "Strict ordering of exceptions for Array store"
; V18 tmp7 [V18,T07] ( 2, 64 ) int -> rax "Strict ordering of exceptions for Array store"
-; V19 tmp8 [V19,T00] ( 47,348 ) ref -> r12 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
-; V20 tmp9 [V20,T17] ( 3, 24 ) ref -> [rbp-0x68] class-hnd exact spill-single-def "Single-def Box Helper" <System.Boolean>
+; V19 tmp8 [V19,T00] ( 47,348 ) ref -> r13 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
+; V20 tmp9 [V20,T17] ( 3, 24 ) ref -> r12 class-hnd exact "Single-def Box Helper" <System.Boolean>
;* V21 tmp10 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Data.DataColumn>
;* V22 tmp11 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Data.DataColumn>
; V23 tmp12 [V23,T20] ( 2, 16 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "Inlining Arg" <System.String>
; V24 tmp13 [V24,T37] ( 2, 8 ) int -> rsi "Inline stloc first use temp"
; V25 tmp14 [V25,T38] ( 2, 8 ) int -> rsi "Inline stloc first use temp"
; V26 tmp15 [V26,T39] ( 2, 8 ) int -> rdi "Inline stloc first use temp"
;* V27 tmp16 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Boolean>
; V28 tmp17 [V28,T40] ( 2, 8 ) int -> rsi "Inline stloc first use temp"
-; V29 tmp18 [V29,T21] ( 2, 16 ) ref -> r13 class-hnd "Inlining Arg" <System.Data.PropertyCollection>
+; V29 tmp18 [V29,T21] ( 2, 16 ) ref -> r14 class-hnd "Inlining Arg" <System.Data.PropertyCollection>
; V30 tmp19 [V30,T41] ( 2, 8 ) int -> rsi "Inline stloc first use temp"
; V31 tmp20 [V31,T42] ( 2, 8 ) int -> rdi "Inline stloc first use temp"
;* V32 tmp21 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" <System.Runtime.Serialization.SerializationException>
;* V33 tmp22 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,int]>
;* V34 tmp23 [V34 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V35 tmp24 [V35,T48] ( 2, 4 ) ref -> r15 class-hnd exact single-def "Inlining Arg" <System.RuntimeType>
+; V35 tmp24 [V35,T48] ( 2, 4 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.RuntimeType>
; V36 tmp25 [V36,T58] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Runtime.Serialization.SerializationException>
; V37 tmp26 [V37,T44] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.Dictionary`2[System.String,int]>
; V38 tmp27 [V38,T49] ( 2, 4 ) int -> rdx "Inlining Arg"
-; V39 tmp28 [V39,T45] ( 3, 6 ) ref -> rdi single-def "argument with side effect"
+; V39 tmp28 [V39,T45] ( 3, 6 ) ref -> rax single-def "argument with side effect"
; V40 tmp29 [V40,T18] ( 3, 18 ) ref -> rax "argument with side effect"
; V41 tmp30 [V41,T28] ( 2, 16 ) long -> rsi "argument with side effect"
; V42 tmp31 [V42,T22] ( 2, 16 ) ref -> rsi "argument with side effect"
; V43 tmp32 [V43,T23] ( 2, 16 ) ref -> [rbp-0x78] spill-single-def "argument with side effect"
; V44 tmp33 [V44,T01] ( 3, 96 ) ref -> rax "arr expr"
; V45 tmp34 [V45,T29] ( 2, 16 ) long -> rsi "argument with side effect"
; V46 tmp35 [V46,T24] ( 2, 16 ) ref -> rsi "argument with side effect"
; V47 tmp36 [V47,T25] ( 2, 16 ) ref -> [rbp-0x80] spill-single-def "argument with side effect"
; V48 tmp37 [V48,T02] ( 3, 96 ) ref -> rax "arr expr"
;* V49 tmp38 [V49 ] ( 0, 0 ) ref -> zero-ref single-def "arr expr"
;* V50 tmp39 [V50 ] ( 0, 0 ) int -> zero-ref "index expr"
;* V51 tmp40 [V51 ] ( 0, 0 ) ref -> zero-ref single-def "arr expr"
;* V52 tmp41 [V52 ] ( 0, 0 ) long -> zero-ref "index expr"
;* V53 tmp42 [V53 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect"
; V54 tmp43 [V54,T46] ( 3, 6 ) ref -> rsi single-def "arr expr"
; V55 tmp44 [V55,T47] ( 3, 6 ) int -> rdx "index expr"
; V56 tmp45 [V56,T59] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V57 PSPSym [V57,T57] ( 1, 1 ) long -> [rbp-0x90] do-not-enreg[V] "PSPSym"
;* V58 cse0 [V58,T56] ( 0, 0 ) byref -> zero-ref "CSE #10: conservative"
-; V59 cse1 [V59,T08] ( 6, 48 ) long -> r12 "CSE #03: moderate"
-; V60 cse2 [V60,T19] ( 4, 16 ) long -> [rbp-0x30] spill-single-def "CSE #12: moderate"
+; V59 cse1 [V59,T08] ( 6, 48 ) long -> r13 "CSE #03: moderate"
+; V60 cse2 [V60,T19] ( 4, 16 ) long -> [rbp-0x38] spill-single-def "CSE #12: moderate"
; V61 cse3 [V61,T54] ( 2, 2 ) ref -> rdi "CSE #21: conservative"
; V62 cse4 [V62,T55] ( 2, 2 ) int -> rdx "CSE #22: conservative"
; V63 cse5 [V63,T52] ( 3, 3 ) int -> rdi "CSE #24: conservative"
-; V64 cse6 [V64,T15] ( 4, 28 ) int -> [rbp-0x34] spill-single-def "CSE #02: moderate"
-; V65 cse7 [V65,T16] ( 4, 28 ) int -> [rbp-0x38] spill-single-def "CSE #06: moderate"
+; V64 cse6 [V64,T15] ( 4, 28 ) int -> [rbp-0x3C] spill-single-def "CSE #02: moderate"
+; V65 cse7 [V65,T16] ( 4, 28 ) int -> [rbp-0x40] spill-single-def "CSE #06: moderate"
; V66 cse8 [V66,T09] ( 3, 48 ) int -> rcx "CSE #04: moderate"
; V67 cse9 [V67,T10] ( 3, 48 ) int -> rcx "CSE #07: moderate"
; V68 cse10 [V68,T31] ( 4, 14 ) int -> rsi "CSE #14: moderate"
; V69 cse11 [V69,T32] ( 4, 14 ) int -> rsi "CSE #15: moderate"
; V70 cse12 [V70,T33] ( 4, 14 ) int -> rsi "CSE #17: moderate"
-; V71 rat0 [V71,T03] ( 6, 84 ) long -> [rbp-0x40] "Widened IV V08"
-; V72 rat1 [V72,T04] ( 6, 84 ) long -> [rbp-0x48] "Widened IV V09"
-; V73 rat2 [V73,T14] ( 5, 30 ) ref -> r13 "replacement local"
+; V71 rat0 [V71,T03] ( 6, 84 ) long -> [rbp-0x48] "Widened IV V08"
+; V72 rat1 [V72,T04] ( 6, 84 ) long -> [rbp-0x50] "Widened IV V09"
+; V73 rat2 [V73,T14] ( 5, 30 ) ref -> r14 "replacement local"
; V74 rat3 [V74,T36] ( 3, 10 ) long -> rdi "CSE for expectedClsNode"
;
; Lcl frame size = 104
G_M4960_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 104
lea rbp, [rsp+0x90]
mov qword ptr [rbp-0x90], rsp
- mov r15, rdi
+ mov qword ptr [rbp-0x30], rdi
+ mov gword ptr [rbp-0x58], rdi
mov rbx, rsi
- ;; size=35 bbWeight=1 PerfScore 8.25
+ ;; size=40 bbWeight=1 PerfScore 10.00
G_M4960_IG02:
mov rdi, 0xD1FFAB1E ; System.Collections.ArrayList
call CORINFO_HELP_NEWSFAST
- mov r14, rax
+ mov r15, rax
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
- je G_M4960_IG34
+ je G_M4960_IG33
;; size=37 bbWeight=1 PerfScore 5.75
G_M4960_IG03:
mov rdi, 0xD1FFAB1E ; data for System.Array+EmptyArray`1[System.Object]:Value
mov rsi, gword ptr [rdi]
- lea rdi, bword ptr [r14+0x08]
+ lea rdi, bword ptr [r15+0x08]
call CORINFO_HELP_ASSIGN_REF
- mov rdi, gword ptr [r15+0x28]
- mov rax, qword ptr [rdi]
+ mov rdi, gword ptr [rbp-0x58]
+ mov rax, gword ptr [rdi+0x28]
+ mov rdi, rax
+ mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x40]
call [rax+0x30]System.Data.InternalDataCollectionBase:GetEnumerator():System.Collections.IEnumerator:this
- mov gword ptr [rbp-0x50], rax
- ;; size=40 bbWeight=1 PerfScore 13.75
+ mov gword ptr [rbp-0x60], rax
+ ;; size=47 bbWeight=1 PerfScore 15.00
G_M4960_IG04:
mov rdi, rax
mov r11, 0xD1FFAB1E ; function address
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
- je G_M4960_IG28
+ je G_M4960_IG27
;; size=24 bbWeight=1 PerfScore 4.75
G_M4960_IG05:
- mov rdi, gword ptr [rbp-0x50]
+ mov rdi, gword ptr [rbp-0x60]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:get_Current():System.Object:this
call [r11]System.Collections.IEnumerator:get_Current():System.Object:this
- mov r13, rax
- test r13, r13
+ mov r14, rax
+ test r14, r14
je SHORT G_M4960_IG08
;; size=25 bbWeight=4 PerfScore 23.00
G_M4960_IG06:
mov rdi, 0xD1FFAB1E ; System.Data.DataRelation
- cmp qword ptr [r13], rdi
+ cmp qword ptr [r14], rdi
je SHORT G_M4960_IG08
- ;; size=16 bbWeight=2 PerfScore 8.50
+ ;; size=15 bbWeight=2 PerfScore 8.50
G_M4960_IG07:
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
call [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
- mov r13, rax
+ mov r14, rax
;; size=18 bbWeight=1 PerfScore 3.75
G_M4960_IG08:
- mov rdi, r13
- mov rax, qword ptr [r13]
- mov r12, qword ptr [rax+0x40]
- call [r12+0x38]System.Data.DataRelation:get_ParentColumns():System.Data.DataColumn[]:this
+ mov rdi, r14
+ mov rax, qword ptr [r14]
+ mov r13, qword ptr [rax+0x40]
+ call [r13+0x38]System.Data.DataRelation:get_ParentColumns():System.Data.DataColumn[]:this
mov esi, dword ptr [rax+0x08]
inc esi
movsxd rsi, esi
mov rdi, 0xD1FFAB1E ; int[]
call CORINFO_HELP_NEWARR_1_VC
- mov gword ptr [rbp-0x58], rax
- mov rcx, gword ptr [r15+0x20]
- mov gword ptr [rbp-0x78], rcx
- mov rdi, r13
- mov rdx, qword ptr [r13]
- mov rdx, qword ptr [rdx+0x48]
- mov qword ptr [rbp-0x30], rdx
- call [rdx]System.Data.DataRelation:get_ParentTable():System.Data.DataTable:this
+ mov r12, rax
+ mov rdi, gword ptr [rbp-0x58]
+ mov rax, gword ptr [rdi+0x20]
+ mov gword ptr [rbp-0x78], rax
+ mov rdi, r14
+ mov rcx, qword ptr [r14]
+ mov rcx, qword ptr [rcx+0x48]
+ mov qword ptr [rbp-0x38], rcx
+ call [rcx]System.Data.DataRelation:get_ParentTable():System.Data.DataTable:this
mov rsi, rax
mov rdi, gword ptr [rbp-0x78]
mov rax, 0xD1FFAB1E ; code for System.Data.DataTableCollection:IndexOf(System.Data.DataTable):int:this
cmp dword ptr [rdi], edi
call [rax]System.Data.DataTableCollection:IndexOf(System.Data.DataTable):int:this
- mov rcx, gword ptr [rbp-0x58]
- mov edx, dword ptr [rcx+0x08]
- mov dword ptr [rbp-0x34], edx
- test edx, edx
- je G_M4960_IG27
- mov dword ptr [rcx+0x10], eax
- mov qword ptr [rbp-0x40], 1
- cmp edx, 1
+ mov ecx, dword ptr [r12+0x08]
+ mov dword ptr [rbp-0x3C], ecx
+ test ecx, ecx
+ je G_M4960_IG26
+ mov dword ptr [r12+0x10], eax
+ mov qword ptr [rbp-0x48], 1
+ cmp ecx, 1
jle SHORT G_M4960_IG10
- ;; size=123 bbWeight=4 PerfScore 157.00
+ ;; size=123 bbWeight=4 PerfScore 154.00
G_M4960_IG09:
- mov rdi, r13
- call [r12+0x38]System.Data.DataRelation:get_ParentColumns():System.Data.DataColumn[]:this
- mov rdi, qword ptr [rbp-0x40]
+ mov rdi, r14
+ call [r13+0x38]System.Data.DataRelation:get_ParentColumns():System.Data.DataColumn[]:this
+ mov rdi, qword ptr [rbp-0x48]
lea ecx, [rdi-0x01]
cmp ecx, dword ptr [rax+0x08]
- jae G_M4960_IG27
+ jae G_M4960_IG26
mov rax, gword ptr [rax+8*rcx+0x10]
mov eax, dword ptr [rax+0xAC]
- mov rcx, gword ptr [rbp-0x58]
- mov dword ptr [rcx+4*rdi+0x10], eax
+ mov dword ptr [r12+4*rdi+0x10], eax
inc edi
- mov edx, dword ptr [rbp-0x34]
- cmp edx, edi
- mov qword ptr [rbp-0x40], rdi
+ mov ecx, dword ptr [rbp-0x3C]
+ cmp ecx, edi
+ mov qword ptr [rbp-0x48], rdi
jg SHORT G_M4960_IG09
- ;; size=56 bbWeight=16 PerfScore 292.00
+ ;; size=52 bbWeight=16 PerfScore 276.00
G_M4960_IG10:
- mov rdi, r13
- call [r12+0x20]System.Data.DataRelation:get_ChildColumns():System.Data.DataColumn[]:this
+ mov rdi, r14
+ call [r13+0x20]System.Data.DataRelation:get_ChildColumns():System.Data.DataColumn[]:this
mov esi, dword ptr [rax+0x08]
inc esi
movsxd rsi, esi
mov rdi, 0xD1FFAB1E ; int[]
call CORINFO_HELP_NEWARR_1_VC
- mov gword ptr [rbp-0x60], rax
- mov rcx, gword ptr [r15+0x20]
+ mov gword ptr [rbp-0x68], rax
+ mov rdi, gword ptr [rbp-0x58]
+ mov rcx, gword ptr [rdi+0x20]
mov gword ptr [rbp-0x80], rcx
- mov rdi, r13
- call [r12+0x28]System.Data.DataRelation:get_ChildTable():System.Data.DataTable:this
+ mov rdi, r14
+ call [r13+0x28]System.Data.DataRelation:get_ChildTable():System.Data.DataTable:this
mov rsi, rax
mov rdi, gword ptr [rbp-0x80]
mov rax, 0xD1FFAB1E ; code for System.Data.DataTableCollection:IndexOf(System.Data.DataTable):int:this
cmp dword ptr [rdi], edi
call [rax]System.Data.DataTableCollection:IndexOf(System.Data.DataTable):int:this
- mov rcx, gword ptr [rbp-0x60]
+ mov rcx, gword ptr [rbp-0x68]
mov edx, dword ptr [rcx+0x08]
- mov dword ptr [rbp-0x38], edx
+ mov dword ptr [rbp-0x40], edx
test edx, edx
- je G_M4960_IG27
+ je G_M4960_IG26
mov dword ptr [rcx+0x10], eax
- mov qword ptr [rbp-0x48], 1
+ mov qword ptr [rbp-0x50], 1
cmp edx, 1
jle SHORT G_M4960_IG12
- ;; size=106 bbWeight=4 PerfScore 121.00
+ ;; size=108 bbWeight=4 PerfScore 125.00
G_M4960_IG11:
- mov rdi, r13
- call [r12+0x20]System.Data.DataRelation:get_ChildColumns():System.Data.DataColumn[]:this
- mov rdi, qword ptr [rbp-0x48]
+ mov rdi, r14
+ call [r13+0x20]System.Data.DataRelation:get_ChildColumns():System.Data.DataColumn[]:this
+ mov rdi, qword ptr [rbp-0x50]
lea ecx, [rdi-0x01]
cmp ecx, dword ptr [rax+0x08]
- jae G_M4960_IG27
+ jae G_M4960_IG26
mov rax, gword ptr [rax+8*rcx+0x10]
mov eax, dword ptr [rax+0xAC]
- mov rcx, gword ptr [rbp-0x60]
+ mov rcx, gword ptr [rbp-0x68]
mov dword ptr [rcx+4*rdi+0x10], eax
inc edi
- mov edx, dword ptr [rbp-0x38]
+ mov edx, dword ptr [rbp-0x40]
cmp edx, edi
- mov qword ptr [rbp-0x48], rdi
+ mov qword ptr [rbp-0x50], rdi
jg SHORT G_M4960_IG11
- ;; size=56 bbWeight=16 PerfScore 292.00
+ ;; size=55 bbWeight=16 PerfScore 292.00
G_M4960_IG12:
mov rdi, 0xD1FFAB1E ; System.Collections.ArrayList
call CORINFO_HELP_NEWSFAST
- mov r12, rax
+ mov r13, rax
mov rdi, 0xD1FFAB1E ; data for System.Array+EmptyArray`1[System.Object]:Value
mov rsi, gword ptr [rdi]
- lea rdi, bword ptr [r12+0x08]
+ lea rdi, bword ptr [r13+0x08]
call CORINFO_HELP_ASSIGN_REF
- mov rdi, r13
- mov rax, qword ptr [rbp-0x30]
+ mov rdi, r14
+ mov rax, qword ptr [rbp-0x38]
call [rax+0x08]System.Data.DataRelation:get_RelationName():System.String:this
mov gword ptr [rbp-0x70], rax
- mov esi, dword ptr [r12+0x10]
- mov rdi, gword ptr [r12+0x08]
+ mov esi, dword ptr [r13+0x10]
+ mov rdi, gword ptr [r13+0x08]
cmp esi, dword ptr [rdi+0x08]
- jne G_M4960_IG26
- ;; size=74 bbWeight=4 PerfScore 74.00
+ jne G_M4960_IG25
+ ;; size=71 bbWeight=4 PerfScore 74.00
G_M4960_IG13:
- mov esi, dword ptr [r12+0x10]
+ mov esi, dword ptr [r13+0x10]
inc esi
- mov rdi, r12
+ mov rdi, r13
mov rcx, 0xD1FFAB1E ; code for System.Collections.ArrayList:EnsureCapacity(int):this
call [rcx]System.Collections.ArrayList:EnsureCapacity(int):this
mov rax, gword ptr [rbp-0x70]
- ;; size=26 bbWeight=2 PerfScore 13.50
+ ;; size=25 bbWeight=2 PerfScore 13.50
G_M4960_IG14:
- movsxd rsi, dword ptr [r12+0x10]
- mov rdi, gword ptr [r12+0x08]
+ movsxd rsi, dword ptr [r13+0x10]
+ mov rdi, gword ptr [r13+0x08]
mov rdx, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
- inc dword ptr [r12+0x14]
- mov esi, dword ptr [r12+0x10]
+ inc dword ptr [r13+0x14]
+ mov esi, dword ptr [r13+0x10]
inc esi
- mov dword ptr [r12+0x10], esi
- mov rdi, gword ptr [r12+0x08]
+ mov dword ptr [r13+0x10], esi
+ mov rdi, gword ptr [r13+0x08]
cmp dword ptr [rdi+0x08], esi
jne SHORT G_M4960_IG16
- ;; size=52 bbWeight=4 PerfScore 87.00
+ ;; size=46 bbWeight=4 PerfScore 87.00
G_M4960_IG15:
inc esi
- mov rdi, r12
+ mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Collections.ArrayList:EnsureCapacity(int):this
call [rax]System.Collections.ArrayList:EnsureCapacity(int):this
;; size=17 bbWeight=2 PerfScore 7.50
G_M4960_IG16:
- movsxd rsi, dword ptr [r12+0x10]
- mov rdi, gword ptr [r12+0x08]
- mov rdx, gword ptr [rbp-0x58]
+ movsxd rsi, dword ptr [r13+0x10]
+ mov rdi, gword ptr [r13+0x08]
+ mov rdx, r12
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
- inc dword ptr [r12+0x14]
- mov esi, dword ptr [r12+0x10]
+ inc dword ptr [r13+0x14]
+ mov esi, dword ptr [r13+0x10]
inc esi
- mov dword ptr [r12+0x10], esi
- mov rdi, gword ptr [r12+0x08]
+ mov dword ptr [r13+0x10], esi
+ mov rdi, gword ptr [r13+0x08]
cmp dword ptr [rdi+0x08], esi
jne SHORT G_M4960_IG18
- ;; size=53 bbWeight=4 PerfScore 90.00
+ ;; size=46 bbWeight=4 PerfScore 87.00
G_M4960_IG17:
inc esi
- mov rdi, r12
+ mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Collections.ArrayList:EnsureCapacity(int):this
call [rax]System.Collections.ArrayList:EnsureCapacity(int):this
;; size=17 bbWeight=2 PerfScore 7.50
G_M4960_IG18:
- movsxd rsi, dword ptr [r12+0x10]
- mov rdi, gword ptr [r12+0x08]
- mov rdx, gword ptr [rbp-0x60]
+ movsxd rsi, dword ptr [r13+0x10]
+ mov rdi, gword ptr [r13+0x08]
+ mov rdx, gword ptr [rbp-0x68]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
- inc dword ptr [r12+0x14]
- mov edi, dword ptr [r12+0x10]
+ inc dword ptr [r13+0x14]
+ mov edi, dword ptr [r13+0x10]
inc edi
- mov dword ptr [r12+0x10], edi
+ mov dword ptr [r13+0x10], edi
mov rdi, 0xD1FFAB1E ; System.Boolean
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x68], rax
- mov rdi, r13
- mov rcx, qword ptr [rbp-0x30]
- call [rcx+0x18]System.Data.DataRelation:get_Nested():ubyte:this
- mov rcx, gword ptr [rbp-0x68]
- mov byte ptr [rcx+0x08], al
- mov esi, dword ptr [r12+0x10]
- mov rdi, gword ptr [r12+0x08]
+ mov r12, rax
+ mov rdi, r14
+ mov rax, qword ptr [rbp-0x38]
+ call [rax+0x18]System.Data.DataRelation:get_Nested():ubyte:this
+ mov byte ptr [r12+0x08], al
+ mov esi, dword ptr [r13+0x10]
+ mov rdi, gword ptr [r13+0x08]
cmp esi, dword ptr [rdi+0x08]
- jne G_M4960_IG25
- ;; size=98 bbWeight=4 PerfScore 132.00
+ jne SHORT G_M4960_IG20
+ ;; size=84 bbWeight=4 PerfScore 125.00
G_M4960_IG19:
- mov esi, dword ptr [r12+0x10]
+ mov esi, dword ptr [r13+0x10]
inc esi
- mov rdi, r12
+ mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Collections.ArrayList:EnsureCapacity(int):this
call [rax]System.Collections.ArrayList:EnsureCapacity(int):this
- mov rcx, gword ptr [rbp-0x68]
- ;; size=26 bbWeight=2 PerfScore 13.50
+ ;; size=21 bbWeight=2 PerfScore 11.50
G_M4960_IG20:
- mov rdx, rcx
- movsxd rsi, dword ptr [r12+0x10]
- mov rdi, gword ptr [r12+0x08]
+ mov rdx, r12
+ movsxd rsi, dword ptr [r13+0x10]
+ mov rdi, gword ptr [r13+0x08]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
- inc dword ptr [r12+0x14]
- mov esi, dword ptr [r12+0x10]
+ inc dword ptr [r13+0x14]
+ mov esi, dword ptr [r13+0x10]
inc esi
- mov dword ptr [r12+0x10], esi
- mov r13, gword ptr [r13+0x10]
- mov rdi, gword ptr [r12+0x08]
+ mov dword ptr [r13+0x10], esi
+ mov r14, gword ptr [r14+0x10]
+ mov rdi, gword ptr [r13+0x08]
cmp dword ptr [rdi+0x08], esi
jne SHORT G_M4960_IG22
- ;; size=56 bbWeight=4 PerfScore 95.00
+ ;; size=50 bbWeight=4 PerfScore 95.00
G_M4960_IG21:
inc esi
- mov rdi, r12
+ mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Collections.ArrayList:EnsureCapacity(int):this
call [rax]System.Collections.ArrayList:EnsureCapacity(int):this
;; size=17 bbWeight=2 PerfScore 7.50
G_M4960_IG22:
- movsxd rsi, dword ptr [r12+0x10]
- mov rdi, gword ptr [r12+0x08]
- mov rdx, r13
+ movsxd rsi, dword ptr [r13+0x10]
+ mov rdi, gword ptr [r13+0x08]
+ mov rdx, r14
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
- inc dword ptr [r12+0x14]
- mov esi, dword ptr [r12+0x10]
+ inc dword ptr [r13+0x14]
+ mov esi, dword ptr [r13+0x10]
inc esi
- mov dword ptr [r12+0x10], esi
- mov esi, dword ptr [r14+0x10]
- mov rdi, gword ptr [r14+0x08]
+ mov dword ptr [r13+0x10], esi
+ mov esi, dword ptr [r15+0x10]
+ mov rdi, gword ptr [r15+0x08]
cmp esi, dword ptr [rdi+0x08]
jne SHORT G_M4960_IG24
- ;; size=55 bbWeight=4 PerfScore 95.00
+ ;; size=50 bbWeight=4 PerfScore 95.00
G_M4960_IG23:
- mov esi, dword ptr [r14+0x10]
+ mov esi, dword ptr [r15+0x10]
inc esi
- mov rdi, r14
+ mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Collections.ArrayList:EnsureCapacity(int):this
call [rax]System.Collections.ArrayList:EnsureCapacity(int):this
;; size=21 bbWeight=2 PerfScore 11.50
G_M4960_IG24:
- movsxd rsi, dword ptr [r14+0x10]
- mov rdi, gword ptr [r14+0x08]
- mov rdx, r12
+ movsxd rsi, dword ptr [r15+0x10]
+ mov rdi, gword ptr [r15+0x08]
+ mov rdx, r13
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
- inc dword ptr [r14+0x14]
- mov edi, dword ptr [r14+0x10]
+ inc dword ptr [r15+0x14]
+ mov edi, dword ptr [r15+0x10]
inc edi
- mov dword ptr [r14+0x10], edi
- mov rdi, gword ptr [rbp-0x50]
+ mov dword ptr [r15+0x10], edi
+ mov rdi, gword ptr [rbp-0x60]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
jne G_M4960_IG05
- jmp SHORT G_M4960_IG28
+ jmp SHORT G_M4960_IG27
;; size=64 bbWeight=4 PerfScore 93.00
G_M4960_IG25:
- mov rcx, gword ptr [rbp-0x68]
- jmp G_M4960_IG20
- ;; size=9 bbWeight=2 PerfScore 6.00
-G_M4960_IG26:
mov rax, gword ptr [rbp-0x70]
jmp G_M4960_IG14
;; size=9 bbWeight=2 PerfScore 6.00
-G_M4960_IG27:
+G_M4960_IG26:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M4960_IG28:
- mov rsi, gword ptr [rbp-0x50]
+G_M4960_IG27:
+ mov rsi, gword ptr [rbp-0x60]
mov rdi, 0xD1FFAB1E ; System.IDisposable
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE
call [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE
test rax, rax
- je SHORT G_M4960_IG30
+ je SHORT G_M4960_IG29
;; size=31 bbWeight=1 PerfScore 5.75
-G_M4960_IG29:
+G_M4960_IG28:
mov rdi, rax
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=16 bbWeight=0.50 PerfScore 1.75
-G_M4960_IG30:
+G_M4960_IG29:
cmp byte ptr [rbx], bl
- mov rdi, r14
+ mov rdi, r15
call System.Object:GetType():System.Type:this
- mov r15, rax
+ mov r14, rax
mov rdi, gword ptr [rbx+0x20]
mov edx, dword ptr [rbx+0x48]
cmp byte ptr [rdi], dil
mov rsi, 0xD1FFAB1E ; 'DataSet.Relations'
xor ecx, ecx
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this
call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this
test eax, eax
- je G_M4960_IG35
+ je G_M4960_IG34
;; size=55 bbWeight=1 PerfScore 16.50
-G_M4960_IG31:
+G_M4960_IG30:
mov edi, dword ptr [rbx+0x48]
mov rax, gword ptr [rbx+0x08]
cmp edi, dword ptr [rax+0x08]
- jl SHORT G_M4960_IG32
+ jl SHORT G_M4960_IG31
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationInfo:ExpandArrays():this
call [rax]System.Runtime.Serialization.SerializationInfo:ExpandArrays():this
;; size=27 bbWeight=0.50 PerfScore 5.75
-G_M4960_IG32:
+G_M4960_IG31:
mov rsi, gword ptr [rbx+0x08]
mov edi, dword ptr [rbx+0x48]
mov edx, edi
cmp edx, dword ptr [rsi+0x08]
- jae G_M4960_IG36
+ jae G_M4960_IG35
mov rax, 0xD1FFAB1E ; 'DataSet.Relations'
mov gword ptr [rsi+8*rdx+0x10], rax
movsxd rsi, edi
mov rdi, gword ptr [rbx+0x10]
- mov rdx, r14
+ mov rdx, r15
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
movsxd rsi, dword ptr [rbx+0x48]
mov rdi, gword ptr [rbx+0x18]
- mov rdx, r15
+ mov rdx, r14
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
inc dword ptr [rbx+0x48]
;; size=81 bbWeight=1 PerfScore 27.75
-G_M4960_IG33:
+G_M4960_IG32:
add rsp, 104
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-G_M4960_IG34:
+G_M4960_IG33:
mov rdi, 0xD1FFAB1E ; System.Array+EmptyArray`1[System.Object]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M4960_IG03
;; size=20 bbWeight=0 PerfScore 0.00
-G_M4960_IG35:
+G_M4960_IG34:
mov rdi, 0xD1FFAB1E ; System.Runtime.Serialization.SerializationException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_Serialization_SameNameTwice():System.String
call [rax]System.SR:get_Serialization_SameNameTwice():System.String
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationException:.ctor(System.String):this
call [rax]System.Runtime.Serialization.SerializationException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=57 bbWeight=0 PerfScore 0.00
-G_M4960_IG36:
+G_M4960_IG35:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M4960_IG37:
+G_M4960_IG36:
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+0x90]
;; size=25 bbWeight=0 PerfScore 0.00
-G_M4960_IG38:
- mov rsi, gword ptr [rbp-0x50]
+G_M4960_IG37:
+ mov rsi, gword ptr [rbp-0x60]
mov rdi, 0xD1FFAB1E ; System.IDisposable
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE
call [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE
test rax, rax
- je SHORT G_M4960_IG39
+ je SHORT G_M4960_IG38
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_M4960_IG39:
+G_M4960_IG38:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M4960_IG40:
+G_M4960_IG39:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1532, prolog size 35, PerfScore 1730.50, instruction count 367, allocated bytes for code 1532 (MethodHash=8d0cec9f) for method System.Data.DataSet:SerializeRelations(System.Runtime.Serialization.SerializationInfo):this (FullOpts)
+; Total bytes of code 1484, prolog size 40, PerfScore 1700.50, instruction count 366, allocated bytes for code 1484 (MethodHash=8d0cec9f) for method System.Data.DataSet:SerializeRelations(System.Runtime.Serialization.SerializationInfo):this (FullOpts)
-37 (-3.78 % of base) - System.Net.WebClient:UploadBits(System.Net.WebRequest,System.IO.FileStream,ubyte[],int,ubyte[],ubyte[]):ubyte[]:this
; Assembly listing for method System.Net.WebClient:UploadBits(System.Net.WebRequest,System.IO.FileStream,ubyte[],int,ubyte[],ubyte[]):ubyte[]: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; 8 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T12] ( 3, 3 ) ref -> r12 this class-hnd single-def <System.Net.WebClient>
-; V01 arg1 [V01,T08] ( 8, 7 ) ref -> [rbp-0x38] class-hnd EH-live single-def <System.Net.WebRequest>
+; V00 this [V00,T12] ( 3, 3 ) ref -> [rbp-0x40] this class-hnd EH-live single-def <System.Net.WebClient>
+; V01 arg1 [V01,T08] ( 8, 7 ) ref -> [rbp-0x48] class-hnd EH-live single-def <System.Net.WebRequest>
; V02 arg2 [V02,T05] ( 6, 11.50) ref -> r15 class-hnd single-def <System.IO.FileStream>
; V03 arg3 [V03,T00] ( 7, 18.50) ref -> rbx class-hnd single-def <ubyte[]>
; V04 arg4 [V04,T06] ( 5, 10 ) int -> r14 single-def
-; V05 arg5 [V05,T11] ( 6, 4.50) ref -> [rbp-0x40] class-hnd <ubyte[]>
-; V06 arg6 [V06,T14] ( 4, 2.50) ref -> [rbp+0x10] class-hnd <ubyte[]>
-; V07 loc0 [V07,T02] ( 13, 19.50) ref -> [rbp-0x48] must-init class-hnd EH-live single-def <System.IO.Stream>
-; V08 loc1 [V08,T20] ( 4, 0.50) ref -> [rbp-0x50] must-init class-hnd EH-live single-def <System.IO.FileStream>
+; V05 arg5 [V05,T11] ( 6, 4.50) ref -> r13 class-hnd <ubyte[]>
+; V06 arg6 [V06,T14] ( 4, 2.50) ref -> r12 class-hnd <ubyte[]>
+; V07 loc0 [V07,T02] ( 13, 19.50) ref -> [rbp-0x50] must-init class-hnd EH-live single-def <System.IO.Stream>
+; V08 loc1 [V08,T20] ( 4, 0.50) ref -> [rbp-0x58] must-init class-hnd EH-live single-def <System.IO.FileStream>
; V09 loc2 [V09,T07] ( 3, 12 ) int -> rax
; V10 loc3 [V10,T01] ( 6, 20.50) int -> r15
-; V11 loc4 [V11,T04] ( 5, 16 ) int -> [rbp-0x2C]
+; V11 loc4 [V11,T04] ( 5, 16 ) int -> [rbp-0x34]
; V12 loc5 [V12,T16] ( 2, 2 ) ref -> rax class-hnd single-def <ubyte[]>
-; V13 loc6 [V13,T21] ( 5, 0 ) ref -> [rbp-0x58] must-init class-hnd EH-live single-def <System.Exception>
+; V13 loc6 [V13,T21] ( 5, 0 ) ref -> [rbp-0x60] must-init class-hnd EH-live single-def <System.Exception>
;# V14 OutArgs [V14 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V15 tmp1 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.IO.ChunkedMemoryStream>
; V16 tmp2 [V16,T25] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <System.Object>
; V17 tmp3 [V17,T22] ( 3, 0 ) ref -> rsi class-hnd single-def "dup spill" <System.Exception>
;* V18 tmp4 [V18 ] ( 0, 0 ) ref -> zero-ref single-def
; V19 tmp5 [V19,T24] ( 3, 0 ) int -> rax
;* V20 tmp6 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.Object>
; V21 tmp7 [V21,T23] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Net.WebException>
-; V22 tmp8 [V22,T09] ( 5, 7 ) ref -> [rbp-0x60] class-hnd exact single-def "Inlining Arg" <System.String>
+; V22 tmp8 [V22,T09] ( 5, 7 ) ref -> [rbp-0x68] class-hnd exact single-def "Inlining Arg" <System.String>
; V23 tmp9 [V23,T10] ( 5, 7 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
; V24 tmp10 [V24,T15] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
-; V25 tmp11 [V25,T17] ( 2, 2 ) byref -> r8 single-def "impAppendStmt"
+; V25 tmp11 [V25,T17] ( 2, 2 ) byref -> rcx single-def "impAppendStmt"
; V26 tmp12 [V26,T13] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
; V27 tmp13 [V27,T26] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V28 PSPSym [V28,T19] ( 1, 1 ) long -> [rbp-0x70] do-not-enreg[V] "PSPSym"
-; V29 cse0 [V29,T03] ( 6, 17 ) int -> [rbp-0x30] multi-def "CSE #05: aggressive"
-; V30 cse1 [V30,T18] ( 3, 1.50) int -> registers "CSE #01: moderate"
+; V29 cse0 [V29,T03] ( 6, 17 ) int -> r13 multi-def "CSE #05: aggressive"
+; V30 cse1 [V30,T18] ( 3, 1.50) int -> rax "CSE #01: moderate"
;
; Lcl frame size = 72
G_M33478_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 72
lea rbp, [rsp+0x70]
vxorps xmm8, xmm8, xmm8
- vmovdqu xmmword ptr [rbp-0x58], xmm8
+ vmovdqa xmmword ptr [rbp-0x60], xmm8
xor eax, eax
- mov qword ptr [rbp-0x48], rax
+ mov qword ptr [rbp-0x50], rax
mov qword ptr [rbp-0x70], rsp
- mov gword ptr [rbp-0x38], rsi
- mov r12, rdi
+ mov qword ptr [rbp-0x30], rdi
+ mov gword ptr [rbp-0x40], rdi
+ mov gword ptr [rbp-0x48], rsi
mov rax, rsi
mov r15, rdx
mov rbx, rcx
mov r14d, r8d
mov r13, r9
- ;; size=61 bbWeight=1 PerfScore 13.83
+ mov r12, gword ptr [rbp+0x10]
+ ;; size=70 bbWeight=1 PerfScore 16.58
G_M33478_IG02:
mov rdi, rax
- mov rdx, qword ptr [rax]
- mov rdx, qword ptr [rdx+0x48]
- call [rdx+0x28]System.Net.WebRequest:get_RequestUri():System.Uri:this
+ mov rcx, qword ptr [rax]
+ mov rcx, qword ptr [rcx+0x48]
+ call [rcx+0x28]System.Net.WebRequest:get_RequestUri():System.Uri:this
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Uri:get_Scheme():System.String:this
cmp dword ptr [rdi], edi
call [rax]System.Uri:get_Scheme():System.String:this
mov rdi, rax
mov rax, 0xD1FFAB1E ; global ptr
test byte ptr [rax], 1
- je G_M33478_IG26
+ je G_M33478_IG23
;; size=52 bbWeight=1 PerfScore 18.25
G_M33478_IG03:
mov rax, 0xD1FFAB1E ; data for System.Uri:UriSchemeFile
mov rsi, gword ptr [rax]
cmp rdi, rsi
- jne SHORT G_M33478_IG06
+ jne SHORT G_M33478_IG05
;; size=18 bbWeight=1 PerfScore 3.50
G_M33478_IG04:
- xor rcx, rcx
+ xor r12, r12
xor r13, r13
- ;; size=5 bbWeight=0.50 PerfScore 0.25
+ jmp SHORT G_M33478_IG06
+ ;; size=8 bbWeight=0.50 PerfScore 1.25
G_M33478_IG05:
- mov gword ptr [rbp-0x40], rcx
- jmp SHORT G_M33478_IG07
- ;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M33478_IG06:
test rdi, rdi
- je SHORT G_M33478_IG09
+ je SHORT G_M33478_IG06
test rsi, rsi
- je SHORT G_M33478_IG08
+ je SHORT G_M33478_IG06
mov eax, dword ptr [rdi+0x08]
cmp eax, dword ptr [rsi+0x08]
- mov gword ptr [rbp-0x40], r13
- mov r13, gword ptr [rbp+0x10]
- je SHORT G_M33478_IG10
- ;; size=26 bbWeight=0.50 PerfScore 5.25
-G_M33478_IG07:
- mov rdi, gword ptr [rbp-0x38]
- mov rcx, qword ptr [rdi]
- mov rcx, qword ptr [rcx+0x58]
- call [rcx+0x10]System.Net.WebRequest:GetRequestStream():System.IO.Stream:this
- mov gword ptr [rbp-0x48], rax
- jmp SHORT G_M33478_IG11
+ je SHORT G_M33478_IG07
+ ;; size=18 bbWeight=0.50 PerfScore 4.25
+G_M33478_IG06:
+ mov rdi, gword ptr [rbp-0x48]
+ mov rax, qword ptr [rdi]
+ mov rax, qword ptr [rax+0x58]
+ call [rax+0x10]System.Net.WebRequest:GetRequestStream():System.IO.Stream:this
+ mov gword ptr [rbp-0x50], rax
+ jmp SHORT G_M33478_IG08
;; size=20 bbWeight=1 PerfScore 11.00
-G_M33478_IG08:
- mov gword ptr [rbp-0x40], r13
- mov r13, gword ptr [rbp+0x10]
- jmp SHORT G_M33478_IG07
- ;; size=10 bbWeight=0.25 PerfScore 1.00
-G_M33478_IG09:
- mov gword ptr [rbp-0x40], r13
- mov r13, gword ptr [rbp+0x10]
- jmp SHORT G_M33478_IG07
- ;; size=10 bbWeight=0.25 PerfScore 1.00
-G_M33478_IG10:
- mov ecx, eax
+G_M33478_IG07:
mov rdx, rdi
add rdx, 12
- mov r8, rdx
- add ecx, ecx
- mov edx, ecx
+ mov rcx, rdx
+ add eax, eax
+ mov edx, eax
add rsi, 12
- mov rdi, r8
- mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
- call [rcx]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
+ mov rdi, rcx
+ mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
+ call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
- je SHORT G_M33478_IG07
+ je SHORT G_M33478_IG06
jmp SHORT G_M33478_IG04
- ;; size=41 bbWeight=0.50 PerfScore 4.25
-G_M33478_IG11:
- mov rax, gword ptr [rbp-0x40]
- test rax, rax
- je SHORT G_M33478_IG13
- ;; size=9 bbWeight=1 PerfScore 2.25
-G_M33478_IG12:
- mov ecx, dword ptr [rax+0x08]
- mov rdi, gword ptr [rbp-0x48]
- mov rsi, rax
+ ;; size=39 bbWeight=0.50 PerfScore 4.12
+G_M33478_IG08:
+ test r13, r13
+ je SHORT G_M33478_IG10
+ ;; size=5 bbWeight=1 PerfScore 1.25
+G_M33478_IG09:
+ mov ecx, dword ptr [r13+0x08]
+ mov rdi, gword ptr [rbp-0x50]
+ mov rsi, r13
xor edx, edx
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x60]
call [rax+0x30]System.IO.Stream:Write(ubyte[],int,int):this
- ;; size=22 bbWeight=0.50 PerfScore 5.25
-G_M33478_IG13:
+ ;; size=23 bbWeight=0.50 PerfScore 5.25
+G_M33478_IG10:
test r15, r15
- je SHORT G_M33478_IG15
+ je SHORT G_M33478_IG12
;; size=5 bbWeight=1 PerfScore 1.25
-G_M33478_IG14:
- mov gword ptr [rbp-0x50], r15
- jmp SHORT G_M33478_IG21
+G_M33478_IG11:
+ mov gword ptr [rbp-0x58], r15
+ jmp SHORT G_M33478_IG18
;; size=6 bbWeight=0.50 PerfScore 1.50
-G_M33478_IG15:
+G_M33478_IG12:
xor r15d, r15d
- mov r8d, dword ptr [rbx+0x08]
- test r8d, r8d
- jle SHORT G_M33478_IG19
+ mov r13d, dword ptr [rbx+0x08]
+ test r13d, r13d
+ jle SHORT G_M33478_IG16
;; size=12 bbWeight=0.50 PerfScore 1.75
-G_M33478_IG16:
- mov dword ptr [rbp-0x30], r8d
- mov r9d, r8d
- sub r9d, r15d
+G_M33478_IG13:
+ mov r8d, r13d
+ sub r8d, r15d
test r14d, r14d
- je SHORT G_M33478_IG18
- ;; size=15 bbWeight=4 PerfScore 11.00
-G_M33478_IG17:
- cmp r9d, r14d
- jle SHORT G_M33478_IG18
- mov r9d, r14d
+ je SHORT G_M33478_IG15
+ ;; size=11 bbWeight=4 PerfScore 7.00
+G_M33478_IG14:
+ cmp r8d, r14d
+ jle SHORT G_M33478_IG15
+ mov r8d, r14d
;; size=8 bbWeight=2 PerfScore 3.00
-G_M33478_IG18:
- mov rdi, gword ptr [rbp-0x48]
+G_M33478_IG15:
+ mov rdi, gword ptr [rbp-0x50]
mov rsi, rbx
mov edx, r15d
- mov dword ptr [rbp-0x2C], r9d
- mov ecx, r9d
- mov r10, qword ptr [rdi]
- mov r10, qword ptr [r10+0x60]
- call [r10+0x30]System.IO.Stream:Write(ubyte[],int,int):this
- add r15d, dword ptr [rbp-0x2C]
- mov eax, dword ptr [rbp-0x30]
- cmp eax, r15d
- mov r8d, eax
- jg SHORT G_M33478_IG16
- ;; size=43 bbWeight=4 PerfScore 57.00
-G_M33478_IG19:
- test r13, r13
- je SHORT G_M33478_IG23
+ mov dword ptr [rbp-0x34], r8d
+ mov ecx, r8d
+ mov r9, qword ptr [rdi]
+ mov r9, qword ptr [r9+0x60]
+ call [r9+0x30]System.IO.Stream:Write(ubyte[],int,int):this
+ add r15d, dword ptr [rbp-0x34]
+ cmp r13d, r15d
+ jg SHORT G_M33478_IG13
+ ;; size=37 bbWeight=4 PerfScore 52.00
+G_M33478_IG16:
+ test r12, r12
+ je SHORT G_M33478_IG20
;; size=5 bbWeight=1 PerfScore 1.25
-G_M33478_IG20:
- mov ecx, dword ptr [r13+0x08]
- mov rdi, gword ptr [rbp-0x48]
- mov rsi, r13
+G_M33478_IG17:
+ mov ecx, dword ptr [r12+0x08]
+ mov rdi, gword ptr [rbp-0x50]
+ mov rsi, r12
xor edx, edx
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x60]
call [rax+0x30]System.IO.Stream:Write(ubyte[],int,int):this
- jmp SHORT G_M33478_IG23
- ;; size=25 bbWeight=0.50 PerfScore 6.25
-G_M33478_IG21:
- mov ecx, dword ptr [rbx+0x08]
- mov r14d, ecx
- mov ecx, r14d
+ jmp SHORT G_M33478_IG20
+ ;; size=26 bbWeight=0.50 PerfScore 6.25
+G_M33478_IG18:
+ mov r13d, dword ptr [rbx+0x08]
+ mov ecx, r13d
mov rdi, r15
mov rsi, rbx
xor edx, edx
mov r8, qword ptr [r15]
mov r8, qword ptr [r8+0x60]
call [r8+0x18]System.IO.Stream:Read(ubyte[],int,int):int:this
test eax, eax
- jle SHORT G_M33478_IG22
- mov rdi, gword ptr [rbp-0x48]
+ jle SHORT G_M33478_IG19
+ mov rdi, gword ptr [rbp-0x50]
mov rsi, rbx
mov ecx, eax
xor edx, edx
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x60]
call [rax+0x30]System.IO.Stream:Write(ubyte[],int,int):this
- jmp SHORT G_M33478_IG21
- ;; size=55 bbWeight=4 PerfScore 89.00
-G_M33478_IG22:
- mov rdi, gword ptr [rbp-0x50]
+ jmp SHORT G_M33478_IG18
+ ;; size=53 bbWeight=4 PerfScore 88.00
+G_M33478_IG19:
+ mov rdi, gword ptr [rbp-0x58]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
- jmp SHORT G_M33478_IG19
+ jmp SHORT G_M33478_IG16
;; size=19 bbWeight=0.50 PerfScore 3.12
-G_M33478_IG23:
- mov rdi, gword ptr [rbp-0x48]
+G_M33478_IG20:
+ mov rdi, gword ptr [rbp-0x50]
test rdi, rdi
- je SHORT G_M33478_IG25
+ je SHORT G_M33478_IG22
;; size=9 bbWeight=1 PerfScore 2.25
-G_M33478_IG24:
+G_M33478_IG21:
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=13 bbWeight=0.50 PerfScore 1.62
-G_M33478_IG25:
+G_M33478_IG22:
mov rdi, 0xD1FFAB1E ; System.IO.ChunkedMemoryStream
call CORINFO_HELP_NEWSFAST
mov rdx, rax
- mov rsi, gword ptr [rbp-0x38]
- mov rdi, r12
+ mov rsi, gword ptr [rbp-0x48]
+ mov rdi, gword ptr [rbp-0x40]
mov rax, 0xD1FFAB1E ; code for System.Net.WebClient:DownloadBits(System.Net.WebRequest,System.IO.Stream):ubyte[]:this
call [rax]System.Net.WebClient:DownloadBits(System.Net.WebRequest,System.IO.Stream):ubyte[]:this
- jmp SHORT G_M33478_IG27
- ;; size=39 bbWeight=1 PerfScore 8.00
-G_M33478_IG26:
- mov gword ptr [rbp-0x60], rdi
+ jmp SHORT G_M33478_IG24
+ ;; size=40 bbWeight=1 PerfScore 8.75
+G_M33478_IG23:
+ mov gword ptr [rbp-0x68], rdi
mov rdi, 0xD1FFAB1E ; System.Uri
call CORINFO_HELP_GET_GCSTATIC_BASE
- mov rdi, gword ptr [rbp-0x60]
+ mov rdi, gword ptr [rbp-0x68]
jmp G_M33478_IG03
;; size=28 bbWeight=0 PerfScore 0.00
-G_M33478_IG27:
+G_M33478_IG24:
add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-G_M33478_IG28:
+G_M33478_IG25:
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+0x70]
;; size=22 bbWeight=0 PerfScore 0.00
-G_M33478_IG29:
- cmp gword ptr [rbp-0x50], 0
- je SHORT G_M33478_IG30
- mov rdi, gword ptr [rbp-0x50]
+G_M33478_IG26:
+ cmp gword ptr [rbp-0x58], 0
+ je SHORT G_M33478_IG27
+ mov rdi, gword ptr [rbp-0x58]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=24 bbWeight=0 PerfScore 0.00
-G_M33478_IG30:
+G_M33478_IG27:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M33478_IG31:
+G_M33478_IG28:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-G_M33478_IG32:
+G_M33478_IG29:
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+0x70]
;; size=22 bbWeight=0 PerfScore 0.00
-G_M33478_IG33:
- cmp gword ptr [rbp-0x48], 0
- je SHORT G_M33478_IG34
- mov rdi, gword ptr [rbp-0x48]
+G_M33478_IG30:
+ cmp gword ptr [rbp-0x50], 0
+ je SHORT G_M33478_IG31
+ mov rdi, gword ptr [rbp-0x50]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=24 bbWeight=0 PerfScore 0.00
-G_M33478_IG34:
+G_M33478_IG31:
nop
;; size=1 bbWeight=0 PerfScore 0.00
-G_M33478_IG35:
+G_M33478_IG32:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-G_M33478_IG36:
+G_M33478_IG33:
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+0x70]
;; size=22 bbWeight=0 PerfScore 0.00
-G_M33478_IG37:
+G_M33478_IG34:
mov rdi, 0xD1FFAB1E ; System.Exception
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
mov rsi, rax
test rsi, rsi
- jne SHORT G_M33478_IG38
+ jne SHORT G_M33478_IG35
xor eax, eax
- jmp SHORT G_M33478_IG39
+ jmp SHORT G_M33478_IG36
;; size=34 bbWeight=0 PerfScore 0.00
-G_M33478_IG38:
- mov gword ptr [rbp-0x58], rsi
- mov rsi, gword ptr [rbp-0x58]
+G_M33478_IG35:
+ mov gword ptr [rbp-0x60], rsi
+ mov rsi, gword ptr [rbp-0x60]
mov rdi, 0xD1FFAB1E ; System.OutOfMemoryException
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
sete al
movzx rax, al
;; size=39 bbWeight=0 PerfScore 0.00
-G_M33478_IG39:
+G_M33478_IG36:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-G_M33478_IG40:
+G_M33478_IG37:
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+0x70]
;; size=22 bbWeight=0 PerfScore 0.00
-G_M33478_IG41:
- mov rdi, gword ptr [rbp-0x38]
+G_M33478_IG38:
+ mov rdi, gword ptr [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.Net.WebClient:AbortRequest(System.Net.WebRequest)
call [rax]System.Net.WebClient:AbortRequest(System.Net.WebRequest)
- mov rsi, gword ptr [rbp-0x58]
+ mov rsi, gword ptr [rbp-0x60]
mov rdi, 0xD1FFAB1E ; System.Net.WebException
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
- jne SHORT G_M33478_IG42
- mov rsi, gword ptr [rbp-0x58]
+ jne SHORT G_M33478_IG39
+ mov rsi, gword ptr [rbp-0x60]
mov rdi, 0xD1FFAB1E ; System.Security.SecurityException
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
- je SHORT G_M33478_IG43
+ je SHORT G_M33478_IG40
;; size=78 bbWeight=0 PerfScore 0.00
-G_M33478_IG42:
+G_M33478_IG39:
call CORINFO_HELP_RETHROW
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M33478_IG43:
+G_M33478_IG40:
mov rdi, 0xD1FFAB1E ; System.Net.WebException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_net_webclient():System.String
call [rax]System.SR:get_net_webclient():System.String
mov rsi, rax
mov rdi, rbx
- mov rdx, gword ptr [rbp-0x58]
+ mov rdx, gword ptr [rbp-0x60]
mov rax, 0xD1FFAB1E ; code for System.Net.WebException:.ctor(System.String,System.Exception):this
call [rax]System.Net.WebException:.ctor(System.String,System.Exception):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=61 bbWeight=0 PerfScore 0.00
-; Total bytes of code 978, prolog size 61, PerfScore 258.58, instruction count 294, allocated bytes for code 978 (MethodHash=14827d39) for method System.Net.WebClient:UploadBits(System.Net.WebRequest,System.IO.FileStream,ubyte[],int,ubyte[],ubyte[]):ubyte[]:this (FullOpts)
+; Total bytes of code 941, prolog size 70, PerfScore 247.46, instruction count 281, allocated bytes for code 941 (MethodHash=14827d39) for method System.Net.WebClient:UploadBits(System.Net.WebRequest,System.IO.FileStream,ubyte[],int,ubyte[],ubyte[]):ubyte[]:this (FullOpts)
-24 (-2.44 % of base) - System.Data.DataSet:WriteXmlSchema(System.Xml.XmlWriter,int,System.Converter`2[System.Type,System.String]):this
; Assembly listing for method System.Data.DataSet:WriteXmlSchema(System.Xml.XmlWriter,int,System.Converter`2[System.Type,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; 23 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 6, 4.50) ref -> r15 this class-hnd single-def <System.Data.DataSet>
+; V00 this [V00,T01] ( 6, 4.50) ref -> [rbp-0x50] this class-hnd EH-live single-def <System.Data.DataSet>
; V01 arg1 [V01,T00] ( 14, 8.50) ref -> rbx class-hnd single-def <System.Xml.XmlWriter>
-; V02 arg2 [V02,T03] ( 5, 3.50) int -> r14 single-def
-; V03 arg3 [V03,T06] ( 3, 2.50) ref -> r13 class-hnd single-def <System.Converter`2[System.Type,System.String]>
-; V04 loc0 [V04,T23] ( 2, 1 ) long -> [rbp-0x30] do-not-enreg[Z] EH-live
-; V05 loc1 [V05,T07] ( 7, 3.50) ref -> r14 class-hnd <System.Data.XmlTreeGen>
+; V02 arg2 [V02,T03] ( 5, 3.50) int -> r15 single-def
+; V03 arg3 [V03,T06] ( 3, 2.50) ref -> r14 class-hnd single-def <System.Converter`2[System.Type,System.String]>
+; V04 loc0 [V04,T23] ( 2, 1 ) long -> [rbp-0x38] do-not-enreg[Z] EH-live
+; V05 loc1 [V05,T07] ( 7, 3.50) ref -> r12 class-hnd <System.Data.XmlTreeGen>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T05] ( 3, 5 ) ref -> r12 class-hnd exact single-def "impAppendStmt" <System.Data.DataCommonEventSource>
-; V08 tmp2 [V08,T09] ( 3, 3 ) ref -> [rbp-0x58] class-hnd exact spill-single-def "NewObj constructor temp" <System.Data.XmlTreeGen>
-; V09 tmp3 [V09,T04] ( 5, 5 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Data.XmlTreeGen>
-; V10 tmp4 [V10,T08] ( 4, 3 ) long -> r12 "Inline return value spill temp"
-; V11 tmp5 [V11,T18] ( 2, 3 ) int -> [rbp-0x34] spill-single-def "Inlining Arg"
-; V12 tmp6 [V12,T10] ( 3, 3 ) ref -> [rbp-0x60] class-hnd exact spill-single-def "Single-def Box Helper" <System.Int32>
+; V07 tmp1 [V07,T05] ( 3, 5 ) ref -> r13 class-hnd exact single-def "impAppendStmt" <System.Data.DataCommonEventSource>
+; V08 tmp2 [V08,T09] ( 3, 3 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Data.XmlTreeGen>
+; V09 tmp3 [V09,T04] ( 5, 5 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Data.XmlTreeGen>
+; V10 tmp4 [V10,T08] ( 4, 3 ) long -> r13 "Inline return value spill temp"
+; V11 tmp5 [V11,T18] ( 2, 3 ) int -> r12 "Inlining Arg"
+; V12 tmp6 [V12,T10] ( 3, 3 ) ref -> [rbp-0x58] class-hnd exact spill-single-def "Single-def Box Helper" <System.Int32>
; V13 tmp7 [V13,T11] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.Data.SchemaFormat>
;* V14 tmp8 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Data.DataCommonEventSource>
; V15 tmp9 [V15 ] ( 4, 2 ) struct (16) [rbp-0x48] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.TwoObjects>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Int32>
;* V17 tmp11 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Data.SchemaFormat>
;* V18 tmp12 [V18 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[System.__Canon]>
;* V19 tmp13 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Int32>
;* V20 tmp14 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Data.SchemaFormat>
;* V21 tmp15 [V21 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
-; V22 tmp16 [V22,T12] ( 3, 3 ) ref -> [rbp-0x68] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.ArrayList>
-; V23 tmp17 [V23,T13] ( 3, 3 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.ArrayList>
-; V24 tmp18 [V24,T14] ( 3, 3 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlDocument>
+; V22 tmp16 [V22,T12] ( 3, 3 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Collections.ArrayList>
+; V23 tmp17 [V23,T13] ( 3, 3 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Collections.ArrayList>
+; V24 tmp18 [V24,T14] ( 3, 3 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlDocument>
;* V25 tmp19 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Xml.XmlDocument>
-; V26 tmp20 [V26,T15] ( 3, 3 ) ref -> [rbp-0x78] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlImplementation>
-; V27 tmp21 [V27,T16] ( 3, 3 ) ref -> [rbp-0x80] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.NameTable>
-; V28 tmp22 [V28,T02] ( 6, 6 ) ref -> rdi class-hnd exact "Inlining Arg" <System.Data.DataCommonEventSource>
+; V26 tmp20 [V26,T15] ( 3, 3 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlImplementation>
+; V27 tmp21 [V27,T16] ( 3, 3 ) ref -> [rbp-0x60] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.NameTable>
+; V28 tmp22 [V28,T02] ( 6, 6 ) ref -> rax class-hnd exact "Inlining Arg" <System.Data.DataCommonEventSource>
;* V29 tmp23 [V29 ] ( 0, 0 ) byref -> zero-ref "field V18._reference (fldOffset=0x0)" P-INDEP
;* V30 tmp24 [V30 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
;* V31 tmp25 [V31,T25] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP
;* V32 tmp26 [V32,T26] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
; V33 tmp27 [V33,T19] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
-; V34 PSPSym [V34,T24] ( 1, 1 ) long -> [rbp-0x90] do-not-enreg[V] "PSPSym"
-; V35 cse0 [V35,T17] ( 3, 3 ) ref -> rdi "CSE #05: moderate"
-; V36 cse1 [V36,T20] ( 3, 1.50) ref -> [rbp-0x88] spill-single-def "CSE #11: moderate"
+; V34 PSPSym [V34,T24] ( 1, 1 ) long -> [rbp-0x70] do-not-enreg[V] "PSPSym"
+; V35 cse0 [V35,T17] ( 3, 3 ) ref -> rax "CSE #05: moderate"
+; V36 cse1 [V36,T20] ( 3, 1.50) ref -> [rbp-0x68] spill-single-def "CSE #11: moderate"
;* V37 cse2 [V37,T22] ( 0, 0 ) byref -> zero-ref multi-def "CSE #02: moderate"
-; V38 cse3 [V38,T21] ( 3, 1.50) long -> [rbp-0x50] spill-single-def "CSE #15: conservative"
+; V38 cse3 [V38,T21] ( 3, 1.50) long -> r14 "CSE #15: conservative"
;
-; Lcl frame size = 104
+; Lcl frame size = 72
G_M56072_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 104
- lea rbp, [rsp+0x90]
+ sub rsp, 72
+ lea rbp, [rsp+0x70]
xor eax, eax
mov qword ptr [rbp-0x48], rax
mov qword ptr [rbp-0x40], rax
- mov qword ptr [rbp-0x90], rsp
- mov r15, rdi
+ mov qword ptr [rbp-0x70], rsp
+ mov qword ptr [rbp-0x30], rdi
+ mov gword ptr [rbp-0x50], rdi
mov rbx, rsi
- mov r14d, edx
- mov r13, rcx
- ;; size=51 bbWeight=1 PerfScore 11.00
+ mov r15d, edx
+ mov r14, rcx
+ ;; size=50 bbWeight=1 PerfScore 12.75
G_M56072_IG02:
- mov rdi, 0xD1FFAB1E ; global ptr
- test byte ptr [rdi], 1
+ mov rax, 0xD1FFAB1E ; global ptr
+ test byte ptr [rax], 1
je G_M56072_IG17
;; size=19 bbWeight=1 PerfScore 4.25
G_M56072_IG03:
- mov rdi, 0xD1FFAB1E ; data for System.Data.DataCommonEventSource:Log
- mov rdi, gword ptr [rdi]
- mov r12, rdi
- mov eax, dword ptr [r15+0x94]
- mov dword ptr [rbp-0x34], eax
- cmp byte ptr [r12], r12b
- cmp byte ptr [rdi+0x9D], 0
+ mov rax, 0xD1FFAB1E ; data for System.Data.DataCommonEventSource:Log
+ mov rax, gword ptr [rax]
+ mov r13, rax
+ mov r12d, dword ptr [rdi+0x94]
+ cmp byte ptr [r13], r13b
+ cmp byte ptr [rax+0x9D], 0
jne SHORT G_M56072_IG05
- ;; size=39 bbWeight=1 PerfScore 12.50
+ ;; size=36 bbWeight=1 PerfScore 11.50
G_M56072_IG04:
- xor r12d, r12d
+ xor r13d, r13d
jmp SHORT G_M56072_IG06
;; size=5 bbWeight=0.50 PerfScore 1.12
G_M56072_IG05:
mov rdi, 0xD1FFAB1E ; System.Int32
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x60], rax
- mov edi, dword ptr [rbp-0x34]
- mov dword ptr [rax+0x08], edi
+ mov gword ptr [rbp-0x58], rax
+ mov dword ptr [rax+0x08], r12d
mov rdi, 0xD1FFAB1E ; System.Data.SchemaFormat
call CORINFO_HELP_NEWSFAST
- mov dword ptr [rax+0x08], r14d
+ mov dword ptr [rax+0x08], r15d
vxorps xmm0, xmm0, xmm0
vmovdqu xmmword ptr [rbp-0x48], xmm0
- mov rdx, gword ptr [rbp-0x60]
- mov gword ptr [rbp-0x48], rdx
+ mov r12, gword ptr [rbp-0x58]
+ mov gword ptr [rbp-0x48], r12
mov gword ptr [rbp-0x40], rax
lea rdx, bword ptr [rbp-0x48]
mov ecx, 2
xor rdi, rdi
mov rsi, 0xD1FFAB1E ; '<ds.DataSet.WriteXmlSchema|INFO> {0}, schemaFormat={1}'
mov rax, 0xD1FFAB1E ; code for System.String:FormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.String
call [rax]System.String:FormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.String
mov rsi, rax
- mov rdi, r12
+ mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Data.DataCommonEventSource:EnterScope(System.String):long:this
call [rax]System.Data.DataCommonEventSource:EnterScope(System.String):long:this
- mov r12, rax
- ;; size=119 bbWeight=0.50 PerfScore 9.67
+ mov r13, rax
+ ;; size=117 bbWeight=0.50 PerfScore 9.17
G_M56072_IG06:
- mov qword ptr [rbp-0x30], r12
+ mov qword ptr [rbp-0x38], r13
;; size=4 bbWeight=1 PerfScore 1.00
G_M56072_IG07:
test rbx, rbx
je G_M56072_IG15
;; size=9 bbWeight=1 PerfScore 1.25
G_M56072_IG08:
- cmp r14d, 3
+ cmp r15d, 3
jne G_M56072_IG13
- mov rdi, r15
- mov rax, qword ptr [r15]
+ mov rdi, gword ptr [rbp-0x50]
+ mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x48]
call [rax+0x28]System.Data.DataSet:get_SchemaSerializationMode():int:this
cmp eax, 2
jne G_M56072_IG13
mov rdi, rbx
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x58]
call [rax+0x18]System.Xml.XmlWriter:get_WriteState():int:this
cmp eax, 2
jne G_M56072_IG13
mov rdi, 0xD1FFAB1E ; System.Data.XmlTreeGen
call CORINFO_HELP_NEWSFAST
- mov r14, rax
+ mov r12, rax
mov rdi, 0xD1FFAB1E ; System.Collections.ArrayList
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x68], rax
+ mov r15, rax
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M56072_IG14
;; size=110 bbWeight=0.50 PerfScore 13.12
G_M56072_IG09:
mov rdi, 0xD1FFAB1E ; data for System.Array+EmptyArray`1[System.Object]:Value
- mov rcx, gword ptr [rdi]
- mov gword ptr [rbp-0x88], rcx
- lea rdi, bword ptr [rax+0x08]
- mov rsi, rcx
+ mov rax, gword ptr [rdi]
+ mov gword ptr [rbp-0x68], rax
+ lea rdi, bword ptr [r15+0x08]
+ mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
- lea rdi, bword ptr [r14+0x30]
- mov rsi, gword ptr [rbp-0x68]
+ lea rdi, bword ptr [r12+0x30]
+ mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Collections.ArrayList
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x70], rax
- lea rdi, bword ptr [rax+0x08]
- mov rsi, gword ptr [rbp-0x88]
+ mov r15, rax
+ lea rdi, bword ptr [r15+0x08]
+ mov rsi, gword ptr [rbp-0x68]
call CORINFO_HELP_ASSIGN_REF
- lea rdi, bword ptr [r14+0x38]
- mov rsi, gword ptr [rbp-0x70]
+ lea rdi, bword ptr [r12+0x38]
+ mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
- mov dword ptr [r14+0x84], 5
- ;; size=104 bbWeight=0.50 PerfScore 7.88
+ mov dword ptr [r12+0x84], 5
+ ;; size=98 bbWeight=0.50 PerfScore 6.75
G_M56072_IG10:
- lea rdi, bword ptr [r14+0x78]
- mov rsi, r13
+ lea rdi, bword ptr [r12+0x78]
+ mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Xml.XmlDocument
call CORINFO_HELP_NEWSFAST
- mov r13, rax
+ mov r15, rax
mov rdi, 0xD1FFAB1E ; System.Xml.XmlImplementation
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x78], rax
+ mov r14, rax
mov rdi, 0xD1FFAB1E ; System.Xml.NameTable
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x80], rax
+ mov gword ptr [rbp-0x60], rax
mov rdi, rax
mov rcx, 0xD1FFAB1E ; code for System.Xml.NameTable:.ctor():this
call [rcx]System.Xml.NameTable:.ctor():this
- mov rax, gword ptr [rbp-0x78]
- lea rdi, bword ptr [rax+0x08]
- mov rsi, gword ptr [rbp-0x80]
+ lea rdi, bword ptr [r14+0x08]
+ mov rsi, gword ptr [rbp-0x60]
call CORINFO_HELP_ASSIGN_REF
- mov rdi, r13
- mov rsi, gword ptr [rbp-0x78]
+ mov rdi, r15
+ mov rsi, r14
mov rax, 0xD1FFAB1E ; code for System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this
call [rax]System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this
- cmp dword ptr [r14+0x84], 1
+ cmp dword ptr [r12+0x84], 1
jne SHORT G_M56072_IG11
- mov rdi, r14
+ mov rdi, r12
mov rsi, rbx
mov rax, 0xD1FFAB1E ; code for System.Data.XmlTreeGen:SetPath(System.Xml.XmlWriter):this
call [rax]System.Data.XmlTreeGen:SetPath(System.Xml.XmlWriter):this
- ;; size=147 bbWeight=0.50 PerfScore 13.50
+ ;; size=143 bbWeight=0.50 PerfScore 12.25
G_M56072_IG11:
- cmp dword ptr [r14+0x84], 5
+ cmp dword ptr [r12+0x84], 5
jne SHORT G_M56072_IG12
mov rdi, rbx
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x58]
call [rax+0x18]System.Xml.XmlWriter:get_WriteState():int:this
cmp eax, 2
jne SHORT G_M56072_IG12
mov rdi, rbx
mov rsi, 0xD1FFAB1E ; 'msdata'
mov rdx, 0xD1FFAB1E ; 'SchemaSerializationMode'
mov rcx, 0xD1FFAB1E ; 'urn:schemas-microsoft-com:xml-msdata'
mov rax, qword ptr [rbx]
- mov rax, qword ptr [rax+0x48]
- mov qword ptr [rbp-0x50], rax
- call [rax+0x20]System.Xml.XmlWriter:WriteStartAttribute(System.String,System.String,System.String):this
+ mov r14, qword ptr [rax+0x48]
+ call [r14+0x20]System.Xml.XmlWriter:WriteStartAttribute(System.String,System.String,System.String):this
mov rdi, rbx
mov rsi, 0xD1FFAB1E ; 'ExcludeSchema'
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x50]
call [rax+0x20]System.Xml.XmlWriter:WriteString(System.String):this
mov rdi, rbx
- mov rax, qword ptr [rbp-0x50]
- call [rax+0x28]System.Xml.XmlWriter:WriteEndAttribute():this
- ;; size=108 bbWeight=0.50 PerfScore 16.62
+ call [r14+0x28]System.Xml.XmlWriter:WriteEndAttribute():this
+ ;; size=103 bbWeight=0.50 PerfScore 15.62
G_M56072_IG12:
- mov rdi, r14
- mov rsi, r13
+ mov rdi, r12
+ mov rsi, r15
mov rdx, rbx
- mov rcx, r15
+ mov rcx, gword ptr [rbp-0x50]
xor r8, r8
xor r9d, r9d
mov rax, 0xD1FFAB1E ; code for System.Data.XmlTreeGen:SchemaTree(System.Xml.XmlDocument,System.Xml.XmlWriter,System.Data.DataSet,System.Data.DataTable,ubyte):this
call [rax]System.Data.XmlTreeGen:SchemaTree(System.Xml.XmlDocument,System.Xml.XmlWriter,System.Data.DataSet,System.Data.DataTable,ubyte):this
jmp SHORT G_M56072_IG15
- ;; size=32 bbWeight=0.50 PerfScore 3.38
+ ;; size=33 bbWeight=0.50 PerfScore 3.75
G_M56072_IG13:
mov rdi, 0xD1FFAB1E ; System.Data.XmlTreeGen
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x58], rax
- mov rdi, rax
- mov esi, r14d
- mov rcx, 0xD1FFAB1E ; code for System.Data.XmlTreeGen:.ctor(int):this
- call [rcx]System.Data.XmlTreeGen:.ctor(int):this
- mov r14, gword ptr [rbp-0x58]
+ mov r12, rax
+ mov rdi, r12
+ mov esi, r15d
+ mov rax, 0xD1FFAB1E ; code for System.Data.XmlTreeGen:.ctor(int):this
+ call [rax]System.Data.XmlTreeGen:.ctor(int):this
jmp G_M56072_IG10
- ;; size=46 bbWeight=0.50 PerfScore 4.50
+ ;; size=41 bbWeight=0.50 PerfScore 3.62
G_M56072_IG14:
mov rdi, 0xD1FFAB1E ; System.Array+EmptyArray`1[System.Object]
call CORINFO_HELP_GET_GCSTATIC_BASE
- mov rax, gword ptr [rbp-0x68]
jmp G_M56072_IG09
- ;; size=24 bbWeight=0 PerfScore 0.00
+ ;; size=20 bbWeight=0 PerfScore 0.00
G_M56072_IG15:
- mov rdi, 0xD1FFAB1E ; static handle
- mov rdi, gword ptr [rdi]
- cmp byte ptr [rdi], dil
- mov rdx, r12
+ mov rdx, 0xD1FFAB1E ; static handle
+ mov rax, gword ptr [rdx]
+ cmp byte ptr [rax], al
+ mov rdi, rax
+ mov rdx, r13
mov esi, 3
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this
call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this
nop
- ;; size=37 bbWeight=1 PerfScore 9.25
+ ;; size=39 bbWeight=1 PerfScore 9.50
G_M56072_IG16:
- add rsp, 104
+ add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M56072_IG17:
mov rdi, 0xD1FFAB1E ; System.Data.DataCommonEventSource
call CORINFO_HELP_GET_NONGCSTATIC_BASE
+ mov rdi, gword ptr [rbp-0x50]
jmp G_M56072_IG03
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M56072_IG18:
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+0x90]
- ;; size=25 bbWeight=0 PerfScore 0.00
+ lea rbp, [rbp+0x70]
+ ;; size=22 bbWeight=0 PerfScore 0.00
G_M56072_IG19:
mov rdi, 0xD1FFAB1E ; System.Data.DataCommonEventSource
call CORINFO_HELP_GET_NONGCSTATIC_BASE
mov rdi, 0xD1FFAB1E ; data for System.Data.DataCommonEventSource:Log
- mov rdi, gword ptr [rdi]
- cmp byte ptr [rdi], dil
- mov rdx, qword ptr [rbp-0x30]
+ mov rax, gword ptr [rdi]
+ cmp byte ptr [rax], al
+ mov rdi, rax
+ mov rdx, qword ptr [rbp-0x38]
mov esi, 3
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this
call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this
nop
- ;; size=53 bbWeight=0 PerfScore 0.00
+ ;; size=55 bbWeight=0 PerfScore 0.00
G_M56072_IG20:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 982, prolog size 51, PerfScore 113.29, instruction count 220, allocated bytes for code 982 (MethodHash=6a1d24f7) for method System.Data.DataSet:WriteXmlSchema(System.Xml.XmlWriter,int,System.Converter`2[System.Type,System.String]):this (FullOpts)
+; Total bytes of code 958, prolog size 50, PerfScore 109.92, instruction count 217, allocated bytes for code 958 (MethodHash=6a1d24f7) for method System.Data.DataSet:WriteXmlSchema(System.Xml.XmlWriter,int,System.Converter`2[System.Type,System.String]):this (FullOpts)
-21 (-2.76 % of base) - System.Data.Common.DbDataAdapter:Update(System.Data.DataTable):int:this
; Assembly listing for method System.Data.Common.DbDataAdapter:Update(System.Data.DataTable):int: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; 19 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.Data.Common.DbDataAdapter>
-; V01 arg1 [V01,T01] ( 7, 5.50) ref -> r15 class-hnd single-def <System.Data.DataTable>
-; V02 loc0 [V02,T23] ( 2, 1 ) long -> [rbp-0x30] do-not-enreg[Z] EH-live
-; V03 loc1 [V03,T05] ( 5, 4 ) ref -> r12 class-hnd <System.Data.Common.DataTableMapping>
+; V00 this [V00,T00] ( 8, 6.50) ref -> [rbp-0x48] this class-hnd EH-live single-def <System.Data.Common.DbDataAdapter>
+; V01 arg1 [V01,T01] ( 7, 5.50) ref -> rbx class-hnd single-def <System.Data.DataTable>
+; V02 loc0 [V02,T23] ( 2, 1 ) long -> [rbp-0x38] do-not-enreg[Z] EH-live
+; V03 loc1 [V03,T05] ( 5, 4 ) ref -> r14 class-hnd <System.Data.Common.DataTableMapping>
;* V04 loc2 [V04 ] ( 0, 0 ) int -> zero-ref
-; V05 loc3 [V05,T20] ( 2, 2 ) int -> r15
+; V05 loc3 [V05,T20] ( 2, 2 ) int -> rbx
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T14] ( 2, 3 ) ref -> r13 class-hnd exact single-def "impAppendStmt" <System.Data.DataCommonEventSource>
-; V08 tmp2 [V08,T02] ( 6, 6 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Data.Common.DataTableMapping>
-; V09 tmp3 [V09,T09] ( 4, 3 ) long -> r13 "Inline return value spill temp"
-; V10 tmp4 [V10,T16] ( 2, 3 ) int -> r12 "Inlining Arg"
+; V07 tmp1 [V07,T14] ( 2, 3 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.Data.DataCommonEventSource>
+; V08 tmp2 [V08,T02] ( 6, 6 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Data.Common.DataTableMapping>
+; V09 tmp3 [V09,T09] ( 4, 3 ) long -> r12 "Inline return value spill temp"
+; V10 tmp4 [V10,T16] ( 2, 3 ) int -> r13 "Inlining Arg"
; V11 tmp5 [V11,T10] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.Int32>
;* V12 tmp6 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Data.DataCommonEventSource>
-; V13 tmp7 [V13 ] ( 2, 2 ) ref -> [rbp-0x38] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
+; V13 tmp7 [V13 ] ( 2, 2 ) ref -> [rbp-0x40] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
;* V14 tmp8 [V14 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
-; V15 tmp9 [V15,T03] ( 7, 4 ) int -> [rbp-0x3C] "Inline return value spill temp"
-; V16 tmp10 [V16,T15] ( 2, 3 ) ref -> [rbp-0x48] class-hnd exact spill-single-def "Inlining Arg" <System.String>
-; V17 tmp11 [V17,T07] ( 4, 4 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <System.Data.Common.DataTableMappingCollection>
+; V15 tmp9 [V15,T03] ( 7, 4 ) int -> r13 "Inline return value spill temp"
+; V16 tmp10 [V16,T15] ( 2, 3 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.String>
+; V17 tmp11 [V17,T07] ( 4, 4 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.Data.Common.DataTableMappingCollection>
; V18 tmp12 [V18,T11] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Data.Common.DataTableMapping]>
-; V19 tmp13 [V19,T17] ( 2, 2 ) ref -> [rbp-0x50] class-hnd exact spill-single-def "Inlining Arg" <System.String>
+; V19 tmp13 [V19,T17] ( 2, 2 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.String>
;* V20 tmp14 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V21 tmp15 [V21,T08] ( 5, 3 ) ref -> rsi single-def "spilling varStr"
;* V22 tmp16 [V22,T22] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
; V23 tmp17 [V23,T12] ( 3, 3 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Data.Common.DataTableMappingCollection>
; V24 tmp18 [V24,T24] ( 2, 1 ) int -> rax "Inline stloc first use temp"
; V25 tmp19 [V25,T06] ( 5, 4 ) ref -> rdi class-hnd exact "Inlining Arg" <System.Data.DataCommonEventSource>
;* V26 tmp20 [V26,T26] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP
;* V27 tmp21 [V27,T27] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
; V28 tmp22 [V28,T18] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
; V29 tmp23 [V29,T19] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
; V30 tmp24 [V30,T13] ( 3, 3 ) ref -> rdi single-def "arr expr"
-; V31 PSPSym [V31,T25] ( 1, 1 ) long -> [rbp-0x60] do-not-enreg[V] "PSPSym"
-; V32 cse0 [V32,T04] ( 6, 4 ) ref -> r14 multi-def "CSE #01: moderate"
+; V31 PSPSym [V31,T25] ( 1, 1 ) long -> [rbp-0x50] do-not-enreg[V] "PSPSym"
+; V32 cse0 [V32,T04] ( 6, 4 ) ref -> r15 multi-def "CSE #01: moderate"
; V33 cse1 [V33,T21] ( 3, 1.50) ref -> rdi "CSE #03: moderate"
;
-; Lcl frame size = 56
+; Lcl frame size = 40
G_M50985_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 56
- lea rbp, [rsp+0x60]
+ sub rsp, 40
+ lea rbp, [rsp+0x50]
xor eax, eax
- mov qword ptr [rbp-0x38], rax
- mov qword ptr [rbp-0x60], rsp
- mov rbx, rdi
- mov r15, rsi
- ;; size=35 bbWeight=1 PerfScore 9.50
+ mov qword ptr [rbp-0x40], rax
+ mov qword ptr [rbp-0x50], rsp
+ mov qword ptr [rbp-0x30], rdi
+ mov gword ptr [rbp-0x48], rdi
+ mov rbx, rsi
+ ;; size=40 bbWeight=1 PerfScore 11.25
G_M50985_IG02:
- mov rdi, 0xD1FFAB1E ; const ptr
- mov r14, gword ptr [rdi]
- mov r13, r14
- mov r12d, dword ptr [rbx+0x2C]
- cmp byte ptr [r14+0x9D], 0
+ mov rax, 0xD1FFAB1E ; const ptr
+ mov r15, gword ptr [rax]
+ mov r14, r15
+ mov r13d, dword ptr [rdi+0x2C]
+ cmp byte ptr [r15+0x9D], 0
jne SHORT G_M50985_IG04
;; size=30 bbWeight=1 PerfScore 8.50
G_M50985_IG03:
- xor r13d, r13d
+ xor r12d, r12d
jmp SHORT G_M50985_IG05
;; size=5 bbWeight=0.50 PerfScore 1.12
G_M50985_IG04:
mov rdi, 0xD1FFAB1E ; System.Int32
call CORINFO_HELP_NEWSFAST
- mov dword ptr [rax+0x08], r12d
- mov gword ptr [rbp-0x38], rax
- lea rdx, bword ptr [rbp-0x38]
+ mov dword ptr [rax+0x08], r13d
+ mov gword ptr [rbp-0x40], rax
+ lea rdx, bword ptr [rbp-0x40]
mov ecx, 1
xor rdi, rdi
mov rsi, 0xD1FFAB1E ; '<comm.DbDataAdapter.Update|API> {0}, dataTable'
mov rax, 0xD1FFAB1E ; code for System.String:FormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.String
call [rax]System.String:FormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.String
mov rsi, rax
- mov rdi, r13
+ mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Data.DataCommonEventSource:EnterScope(System.String):long:this
call [rax]System.Data.DataCommonEventSource:EnterScope(System.String):long:this
- mov r13, rax
+ mov r12, rax
;; size=77 bbWeight=0.50 PerfScore 5.88
G_M50985_IG05:
- mov qword ptr [rbp-0x30], r13
+ mov qword ptr [rbp-0x38], r12
;; size=4 bbWeight=1 PerfScore 1.00
G_M50985_IG06:
- test r15, r15
- je G_M50985_IG24
- xor r12, r12
- mov rax, gword ptr [r15+0x70]
- mov gword ptr [rbp-0x48], rax
- cmp gword ptr [rbx+0x18], 0
+ test rbx, rbx
+ je G_M50985_IG22
+ xor r14, r14
+ mov r13, gword ptr [rbx+0x70]
+ mov rdi, gword ptr [rbp-0x48]
+ cmp gword ptr [rdi+0x18], 0
je SHORT G_M50985_IG08
;; size=27 bbWeight=1 PerfScore 8.50
G_M50985_IG07:
- mov rdi, rbx
- mov rcx, 0xD1FFAB1E ; code for System.Data.Common.DataAdapter:get_TableMappings():System.Data.Common.DataTableMappingCollection:this
- call [rcx]System.Data.Common.DataAdapter:get_TableMappings():System.Data.Common.DataTableMappingCollection:this
+ mov rax, 0xD1FFAB1E ; code for System.Data.Common.DataAdapter:get_TableMappings():System.Data.Common.DataTableMappingCollection:this
+ call [rax]System.Data.Common.DataAdapter:get_TableMappings():System.Data.Common.DataTableMappingCollection:this
mov rdi, rax
- mov rsi, gword ptr [rbp-0x48]
+ mov rsi, r13
mov rax, 0xD1FFAB1E ; code for System.Data.Common.DataTableMappingCollection:IndexOfDataSetTable(System.String):int:this
cmp dword ptr [rdi], edi
call [rax]System.Data.Common.DataTableMappingCollection:IndexOfDataSetTable(System.String):int:this
+ mov r13d, eax
jmp SHORT G_M50985_IG09
- ;; size=38 bbWeight=0.50 PerfScore 6.50
+ ;; size=37 bbWeight=0.50 PerfScore 6.12
G_M50985_IG08:
- mov eax, -1
- ;; size=5 bbWeight=0.50 PerfScore 0.12
+ mov r13d, -1
+ ;; size=6 bbWeight=0.50 PerfScore 0.12
G_M50985_IG09:
- mov dword ptr [rbp-0x3C], eax
- cmp eax, -1
+ cmp r13d, -1
je SHORT G_M50985_IG11
- ;; size=8 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.25
G_M50985_IG10:
- mov rdi, rbx
- mov rcx, 0xD1FFAB1E ; code for System.Data.Common.DataAdapter:get_TableMappings():System.Data.Common.DataTableMappingCollection:this
- call [rcx]System.Data.Common.DataAdapter:get_TableMappings():System.Data.Common.DataTableMappingCollection:this
- mov r12, rax
- cmp byte ptr [r12], r12b
- mov rdi, r12
- mov esi, dword ptr [rbp-0x3C]
+ mov rdi, gword ptr [rbp-0x48]
+ mov rax, 0xD1FFAB1E ; code for System.Data.Common.DataAdapter:get_TableMappings():System.Data.Common.DataTableMappingCollection:this
+ call [rax]System.Data.Common.DataAdapter:get_TableMappings():System.Data.Common.DataTableMappingCollection:this
+ mov r14, rax
+ cmp byte ptr [r14], r14b
+ mov rdi, r14
+ mov esi, r13d
mov rax, 0xD1FFAB1E ; code for System.Data.Common.DataTableMappingCollection:RangeCheck(int):this
call [rax]System.Data.Common.DataTableMappingCollection:RangeCheck(int):this
- mov rdi, gword ptr [r12+0x08]
- mov r12d, dword ptr [rbp-0x3C]
- cmp r12d, dword ptr [rdi+0x10]
- jae G_M50985_IG23
+ mov rdi, gword ptr [r14+0x08]
+ cmp r13d, dword ptr [rdi+0x10]
+ jae G_M50985_IG21
mov rdi, gword ptr [rdi+0x08]
- cmp r12d, dword ptr [rdi+0x08]
- jae G_M50985_IG20
- mov eax, r12d
- mov r12, gword ptr [rdi+8*rax+0x10]
- ;; size=81 bbWeight=0.50 PerfScore 13.25
+ cmp r13d, dword ptr [rdi+0x08]
+ jae G_M50985_IG18
+ mov eax, r13d
+ mov r14, gword ptr [rdi+8*rax+0x10]
+ ;; size=76 bbWeight=0.50 PerfScore 12.75
G_M50985_IG11:
- test r12, r12
- jne G_M50985_IG19
+ test r14, r14
+ jne G_M50985_IG17
;; size=9 bbWeight=1 PerfScore 1.25
G_M50985_IG12:
- cmp dword ptr [rbx+0x24], 3
- je G_M50985_IG22
+ mov rdi, gword ptr [rbp-0x48]
+ cmp dword ptr [rdi+0x24], 3
+ je G_M50985_IG20
mov rdi, 0xD1FFAB1E ; System.Data.Common.DataTableMapping
call CORINFO_HELP_NEWSFAST
- mov r12, rax
- mov rax, gword ptr [r15+0x70]
- mov gword ptr [rbp-0x50], rax
- mov rdi, gword ptr [r12+0x08]
+ mov r14, rax
+ mov r13, gword ptr [rbx+0x70]
+ mov rdi, gword ptr [r14+0x08]
test rdi, rdi
- mov rax, gword ptr [rbp-0x50]
- je SHORT G_M50985_IG18
- mov rsi, gword ptr [r12+0x20]
+ je SHORT G_M50985_IG16
+ mov rsi, gword ptr [r14+0x20]
test rsi, rsi
- je SHORT G_M50985_IG17
- ;; size=60 bbWeight=0.50 PerfScore 8.00
+ je SHORT G_M50985_IG15
+ ;; size=54 bbWeight=0.50 PerfScore 7.50
G_M50985_IG13:
cmp dword ptr [rsi+0x08], 5
- jne SHORT G_M50985_IG16
+ jne SHORT G_M50985_IG15
;; size=6 bbWeight=0.25 PerfScore 1.00
G_M50985_IG14:
- mov rcx, 0xD1FFAB1E
- xor rcx, qword ptr [rsi+0x0C]
+ mov rax, 0xD1FFAB1E
+ xor rax, qword ptr [rsi+0x0C]
mov esi, dword ptr [rsi+0x12]
xor esi, 0xD1FFAB1E
- or rsi, rcx
- je SHORT G_M50985_IG18
+ or rsi, rax
+ je SHORT G_M50985_IG16
;; size=28 bbWeight=0.12 PerfScore 0.84
G_M50985_IG15:
cmp byte ptr [rdi], dil
mov rsi, 0xD1FFAB1E ; 'Table'
- mov rcx, 0xD1FFAB1E ; code for System.Data.Common.DataTableMappingCollection:IndexOf(System.String):int:this
- call [rcx]System.Data.Common.DataTableMappingCollection:IndexOf(System.String):int:this
+ mov rax, 0xD1FFAB1E ; code for System.Data.Common.DataTableMappingCollection:IndexOf(System.String):int:this
+ call [rax]System.Data.Common.DataTableMappingCollection:IndexOf(System.String):int:this
cmp eax, -1
- mov rax, gword ptr [rbp-0x50]
- je SHORT G_M50985_IG18
- jmp SHORT G_M50985_IG21
- ;; size=36 bbWeight=0.50 PerfScore 5.38
+ jne SHORT G_M50985_IG19
+ ;; size=30 bbWeight=0.50 PerfScore 3.88
G_M50985_IG16:
- jmp SHORT G_M50985_IG15
- ;; size=2 bbWeight=0.12 PerfScore 0.25
-G_M50985_IG17:
- jmp SHORT G_M50985_IG15
- ;; size=2 bbWeight=0.25 PerfScore 0.50
-G_M50985_IG18:
mov rdi, 0xD1FFAB1E ; 'Table'
- mov gword ptr [r12+0x20], rdi
- lea rdi, bword ptr [r12+0x18]
- mov rsi, rax
+ mov gword ptr [r14+0x20], rdi
+ lea rdi, bword ptr [r14+0x18]
+ mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
- ;; size=28 bbWeight=0.50 PerfScore 1.50
-G_M50985_IG19:
- mov rdi, rbx
- mov rsi, r15
- mov rdx, r12
+ ;; size=26 bbWeight=0.50 PerfScore 1.50
+G_M50985_IG17:
+ mov rdi, gword ptr [rbp-0x48]
+ mov rsi, rbx
+ mov rdx, r14
mov rax, 0xD1FFAB1E ; code for System.Data.Common.DbDataAdapter:UpdateFromDataTable(System.Data.DataTable,System.Data.Common.DataTableMapping):int:this
call [rax]System.Data.Common.DbDataAdapter:UpdateFromDataTable(System.Data.DataTable,System.Data.Common.DataTableMapping):int:this
- mov r15d, eax
- jmp G_M50985_IG25
- ;; size=29 bbWeight=1 PerfScore 6.25
-G_M50985_IG20:
+ mov ebx, eax
+ jmp G_M50985_IG23
+ ;; size=29 bbWeight=1 PerfScore 7.00
+G_M50985_IG18:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M50985_IG21:
+G_M50985_IG19:
mov edi, 0xC47D
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Data.Common.ADP:TablesUniqueSourceTable(System.String):System.Exception
call [rax]System.Data.Common.ADP:TablesUniqueSourceTable(System.String):System.Exception
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=44 bbWeight=0 PerfScore 0.00
-G_M50985_IG22:
- mov rdi, gword ptr [r15+0x70]
+G_M50985_IG20:
+ mov rdi, gword ptr [rbx+0x70]
mov rax, 0xD1FFAB1E ; code for System.Data.Common.ADP:MissingTableMappingDestination(System.String):System.InvalidOperationException
call [rax]System.Data.Common.ADP:MissingTableMappingDestination(System.String):System.InvalidOperationException
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=25 bbWeight=0 PerfScore 0.00
-G_M50985_IG23:
+G_M50985_IG21:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M50985_IG24:
+G_M50985_IG22:
mov edi, 0xE5AE
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Data.Common.ADP:ArgumentNull(System.String):System.ArgumentNullException
call [rax]System.Data.Common.ADP:ArgumentNull(System.String):System.ArgumentNullException
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=44 bbWeight=0 PerfScore 0.00
-G_M50985_IG25:
- mov rdi, r14
- mov rdx, r13
+G_M50985_IG23:
+ mov rdi, r15
+ mov rdx, r12
mov esi, 3
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this
call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this
- mov eax, r15d
- ;; size=26 bbWeight=1 PerfScore 4.25
-G_M50985_IG26:
- add rsp, 56
+ mov eax, ebx
+ ;; size=25 bbWeight=1 PerfScore 4.25
+G_M50985_IG24:
+ add rsp, 40
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-G_M50985_IG27:
+G_M50985_IG25:
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+0x60]
+ lea rbp, [rbp+0x50]
;; size=22 bbWeight=0 PerfScore 0.00
-G_M50985_IG28:
+G_M50985_IG26:
mov rdi, 0xD1FFAB1E ; const ptr
- mov r14, gword ptr [rdi]
- mov rdi, r14
+ mov r15, gword ptr [rdi]
+ mov rdi, r15
cmp byte ptr [rdi], dil
- mov rdx, qword ptr [rbp-0x30]
+ mov rdx, qword ptr [rbp-0x38]
mov esi, 3
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this
call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this
nop
;; size=41 bbWeight=0 PerfScore 0.00
-G_M50985_IG29:
+G_M50985_IG27:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 761, prolog size 35, PerfScore 90.09, instruction count 191, allocated bytes for code 761 (MethodHash=efb638d6) for method System.Data.Common.DbDataAdapter:Update(System.Data.DataTable):int:this (FullOpts)
+; Total bytes of code 740, prolog size 40, PerfScore 87.97, instruction count 185, allocated bytes for code 740 (MethodHash=efb638d6) for method System.Data.Common.DbDataAdapter:Update(System.Data.DataTable):int:this (FullOpts)
-21 (-2.05 % of base) - System.Data.DataTable:WriteXml(System.String,int,ubyte):this
; Assembly listing for method System.Data.DataTable:WriteXml(System.String,int,ubyte):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; 34 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T06] ( 4, 4 ) ref -> r15 this class-hnd single-def <System.Data.DataTable>
+; V00 this [V00,T06] ( 4, 4 ) ref -> [rbp-0x60] this class-hnd EH-live single-def <System.Data.DataTable>
; V01 arg1 [V01,T04] ( 5, 4.50) ref -> rbx class-hnd single-def <System.String>
-; V02 arg2 [V02,T10] ( 4, 3.50) int -> r14 single-def
-; V03 arg3 [V03,T12] ( 3, 3 ) ubyte -> r13 single-def
-; V04 loc0 [V04,T17] ( 3, 2 ) long -> [rbp-0x30] do-not-enreg[Z] EH-live
-; V05 loc1 [V05,T29] ( 3, 0 ) ref -> [rbp-0x60] class-hnd exact EH-live single-def <System.Xml.XmlTextWriter>
+; V02 arg2 [V02,T10] ( 4, 3.50) int -> r15 single-def
+; V03 arg3 [V03,T12] ( 3, 3 ) ubyte -> r14 single-def
+; V04 loc0 [V04,T17] ( 3, 2 ) long -> [rbp-0x38] do-not-enreg[Z] EH-live
+; V05 loc1 [V05,T29] ( 3, 0 ) ref -> [rbp-0x68] class-hnd exact EH-live single-def <System.Xml.XmlTextWriter>
; V06 OutArgs [V06 ] ( 1, 1 ) struct (16) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T11] ( 3, 5 ) ref -> r12 class-hnd exact single-def "impAppendStmt" <System.Data.DataCommonEventSource>
-; V08 tmp2 [V08,T00] ( 16, 31 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlTextWriter>
-; V09 tmp3 [V09,T18] ( 3, 2 ) long -> rcx "Inline return value spill temp"
-; V10 tmp4 [V10,T16] ( 2, 3 ) int -> [rbp-0x34] spill-single-def "Inlining Arg"
-; V11 tmp5 [V11,T13] ( 3, 3 ) ref -> [rbp-0x68] class-hnd exact spill-single-def "Single-def Box Helper" <System.Int32>
+; V07 tmp1 [V07,T11] ( 3, 5 ) ref -> r13 class-hnd exact single-def "impAppendStmt" <System.Data.DataCommonEventSource>
+; V08 tmp2 [V08,T00] ( 16, 31 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlTextWriter>
+; V09 tmp3 [V09,T18] ( 3, 2 ) long -> rax "Inline return value spill temp"
+; V10 tmp4 [V10,T16] ( 2, 3 ) int -> r12 "Inlining Arg"
+; V11 tmp5 [V11,T13] ( 3, 3 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "Single-def Box Helper" <System.Int32>
; V12 tmp6 [V12,T14] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.Data.XmlWriteMode>
;* V13 tmp7 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Data.DataCommonEventSource>
; V14 tmp8 [V14 ] ( 5, 2.50) struct (24) [rbp-0x50] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.ThreeObjects>
;* V15 tmp9 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Int32>
;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Data.XmlWriteMode>
;* V17 tmp11 [V17 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[System.__Canon]>
;* V18 tmp12 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Int32>
;* V19 tmp13 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Data.XmlWriteMode>
;* V20 tmp14 [V20 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
-; V21 tmp15 [V21,T01] ( 4, 8 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.FileStream>
+; V21 tmp15 [V21,T01] ( 4, 8 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.IO.FileStream>
;* V22 tmp16 [V22 ] ( 0, 0 ) ref -> zero-ref single-def
;* V23 tmp17 [V23 ] ( 0, 0 ) ref -> zero-ref single-def
;* V24 tmp18 [V24 ] ( 0, 0 ) int -> zero-ref
;* V25 tmp19 [V25 ] ( 0, 0 ) int -> zero-ref
;* V26 tmp20 [V26 ] ( 0, 0 ) int -> zero-ref
;* V27 tmp21 [V27 ] ( 0, 0 ) int -> zero-ref
;* V28 tmp22 [V28,T23] ( 0, 0 ) ref -> zero-ref single-def
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref single-def
;* V30 tmp24 [V30 ] ( 0, 0 ) int -> zero-ref
;* V31 tmp25 [V31 ] ( 0, 0 ) int -> zero-ref
;* V32 tmp26 [V32 ] ( 0, 0 ) int -> zero-ref
;* V33 tmp27 [V33 ] ( 0, 0 ) int -> zero-ref
;* V34 tmp28 [V34 ] ( 0, 0 ) int -> zero-ref
;* V35 tmp29 [V35 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Nullable`1[int]>
; V36 tmp30 [V36,T19] ( 2, 2 ) ref -> rax class-hnd single-def "Inline return value spill temp" <System.IO.Strategies.FileStreamStrategy>
;* V37 tmp31 [V37 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Nullable`1[int]>
;* V38 tmp32 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.IO.Strategies.FileStreamStrategy>
; V39 tmp33 [V39,T07] ( 3, 6 ) ref -> [rbp-0x78] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.Strategies.UnixFileStreamStrategy>
; V40 tmp34 [V40,T20] ( 2, 2 ) ref -> rsi class-hnd single-def "Inline return value spill temp" <System.IO.Strategies.FileStreamStrategy>
; V41 tmp35 [V41,T02] ( 4, 8 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.IO.Strategies.BufferedFileStreamStrategy>
-; V42 tmp36 [V42,T08] ( 3, 6 ) ref -> [rbp-0x80] class-hnd exact spill-single-def "NewObj constructor temp" <System.IO.StreamWriter>
+; V42 tmp36 [V42,T08] ( 3, 6 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.IO.StreamWriter>
; V43 tmp37 [V43,T03] ( 4, 8 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlTextEncoder>
;* V44 tmp38 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.IO.TextWriter>
;* V45 tmp39 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Xml.XmlTextEncoder>
;* V46 tmp40 [V46 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
; V47 tmp41 [V47,T05] ( 6, 6 ) ref -> rdi class-hnd exact "Inlining Arg" <System.Data.DataCommonEventSource>
;* V48 tmp42 [V48 ] ( 0, 0 ) byref -> zero-ref "field V17._reference (fldOffset=0x0)" P-INDEP
;* V49 tmp43 [V49 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
;* V50 tmp44 [V50,T27] ( 0, 0 ) byref -> zero-ref single-def "field V20._reference (fldOffset=0x0)" P-INDEP
;* V51 tmp45 [V51,T28] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP
;* V52 tmp46 [V52 ] ( 0, 0 ) ubyte -> zero-ref "field V35.hasValue (fldOffset=0x0)" P-INDEP
;* V53 tmp47 [V53 ] ( 0, 0 ) int -> zero-ref "field V35.value (fldOffset=0x4)" P-INDEP
;* V54 tmp48 [V54,T24] ( 0, 0 ) ubyte -> zero-ref "field V37.hasValue (fldOffset=0x0)" P-INDEP
;* V55 tmp49 [V55,T25] ( 0, 0 ) int -> zero-ref "field V37.value (fldOffset=0x4)" P-INDEP
; V56 tmp50 [V56,T21] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
; V57 tmp51 [V57,T09] ( 3, 6 ) struct ( 8) [rbp-0x58] do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
-; V58 PSPSym [V58,T26] ( 1, 1 ) long -> [rbp-0x90] do-not-enreg[V] "PSPSym"
-; V59 cse0 [V59,T15] ( 3, 3 ) ref -> rdi "CSE #05: moderate"
+; V58 PSPSym [V58,T26] ( 1, 1 ) long -> [rbp-0x80] do-not-enreg[V] "PSPSym"
+; V59 cse0 [V59,T15] ( 3, 3 ) ref -> rax "CSE #05: moderate"
;* V60 cse1 [V60,T22] ( 0, 0 ) byref -> zero-ref multi-def "CSE #02: moderate"
;
-; Lcl frame size = 120
+; Lcl frame size = 104
G_M13520_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 120
- lea rbp, [rsp+0xA0]
+ sub rsp, 104
+ lea rbp, [rsp+0x90]
vxorps xmm8, xmm8, xmm8
vmovdqa xmmword ptr [rbp-0x50], xmm8
xor eax, eax
mov qword ptr [rbp-0x40], rax
- mov qword ptr [rbp-0x90], rsp
- mov r15, rdi
+ mov qword ptr [rbp-0x80], rsp
+ mov qword ptr [rbp-0x30], rdi
+ mov gword ptr [rbp-0x60], rdi
mov rbx, rsi
- mov r14d, edx
- mov r13d, ecx
- ;; size=57 bbWeight=1 PerfScore 12.33
+ mov r15d, edx
+ mov r14d, ecx
+ ;; size=59 bbWeight=1 PerfScore 14.08
G_M13520_IG02:
- mov rdi, 0xD1FFAB1E ; global ptr
- test byte ptr [rdi], 1
+ mov rax, 0xD1FFAB1E ; global ptr
+ test byte ptr [rax], 1
je G_M13520_IG15
;; size=19 bbWeight=1 PerfScore 4.25
G_M13520_IG03:
- mov rdi, 0xD1FFAB1E ; data for System.Data.DataCommonEventSource:Log
- mov rdi, gword ptr [rdi]
- mov r12, rdi
- mov eax, dword ptr [r15+0x1C0]
- mov dword ptr [rbp-0x34], eax
- cmp byte ptr [r12], r12b
- cmp byte ptr [rdi+0x9D], 0
+ mov rax, 0xD1FFAB1E ; data for System.Data.DataCommonEventSource:Log
+ mov rax, gword ptr [rax]
+ mov r13, rax
+ mov r12d, dword ptr [rdi+0x1C0]
+ cmp byte ptr [r13], r13b
+ cmp byte ptr [rax+0x9D], 0
jne SHORT G_M13520_IG05
- ;; size=39 bbWeight=1 PerfScore 12.50
+ ;; size=36 bbWeight=1 PerfScore 11.50
G_M13520_IG04:
- xor ecx, ecx
- jmp G_M13520_IG06
- ;; size=7 bbWeight=0.50 PerfScore 1.12
+ xor eax, eax
+ jmp SHORT G_M13520_IG06
+ ;; size=4 bbWeight=0.50 PerfScore 1.12
G_M13520_IG05:
mov rdi, 0xD1FFAB1E ; System.Int32
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x68], rax
- mov edi, dword ptr [rbp-0x34]
- mov dword ptr [rax+0x08], edi
+ mov gword ptr [rbp-0x70], rax
+ mov dword ptr [rax+0x08], r12d
mov rdi, 0xD1FFAB1E ; System.Data.XmlWriteMode
call CORINFO_HELP_NEWSFAST
- mov dword ptr [rax+0x08], r14d
+ mov dword ptr [rax+0x08], r15d
vxorps xmm0, xmm0, xmm0
vmovdqu xmmword ptr [rbp-0x50], xmm0
vmovdqu xmmword ptr [rbp-0x48], xmm0
- mov rdx, gword ptr [rbp-0x68]
- mov gword ptr [rbp-0x50], rdx
+ mov r12, gword ptr [rbp-0x70]
+ mov gword ptr [rbp-0x50], r12
mov gword ptr [rbp-0x48], rbx
mov gword ptr [rbp-0x40], rax
lea rdx, bword ptr [rbp-0x50]
mov ecx, 3
xor rdi, rdi
mov rsi, 0xD1FFAB1E ; '<ds.DataTable.WriteXml|API> {0}, fileName='{1}', mode={2}'
mov rax, 0xD1FFAB1E ; code for System.String:FormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.String
call [rax]System.String:FormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.String
mov rsi, rax
- mov rdi, r12
+ mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Data.DataCommonEventSource:EnterScope(System.String):long:this
call [rax]System.Data.DataCommonEventSource:EnterScope(System.String):long:this
- mov rcx, rax
- ;; size=128 bbWeight=0.50 PerfScore 10.67
+ ;; size=123 bbWeight=0.50 PerfScore 10.04
G_M13520_IG06:
- mov qword ptr [rbp-0x30], rcx
+ mov qword ptr [rbp-0x38], rax
;; size=4 bbWeight=1 PerfScore 1.00
G_M13520_IG07:
mov rdi, 0xD1FFAB1E ; System.Xml.XmlTextWriter
call CORINFO_HELP_NEWSFAST
- mov r12, rax
+ mov r13, rax
mov rdi, 0xD1FFAB1E ; System.IO.FileStream
call CORINFO_HELP_NEWFAST
- mov gword ptr [rbp-0x70], rax
+ mov r12, rax
xor edi, edi
mov qword ptr [rsp], rdi
mov rdi, rbx
mov esi, 2
mov edx, 2
mov ecx, 1
mov r8d, 0x1000
xor r9d, r9d
- mov r10, 0xD1FFAB1E ; code for System.IO.Strategies.FileStreamHelpers:ValidateArguments(System.String,int,int,int,int,int,long)
- call [r10]System.IO.Strategies.FileStreamHelpers:ValidateArguments(System.String,int,int,int,int,int,long)
+ mov rax, 0xD1FFAB1E ; code for System.IO.Strategies.FileStreamHelpers:ValidateArguments(System.String,int,int,int,int,int,long)
+ call [rax]System.IO.Strategies.FileStreamHelpers:ValidateArguments(System.String,int,int,int,int,int,long)
mov rdi, 0xD1FFAB1E ; System.IO.Strategies.UnixFileStreamStrategy
call CORINFO_HELP_NEWSFAST
mov gword ptr [rbp-0x78], rax
xor esi, esi
mov qword ptr [rsp], rsi
mov byte ptr [rbp-0x58], 0
- ;; size=112 bbWeight=1 PerfScore 14.25
+ ;; size=110 bbWeight=1 PerfScore 13.50
G_M13520_IG08:
mov dword ptr [rbp-0x54], esi
mov rsi, qword ptr [rbp-0x58]
mov qword ptr [rsp+0x08], rsi
mov rsi, rbx
mov rdi, rax
mov edx, 2
mov ecx, 2
mov r8d, 1
xor r9d, r9d
mov r10, 0xD1FFAB1E ; code for System.IO.Strategies.OSFileStreamStrategy:.ctor(System.String,int,int,int,int,long,System.Nullable`1[int]):this
call [r10]System.IO.Strategies.OSFileStreamStrategy:.ctor(System.String,int,int,int,int,long,System.Nullable`1[int]):this
mov rdi, 0xD1FFAB1E ; System.IO.Strategies.BufferedFileStreamStrategy
call CORINFO_HELP_NEWSFAST
mov rbx, rax
lea rdi, bword ptr [rbx+0x18]
mov rsi, gword ptr [rbp-0x78]
call CORINFO_HELP_ASSIGN_REF
mov dword ptr [rbx+0x28], 0x1000
mov rsi, rbx
- mov rdi, gword ptr [rbp-0x70]
+ mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.IO.Strategies.FileStreamHelpers:WrapIfDerivedType(System.IO.FileStream,System.IO.Strategies.FileStreamStrategy):System.IO.Strategies.FileStreamStrategy
call [rax]System.IO.Strategies.FileStreamHelpers:WrapIfDerivedType(System.IO.FileStream,System.IO.Strategies.FileStreamStrategy):System.IO.Strategies.FileStreamStrategy
- mov rbx, gword ptr [rbp-0x70]
- lea rdi, bword ptr [rbx+0x10]
+ lea rdi, bword ptr [r12+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
- mov rdi, r12
+ mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Xml.XmlTextWriter:.ctor():this
call [rax]System.Xml.XmlTextWriter:.ctor():this
xor rdi, rdi
- mov gword ptr [r12+0x20], rdi
+ mov gword ptr [r13+0x20], rdi
mov rdi, 0xD1FFAB1E ; System.IO.StreamWriter
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x80], rax
+ mov rbx, rax
mov rdx, 0xD1FFAB1E ; const ptr
mov rdx, gword ptr [rdx]
- mov rdi, rax
- mov rsi, rbx
+ mov rdi, rbx
+ mov rsi, r12
mov ecx, 0x400
xor r8d, r8d
- mov r9, 0xD1FFAB1E ; code for System.IO.StreamWriter:.ctor(System.IO.Stream,System.Text.Encoding,int,ubyte):this
- call [r9]System.IO.StreamWriter:.ctor(System.IO.Stream,System.Text.Encoding,int,ubyte):this
- lea rdi, bword ptr [r12+0x10]
- mov rsi, gword ptr [rbp-0x80]
+ 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
+ lea rdi, bword ptr [r13+0x10]
+ mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Xml.XmlTextEncoder
- call CORINFO_HELP_NEWSFAST
- ;; size=233 bbWeight=1 PerfScore 37.25
+ ;; size=219 bbWeight=1 PerfScore 33.00
G_M13520_IG09:
+ call CORINFO_HELP_NEWSFAST
mov rbx, rax
- mov rsi, gword ptr [r12+0x10]
+ mov rsi, gword ptr [r13+0x10]
lea rdi, bword ptr [rbx+0x08]
call CORINFO_HELP_ASSIGN_REF
mov word ptr [rbx+0x18], 34
- lea rdi, bword ptr [r12+0x18]
+ lea rdi, bword ptr [r13+0x18]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
- mov rdi, gword ptr [r12+0x18]
- movzx rsi, word ptr [r12+0x7C]
+ mov rdi, gword ptr [r13+0x18]
+ movzx rsi, word ptr [r13+0x7C]
mov word ptr [rdi+0x18], si
- mov gword ptr [rbp-0x60], r12
- ;; size=55 bbWeight=1 PerfScore 12.50
+ mov gword ptr [rbp-0x68], r13
+ ;; size=56 bbWeight=1 PerfScore 13.50
G_M13520_IG10:
- mov dword ptr [r12+0x60], 1
- mov byte ptr [r12+0x80], 1
- mov rdi, r12
+ mov dword ptr [r13+0x60], 1
+ mov byte ptr [r13+0x80], 1
+ mov rdi, r13
mov esi, 1
mov rax, 0xD1FFAB1E ; code for System.Xml.XmlTextWriter:StartDocument(int):this
call [rax]System.Xml.XmlTextWriter:StartDocument(int):this
- movzx rcx, r13b
- mov rdi, r15
- mov rsi, r12
- mov edx, r14d
+ movzx rcx, r14b
+ mov rdi, gword ptr [rbp-0x60]
+ mov rsi, r13
+ mov edx, r15d
mov rax, 0xD1FFAB1E ; code for System.Data.DataTable:WriteXml(System.Xml.XmlWriter,int,ubyte):this
call [rax]System.Data.DataTable:WriteXml(System.Xml.XmlWriter,int,ubyte):this
- mov rdi, r12
+ mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Xml.XmlTextWriter:WriteEndDocument():this
call [rax]System.Xml.XmlTextWriter:WriteEndDocument():this
nop
- ;; size=79 bbWeight=1 PerfScore 13.75
+ ;; size=78 bbWeight=1 PerfScore 14.50
G_M13520_IG11:
- mov rdi, r12
+ mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Xml.XmlTextWriter:get_WriteState():int:this
call [rax]System.Xml.XmlTextWriter:get_WriteState():int:this
cmp eax, 5
je SHORT G_M13520_IG13
;; size=20 bbWeight=1 PerfScore 4.75
G_M13520_IG12:
- mov rdi, r12
+ mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Xml.XmlTextWriter:Close():this
call [rax]System.Xml.XmlTextWriter:Close():this
nop
;; size=16 bbWeight=0.50 PerfScore 1.88
G_M13520_IG13:
mov rdi, 0xD1FFAB1E ; static handle
mov rdi, gword ptr [rdi]
cmp byte ptr [rdi], dil
- mov rdx, qword ptr [rbp-0x30]
+ mov rdx, qword ptr [rbp-0x38]
mov esi, 3
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this
call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this
nop
;; size=38 bbWeight=1 PerfScore 10.00
G_M13520_IG14:
- add rsp, 120
+ add rsp, 104
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M13520_IG15:
mov rdi, 0xD1FFAB1E ; System.Data.DataCommonEventSource
call CORINFO_HELP_GET_NONGCSTATIC_BASE
+ mov rdi, gword ptr [rbp-0x60]
jmp G_M13520_IG03
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M13520_IG16:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
mov rbp, qword ptr [rdi+0x10]
mov qword ptr [rsp+0x10], rbp
- lea rbp, [rbp+0xA0]
+ lea rbp, [rbp+0x90]
;; size=30 bbWeight=0 PerfScore 0.00
G_M13520_IG17:
- mov rdi, gword ptr [rbp-0x60]
+ mov rdi, gword ptr [rbp-0x68]
mov rax, 0xD1FFAB1E ; code for System.Xml.XmlTextWriter:get_WriteState():int:this
call [rax]System.Xml.XmlTextWriter:get_WriteState():int:this
cmp eax, 5
je SHORT G_M13520_IG18
- mov rdi, gword ptr [rbp-0x60]
+ mov rdi, gword ptr [rbp-0x68]
mov rax, 0xD1FFAB1E ; code for System.Xml.XmlTextWriter:Close():this
call [rax]System.Xml.XmlTextWriter:Close():this
;; size=37 bbWeight=0 PerfScore 0.00
G_M13520_IG18:
nop
;; size=1 bbWeight=0 PerfScore 0.00
G_M13520_IG19:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
G_M13520_IG20:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
mov rbp, qword ptr [rdi+0x10]
mov qword ptr [rsp+0x10], rbp
- lea rbp, [rbp+0xA0]
+ lea rbp, [rbp+0x90]
;; size=30 bbWeight=0 PerfScore 0.00
G_M13520_IG21:
mov rdi, 0xD1FFAB1E ; System.Data.DataCommonEventSource
call CORINFO_HELP_GET_NONGCSTATIC_BASE
mov rdi, 0xD1FFAB1E ; data for System.Data.DataCommonEventSource:Log
mov rdi, gword ptr [rdi]
cmp byte ptr [rdi], dil
- mov rdx, qword ptr [rbp-0x30]
+ mov rdx, qword ptr [rbp-0x38]
mov esi, 3
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this
call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this
nop
;; size=53 bbWeight=0 PerfScore 0.00
G_M13520_IG22:
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 1023, prolog size 57, PerfScore 140.50, instruction count 237, allocated bytes for code 1023 (MethodHash=3a88cb2f) for method System.Data.DataTable:WriteXml(System.String,int,ubyte):this (FullOpts)
+; Total bytes of code 1002, prolog size 59, PerfScore 137.38, instruction count 235, allocated bytes for code 1002 (MethodHash=3a88cb2f) for method System.Data.DataTable:WriteXml(System.String,int,ubyte):this (FullOpts)
-16 (-3.53 % of base) - System.Net.Sockets.NetworkStream:Read(System.Span`1[ubyte]):int:this
; Assembly listing for method System.Net.Sockets.NetworkStream:Read(System.Span`1[ubyte]):int: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; 2 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 5 ) ref -> rbx this class-hnd single-def <System.Net.Sockets.NetworkStream>
+; V00 this [V00,T00] ( 8, 5 ) ref -> [rbp-0x30] this class-hnd EH-live single-def <System.Net.Sockets.NetworkStream>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.Span`1[ubyte]>
;* V02 loc0 [V02 ] ( 0, 0 ) int -> zero-ref
-; V03 loc1 [V03,T07] ( 3, 0 ) ref -> [rbp-0x30] must-init class-hnd EH-live single-def <System.Exception>
+; V03 loc1 [V03,T07] ( 3, 0 ) ref -> [rbp-0x38] must-init class-hnd EH-live single-def <System.Exception>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05,T12] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <System.Object>
; V06 tmp2 [V06,T08] ( 3, 0 ) ref -> rsi class-hnd single-def "dup spill" <System.Exception>
;* V07 tmp3 [V07 ] ( 0, 0 ) ref -> zero-ref single-def
; V08 tmp4 [V08,T11] ( 3, 0 ) int -> rax
;* V09 tmp5 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.Object>
; V10 tmp6 [V10,T09] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
;* V11 tmp7 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V12 tmp8 [V12,T03] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Net.Sockets.Socket>
+; V12 tmp8 [V12,T03] ( 3, 3 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.Net.Sockets.Socket>
; V13 tmp9 [V13 ] ( 3, 1 ) int -> [rbp-0x28] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V14 tmp10 [V14,T05] ( 2, 1 ) int -> rax "Inline stloc first use temp"
; V15 tmp11 [V15,T10] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Net.Sockets.SocketException>
; V16 tmp12 [V16,T15] ( 2, 0 ) int -> rsi "Inlining Arg"
-; V17 tmp13 [V17,T01] ( 3, 2 ) byref -> r15 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V18 tmp14 [V18,T02] ( 3, 2 ) int -> r14 single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V17 tmp13 [V17,T01] ( 3, 2 ) byref -> rbx single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V18 tmp14 [V18,T02] ( 3, 2 ) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP
; V19 tmp15 [V19,T13] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
; V20 tmp16 [V20,T14] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V21 PSPSym [V21,T06] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[V] "PSPSym"
-; V22 cse0 [V22,T04] ( 3, 2.50) long -> r13 "CSE #01: aggressive"
+; V22 cse0 [V22,T04] ( 3, 2.50) long -> r14 "CSE #01: aggressive"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M62985_IG01:
push rbp
push r15
push r14
- push r13
push rbx
- sub rsp, 32
+ sub rsp, 40
lea rbp, [rsp+0x40]
xor eax, eax
- mov qword ptr [rbp-0x30], rax
+ mov qword ptr [rbp-0x38], rax
mov qword ptr [rbp-0x40], rsp
- mov rbx, rdi
- mov r15, rsi
- mov r14d, edx
- ;; size=36 bbWeight=1 PerfScore 8.75
+ mov qword ptr [rbp-0x20], rdi
+ mov gword ptr [rbp-0x30], rdi
+ mov rbx, rsi
+ mov r15d, edx
+ ;; size=39 bbWeight=1 PerfScore 9.50
G_M62985_IG02:
- mov r13, qword ptr [rbx]
+ mov r14, qword ptr [rdi]
mov rsi, 0xD1FFAB1E ; System.Net.Sockets.NetworkStream
- cmp r13, rsi
+ cmp r14, rsi
je SHORT G_M62985_IG05
;; size=18 bbWeight=1 PerfScore 3.50
G_M62985_IG03:
- mov rsi, r15
- mov edx, r14d
- mov rdi, rbx
+ mov rsi, rbx
+ mov edx, r15d
mov rax, 0xD1FFAB1E ; code for System.IO.Stream:Read(System.Span`1[ubyte]):int:this
call [rax]System.IO.Stream:Read(System.Span`1[ubyte]):int:this
nop
- ;; size=22 bbWeight=0.50 PerfScore 2.12
+ ;; size=19 bbWeight=0.50 PerfScore 2.00
G_M62985_IG04:
- add rsp, 32
+ add rsp, 40
pop rbx
- pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0.50 PerfScore 1.88
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
G_M62985_IG05:
- cmp dword ptr [rbx+0x18], 0
+ cmp dword ptr [rdi+0x18], 0
jne G_M62985_IG10
- mov rdi, rbx
- mov rax, qword ptr [r13+0x40]
+ mov rax, qword ptr [r14+0x40]
call [rax+0x28]System.IO.Stream:get_CanRead():ubyte:this
test eax, eax
je SHORT G_M62985_IG09
- ;; size=24 bbWeight=0.50 PerfScore 5.25
+ ;; size=21 bbWeight=0.50 PerfScore 5.12
G_M62985_IG06:
- mov rdi, gword ptr [rbx+0x10]
- cmp byte ptr [rdi], dil
- mov rsi, r15
- mov edx, r14d
+ mov rdi, gword ptr [rbp-0x30]
+ mov rcx, gword ptr [rdi+0x10]
+ cmp byte ptr [rcx], cl
+ mov rsi, rbx
+ mov edx, r15d
lea r8, [rbp-0x28]
+ mov rdi, rcx
xor ecx, ecx
mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:Receive(System.Span`1[ubyte],int,byref):int:this
call [rax]System.Net.Sockets.Socket:Receive(System.Span`1[ubyte],int,byref):int:this
cmp dword ptr [rbp-0x28], 0
je SHORT G_M62985_IG08
- ;; size=37 bbWeight=0.50 PerfScore 6.25
+ ;; size=43 bbWeight=0.50 PerfScore 6.88
G_M62985_IG07:
mov rdi, 0xD1FFAB1E ; System.Net.Sockets.SocketException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov esi, dword ptr [rbp-0x28]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.SocketException:.ctor(int):this
call [rax]System.Net.Sockets.SocketException:.ctor(int):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=45 bbWeight=0 PerfScore 0.00
G_M62985_IG08:
- add rsp, 32
+ add rsp, 40
pop rbx
- pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0.50 PerfScore 1.88
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
G_M62985_IG09:
mov rdi, 0xD1FFAB1E ; System.InvalidOperationException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_net_writeonlystream():System.String
call [rax]System.SR:get_net_writeonlystream():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_M62985_IG10:
- mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowObjectDisposedException(System.Object)
call [rax]System.ThrowHelper:ThrowObjectDisposedException(System.Object)
int3
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=13 bbWeight=0 PerfScore 0.00
G_M62985_IG11:
push rbp
push r15
push r14
- push r13
push rbx
- sub rsp, 16
+ push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x40]
- ;; size=23 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
G_M62985_IG12:
mov rdi, 0xD1FFAB1E ; System.Exception
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
mov rsi, rax
test rsi, rsi
jne SHORT G_M62985_IG13
xor eax, eax
jmp SHORT G_M62985_IG14
;; size=34 bbWeight=0 PerfScore 0.00
G_M62985_IG13:
- mov gword ptr [rbp-0x30], rsi
- mov rsi, gword ptr [rbp-0x30]
+ mov gword ptr [rbp-0x38], rsi
+ mov rsi, gword ptr [rbp-0x38]
mov rdi, 0xD1FFAB1E ; System.OutOfMemoryException
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
sete al
movzx rax, al
;; size=39 bbWeight=0 PerfScore 0.00
G_M62985_IG14:
- add rsp, 16
+ add rsp, 8
pop rbx
- pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=11 bbWeight=0 PerfScore 0.00
G_M62985_IG15:
push rbp
push r15
push r14
- push r13
push rbx
- sub rsp, 16
+ push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x40]
- ;; size=23 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
G_M62985_IG16:
mov rax, 0xD1FFAB1E ; code for System.SR:get_net_io_readfailure():System.String
call [rax]System.SR:get_net_io_readfailure():System.String
mov rdi, rax
- mov rsi, gword ptr [rbp-0x30]
+ mov rsi, gword ptr [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.NetworkStream:WrapException(System.String,System.Exception):System.IO.IOException
call [rax]System.Net.Sockets.NetworkStream:WrapException(System.String,System.Exception):System.IO.IOException
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=40 bbWeight=0 PerfScore 0.00
-; Total bytes of code 453, prolog size 36, PerfScore 29.62, instruction count 130, allocated bytes for code 453 (MethodHash=629709f6) for method System.Net.Sockets.NetworkStream:Read(System.Span`1[ubyte]):int:this (FullOpts)
+; Total bytes of code 437, prolog size 39, PerfScore 30.25, instruction count 124, allocated bytes for code 437 (MethodHash=629709f6) for method System.Net.Sockets.NetworkStream:Read(System.Span`1[ubyte]):int:this (FullOpts)
-16 (-3.53 % of base) - System.Net.Sockets.NetworkStream:Write(System.ReadOnlySpan`1[ubyte]):this
; Assembly listing for method System.Net.Sockets.NetworkStream:Write(System.ReadOnlySpan`1[ubyte]):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; 2 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 5 ) ref -> rbx this class-hnd single-def <System.Net.Sockets.NetworkStream>
+; V00 this [V00,T00] ( 8, 5 ) ref -> [rbp-0x30] this class-hnd EH-live single-def <System.Net.Sockets.NetworkStream>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
-; V02 loc0 [V02,T06] ( 3, 0 ) ref -> [rbp-0x30] must-init class-hnd EH-live single-def <System.Exception>
+; V02 loc0 [V02,T06] ( 3, 0 ) ref -> [rbp-0x38] must-init class-hnd EH-live single-def <System.Exception>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T11] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <System.Object>
; V05 tmp2 [V05,T07] ( 3, 0 ) ref -> rsi class-hnd single-def "dup spill" <System.Exception>
;* V06 tmp3 [V06 ] ( 0, 0 ) ref -> zero-ref single-def
; V07 tmp4 [V07,T10] ( 3, 0 ) int -> rax
;* V08 tmp5 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.Object>
; V09 tmp6 [V09,T08] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
;* V10 tmp7 [V10 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V11 tmp8 [V11,T03] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Net.Sockets.Socket>
+; V11 tmp8 [V11,T03] ( 3, 3 ) ref -> rcx class-hnd single-def "Inlining Arg" <System.Net.Sockets.Socket>
; V12 tmp9 [V12 ] ( 3, 1 ) int -> [rbp-0x28] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V13 tmp10 [V13 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
; V14 tmp11 [V14,T09] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Net.Sockets.SocketException>
; V15 tmp12 [V15,T14] ( 2, 0 ) int -> rsi "Inlining Arg"
-; V16 tmp13 [V16,T01] ( 3, 2 ) byref -> r15 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V17 tmp14 [V17,T02] ( 3, 2 ) int -> r14 single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V16 tmp13 [V16,T01] ( 3, 2 ) byref -> rbx single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V17 tmp14 [V17,T02] ( 3, 2 ) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP
; V18 tmp15 [V18,T12] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
; V19 tmp16 [V19,T13] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V20 PSPSym [V20,T05] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[V] "PSPSym"
-; V21 cse0 [V21,T04] ( 3, 2.50) long -> r13 "CSE #01: aggressive"
+; V21 cse0 [V21,T04] ( 3, 2.50) long -> r14 "CSE #01: aggressive"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M13673_IG01:
push rbp
push r15
push r14
- push r13
push rbx
- sub rsp, 32
+ sub rsp, 40
lea rbp, [rsp+0x40]
xor eax, eax
- mov qword ptr [rbp-0x30], rax
+ mov qword ptr [rbp-0x38], rax
mov qword ptr [rbp-0x40], rsp
- mov rbx, rdi
- mov r15, rsi
- mov r14d, edx
- ;; size=36 bbWeight=1 PerfScore 8.75
+ mov qword ptr [rbp-0x20], rdi
+ mov gword ptr [rbp-0x30], rdi
+ mov rbx, rsi
+ mov r15d, edx
+ ;; size=39 bbWeight=1 PerfScore 9.50
G_M13673_IG02:
- mov r13, qword ptr [rbx]
+ mov r14, qword ptr [rdi]
mov rsi, 0xD1FFAB1E ; System.Net.Sockets.NetworkStream
- cmp r13, rsi
+ cmp r14, rsi
je SHORT G_M13673_IG05
;; size=18 bbWeight=1 PerfScore 3.50
G_M13673_IG03:
- mov rsi, r15
- mov edx, r14d
- mov rdi, rbx
+ mov rsi, rbx
+ mov edx, r15d
mov rax, 0xD1FFAB1E ; code for System.IO.Stream:Write(System.ReadOnlySpan`1[ubyte]):this
call [rax]System.IO.Stream:Write(System.ReadOnlySpan`1[ubyte]):this
nop
- ;; size=22 bbWeight=0.50 PerfScore 2.12
+ ;; size=19 bbWeight=0.50 PerfScore 2.00
G_M13673_IG04:
- add rsp, 32
+ add rsp, 40
pop rbx
- pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0.50 PerfScore 1.88
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
G_M13673_IG05:
- cmp dword ptr [rbx+0x18], 0
+ cmp dword ptr [rdi+0x18], 0
jne G_M13673_IG10
- mov rdi, rbx
- mov rax, qword ptr [r13+0x40]
+ mov rax, qword ptr [r14+0x40]
call [rax+0x30]System.IO.Stream:get_CanWrite():ubyte:this
test eax, eax
je SHORT G_M13673_IG09
- ;; size=24 bbWeight=0.50 PerfScore 5.25
+ ;; size=21 bbWeight=0.50 PerfScore 5.12
G_M13673_IG06:
- mov rdi, gword ptr [rbx+0x10]
- cmp byte ptr [rdi], dil
- mov rsi, r15
- mov edx, r14d
+ mov rdi, gword ptr [rbp-0x30]
+ mov rcx, gword ptr [rdi+0x10]
+ cmp byte ptr [rcx], cl
+ mov rsi, rbx
+ mov edx, r15d
lea r8, [rbp-0x28]
+ mov rdi, rcx
xor ecx, ecx
mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:Send(System.ReadOnlySpan`1[ubyte],int,byref):int:this
call [rax]System.Net.Sockets.Socket:Send(System.ReadOnlySpan`1[ubyte],int,byref):int:this
cmp dword ptr [rbp-0x28], 0
je SHORT G_M13673_IG08
- ;; size=37 bbWeight=0.50 PerfScore 6.25
+ ;; size=43 bbWeight=0.50 PerfScore 6.88
G_M13673_IG07:
mov rdi, 0xD1FFAB1E ; System.Net.Sockets.SocketException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov esi, dword ptr [rbp-0x28]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.SocketException:.ctor(int):this
call [rax]System.Net.Sockets.SocketException:.ctor(int):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=45 bbWeight=0 PerfScore 0.00
G_M13673_IG08:
- add rsp, 32
+ add rsp, 40
pop rbx
- pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0.50 PerfScore 1.88
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
G_M13673_IG09:
mov rdi, 0xD1FFAB1E ; System.InvalidOperationException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_net_readonlystream():System.String
call [rax]System.SR:get_net_readonlystream():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_M13673_IG10:
- mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowObjectDisposedException(System.Object)
call [rax]System.ThrowHelper:ThrowObjectDisposedException(System.Object)
int3
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=13 bbWeight=0 PerfScore 0.00
G_M13673_IG11:
push rbp
push r15
push r14
- push r13
push rbx
- sub rsp, 16
+ push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x40]
- ;; size=23 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
G_M13673_IG12:
mov rdi, 0xD1FFAB1E ; System.Exception
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
mov rsi, rax
test rsi, rsi
jne SHORT G_M13673_IG13
xor eax, eax
jmp SHORT G_M13673_IG14
;; size=34 bbWeight=0 PerfScore 0.00
G_M13673_IG13:
- mov gword ptr [rbp-0x30], rsi
- mov rsi, gword ptr [rbp-0x30]
+ mov gword ptr [rbp-0x38], rsi
+ mov rsi, gword ptr [rbp-0x38]
mov rdi, 0xD1FFAB1E ; System.OutOfMemoryException
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
sete al
movzx rax, al
;; size=39 bbWeight=0 PerfScore 0.00
G_M13673_IG14:
- add rsp, 16
+ add rsp, 8
pop rbx
- pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=11 bbWeight=0 PerfScore 0.00
G_M13673_IG15:
push rbp
push r15
push r14
- push r13
push rbx
- sub rsp, 16
+ push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x40]
- ;; size=23 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
G_M13673_IG16:
mov rax, 0xD1FFAB1E ; code for System.SR:get_net_io_writefailure():System.String
call [rax]System.SR:get_net_io_writefailure():System.String
mov rdi, rax
- mov rsi, gword ptr [rbp-0x30]
+ mov rsi, gword ptr [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.NetworkStream:WrapException(System.String,System.Exception):System.IO.IOException
call [rax]System.Net.Sockets.NetworkStream:WrapException(System.String,System.Exception):System.IO.IOException
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=40 bbWeight=0 PerfScore 0.00
-; Total bytes of code 453, prolog size 36, PerfScore 29.62, instruction count 130, allocated bytes for code 453 (MethodHash=a7d1ca96) for method System.Net.Sockets.NetworkStream:Write(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
+; Total bytes of code 437, prolog size 39, PerfScore 30.25, instruction count 124, allocated bytes for code 437 (MethodHash=a7d1ca96) for method System.Net.Sockets.NetworkStream:Write(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
-14 (-1.37 % of base) - System.Data.DataSet:EnableConstraints():this
; Assembly listing for method System.Data.DataSet:EnableConstraints():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; 18 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T14] ( 6, 5 ) ref -> rbx this class-hnd single-def <System.Data.DataSet>
+; V00 this [V00,T14] ( 6, 5 ) ref -> [rbp-0x38] this class-hnd EH-live single-def <System.Data.DataSet>
; V01 loc0 [V01,T24] ( 3, 2 ) long -> [rbp-0x28] do-not-enreg[Z] EH-live
-; V02 loc1 [V02,T01] ( 8, 42 ) ubyte -> r15
-; V03 loc2 [V03,T11] ( 4, 10 ) ref -> r14 class-hnd exact single-def <System.Data.ConstraintEnumerator>
+; V02 loc1 [V02,T01] ( 8, 42 ) ubyte -> rbx
+; V03 loc2 [V03,T11] ( 4, 10 ) ref -> r15 class-hnd exact single-def <System.Data.ConstraintEnumerator>
;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Data.Constraint>
-; V05 loc4 [V05,T09] ( 5, 11 ) ref -> [rbp-0x38] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
-; V06 loc5 [V06,T04] ( 5, 28 ) ref -> [rbp-0x40] do-not-enreg[Z] class-hnd EH-live <System.Collections.IEnumerator>
-; V07 loc6 [V07,T02] ( 5, 40 ) ref -> r14 class-hnd <System.Data.DataColumn>
+; V05 loc4 [V05,T09] ( 5, 11 ) ref -> [rbp-0x40] class-hnd EH-live spill-single-def <System.Collections.IEnumerator>
+; V06 loc5 [V06,T04] ( 5, 28 ) ref -> [rbp-0x48] do-not-enreg[Z] class-hnd EH-live <System.Collections.IEnumerator>
+; V07 loc6 [V07,T02] ( 5, 40 ) ref -> r15 class-hnd <System.Data.DataColumn>
; V08 loc7 [V08,T13] ( 12, 8.50) ref -> registers class-hnd <System.IDisposable>
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V10 tmp1 [V10,T18] ( 3, 5 ) ref -> r15 class-hnd exact single-def "impAppendStmt" <System.Data.DataCommonEventSource>
-; V11 tmp2 [V11,T10] ( 4, 8 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Data.ConstraintEnumerator>
-; V12 tmp3 [V12,T25] ( 3, 2 ) long -> r13 "Inline return value spill temp"
-; V13 tmp4 [V13,T23] ( 2, 3 ) int -> r14 "Inlining Arg"
+; V10 tmp1 [V10,T18] ( 3, 5 ) ref -> rbx class-hnd exact single-def "impAppendStmt" <System.Data.DataCommonEventSource>
+; V11 tmp2 [V11,T10] ( 4, 8 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Data.ConstraintEnumerator>
+; V12 tmp3 [V12,T25] ( 3, 2 ) long -> r14 "Inline return value spill temp"
+; V13 tmp4 [V13,T23] ( 2, 3 ) int -> r15 "Inlining Arg"
; V14 tmp5 [V14,T21] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.Int32>
;* V15 tmp6 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Data.DataCommonEventSource>
; V16 tmp7 [V16 ] ( 2, 2 ) ref -> [rbp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inlining Arg" <System.Object>
;* V17 tmp8 [V17 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[System.Object]>
;* V18 tmp9 [V18 ] ( 0, 0 ) ref -> zero-ref single-def
;* V19 tmp10 [V19,T29] ( 0, 0 ) ref -> zero-ref single-def
; V20 tmp11 [V20,T26] ( 2, 2 ) ref -> rax single-def
-; V21 tmp12 [V21,T20] ( 2, 4 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Data.DataTableCollection>
+; V21 tmp12 [V21,T20] ( 2, 4 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.Data.DataTableCollection>
;* V22 tmp13 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Data.DataTableCollection>
;* V23 tmp14 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Data.DataTable>
;* V24 tmp15 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Data.DataColumnCollection>
; V25 tmp16 [V25,T15] ( 6, 6 ) ref -> rdi class-hnd exact "Inlining Arg" <System.Data.DataCommonEventSource>
;* V26 tmp17 [V26,T31] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP
;* V27 tmp18 [V27,T32] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP
; V28 tmp19 [V28,T27] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
-; V29 tmp20 [V29,T16] ( 3, 6 ) ref -> rdi single-def "argument with side effect"
+; V29 tmp20 [V29,T16] ( 3, 6 ) ref -> rax single-def "argument with side effect"
; V30 tmp21 [V30,T05] ( 3, 24 ) ref -> rdi "argument with side effect"
-; V31 tmp22 [V31,T17] ( 3, 6 ) ref -> rdi single-def "argument with side effect"
+; V31 tmp22 [V31,T17] ( 3, 6 ) ref -> rax single-def "argument with side effect"
; V32 tmp23 [V32,T12] ( 3, 9 ) ref -> rax "argument with side effect"
; V33 tmp24 [V33,T08] ( 3, 12 ) ref -> rdi "argument with side effect"
; V34 tmp25 [V34,T03] ( 3, 36 ) ref -> rax "argument with side effect"
; V35 PSPSym [V35,T30] ( 1, 1 ) long -> [rbp-0x50] do-not-enreg[V] "PSPSym"
-; V36 cse0 [V36,T22] ( 3, 3 ) ref -> rdi "CSE #05: moderate"
+; V36 cse0 [V36,T22] ( 3, 3 ) ref -> rax "CSE #05: moderate"
;* V37 cse1 [V37,T28] ( 0, 0 ) byref -> zero-ref multi-def "CSE #02: moderate"
; V38 rat0 [V38,T07] ( 5, 15 ) ref -> rcx "replacement local"
; V39 rat1 [V39,T19] ( 3, 5 ) long -> rdi "CSE for expectedClsNode"
-; V40 rat2 [V40,T00] ( 5, 60 ) ref -> r14 "replacement local"
+; V40 rat2 [V40,T00] ( 5, 60 ) ref -> r15 "replacement local"
; V41 rat3 [V41,T06] ( 3, 20 ) long -> rdi "CSE for expectedClsNode"
;
-; Lcl frame size = 48
+; Lcl frame size = 56
G_M62029_IG01:
push rbp
push r15
push r14
- push r13
push rbx
- sub rsp, 48
+ sub rsp, 56
lea rbp, [rsp+0x50]
xor eax, eax
mov qword ptr [rbp-0x30], rax
mov qword ptr [rbp-0x50], rsp
- mov rbx, rdi
- ;; size=30 bbWeight=1 PerfScore 8.25
+ mov qword ptr [rbp-0x20], rdi
+ mov gword ptr [rbp-0x38], rdi
+ ;; size=33 bbWeight=1 PerfScore 9.00
G_M62029_IG02:
- mov rdi, 0xD1FFAB1E ; global ptr
- test byte ptr [rdi], 1
+ mov rax, 0xD1FFAB1E ; global ptr
+ test byte ptr [rax], 1
je G_M62029_IG28
;; size=19 bbWeight=1 PerfScore 4.25
G_M62029_IG03:
- mov rdi, 0xD1FFAB1E ; data for System.Data.DataCommonEventSource:Log
- mov rdi, gword ptr [rdi]
- mov r15, rdi
- mov r14d, dword ptr [rbx+0x94]
- cmp byte ptr [r15], r15b
- cmp byte ptr [rdi+0x9D], 0
+ mov rax, 0xD1FFAB1E ; data for System.Data.DataCommonEventSource:Log
+ mov rax, gword ptr [rax]
+ mov rbx, rax
+ mov r15d, dword ptr [rdi+0x94]
+ cmp byte ptr [rbx], bl
+ cmp byte ptr [rax+0x9D], 0
jne SHORT G_M62029_IG05
- ;; size=35 bbWeight=1 PerfScore 11.50
+ ;; size=34 bbWeight=1 PerfScore 11.50
G_M62029_IG04:
- xor r13d, r13d
+ xor r14d, r14d
jmp SHORT G_M62029_IG06
;; size=5 bbWeight=0.50 PerfScore 1.12
G_M62029_IG05:
mov rdi, 0xD1FFAB1E ; System.Int32
call CORINFO_HELP_NEWSFAST
- mov dword ptr [rax+0x08], r14d
+ mov dword ptr [rax+0x08], r15d
mov gword ptr [rbp-0x30], rax
lea rdx, bword ptr [rbp-0x30]
mov ecx, 1
xor rdi, rdi
mov rsi, 0xD1FFAB1E ; '<ds.DataSet.EnableConstraints|INFO> {0}'
mov rax, 0xD1FFAB1E ; code for System.String:FormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.String
call [rax]System.String:FormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):System.String
mov rsi, rax
- mov rdi, r15
+ mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Data.DataCommonEventSource:EnterScope(System.String):long:this
call [rax]System.Data.DataCommonEventSource:EnterScope(System.String):long:this
- mov r13, rax
+ mov r14, rax
;; size=77 bbWeight=0.50 PerfScore 5.88
G_M62029_IG06:
- mov qword ptr [rbp-0x28], r13
+ mov qword ptr [rbp-0x28], r14
;; size=4 bbWeight=1 PerfScore 1.00
G_M62029_IG07:
- xor r15d, r15d
+ xor ebx, ebx
mov rdi, 0xD1FFAB1E ; System.Data.ConstraintEnumerator
call CORINFO_HELP_NEWSFAST
- mov r14, rax
- mov rdi, gword ptr [rbx+0x20]
- mov rdi, gword ptr [rdi+0x10]
- mov rax, qword ptr [rdi]
+ mov r15, rax
+ mov rdi, gword ptr [rbp-0x38]
+ mov rax, gword ptr [rdi+0x20]
+ mov rax, gword ptr [rax+0x10]
+ mov rdi, rax
+ mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x58]
call [rax]System.Collections.ArrayList:GetEnumerator():System.Collections.IEnumerator:this
- lea rdi, bword ptr [r14+0x08]
+ lea rdi, bword ptr [r15+0x08]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
xor rdi, rdi
- mov gword ptr [r14+0x18], rdi
- mov rdi, r14
+ mov gword ptr [r15+0x18], rdi
+ mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Data.ConstraintEnumerator:GetNext():ubyte:this
call [rax]System.Data.ConstraintEnumerator:GetNext():ubyte:this
test eax, eax
je SHORT G_M62029_IG09
- ;; size=75 bbWeight=1 PerfScore 20.50
+ ;; size=81 bbWeight=1 PerfScore 21.75
G_M62029_IG08:
- mov rdi, gword ptr [r14+0x18]
+ mov rdi, gword ptr [r15+0x18]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x50]
call [rax+0x10]System.Data.Constraint:IsConstraintViolated():ubyte:this
- or eax, r15d
- movzx r15, al
- mov rdi, r14
+ or eax, ebx
+ movzx rbx, al
+ mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Data.ConstraintEnumerator:GetNext():ubyte:this
call [rax]System.Data.ConstraintEnumerator:GetNext():ubyte:this
test eax, eax
jne SHORT G_M62029_IG08
- ;; size=40 bbWeight=4 PerfScore 57.00
+ ;; size=38 bbWeight=4 PerfScore 57.00
G_M62029_IG09:
- mov rdi, gword ptr [rbx+0x20]
- mov rdi, gword ptr [rdi+0x10]
- mov rax, qword ptr [rdi]
+ mov rdi, gword ptr [rbp-0x38]
+ mov rax, gword ptr [rdi+0x20]
+ mov rax, gword ptr [rax+0x10]
+ mov rdi, rax
+ mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x58]
call [rax]System.Collections.ArrayList:GetEnumerator():System.Collections.IEnumerator:this
- mov gword ptr [rbp-0x38], rax
- ;; size=21 bbWeight=1 PerfScore 12.00
+ mov gword ptr [rbp-0x40], rax
+ ;; size=28 bbWeight=1 PerfScore 13.25
G_M62029_IG10:
- mov rax, gword ptr [rbp-0x38]
+ mov rax, gword ptr [rbp-0x40]
mov rdi, rax
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
je G_M62029_IG22
;; size=28 bbWeight=8 PerfScore 46.00
G_M62029_IG11:
- mov rdi, gword ptr [rbp-0x38]
+ 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 rcx, rax
test rcx, rcx
je SHORT G_M62029_IG14
;; size=25 bbWeight=2 PerfScore 11.50
G_M62029_IG12:
mov rdi, 0xD1FFAB1E ; System.Data.DataTable
cmp qword ptr [rcx], rdi
je SHORT G_M62029_IG14
;; size=15 bbWeight=1 PerfScore 4.25
G_M62029_IG13:
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.50 PerfScore 1.88
G_M62029_IG14:
mov rdi, gword ptr [rcx+0x30]
mov rdi, gword ptr [rdi+0x10]
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-0x40], rax
+ mov gword ptr [rbp-0x48], rax
;; size=21 bbWeight=2 PerfScore 24.00
G_M62029_IG15:
- mov rdi, gword ptr [rbp-0x40]
+ mov rdi, gword ptr [rbp-0x48]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
- je G_M62029_IG21
- ;; size=25 bbWeight=16 PerfScore 88.00
+ je SHORT G_M62029_IG21
+ ;; size=21 bbWeight=16 PerfScore 88.00
G_M62029_IG16:
- mov rdi, gword ptr [rbp-0x40]
+ mov rdi, gword ptr [rbp-0x48]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:get_Current():System.Object:this
call [r11]System.Collections.IEnumerator:get_Current():System.Object:this
- mov r14, rax
- test r14, r14
+ mov r15, rax
+ test r15, r15
je SHORT G_M62029_IG19
;; size=25 bbWeight=8 PerfScore 46.00
G_M62029_IG17:
mov rdi, 0xD1FFAB1E ; System.Data.DataColumn
- cmp qword ptr [r14], rdi
+ cmp qword ptr [r15], rdi
je SHORT G_M62029_IG19
;; size=15 bbWeight=4 PerfScore 17.00
G_M62029_IG18:
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
call [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
- mov r14, rax
+ mov r15, rax
;; size=18 bbWeight=2 PerfScore 7.50
G_M62029_IG19:
- cmp byte ptr [r14+0xC0], 0
+ cmp byte ptr [r15+0xC0], 0
jne SHORT G_M62029_IG20
- mov rdi, r14
+ mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Data.DataColumn:IsNotAllowDBNullViolated():ubyte:this
call [rax]System.Data.DataColumn:IsNotAllowDBNullViolated():ubyte:this
- or eax, r15d
- movzx r15, al
- ;; size=32 bbWeight=8 PerfScore 64.00
+ or eax, ebx
+ movzx rbx, al
+ ;; size=30 bbWeight=8 PerfScore 64.00
G_M62029_IG20:
- cmp dword ptr [r14+0xA8], 0
+ cmp dword ptr [r15+0xA8], 0
jl SHORT G_M62029_IG15
- mov rdi, r14
+ mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Data.DataColumn:IsMaxLengthViolated():ubyte:this
call [rax]System.Data.DataColumn:IsMaxLengthViolated():ubyte:this
- or eax, r15d
- movzx r15, al
+ or eax, ebx
+ movzx rbx, al
jmp G_M62029_IG15
- ;; size=37 bbWeight=8 PerfScore 80.00
+ ;; size=35 bbWeight=8 PerfScore 80.00
G_M62029_IG21:
- mov rsi, gword ptr [rbp-0x40]
+ mov rsi, gword ptr [rbp-0x48]
mov rdi, 0xD1FFAB1E ; System.IDisposable
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE
call [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE
test rax, rax
je G_M62029_IG10
mov rcx, rax
mov rdi, rcx
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
jmp G_M62029_IG10
;; size=59 bbWeight=2 PerfScore 23.00
G_M62029_IG22:
- mov rsi, gword ptr [rbp-0x38]
+ 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_M62029_IG24
;; size=31 bbWeight=1 PerfScore 5.75
G_M62029_IG23:
mov rdi, rax
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=16 bbWeight=0.50 PerfScore 1.75
G_M62029_IG24:
- test r15d, r15d
+ test ebx, ebx
je SHORT G_M62029_IG26
- ;; size=5 bbWeight=1 PerfScore 1.25
+ ;; size=4 bbWeight=1 PerfScore 1.25
G_M62029_IG25:
- mov rdi, rbx
+ mov rdi, gword ptr [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Data.DataSet:FailedEnableConstraints():this
call [rax]System.Data.DataSet:FailedEnableConstraints():this
int3
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=17 bbWeight=0 PerfScore 0.00
G_M62029_IG26:
mov rdi, 0xD1FFAB1E ; static handle
mov rdi, gword ptr [rdi]
cmp byte ptr [rdi], dil
mov rdx, qword ptr [rbp-0x28]
mov esi, 3
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this
call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this
nop
;; size=38 bbWeight=1 PerfScore 10.00
G_M62029_IG27:
- add rsp, 48
+ add rsp, 56
pop rbx
- pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=1 PerfScore 3.75
+ ;; size=11 bbWeight=1 PerfScore 3.25
G_M62029_IG28:
mov rdi, 0xD1FFAB1E ; System.Data.DataCommonEventSource
call CORINFO_HELP_GET_NONGCSTATIC_BASE
+ mov rdi, gword ptr [rbp-0x38]
jmp G_M62029_IG03
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=24 bbWeight=0 PerfScore 0.00
G_M62029_IG29:
push rbp
push r15
push r14
- push r13
push rbx
- sub rsp, 16
+ push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x50]
- ;; size=23 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
G_M62029_IG30:
- mov rsi, gword ptr [rbp-0x40]
+ mov rsi, gword ptr [rbp-0x48]
mov rdi, 0xD1FFAB1E ; System.IDisposable
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE
call [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE
test rax, rax
je SHORT G_M62029_IG31
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_M62029_IG31:
nop
;; size=1 bbWeight=0 PerfScore 0.00
G_M62029_IG32:
- add rsp, 16
+ add rsp, 8
pop rbx
- pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=11 bbWeight=0 PerfScore 0.00
G_M62029_IG33:
push rbp
push r15
push r14
- push r13
push rbx
- sub rsp, 16
+ push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x50]
- ;; size=23 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
G_M62029_IG34:
- mov rsi, gword ptr [rbp-0x38]
+ 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_M62029_IG35
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_M62029_IG35:
nop
;; size=1 bbWeight=0 PerfScore 0.00
G_M62029_IG36:
- add rsp, 16
+ add rsp, 8
pop rbx
- pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=11 bbWeight=0 PerfScore 0.00
G_M62029_IG37:
push rbp
push r15
push r14
- push r13
push rbx
- sub rsp, 16
+ push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x50]
- ;; size=23 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
G_M62029_IG38:
mov rdi, 0xD1FFAB1E ; System.Data.DataCommonEventSource
call CORINFO_HELP_GET_NONGCSTATIC_BASE
mov rdi, 0xD1FFAB1E ; data for System.Data.DataCommonEventSource:Log
mov rdi, gword ptr [rdi]
cmp byte ptr [rdi], dil
mov rdx, qword ptr [rbp-0x28]
mov esi, 3
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this
call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,long):this
nop
;; size=53 bbWeight=0 PerfScore 0.00
G_M62029_IG39:
- add rsp, 16
+ add rsp, 8
pop rbx
- pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=11 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1020, prolog size 30, PerfScore 557.12, instruction count 255, allocated bytes for code 1020 (MethodHash=b0c00db2) for method System.Data.DataSet:EnableConstraints():this (FullOpts)
+; Total bytes of code 1006, prolog size 33, PerfScore 559.88, instruction count 253, allocated bytes for code 1006 (MethodHash=b0c00db2) for method System.Data.DataSet:EnableConstraints():this (FullOpts)
-14 (-0.86 % of base) - System.DirectoryServices.Protocols.LdapConnection:BeginSendRequest(System.DirectoryServices.Protocols.DirectoryRequest,System.TimeSpan,int,System.AsyncCallback,System.Object):System.IAsyncResult:this
; Assembly listing for method System.DirectoryServices.Protocols.LdapConnection:BeginSendRequest(System.DirectoryServices.Protocols.DirectoryRequest,System.TimeSpan,int,System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 22 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T04] ( 9, 5 ) ref -> r14 this class-hnd single-def <System.DirectoryServices.Protocols.LdapConnection>
; V01 arg1 [V01,T01] ( 12, 8.50) ref -> rbx class-hnd single-def <System.DirectoryServices.Protocols.DirectoryRequest>
;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.TimeSpan>
; V03 arg3 [V03,T03] ( 8, 6.50) int -> r15 single-def
; V04 arg4 [V04,T06] ( 5, 3.50) ref -> r13 class-hnd single-def <System.AsyncCallback>
; V05 arg5 [V05,T07] ( 4, 3 ) ref -> r12 class-hnd single-def <System.Object>
-; V06 loc0 [V06 ] ( 6, 4.50) int -> [rbp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op
-; V07 loc1 [V07,T13] ( 4, 2 ) int -> [rbp-0x34]
-; V08 loc2 [V08,T05] ( 11, 5.50) int -> [rbp-0x38]
+; V06 loc0 [V06 ] ( 6, 4.50) int -> [rbp-0x38] do-not-enreg[X] must-init addr-exposed ld-addr-op
+; V07 loc1 [V07,T13] ( 4, 2 ) int -> [rbp-0x3C]
+; V08 loc2 [V08,T05] ( 11, 5.50) int -> [rbp-0x40]
; V09 loc3 [V09,T12] ( 4, 2 ) ref -> r15 class-hnd exact single-def <System.DirectoryServices.Protocols.LdapRequestState>
;* V10 loc4 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.DirectoryServices.Protocols.LdapAsyncResult>
; V11 loc5 [V11,T18] ( 2, 1 ) ubyte -> r15 single-def
;* V12 loc6 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.DirectoryServices.Protocols.LdapPartialAsyncResult>
; V13 OutArgs [V13 ] ( 1, 1 ) struct (24) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V14 tmp1 [V14,T19] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ComponentModel.InvalidEnumArgumentException>
-; V15 tmp2 [V15,T00] ( 14, 14 ) ref -> [rbp-0xF8] class-hnd exact spill-single-def "NewObj constructor temp" <System.DirectoryServices.Protocols.LdapPartialAsyncResult>
+; V15 tmp2 [V15,T00] ( 14, 14 ) ref -> [rbp-0x100] class-hnd exact spill-single-def "NewObj constructor temp" <System.DirectoryServices.Protocols.LdapPartialAsyncResult>
;* V16 tmp3 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.DirectoryServices.Protocols.LdapRequestState>
-; V17 tmp4 [V17,T02] ( 9, 9 ) ref -> [rbp-0x100] class-hnd exact spill-single-def "NewObj constructor temp" <System.DirectoryServices.Protocols.LdapAsyncResult>
+; V17 tmp4 [V17,T02] ( 9, 9 ) ref -> [rbp-0x108] class-hnd exact spill-single-def "NewObj constructor temp" <System.DirectoryServices.Protocols.LdapAsyncResult>
; V18 tmp5 [V18,T09] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.Int32>
; V19 tmp6 [V19,T14] ( 2, 2 ) ref -> rdi class-hnd exact single-def "impImportAndPushBox" <System.Collections.Hashtable+SyncHashtable>
-; V20 tmp7 [V20,T15] ( 2, 2 ) struct (24) [rbp-0x50] do-not-enreg[HS] must-init hidden-struct-arg "spilled call-like call argument" <System.Threading.Tasks.ValueTask`1[System.DirectoryServices.Protocols.DirectoryResponse]>
-; V21 tmp8 [V21,T20] ( 3, 0 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
+; V20 tmp7 [V20,T15] ( 2, 2 ) struct (24) [rbp-0x58] do-not-enreg[HS] must-init hidden-struct-arg "spilled call-like call argument" <System.Threading.Tasks.ValueTask`1[System.DirectoryServices.Protocols.DirectoryResponse]>
+; V21 tmp8 [V21,T20] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentException>
; V22 tmp9 [V22,T21] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.NotSupportedException>
; V23 tmp10 [V23,T22] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
; V24 tmp11 [V24,T23] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.ObjectDisposedException>
; V25 tmp12 [V25,T24] ( 2, 0 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.RuntimeType>
; V26 tmp13 [V26,T10] ( 3, 3 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Threading.ManualResetEvent>
-; V27 tmp14 [V27 ] ( 1, 0.50) ubyte -> [rbp-0x58] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V28 tmp15 [V28 ] ( 11, 5.50) struct (120) [rbp-0xD0] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.DirectoryServices.Protocols.LdapConnection+<ConstructResponseAsync>d__57>
+; V27 tmp14 [V27 ] ( 1, 0.50) ubyte -> [rbp-0x60] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+; V28 tmp15 [V28 ] ( 11, 5.50) struct (120) [rbp-0xD8] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.DirectoryServices.Protocols.LdapConnection+<ConstructResponseAsync>d__57>
; V29 tmp16 [V29,T16] ( 2, 2 ) int -> rdi "Inlining Arg"
;* V30 tmp17 [V30 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1[System.DirectoryServices.Protocols.DirectoryResponse]>
-; V31 tmp18 [V31,T17] ( 2, 2 ) int -> [rbp-0xD4] spill-single-def "Inlining Arg"
+; V31 tmp18 [V31,T17] ( 2, 2 ) int -> [rbp-0xDC] spill-single-def "Inlining Arg"
; V32 tmp19 [V32,T11] ( 3, 3 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Threading.ManualResetEvent>
-; V33 tmp20 [V33 ] ( 1, 0.50) ubyte -> [rbp-0xE0] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
-; V34 tmp21 [V34 ] ( 3, 0 ) int -> [rbp-0xE8] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline stloc first use temp"
+; V33 tmp20 [V33 ] ( 1, 0.50) ubyte -> [rbp-0xE8] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+; V34 tmp21 [V34 ] ( 3, 0 ) int -> [rbp-0xF0] do-not-enreg[X] must-init addr-exposed ld-addr-op "Inline stloc first use temp"
; V35 tmp22 [V35,T25] ( 2, 0 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.DirectoryServices.Protocols.ConnectionHandle>
-; V36 tmp23 [V36,T08] ( 3, 2 ) long -> [rbp-0xF0] single-def "field V02._ticks (fldOffset=0x0)" P-INDEP
+; V36 tmp23 [V36,T08] ( 3, 2 ) long -> [rbp-0xF8] single-def "field V02._ticks (fldOffset=0x0)" P-INDEP
;* V37 tmp24 [V37 ] ( 0, 0 ) ref -> zero-ref single-def "field V30.m_task (fldOffset=0x0)" P-INDEP
;* V38 tmp25 [V38 ] ( 0, 0 ) ref -> zero-ref single-def "field V30._result (fldOffset=0x8)" P-INDEP
-; V39 tmp26 [V39,T26] ( 2, 0 ) ref -> rbx single-def "argument with side effect"
+; V39 tmp26 [V39,T26] ( 2, 0 ) ref -> r15 single-def "argument with side effect"
; V40 tmp27 [V40,T27] ( 2, 0 ) ref -> rdx single-def "argument with side effect"
; V41 tmp28 [V41,T28] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V42 tmp29 [V42,T29] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V43 tmp30 [V43,T30] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V44 tmp31 [V44,T31] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
;
; Lcl frame size = 248
G_M32204_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 248
lea rbp, [rsp+0x120]
- xor eax, eax
- mov qword ptr [rbp-0xE8], rax
vxorps xmm8, xmm8, xmm8
- vmovdqu32 zmmword ptr [rbp-0xE0], zmm8
- vmovdqu32 zmmword ptr [rbp-0xA0], zmm8
- vmovdqa xmmword ptr [rbp-0x60], xmm8
- vmovdqa xmmword ptr [rbp-0x50], xmm8
- vmovdqa xmmword ptr [rbp-0x40], xmm8
- mov qword ptr [rbp-0x30], rax
- mov qword ptr [rbp-0xF0], rdx
+ vmovdqu32 zmmword ptr [rbp-0xF0], zmm8
+ vmovdqu32 zmmword ptr [rbp-0xB0], zmm8
+ vmovdqu32 zmmword ptr [rbp-0x70], zmm8
+ mov qword ptr [rbp-0x30], rdi
+ mov qword ptr [rbp-0xF8], rdx
mov r14, rdi
mov rbx, rsi
mov r15d, ecx
mov r13, r8
mov r12, r9
- ;; size=100 bbWeight=1 PerfScore 21.58
+ ;; size=86 bbWeight=1 PerfScore 16.33
G_M32204_IG02:
cmp byte ptr [r14+0x45], 0
jne G_M32204_IG26
test rbx, rbx
je G_M32204_IG25
cmp r15d, 2
ja G_M32204_IG24
test r15d, r15d
je SHORT G_M32204_IG04
;; size=35 bbWeight=1 PerfScore 7.75
G_M32204_IG03:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.SearchRequest
mov rcx, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rcx]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
je G_M32204_IG23
;; size=34 bbWeight=0.50 PerfScore 2.50
G_M32204_IG04:
cmp r15d, 2
jne SHORT G_M32204_IG06
;; size=6 bbWeight=1 PerfScore 1.25
G_M32204_IG05:
test r13, r13
je G_M32204_IG22
;; size=9 bbWeight=0.50 PerfScore 0.62
G_M32204_IG06:
xor edx, edx
- mov dword ptr [rbp-0x30], edx
- lea rdx, [rbp-0x30]
+ mov dword ptr [rbp-0x38], edx
+ lea rdx, [rbp-0x38]
mov rdi, r14
mov rsi, rbx
mov rcx, 0xD1FFAB1E ; code for System.DirectoryServices.Protocols.LdapConnection:SendRequestHelper(System.DirectoryServices.Protocols.DirectoryRequest,byref):int:this
call [rcx]System.DirectoryServices.Protocols.LdapConnection:SendRequestHelper(System.DirectoryServices.Protocols.DirectoryRequest,byref):int:this
- mov dword ptr [rbp-0x34], eax
- mov dword ptr [rbp-0x38], 2
+ mov dword ptr [rbp-0x3C], eax
+ mov dword ptr [rbp-0x40], 2
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.DeleteRequest
mov rdx, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rdx]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
je SHORT G_M32204_IG08
;; size=67 bbWeight=1 PerfScore 12.50
G_M32204_IG07:
mov ebx, 3
jmp G_M32204_IG14
;; size=10 bbWeight=0.50 PerfScore 1.12
G_M32204_IG08:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.AddRequest
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
je SHORT G_M32204_IG09
xor ebx, ebx
jmp G_M32204_IG14
;; size=37 bbWeight=0.50 PerfScore 3.62
G_M32204_IG09:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.ModifyRequest
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
je SHORT G_M32204_IG10
mov ebx, 1
jmp G_M32204_IG14
;; size=40 bbWeight=0.50 PerfScore 3.62
G_M32204_IG10:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.SearchRequest
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
je SHORT G_M32204_IG11
mov ebx, 2
jmp SHORT G_M32204_IG14
;; size=37 bbWeight=0.50 PerfScore 3.62
G_M32204_IG11:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.ModifyDNRequest
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
je SHORT G_M32204_IG12
mov ebx, 4
jmp SHORT G_M32204_IG14
;; size=37 bbWeight=0.50 PerfScore 3.62
G_M32204_IG12:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.CompareRequest
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
je SHORT G_M32204_IG13
mov ebx, 5
jmp SHORT G_M32204_IG14
;; size=37 bbWeight=0.50 PerfScore 3.62
G_M32204_IG13:
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.ExtendedRequest
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
mov edi, 6
test rax, rax
mov ebx, edi
- cmove ebx, dword ptr [rbp-0x38]
+ cmove ebx, dword ptr [rbp-0x40]
;; size=39 bbWeight=0.50 PerfScore 3.25
G_M32204_IG14:
- mov eax, dword ptr [rbp-0x34]
+ mov eax, dword ptr [rbp-0x3C]
test eax, eax
jne G_M32204_IG21
- cmp dword ptr [rbp-0x30], -1
+ cmp dword ptr [rbp-0x38], -1
je G_M32204_IG20
test r15d, r15d
jne G_M32204_IG18
;; size=30 bbWeight=1 PerfScore 6.50
G_M32204_IG15:
mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.LdapRequestState
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.LdapAsyncResult
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x100], rax
+ mov gword ptr [rbp-0x108], rax
lea rdi, bword ptr [rax+0x20]
mov rsi, r12
call CORINFO_HELP_ASSIGN_REF
- mov r12, gword ptr [rbp-0x100]
+ mov r12, gword ptr [rbp-0x108]
lea rdi, bword ptr [r12+0x10]
mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Threading.ManualResetEvent
call CORINFO_HELP_NEWSFAST
mov r13, rax
- lea r8, [rbp-0x58]
+ lea r8, [rbp-0x60]
mov rdi, r13
xor esi, esi
mov edx, 1
xor rcx, rcx
mov rax, 0xD1FFAB1E ; code for System.Threading.EventWaitHandle:CreateEventCore(ubyte,int,System.String,byref):this
call [rax]System.Threading.EventWaitHandle:CreateEventCore(ubyte,int,System.String,byref):this
lea rdi, bword ptr [r12+0x18]
mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
mov byte ptr [r12+0x31], 0
lea rdi, bword ptr [r15+0x10]
mov rsi, r12
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r12+0x28]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Int32
call CORINFO_HELP_NEWSFAST
mov rdx, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdx]
- mov edx, dword ptr [rbp-0x30]
+ mov edx, dword ptr [rbp-0x38]
mov dword ptr [rax+0x08], edx
mov rdx, rax
mov rsi, r12
mov rax, 0xD1FFAB1E ; code for System.Collections.Hashtable+SyncHashtable:Add(System.Object,System.Object):this
call [rax]System.Collections.Hashtable+SyncHashtable:Add(System.Object,System.Object):this
- mov edi, dword ptr [rbp-0x30]
+ mov edi, dword ptr [rbp-0x38]
vxorps xmm0, xmm0, xmm0
- vmovdqu xmmword ptr [rbp-0x88], xmm0
+ vmovdqu xmmword ptr [rbp-0x90], xmm0
;; size=229 bbWeight=0.50 PerfScore 16.17
G_M32204_IG16:
- mov gword ptr [rbp-0xD0], r14
- mov dword ptr [rbp-0x98], edi
- mov dword ptr [rbp-0x94], ebx
- mov dword ptr [rbp-0x9C], 1
- mov rbx, qword ptr [rbp-0xF0]
- mov qword ptr [rbp-0x78], rbx
- mov byte ptr [rbp-0x8B], 1
- mov byte ptr [rbp-0x8C], 0
- mov dword ptr [rbp-0xA0], -1
- lea rdi, [rbp-0xD0]
+ mov gword ptr [rbp-0xD8], r14
+ mov dword ptr [rbp-0xA0], edi
+ mov dword ptr [rbp-0x9C], ebx
+ mov dword ptr [rbp-0xA4], 1
+ mov rbx, qword ptr [rbp-0xF8]
+ mov qword ptr [rbp-0x80], rbx
+ mov byte ptr [rbp-0x93], 1
+ mov byte ptr [rbp-0x94], 0
+ mov dword ptr [rbp-0xA8], -1
+ lea rdi, [rbp-0xD8]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.DirectoryServices.Protocols.LdapConnection+<ConstructResponseAsync>d__57](byref)
call [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.DirectoryServices.Protocols.LdapConnection+<ConstructResponseAsync>d__57](byref)
- lea rdi, [rbp-0x88]
- lea rsi, [rbp-0x50]
+ lea rdi, [rbp-0x90]
+ lea rsi, [rbp-0x58]
mov rdx, 0xD1FFAB1E ; System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1[System.DirectoryServices.Protocols.DirectoryResponse]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1[System.__Canon]:get_Task():System.Threading.Tasks.ValueTask`1[System.__Canon]:this
call [rax]System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1[System.__Canon]:get_Task():System.Threading.Tasks.ValueTask`1[System.__Canon]:this
lea rdi, [rsp]
- lea rsi, [rbp-0x50]
+ lea rsi, [rbp-0x58]
mov rcx, gword ptr [rsi]
mov gword ptr [rsp], rcx
add rsi, 8
add rdi, 8
mov rcx, gword ptr [rsi]
mov gword ptr [rsp+0x08], rcx
add rsi, 8
add rdi, 8
movsq
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.DirectoryServices.Protocols.LdapConnection:<BeginSendRequest>g__ResponseCallback|43_0(System.Threading.Tasks.ValueTask`1[System.DirectoryServices.Protocols.DirectoryResponse],System.DirectoryServices.Protocols.LdapRequestState):System.Threading.Tasks.Task
call [rax]System.DirectoryServices.Protocols.LdapConnection:<BeginSendRequest>g__ResponseCallback|43_0(System.Threading.Tasks.ValueTask`1[System.DirectoryServices.Protocols.DirectoryResponse],System.DirectoryServices.Protocols.LdapRequestState):System.Threading.Tasks.Task
mov rax, r12
;; size=175 bbWeight=0.50 PerfScore 15.00
G_M32204_IG17:
add rsp, 248
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0.50 PerfScore 2.12
G_M32204_IG18:
cmp r15d, 2
sete r15b
movzx r15, r15b
mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.LdapPartialAsyncResult
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xF8], rax
- mov ecx, dword ptr [rbp-0x30]
- mov dword ptr [rbp-0xD4], ecx
+ mov gword ptr [rbp-0x100], rax
+ mov ecx, dword ptr [rbp-0x38]
+ mov dword ptr [rbp-0xDC], ecx
mov dword ptr [rax+0x50], -1
lea rdi, bword ptr [rax+0x20]
mov rsi, r12
call CORINFO_HELP_ASSIGN_REF
- mov r12, gword ptr [rbp-0xF8]
+ mov r12, gword ptr [rbp-0x100]
lea rdi, bword ptr [r12+0x10]
mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Threading.ManualResetEvent
call CORINFO_HELP_NEWSFAST
mov r13, rax
- lea r8, [rbp-0xE0]
+ lea r8, [rbp-0xE8]
mov rdi, r13
xor esi, esi
mov edx, 1
xor rcx, rcx
mov rax, 0xD1FFAB1E ; code for System.Threading.EventWaitHandle:CreateEventCore(ubyte,int,System.String,byref):this
call [rax]System.Threading.EventWaitHandle:CreateEventCore(ubyte,int,System.String,byref):this
lea rdi, bword ptr [r12+0x18]
mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
mov byte ptr [r12+0x31], 1
- mov r13d, dword ptr [rbp-0xD4]
+ mov r13d, dword ptr [rbp-0xDC]
mov dword ptr [r12+0x50], r13d
lea rdi, bword ptr [r12+0x38]
mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
mov byte ptr [r12+0x31], 1
mov byte ptr [r12+0x32], r15b
- mov rbx, qword ptr [rbp-0xF0]
+ mov rbx, qword ptr [rbp-0xF8]
mov qword ptr [r12+0x58], rbx
mov rax, 0xD1FFAB1E ; code for System.DateTime:get_Now():System.DateTime
call [rax]System.DateTime:get_Now():System.DateTime
mov qword ptr [r12+0x60], rax
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
mov rsi, r12
mov rax, 0xD1FFAB1E ; code for System.DirectoryServices.Protocols.LdapPartialResultsProcessor:Add(System.DirectoryServices.Protocols.LdapPartialAsyncResult):this
call [rax]System.DirectoryServices.Protocols.LdapPartialResultsProcessor:Add(System.DirectoryServices.Protocols.LdapPartialAsyncResult):this
mov rax, r12
;; size=246 bbWeight=0.50 PerfScore 19.12
G_M32204_IG19:
add rsp, 248
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0.50 PerfScore 2.12
G_M32204_IG20:
mov rdi, gword ptr [r14+0x28]
xor edx, edx
- mov dword ptr [rbp-0xE8], edx
- lea rdx, [rbp-0xE8]
+ mov dword ptr [rbp-0xF0], edx
+ lea rdx, [rbp-0xF0]
mov esi, 49
mov rax, 0xD1FFAB1E ; code for Interop+Ldap:ldap_get_option_int(System.DirectoryServices.Protocols.ConnectionHandle,int,byref):int
call [rax]Interop+Ldap:ldap_get_option_int(System.DirectoryServices.Protocols.ConnectionHandle,int,byref):int
- mov eax, dword ptr [rbp-0xE8]
+ mov eax, dword ptr [rbp-0xF0]
mov r15d, eax
mov eax, r15d
;; size=48 bbWeight=0 PerfScore 0.00
G_M32204_IG21:
mov rdi, r14
mov esi, eax
mov edx, ebx
mov rax, 0xD1FFAB1E ; code for System.DirectoryServices.Protocols.LdapConnection:ConstructException(int,int):System.DirectoryServices.Protocols.DirectoryException:this
call [rax]System.DirectoryServices.Protocols.LdapConnection:ConstructException(int,int):System.DirectoryServices.Protocols.DirectoryException:this
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=28 bbWeight=0 PerfScore 0.00
G_M32204_IG22:
mov rdi, 0xD1FFAB1E ; System.ArgumentException
call CORINFO_HELP_NEWSFAST
- mov r14, rax
+ mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_CallBackIsNull():System.String
call [rax]System.SR:get_CallBackIsNull():System.String
- mov rbx, rax
+ mov r15, rax
mov edi, 0x1A0E
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdx, rax
- mov rsi, rbx
- mov rdi, r14
+ mov rsi, r15
+ mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.ArgumentException:.ctor(System.String,System.String):this
call [rax]System.ArgumentException:.ctor(System.String,System.String):this
- mov rdi, r14
+ mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=83 bbWeight=0 PerfScore 0.00
G_M32204_IG23:
mov rdi, 0xD1FFAB1E ; System.NotSupportedException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_PartialResultsNotSupported():System.String
call [rax]System.SR:get_PartialResultsNotSupported():System.String
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.NotSupportedException:.ctor(System.String):this
call [rax]System.NotSupportedException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=57 bbWeight=0 PerfScore 0.00
G_M32204_IG24:
mov rdi, 0xD1FFAB1E ; System.ComponentModel.InvalidEnumArgumentException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov edi, 0x19F6
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rsi, rax
mov rdi, rbx
mov edx, r15d
mov rcx, 0xD1FFAB1E ; 'System.DirectoryServices.Protocols.PartialResultProcessing'
mov rax, 0xD1FFAB1E ; code for System.ComponentModel.InvalidEnumArgumentException:.ctor(System.String,int,System.Type):this
call [rax]System.ComponentModel.InvalidEnumArgumentException:.ctor(System.String,int,System.Type):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=78 bbWeight=0 PerfScore 0.00
G_M32204_IG25:
mov rdi, 0xD1FFAB1E ; System.ArgumentNullException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov edi, 0x19E6
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:.ctor(System.String):this
call [rax]System.ArgumentNullException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=65 bbWeight=0 PerfScore 0.00
G_M32204_IG26:
mov rdi, r14
call System.Object:GetType():System.Type:this
mov rbx, rax
mov rdi, 0xD1FFAB1E ; System.ObjectDisposedException
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rdi, rbx
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.RuntimeType:GetCachedName(int):System.String:this
call [rax]System.RuntimeType:GetCachedName(int):System.String:this
mov rsi, rax
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.ObjectDisposedException:.ctor(System.String):this
call [rax]System.ObjectDisposedException:.ctor(System.String):this
mov rdi, r15
call CORINFO_HELP_THROW
int3
;; size=73 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1636, prolog size 78, PerfScore 129.75, instruction count 347, allocated bytes for code 1636 (MethodHash=f1de8233) for method System.DirectoryServices.Protocols.LdapConnection:BeginSendRequest(System.DirectoryServices.Protocols.DirectoryRequest,System.TimeSpan,int,System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts)
+; Total bytes of code 1622, prolog size 64, PerfScore 124.50, instruction count 343, allocated bytes for code 1622 (MethodHash=f1de8233) for method System.DirectoryServices.Protocols.LdapConnection:BeginSendRequest(System.DirectoryServices.Protocols.DirectoryRequest,System.TimeSpan,int,System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts)
-14 (-3.41 % of base) - System.Net.Security.SslStream:AuthenticateAsClientAsync(System.Net.Security.SslClientAuthenticationOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this
; Assembly listing for method System.Net.Security.SslStream:AuthenticateAsClientAsync(System.Net.Security.SslClientAuthenticationOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 7 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 11, 8 ) ref -> rbx this class-hnd single-def <System.Net.Security.SslStream>
; V01 arg1 [V01,T01] ( 4, 4 ) ref -> r15 class-hnd single-def <System.Net.Security.SslClientAuthenticationOptions>
;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Threading.CancellationToken>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T03] ( 3, 2.50) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo>
; V05 tmp2 [V05,T07] ( 3, 2 ) ref -> rax class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
; V06 tmp3 [V06,T04] ( 3, 2.50) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo>
;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.NetSecurityTelemetry>
-; V08 tmp5 [V08 ] ( 8, 4 ) struct (56) [rbp-0x50] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Security.SslStream+<ProcessAuthenticationWithTelemetryAsync>d__155>
+; V08 tmp5 [V08 ] ( 8, 4 ) struct (56) [rbp-0x58] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Security.SslStream+<ProcessAuthenticationWithTelemetryAsync>d__155>
;* V09 tmp6 [V09 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.CompilerServices.AsyncTaskMethodBuilder>
; V10 tmp7 [V10,T08] ( 2, 2 ) ref -> rax class-hnd single-def "dup spill" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
; V11 tmp8 [V11,T05] ( 4, 2 ) ref -> rax
-; V12 tmp9 [V12 ] ( 9, 4.50) struct (136) [rbp-0xD8] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]>
+; V12 tmp9 [V12 ] ( 9, 4.50) struct (136) [rbp-0xE0] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]>
; V13 tmp10 [V13,T10] ( 2, 2 ) ubyte -> rax "Inlining Arg"
;* V14 tmp11 [V14 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.CompilerServices.AsyncTaskMethodBuilder>
; V15 tmp12 [V15,T09] ( 2, 2 ) ref -> rax class-hnd single-def "dup spill" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
; V16 tmp13 [V16,T06] ( 4, 2 ) ref -> rax
; V17 tmp14 [V17,T02] ( 3, 2 ) ref -> r14 single-def "field V02._source (fldOffset=0x0)" P-INDEP
;* V18 tmp15 [V18 ] ( 0, 0 ) ref -> zero-ref single-def "field V09.m_task (fldOffset=0x0)" P-INDEP
;* V19 tmp16 [V19 ] ( 0, 0 ) ref -> zero-ref single-def "field V14.m_task (fldOffset=0x0)" P-INDEP
;
; Lcl frame size = 200
G_M10415_IG01:
push rbp
push r15
push r14
push rbx
sub rsp, 200
lea rbp, [rsp+0xE0]
- xor eax, eax
- mov qword ptr [rbp-0xD8], rax
vxorps xmm8, xmm8, xmm8
- vmovdqu32 zmmword ptr [rbp-0xD0], zmm8
- vmovdqu32 zmmword ptr [rbp-0x90], zmm8
- vmovdqa xmmword ptr [rbp-0x50], xmm8
- vmovdqa xmmword ptr [rbp-0x40], xmm8
- vmovdqa xmmword ptr [rbp-0x30], xmm8
- mov qword ptr [rbp-0x20], rax
+ vmovdqu32 zmmword ptr [rbp-0xE0], zmm8
+ vmovdqu32 zmmword ptr [rbp-0xA0], zmm8
+ vmovdqu32 zmmword ptr [rbp-0x60], zmm8
+ mov qword ptr [rbp-0x20], rdi
mov rbx, rdi
mov r15, rsi
mov r14, rdx
- ;; size=83 bbWeight=1 PerfScore 18.08
+ ;; size=69 bbWeight=1 PerfScore 12.83
G_M10415_IG02:
test r15, r15
je G_M10415_IG13
mov rsi, gword ptr [rbx+0x20]
test rsi, rsi
je SHORT G_M10415_IG04
;; size=18 bbWeight=1 PerfScore 4.50
G_M10415_IG03:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslStream:<ThrowIfExceptional>g__ThrowExceptional|133_0(System.Runtime.ExceptionServices.ExceptionDispatchInfo):this
call [rax]System.Net.Security.SslStream:<ThrowIfExceptional>g__ThrowExceptional|133_0(System.Runtime.ExceptionServices.ExceptionDispatchInfo):this
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M10415_IG04:
mov rdi, gword ptr [rbx+0x38]
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslAuthenticationOptions:UpdateOptions(System.Net.Security.SslClientAuthenticationOptions):this
cmp dword ptr [rdi], edi
call [rax]System.Net.Security.SslAuthenticationOptions:UpdateOptions(System.Net.Security.SslClientAuthenticationOptions):this
mov rsi, gword ptr [rbx+0x20]
test rsi, rsi
je SHORT G_M10415_IG06
;; size=30 bbWeight=1 PerfScore 11.75
G_M10415_IG05:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslStream:<ThrowIfExceptional>g__ThrowExceptional|133_0(System.Runtime.ExceptionServices.ExceptionDispatchInfo):this
call [rax]System.Net.Security.SslStream:<ThrowIfExceptional>g__ThrowExceptional|133_0(System.Runtime.ExceptionServices.ExceptionDispatchInfo):this
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M10415_IG06:
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
cmp byte ptr [rdi+0x9D], 0
je SHORT G_M10415_IG09
;; size=22 bbWeight=1 PerfScore 6.25
G_M10415_IG07:
xor edi, edi
- mov qword ptr [rbp-0x38], rdi
- mov gword ptr [rbp-0x50], rbx
- mov byte ptr [rbp-0x3C], 1
- mov gword ptr [rbp-0x30], r14
- mov dword ptr [rbp-0x40], -1
- lea rdi, [rbp-0x50]
+ mov qword ptr [rbp-0x40], rdi
+ mov gword ptr [rbp-0x58], rbx
+ mov byte ptr [rbp-0x44], 1
+ mov gword ptr [rbp-0x38], r14
+ mov dword ptr [rbp-0x48], -1
+ lea rdi, [rbp-0x58]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.Security.SslStream+<ProcessAuthenticationWithTelemetryAsync>d__155](byref)
call [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.Security.SslStream+<ProcessAuthenticationWithTelemetryAsync>d__155](byref)
- mov rax, gword ptr [rbp-0x38]
+ mov rax, gword ptr [rbp-0x40]
test rax, rax
jne SHORT G_M10415_IG08
- lea rdi, [rbp-0x38]
+ lea rdi, [rbp-0x40]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]:this
call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]:this
;; size=66 bbWeight=0.50 PerfScore 7.50
G_M10415_IG08:
jmp SHORT G_M10415_IG11
;; size=2 bbWeight=0.50 PerfScore 1.00
G_M10415_IG09:
mov rdi, rbx
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x68]
call [rax+0x30]System.Net.Security.AuthenticatedStream:get_IsServer():ubyte:this
xor edi, edi
- mov qword ptr [rbp-0xC0], rdi
- mov gword ptr [rbp-0xD0], rbx
- mov byte ptr [rbp-0xC4], al
+ mov qword ptr [rbp-0xC8], rdi
+ mov gword ptr [rbp-0xD8], rbx
+ mov byte ptr [rbp-0xCC], al
;; size=35 bbWeight=0.50 PerfScore 5.25
G_M10415_IG10:
- mov gword ptr [rbp-0xD8], rdi
- mov gword ptr [rbp-0xB8], r14
- mov dword ptr [rbp-0xC8], -1
- lea rdi, [rbp-0xD8]
+ mov gword ptr [rbp-0xE0], rdi
+ mov gword ptr [rbp-0xC0], r14
+ mov dword ptr [rbp-0xD0], -1
+ lea rdi, [rbp-0xE0]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]](byref)
call [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]](byref)
- mov rax, gword ptr [rbp-0xC0]
+ mov rax, gword ptr [rbp-0xC8]
test rax, rax
jne SHORT G_M10415_IG11
- lea rdi, [rbp-0xC0]
+ lea rdi, [rbp-0xC8]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]:this
call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]:this
;; size=74 bbWeight=0.50 PerfScore 6.38
G_M10415_IG11:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M10415_IG12:
add rsp, 200
pop rbx
pop r14
pop r15
pop rbp
ret
;; size=14 bbWeight=1 PerfScore 3.25
G_M10415_IG13:
mov edi, 0x2BFA
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:Throw(System.String)
call [rax]System.ArgumentNullException:Throw(System.String)
int3
;; size=36 bbWeight=0 PerfScore 0.00
-; Total bytes of code 411, prolog size 74, PerfScore 67.71, instruction count 91, allocated bytes for code 411 (MethodHash=db60d750) for method System.Net.Security.SslStream:AuthenticateAsClientAsync(System.Net.Security.SslClientAuthenticationOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 397, prolog size 60, PerfScore 62.46, instruction count 87, allocated bytes for code 397 (MethodHash=db60d750) for method System.Net.Security.SslStream:AuthenticateAsClientAsync(System.Net.Security.SslClientAuthenticationOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
-14 (-2.85 % of base) - System.Net.Security.SslStream:AuthenticateAsClientAsync(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,int,ubyte):System.Threading.Tasks.Task:this
; Assembly listing for method System.Net.Security.SslStream:AuthenticateAsClientAsync(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,int,ubyte):System.Threading.Tasks.Task:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 14 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 12, 9 ) ref -> rbx this class-hnd single-def <System.Net.Security.SslStream>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> r15 class-hnd single-def <System.String>
; V02 arg2 [V02,T03] ( 3, 3 ) ref -> r14 class-hnd single-def <System.Security.Cryptography.X509Certificates.X509CertificateCollection>
; V03 arg3 [V03,T04] ( 3, 3 ) int -> r13 single-def
; V04 arg4 [V04,T05] ( 3, 3 ) ubyte -> r12 single-def
;* V05 loc0 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Net.Security.SslClientAuthenticationOptions>
;* V06 loc1 [V06 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Threading.CancellationToken>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T00] ( 8, 16 ) ref -> [rbp-0xF0] class-hnd exact spill-single-def "NewObj constructor temp" <System.Net.Security.SslClientAuthenticationOptions>
+; V08 tmp1 [V08,T00] ( 8, 16 ) ref -> [rbp-0xF8] class-hnd exact spill-single-def "NewObj constructor temp" <System.Net.Security.SslClientAuthenticationOptions>
;* V09 tmp2 [V09 ] ( 0, 0 ) ref -> zero-ref single-def
;* V10 tmp3 [V10 ] ( 0, 0 ) ref -> zero-ref single-def
;* V11 tmp4 [V11 ] ( 0, 0 ) ref -> zero-ref single-def
;* V12 tmp5 [V12 ] ( 0, 0 ) ref -> zero-ref single-def
; V13 tmp6 [V13,T13] ( 2, 2 ) int -> rsi
;* V14 tmp7 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.SslAuthenticationOptions>
;* V15 tmp8 [V15 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
; V16 tmp9 [V16,T06] ( 3, 2.50) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo>
; V17 tmp10 [V17,T10] ( 3, 2 ) ref -> rax class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
; V18 tmp11 [V18,T07] ( 3, 2.50) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo>
;* V19 tmp12 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.NetSecurityTelemetry>
-; V20 tmp13 [V20 ] ( 8, 4 ) struct (56) [rbp-0x60] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Security.SslStream+<ProcessAuthenticationWithTelemetryAsync>d__155>
+; V20 tmp13 [V20 ] ( 8, 4 ) struct (56) [rbp-0x68] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Security.SslStream+<ProcessAuthenticationWithTelemetryAsync>d__155>
;* V21 tmp14 [V21 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.CompilerServices.AsyncTaskMethodBuilder>
; V22 tmp15 [V22,T11] ( 2, 2 ) ref -> rax class-hnd single-def "dup spill" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
; V23 tmp16 [V23,T08] ( 4, 2 ) ref -> rax
-; V24 tmp17 [V24 ] ( 9, 4.50) struct (136) [rbp-0xE8] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]>
+; V24 tmp17 [V24 ] ( 9, 4.50) struct (136) [rbp-0xF0] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]>
; V25 tmp18 [V25,T14] ( 2, 2 ) ubyte -> rax "Inlining Arg"
;* V26 tmp19 [V26 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.CompilerServices.AsyncTaskMethodBuilder>
; V27 tmp20 [V27,T12] ( 2, 2 ) ref -> rax class-hnd single-def "dup spill" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
; V28 tmp21 [V28,T09] ( 4, 2 ) ref -> rax
;* V29 tmp22 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "field V06._source (fldOffset=0x0)" P-INDEP
;* V30 tmp23 [V30 ] ( 0, 0 ) ref -> zero-ref single-def "field V15._source (fldOffset=0x0)" P-INDEP
;* V31 tmp24 [V31 ] ( 0, 0 ) ref -> zero-ref single-def "field V21.m_task (fldOffset=0x0)" P-INDEP
;* V32 tmp25 [V32 ] ( 0, 0 ) ref -> zero-ref single-def "field V26.m_task (fldOffset=0x0)" P-INDEP
;
-; Lcl frame size = 200
+; Lcl frame size = 216
G_M9085_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 200
- lea rbp, [rsp+0xF0]
- xor eax, eax
- mov qword ptr [rbp-0xE8], rax
+ sub rsp, 216
+ lea rbp, [rsp+0x100]
vxorps xmm8, xmm8, xmm8
- vmovdqu32 zmmword ptr [rbp-0xE0], zmm8
- vmovdqu32 zmmword ptr [rbp-0xA0], zmm8
- vmovdqa xmmword ptr [rbp-0x60], xmm8
- vmovdqa xmmword ptr [rbp-0x50], xmm8
- vmovdqa xmmword ptr [rbp-0x40], xmm8
- mov qword ptr [rbp-0x30], rax
+ vmovdqu32 zmmword ptr [rbp-0xF0], zmm8
+ vmovdqu32 zmmword ptr [rbp-0xB0], zmm8
+ vmovdqu32 zmmword ptr [rbp-0x70], zmm8
+ mov qword ptr [rbp-0x30], rdi
mov rbx, rdi
mov r15, rsi
mov r14, rdx
mov r13d, ecx
mov r12d, r8d
- ;; size=93 bbWeight=1 PerfScore 20.58
+ ;; size=79 bbWeight=1 PerfScore 15.33
G_M9085_IG02:
mov rdi, 0xD1FFAB1E ; System.Net.Security.SslClientAuthenticationOptions
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xF0], rax
+ mov gword ptr [rbp-0xF8], rax
mov word ptr [rax+0x54], 257
lea rdi, bword ptr [rax+0x20]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
- mov r15, gword ptr [rbp-0xF0]
+ mov r15, gword ptr [rbp-0xF8]
lea rdi, bword ptr [r15+0x28]
mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
mov dword ptr [r15+0x50], r13d
test r12b, r12b
setne sil
movzx rsi, sil
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslClientAuthenticationOptions:set_CertificateRevocationCheckMode(int):this
call [rax]System.Net.Security.SslClientAuthenticationOptions:set_CertificateRevocationCheckMode(int):this
mov rsi, gword ptr [rbx+0x38]
mov esi, dword ptr [rsi+0x68]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslClientAuthenticationOptions:set_EncryptionPolicy(int):this
call [rax]System.Net.Security.SslClientAuthenticationOptions:set_EncryptionPolicy(int):this
mov rsi, gword ptr [rbx+0x20]
test rsi, rsi
je SHORT G_M9085_IG04
;; size=120 bbWeight=1 PerfScore 24.50
G_M9085_IG03:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslStream:<ThrowIfExceptional>g__ThrowExceptional|133_0(System.Runtime.ExceptionServices.ExceptionDispatchInfo):this
call [rax]System.Net.Security.SslStream:<ThrowIfExceptional>g__ThrowExceptional|133_0(System.Runtime.ExceptionServices.ExceptionDispatchInfo):this
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M9085_IG04:
mov rdi, gword ptr [rbx+0x38]
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslAuthenticationOptions:UpdateOptions(System.Net.Security.SslClientAuthenticationOptions):this
cmp dword ptr [rdi], edi
call [rax]System.Net.Security.SslAuthenticationOptions:UpdateOptions(System.Net.Security.SslClientAuthenticationOptions):this
mov rsi, gword ptr [rbx+0x20]
test rsi, rsi
je SHORT G_M9085_IG06
;; size=30 bbWeight=1 PerfScore 11.75
G_M9085_IG05:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslStream:<ThrowIfExceptional>g__ThrowExceptional|133_0(System.Runtime.ExceptionServices.ExceptionDispatchInfo):this
call [rax]System.Net.Security.SslStream:<ThrowIfExceptional>g__ThrowExceptional|133_0(System.Runtime.ExceptionServices.ExceptionDispatchInfo):this
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M9085_IG06:
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
cmp byte ptr [rdi+0x9D], 0
je SHORT G_M9085_IG10
;; size=22 bbWeight=1 PerfScore 6.25
G_M9085_IG07:
xor edi, edi
- mov qword ptr [rbp-0x48], rdi
- mov gword ptr [rbp-0x60], rbx
- mov byte ptr [rbp-0x4C], 1
+ mov qword ptr [rbp-0x50], rdi
+ mov gword ptr [rbp-0x68], rbx
+ mov byte ptr [rbp-0x54], 1
;; size=14 bbWeight=0.50 PerfScore 1.62
G_M9085_IG08:
- mov qword ptr [rbp-0x40], rdi
- mov dword ptr [rbp-0x50], -1
- lea rdi, [rbp-0x60]
+ mov qword ptr [rbp-0x48], rdi
+ mov dword ptr [rbp-0x58], -1
+ lea rdi, [rbp-0x68]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.Security.SslStream+<ProcessAuthenticationWithTelemetryAsync>d__155](byref)
call [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.Security.SslStream+<ProcessAuthenticationWithTelemetryAsync>d__155](byref)
- mov rax, gword ptr [rbp-0x48]
+ mov rax, gword ptr [rbp-0x50]
test rax, rax
jne SHORT G_M9085_IG09
- lea rdi, [rbp-0x48]
+ lea rdi, [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]:this
call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]:this
;; size=52 bbWeight=0.50 PerfScore 5.88
G_M9085_IG09:
jmp SHORT G_M9085_IG13
;; size=2 bbWeight=0.50 PerfScore 1.00
G_M9085_IG10:
mov rdi, rbx
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x68]
call [rax+0x30]System.Net.Security.AuthenticatedStream:get_IsServer():ubyte:this
xor edi, edi
- mov qword ptr [rbp-0xD0], rdi
- mov gword ptr [rbp-0xE0], rbx
- mov byte ptr [rbp-0xD4], al
+ mov qword ptr [rbp-0xD8], rdi
+ mov gword ptr [rbp-0xE8], rbx
+ mov byte ptr [rbp-0xDC], al
;; size=35 bbWeight=0.50 PerfScore 5.25
G_M9085_IG11:
- mov gword ptr [rbp-0xE8], rdi
+ mov gword ptr [rbp-0xF0], rdi
;; size=7 bbWeight=0.50 PerfScore 0.50
G_M9085_IG12:
- mov qword ptr [rbp-0xC8], rdi
- mov dword ptr [rbp-0xD8], -1
- lea rdi, [rbp-0xE8]
+ mov qword ptr [rbp-0xD0], rdi
+ mov dword ptr [rbp-0xE0], -1
+ lea rdi, [rbp-0xF0]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]](byref)
call [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]](byref)
- mov rax, gword ptr [rbp-0xD0]
+ mov rax, gword ptr [rbp-0xD8]
test rax, rax
jne SHORT G_M9085_IG13
- lea rdi, [rbp-0xD0]
+ lea rdi, [rbp-0xD8]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]:this
call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]:this
;; size=67 bbWeight=0.50 PerfScore 5.88
G_M9085_IG13:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M9085_IG14:
- add rsp, 200
+ add rsp, 216
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1 PerfScore 4.25
-; Total bytes of code 491, prolog size 78, PerfScore 91.21, instruction count 111, allocated bytes for code 491 (MethodHash=9f20dc82) for method System.Net.Security.SslStream:AuthenticateAsClientAsync(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,int,ubyte):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 477, prolog size 64, PerfScore 85.96, instruction count 107, allocated bytes for code 477 (MethodHash=9f20dc82) for method System.Net.Security.SslStream:AuthenticateAsClientAsync(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,int,ubyte):System.Threading.Tasks.Task:this (FullOpts)
-14 (-3.06 % of base) - System.Net.Security.SslStream:AuthenticateAsServerAsync(System.Security.Cryptography.X509Certificates.X509Certificate,ubyte,int,ubyte):System.Threading.Tasks.Task:this
; Assembly listing for method System.Net.Security.SslStream:AuthenticateAsServerAsync(System.Security.Cryptography.X509Certificates.X509Certificate,ubyte,int,ubyte):System.Threading.Tasks.Task:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 14 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 10, 7.50) ref -> rbx this class-hnd single-def <System.Net.Security.SslStream>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> r15 class-hnd single-def <System.Security.Cryptography.X509Certificates.X509Certificate>
; V02 arg2 [V02,T03] ( 3, 3 ) ubyte -> r14 single-def
; V03 arg3 [V03,T04] ( 3, 3 ) int -> r13 single-def
; V04 arg4 [V04,T05] ( 3, 3 ) ubyte -> r12 single-def
;* V05 loc0 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Net.Security.SslServerAuthenticationOptions>
;* V06 loc1 [V06 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Threading.CancellationToken>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08,T00] ( 8, 16 ) ref -> [rbp-0xF0] class-hnd exact spill-single-def "NewObj constructor temp" <System.Net.Security.SslServerAuthenticationOptions>
+; V08 tmp1 [V08,T00] ( 8, 16 ) ref -> [rbp-0xF8] class-hnd exact spill-single-def "NewObj constructor temp" <System.Net.Security.SslServerAuthenticationOptions>
;* V09 tmp2 [V09 ] ( 0, 0 ) ref -> zero-ref single-def
;* V10 tmp3 [V10 ] ( 0, 0 ) ref -> zero-ref single-def
;* V11 tmp4 [V11 ] ( 0, 0 ) ref -> zero-ref single-def
;* V12 tmp5 [V12 ] ( 0, 0 ) ref -> zero-ref single-def
; V13 tmp6 [V13,T12] ( 2, 2 ) int -> rsi
;* V14 tmp7 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.SslAuthenticationOptions>
;* V15 tmp8 [V15 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
; V16 tmp9 [V16,T09] ( 3, 2 ) ref -> rax class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
; V17 tmp10 [V17,T06] ( 3, 2.50) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo>
;* V18 tmp11 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.NetSecurityTelemetry>
-; V19 tmp12 [V19 ] ( 8, 4 ) struct (56) [rbp-0x60] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Security.SslStream+<ProcessAuthenticationWithTelemetryAsync>d__155>
+; V19 tmp12 [V19 ] ( 8, 4 ) struct (56) [rbp-0x68] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Security.SslStream+<ProcessAuthenticationWithTelemetryAsync>d__155>
;* V20 tmp13 [V20 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.CompilerServices.AsyncTaskMethodBuilder>
; V21 tmp14 [V21,T10] ( 2, 2 ) ref -> rax class-hnd single-def "dup spill" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
; V22 tmp15 [V22,T07] ( 4, 2 ) ref -> rax
-; V23 tmp16 [V23 ] ( 9, 4.50) struct (136) [rbp-0xE8] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]>
+; V23 tmp16 [V23 ] ( 9, 4.50) struct (136) [rbp-0xF0] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]>
; V24 tmp17 [V24,T13] ( 2, 2 ) ubyte -> rax "Inlining Arg"
;* V25 tmp18 [V25 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.CompilerServices.AsyncTaskMethodBuilder>
; V26 tmp19 [V26,T11] ( 2, 2 ) ref -> rax class-hnd single-def "dup spill" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
; V27 tmp20 [V27,T08] ( 4, 2 ) ref -> rax
;* V28 tmp21 [V28 ] ( 0, 0 ) ref -> zero-ref single-def "field V06._source (fldOffset=0x0)" P-INDEP
;* V29 tmp22 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "field V15._source (fldOffset=0x0)" P-INDEP
;* V30 tmp23 [V30 ] ( 0, 0 ) ref -> zero-ref single-def "field V20.m_task (fldOffset=0x0)" P-INDEP
;* V31 tmp24 [V31 ] ( 0, 0 ) ref -> zero-ref single-def "field V25.m_task (fldOffset=0x0)" P-INDEP
;
-; Lcl frame size = 200
+; Lcl frame size = 216
G_M29142_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 200
- lea rbp, [rsp+0xF0]
- xor eax, eax
- mov qword ptr [rbp-0xE8], rax
+ sub rsp, 216
+ lea rbp, [rsp+0x100]
vxorps xmm8, xmm8, xmm8
- vmovdqu32 zmmword ptr [rbp-0xE0], zmm8
- vmovdqu32 zmmword ptr [rbp-0xA0], zmm8
- vmovdqa xmmword ptr [rbp-0x60], xmm8
- vmovdqa xmmword ptr [rbp-0x50], xmm8
- vmovdqa xmmword ptr [rbp-0x40], xmm8
- mov qword ptr [rbp-0x30], rax
+ vmovdqu32 zmmword ptr [rbp-0xF0], zmm8
+ vmovdqu32 zmmword ptr [rbp-0xB0], zmm8
+ vmovdqu32 zmmword ptr [rbp-0x70], zmm8
+ mov qword ptr [rbp-0x30], rdi
mov rbx, rdi
mov r15, rsi
mov r14d, edx
mov r13d, ecx
mov r12d, r8d
- ;; size=93 bbWeight=1 PerfScore 20.58
+ ;; size=79 bbWeight=1 PerfScore 15.33
G_M29142_IG02:
mov rdi, 0xD1FFAB1E ; System.Net.Security.SslServerAuthenticationOptions
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xF0], rax
+ mov gword ptr [rbp-0xF8], rax
mov byte ptr [rax+0x4D], 1
lea rdi, bword ptr [rax+0x20]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
- mov r15, gword ptr [rbp-0xF0]
+ mov r15, gword ptr [rbp-0xF8]
mov byte ptr [r15+0x4E], r14b
mov dword ptr [r15+0x44], r13d
test r12b, r12b
setne sil
movzx rsi, sil
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslServerAuthenticationOptions:set_CertificateRevocationCheckMode(int):this
call [rax]System.Net.Security.SslServerAuthenticationOptions:set_CertificateRevocationCheckMode(int):this
mov rsi, gword ptr [rbx+0x38]
mov esi, dword ptr [rsi+0x68]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslServerAuthenticationOptions:set_EncryptionPolicy(int):this
call [rax]System.Net.Security.SslServerAuthenticationOptions:set_EncryptionPolicy(int):this
mov rdi, gword ptr [rbx+0x38]
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslAuthenticationOptions:UpdateOptions(System.Net.Security.SslServerAuthenticationOptions):this
cmp dword ptr [rdi], edi
call [rax]System.Net.Security.SslAuthenticationOptions:UpdateOptions(System.Net.Security.SslServerAuthenticationOptions):this
mov rsi, gword ptr [rbx+0x20]
test rsi, rsi
je SHORT G_M29142_IG04
;; size=131 bbWeight=1 PerfScore 32.25
G_M29142_IG03:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslStream:<ThrowIfExceptional>g__ThrowExceptional|133_0(System.Runtime.ExceptionServices.ExceptionDispatchInfo):this
call [rax]System.Net.Security.SslStream:<ThrowIfExceptional>g__ThrowExceptional|133_0(System.Runtime.ExceptionServices.ExceptionDispatchInfo):this
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M29142_IG04:
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
cmp byte ptr [rdi+0x9D], 0
je SHORT G_M29142_IG08
;; size=22 bbWeight=1 PerfScore 6.25
G_M29142_IG05:
xor edi, edi
- mov qword ptr [rbp-0x48], rdi
- mov gword ptr [rbp-0x60], rbx
- mov byte ptr [rbp-0x4C], 1
+ mov qword ptr [rbp-0x50], rdi
+ mov gword ptr [rbp-0x68], rbx
+ mov byte ptr [rbp-0x54], 1
;; size=14 bbWeight=0.50 PerfScore 1.62
G_M29142_IG06:
- mov qword ptr [rbp-0x40], rdi
- mov dword ptr [rbp-0x50], -1
- lea rdi, [rbp-0x60]
+ mov qword ptr [rbp-0x48], rdi
+ mov dword ptr [rbp-0x58], -1
+ lea rdi, [rbp-0x68]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.Security.SslStream+<ProcessAuthenticationWithTelemetryAsync>d__155](byref)
call [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.Security.SslStream+<ProcessAuthenticationWithTelemetryAsync>d__155](byref)
- mov rax, gword ptr [rbp-0x48]
+ mov rax, gword ptr [rbp-0x50]
test rax, rax
jne SHORT G_M29142_IG07
- lea rdi, [rbp-0x48]
+ lea rdi, [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]:this
call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]:this
;; size=52 bbWeight=0.50 PerfScore 5.88
G_M29142_IG07:
jmp SHORT G_M29142_IG11
;; size=2 bbWeight=0.50 PerfScore 1.00
G_M29142_IG08:
mov rdi, rbx
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x68]
call [rax+0x30]System.Net.Security.AuthenticatedStream:get_IsServer():ubyte:this
xor edi, edi
- mov qword ptr [rbp-0xD0], rdi
- mov gword ptr [rbp-0xE0], rbx
- mov byte ptr [rbp-0xD4], al
+ mov qword ptr [rbp-0xD8], rdi
+ mov gword ptr [rbp-0xE8], rbx
+ mov byte ptr [rbp-0xDC], al
;; size=35 bbWeight=0.50 PerfScore 5.25
G_M29142_IG09:
- mov gword ptr [rbp-0xE8], rdi
+ mov gword ptr [rbp-0xF0], rdi
;; size=7 bbWeight=0.50 PerfScore 0.50
G_M29142_IG10:
- mov qword ptr [rbp-0xC8], rdi
- mov dword ptr [rbp-0xD8], -1
- lea rdi, [rbp-0xE8]
+ mov qword ptr [rbp-0xD0], rdi
+ mov dword ptr [rbp-0xE0], -1
+ lea rdi, [rbp-0xF0]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]](byref)
call [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]](byref)
- mov rax, gword ptr [rbp-0xD0]
+ mov rax, gword ptr [rbp-0xD8]
test rax, rax
jne SHORT G_M29142_IG11
- lea rdi, [rbp-0xD0]
+ lea rdi, [rbp-0xD8]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]:this
call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]:this
;; size=67 bbWeight=0.50 PerfScore 5.88
G_M29142_IG11:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M29142_IG12:
- add rsp, 200
+ add rsp, 216
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1 PerfScore 4.25
-; Total bytes of code 457, prolog size 78, PerfScore 85.46, instruction count 103, allocated bytes for code 457 (MethodHash=eb228e29) for method System.Net.Security.SslStream:AuthenticateAsServerAsync(System.Security.Cryptography.X509Certificates.X509Certificate,ubyte,int,ubyte):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 443, prolog size 64, PerfScore 80.21, instruction count 99, allocated bytes for code 443 (MethodHash=eb228e29) for method System.Net.Security.SslStream:AuthenticateAsServerAsync(System.Security.Cryptography.X509Certificates.X509Certificate,ubyte,int,ubyte):System.Threading.Tasks.Task:this (FullOpts)
-14 (-3.16 % of base) - System.Net.Security.SslStream:AuthenticateAsServerAsync(System.Security.Cryptography.X509Certificates.X509Certificate,ubyte,ubyte):System.Threading.Tasks.Task:this
; Assembly listing for method System.Net.Security.SslStream:AuthenticateAsServerAsync(System.Security.Cryptography.X509Certificates.X509Certificate,ubyte,ubyte):System.Threading.Tasks.Task:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 10, 7.50) ref -> rbx this class-hnd single-def <System.Net.Security.SslStream>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> r15 class-hnd single-def <System.Security.Cryptography.X509Certificates.X509Certificate>
; V02 arg2 [V02,T03] ( 3, 3 ) ubyte -> r14 single-def
; V03 arg3 [V03,T04] ( 3, 3 ) ubyte -> r13 single-def
;* V04 loc0 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Net.Security.SslServerAuthenticationOptions>
;* V05 loc1 [V05 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Threading.CancellationToken>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T00] ( 7, 14 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Net.Security.SslServerAuthenticationOptions>
;* V08 tmp2 [V08 ] ( 0, 0 ) ref -> zero-ref single-def
;* V09 tmp3 [V09 ] ( 0, 0 ) ref -> zero-ref single-def
;* V10 tmp4 [V10 ] ( 0, 0 ) ref -> zero-ref single-def
;* V11 tmp5 [V11 ] ( 0, 0 ) ref -> zero-ref single-def
; V12 tmp6 [V12,T11] ( 2, 2 ) int -> rsi
;* V13 tmp7 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.SslAuthenticationOptions>
;* V14 tmp8 [V14 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.Threading.CancellationToken>
; V15 tmp9 [V15,T08] ( 3, 2 ) ref -> rax class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
; V16 tmp10 [V16,T05] ( 3, 2.50) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo>
;* V17 tmp11 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.NetSecurityTelemetry>
-; V18 tmp12 [V18 ] ( 8, 4 ) struct (56) [rbp-0x60] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Security.SslStream+<ProcessAuthenticationWithTelemetryAsync>d__155>
+; V18 tmp12 [V18 ] ( 8, 4 ) struct (56) [rbp-0x68] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Security.SslStream+<ProcessAuthenticationWithTelemetryAsync>d__155>
;* V19 tmp13 [V19 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.CompilerServices.AsyncTaskMethodBuilder>
; V20 tmp14 [V20,T09] ( 2, 2 ) ref -> rax class-hnd single-def "dup spill" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
; V21 tmp15 [V21,T06] ( 4, 2 ) ref -> rax
-; V22 tmp16 [V22 ] ( 9, 4.50) struct (136) [rbp-0xE8] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]>
+; V22 tmp16 [V22 ] ( 9, 4.50) struct (136) [rbp-0xF0] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]>
; V23 tmp17 [V23,T12] ( 2, 2 ) ubyte -> rax "Inlining Arg"
;* V24 tmp18 [V24 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.CompilerServices.AsyncTaskMethodBuilder>
; V25 tmp19 [V25,T10] ( 2, 2 ) ref -> rax class-hnd single-def "dup spill" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
; V26 tmp20 [V26,T07] ( 4, 2 ) ref -> rax
;* V27 tmp21 [V27 ] ( 0, 0 ) ref -> zero-ref single-def "field V05._source (fldOffset=0x0)" P-INDEP
;* V28 tmp22 [V28 ] ( 0, 0 ) ref -> zero-ref single-def "field V14._source (fldOffset=0x0)" P-INDEP
;* V29 tmp23 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "field V19.m_task (fldOffset=0x0)" P-INDEP
;* V30 tmp24 [V30 ] ( 0, 0 ) ref -> zero-ref single-def "field V24.m_task (fldOffset=0x0)" P-INDEP
;
; Lcl frame size = 200
G_M24585_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 200
lea rbp, [rsp+0xF0]
- xor eax, eax
- mov qword ptr [rbp-0xE8], rax
vxorps xmm8, xmm8, xmm8
- vmovdqu32 zmmword ptr [rbp-0xE0], zmm8
- vmovdqu32 zmmword ptr [rbp-0xA0], zmm8
- vmovdqa xmmword ptr [rbp-0x60], xmm8
- vmovdqa xmmword ptr [rbp-0x50], xmm8
- vmovdqa xmmword ptr [rbp-0x40], xmm8
- mov qword ptr [rbp-0x30], rax
+ vmovdqu32 zmmword ptr [rbp-0xF0], zmm8
+ vmovdqu32 zmmword ptr [rbp-0xB0], zmm8
+ vmovdqu32 zmmword ptr [rbp-0x70], zmm8
+ mov qword ptr [rbp-0x30], rdi
mov rbx, rdi
mov r15, rsi
mov r14d, edx
mov r13d, ecx
- ;; size=90 bbWeight=1 PerfScore 20.33
+ ;; size=76 bbWeight=1 PerfScore 15.08
G_M24585_IG02:
mov rdi, 0xD1FFAB1E ; System.Net.Security.SslServerAuthenticationOptions
call CORINFO_HELP_NEWSFAST
mov r12, rax
mov byte ptr [r12+0x4D], 1
lea rdi, bword ptr [r12+0x20]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
mov byte ptr [r12+0x4E], r14b
test r13b, r13b
setne sil
movzx rsi, sil
mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslServerAuthenticationOptions:set_CertificateRevocationCheckMode(int):this
call [rax]System.Net.Security.SslServerAuthenticationOptions:set_CertificateRevocationCheckMode(int):this
mov rsi, gword ptr [rbx+0x38]
mov esi, dword ptr [rsi+0x68]
mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslServerAuthenticationOptions:set_EncryptionPolicy(int):this
call [rax]System.Net.Security.SslServerAuthenticationOptions:set_EncryptionPolicy(int):this
mov rdi, gword ptr [rbx+0x38]
mov rsi, r12
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslAuthenticationOptions:UpdateOptions(System.Net.Security.SslServerAuthenticationOptions):this
cmp dword ptr [rdi], edi
call [rax]System.Net.Security.SslAuthenticationOptions:UpdateOptions(System.Net.Security.SslServerAuthenticationOptions):this
mov rsi, gword ptr [rbx+0x20]
test rsi, rsi
je SHORT G_M24585_IG04
;; size=120 bbWeight=1 PerfScore 29.50
G_M24585_IG03:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslStream:<ThrowIfExceptional>g__ThrowExceptional|133_0(System.Runtime.ExceptionServices.ExceptionDispatchInfo):this
call [rax]System.Net.Security.SslStream:<ThrowIfExceptional>g__ThrowExceptional|133_0(System.Runtime.ExceptionServices.ExceptionDispatchInfo):this
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M24585_IG04:
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
cmp byte ptr [rdi+0x9D], 0
je SHORT G_M24585_IG08
;; size=22 bbWeight=1 PerfScore 6.25
G_M24585_IG05:
xor edi, edi
- mov qword ptr [rbp-0x48], rdi
- mov gword ptr [rbp-0x60], rbx
- mov byte ptr [rbp-0x4C], 1
+ mov qword ptr [rbp-0x50], rdi
+ mov gword ptr [rbp-0x68], rbx
+ mov byte ptr [rbp-0x54], 1
;; size=14 bbWeight=0.50 PerfScore 1.62
G_M24585_IG06:
- mov qword ptr [rbp-0x40], rdi
- mov dword ptr [rbp-0x50], -1
- lea rdi, [rbp-0x60]
+ mov qword ptr [rbp-0x48], rdi
+ mov dword ptr [rbp-0x58], -1
+ lea rdi, [rbp-0x68]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.Security.SslStream+<ProcessAuthenticationWithTelemetryAsync>d__155](byref)
call [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.Security.SslStream+<ProcessAuthenticationWithTelemetryAsync>d__155](byref)
- mov rax, gword ptr [rbp-0x48]
+ mov rax, gword ptr [rbp-0x50]
test rax, rax
jne SHORT G_M24585_IG07
- lea rdi, [rbp-0x48]
+ lea rdi, [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]:this
call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]:this
;; size=52 bbWeight=0.50 PerfScore 5.88
G_M24585_IG07:
jmp SHORT G_M24585_IG11
;; size=2 bbWeight=0.50 PerfScore 1.00
G_M24585_IG08:
mov rdi, rbx
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x68]
call [rax+0x30]System.Net.Security.AuthenticatedStream:get_IsServer():ubyte:this
xor edi, edi
- mov qword ptr [rbp-0xD0], rdi
- mov gword ptr [rbp-0xE0], rbx
- mov byte ptr [rbp-0xD4], al
+ mov qword ptr [rbp-0xD8], rdi
+ mov gword ptr [rbp-0xE8], rbx
+ mov byte ptr [rbp-0xDC], al
;; size=35 bbWeight=0.50 PerfScore 5.25
G_M24585_IG09:
- mov gword ptr [rbp-0xE8], rdi
+ mov gword ptr [rbp-0xF0], rdi
;; size=7 bbWeight=0.50 PerfScore 0.50
G_M24585_IG10:
- mov qword ptr [rbp-0xC8], rdi
- mov dword ptr [rbp-0xD8], -1
- lea rdi, [rbp-0xE8]
+ mov qword ptr [rbp-0xD0], rdi
+ mov dword ptr [rbp-0xE0], -1
+ lea rdi, [rbp-0xF0]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]](byref)
call [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]](byref)
- mov rax, gword ptr [rbp-0xD0]
+ mov rax, gword ptr [rbp-0xD8]
test rax, rax
jne SHORT G_M24585_IG11
- lea rdi, [rbp-0xD0]
+ lea rdi, [rbp-0xD8]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]:this
call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]:this
;; size=67 bbWeight=0.50 PerfScore 5.88
G_M24585_IG11:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M24585_IG12:
add rsp, 200
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1 PerfScore 4.25
-; Total bytes of code 443, prolog size 78, PerfScore 82.46, instruction count 100, allocated bytes for code 443 (MethodHash=f8da9ff6) for method System.Net.Security.SslStream:AuthenticateAsServerAsync(System.Security.Cryptography.X509Certificates.X509Certificate,ubyte,ubyte):System.Threading.Tasks.Task:this (FullOpts)
+; Total bytes of code 429, prolog size 64, PerfScore 77.21, instruction count 96, allocated bytes for code 429 (MethodHash=f8da9ff6) for method System.Net.Security.SslStream:AuthenticateAsServerAsync(System.Security.Cryptography.X509Certificates.X509Certificate,ubyte,ubyte):System.Threading.Tasks.Task:this (FullOpts)
-14 (-3.12 % of base) - System.Net.Security.SslStream:BeginAuthenticateAsClient(System.Net.Security.SslClientAuthenticationOptions,System.Threading.CancellationToken,System.AsyncCallback,System.Object):System.IAsyncResult:this
; Assembly listing for method System.Net.Security.SslStream:BeginAuthenticateAsClient(System.Net.Security.SslClientAuthenticationOptions,System.Threading.CancellationToken,System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 6 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 11, 8 ) ref -> rbx this class-hnd single-def <System.Net.Security.SslStream>
; V01 arg1 [V01,T01] ( 4, 4 ) ref -> r15 class-hnd single-def <System.Net.Security.SslClientAuthenticationOptions>
;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref single-def <System.Threading.CancellationToken>
; V03 arg3 [V03,T02] ( 3, 3 ) ref -> r14 class-hnd single-def <System.AsyncCallback>
; V04 arg4 [V04,T03] ( 3, 3 ) ref -> r13 class-hnd single-def <System.Object>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T05] ( 3, 2.50) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo>
; V07 tmp2 [V07,T09] ( 3, 2 ) ref -> rdi class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task>
; V08 tmp3 [V08,T06] ( 3, 2.50) ref -> rsi class-hnd exact single-def "Inline stloc first use temp" <System.Runtime.ExceptionServices.ExceptionDispatchInfo>
;* V09 tmp4 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.NetSecurityTelemetry>
-; V10 tmp5 [V10 ] ( 8, 4 ) struct (56) [rbp-0x60] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Security.SslStream+<ProcessAuthenticationWithTelemetryAsync>d__155>
+; V10 tmp5 [V10 ] ( 8, 4 ) struct (56) [rbp-0x68] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Security.SslStream+<ProcessAuthenticationWithTelemetryAsync>d__155>
;* V11 tmp6 [V11 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.CompilerServices.AsyncTaskMethodBuilder>
; V12 tmp7 [V12,T10] ( 2, 2 ) ref -> rdi class-hnd single-def "dup spill" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
; V13 tmp8 [V13,T07] ( 4, 2 ) ref -> rdi
-; V14 tmp9 [V14 ] ( 9, 4.50) struct (136) [rbp-0xE8] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]>
+; V14 tmp9 [V14 ] ( 9, 4.50) struct (136) [rbp-0xF0] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]>
; V15 tmp10 [V15,T12] ( 2, 2 ) ubyte -> rax "Inlining Arg"
;* V16 tmp11 [V16 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Runtime.CompilerServices.AsyncTaskMethodBuilder>
; V17 tmp12 [V17,T11] ( 2, 2 ) ref -> rdi class-hnd single-def "dup spill" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
; V18 tmp13 [V18,T08] ( 4, 2 ) ref -> rdi
; V19 tmp14 [V19,T04] ( 3, 2 ) ref -> r12 single-def "field V02._source (fldOffset=0x0)" P-INDEP
;* V20 tmp15 [V20 ] ( 0, 0 ) ref -> zero-ref single-def "field V11.m_task (fldOffset=0x0)" P-INDEP
;* V21 tmp16 [V21 ] ( 0, 0 ) ref -> zero-ref single-def "field V16.m_task (fldOffset=0x0)" P-INDEP
;
; Lcl frame size = 200
G_M30991_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 200
lea rbp, [rsp+0xF0]
- xor eax, eax
- mov qword ptr [rbp-0xE8], rax
vxorps xmm8, xmm8, xmm8
- vmovdqu32 zmmword ptr [rbp-0xE0], zmm8
- vmovdqu32 zmmword ptr [rbp-0xA0], zmm8
- vmovdqa xmmword ptr [rbp-0x60], xmm8
- vmovdqa xmmword ptr [rbp-0x50], xmm8
- vmovdqa xmmword ptr [rbp-0x40], xmm8
- mov qword ptr [rbp-0x30], rax
+ vmovdqu32 zmmword ptr [rbp-0xF0], zmm8
+ vmovdqu32 zmmword ptr [rbp-0xB0], zmm8
+ vmovdqu32 zmmword ptr [rbp-0x70], zmm8
+ mov qword ptr [rbp-0x30], rdi
mov rbx, rdi
mov r15, rsi
mov r12, rdx
mov r14, rcx
mov r13, r8
- ;; size=93 bbWeight=1 PerfScore 20.58
+ ;; size=79 bbWeight=1 PerfScore 15.33
G_M30991_IG02:
test r15, r15
je G_M30991_IG13
mov rsi, gword ptr [rbx+0x20]
test rsi, rsi
je SHORT G_M30991_IG04
;; size=18 bbWeight=1 PerfScore 4.50
G_M30991_IG03:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslStream:<ThrowIfExceptional>g__ThrowExceptional|133_0(System.Runtime.ExceptionServices.ExceptionDispatchInfo):this
call [rax]System.Net.Security.SslStream:<ThrowIfExceptional>g__ThrowExceptional|133_0(System.Runtime.ExceptionServices.ExceptionDispatchInfo):this
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M30991_IG04:
mov rdi, gword ptr [rbx+0x38]
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslAuthenticationOptions:UpdateOptions(System.Net.Security.SslClientAuthenticationOptions):this
cmp dword ptr [rdi], edi
call [rax]System.Net.Security.SslAuthenticationOptions:UpdateOptions(System.Net.Security.SslClientAuthenticationOptions):this
mov rsi, gword ptr [rbx+0x20]
test rsi, rsi
je SHORT G_M30991_IG06
;; size=30 bbWeight=1 PerfScore 11.75
G_M30991_IG05:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslStream:<ThrowIfExceptional>g__ThrowExceptional|133_0(System.Runtime.ExceptionServices.ExceptionDispatchInfo):this
call [rax]System.Net.Security.SslStream:<ThrowIfExceptional>g__ThrowExceptional|133_0(System.Runtime.ExceptionServices.ExceptionDispatchInfo):this
;; size=15 bbWeight=0.50 PerfScore 1.75
G_M30991_IG06:
mov rdi, 0xD1FFAB1E ; const ptr
mov rdi, gword ptr [rdi]
cmp byte ptr [rdi+0x9D], 0
je SHORT G_M30991_IG09
;; size=22 bbWeight=1 PerfScore 6.25
G_M30991_IG07:
xor edi, edi
- mov qword ptr [rbp-0x48], rdi
- mov gword ptr [rbp-0x60], rbx
- mov byte ptr [rbp-0x4C], 1
- mov gword ptr [rbp-0x40], r12
- mov dword ptr [rbp-0x50], -1
- lea rdi, [rbp-0x60]
+ mov qword ptr [rbp-0x50], rdi
+ mov gword ptr [rbp-0x68], rbx
+ mov byte ptr [rbp-0x54], 1
+ mov gword ptr [rbp-0x48], r12
+ mov dword ptr [rbp-0x58], -1
+ lea rdi, [rbp-0x68]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.Security.SslStream+<ProcessAuthenticationWithTelemetryAsync>d__155](byref)
call [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.Security.SslStream+<ProcessAuthenticationWithTelemetryAsync>d__155](byref)
- mov rdi, gword ptr [rbp-0x48]
+ mov rdi, gword ptr [rbp-0x50]
test rdi, rdi
jne SHORT G_M30991_IG08
- lea rdi, [rbp-0x48]
+ lea rdi, [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]:this
call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]:this
mov rdi, rax
;; size=69 bbWeight=0.50 PerfScore 7.62
G_M30991_IG08:
jmp SHORT G_M30991_IG11
;; size=2 bbWeight=0.50 PerfScore 1.00
G_M30991_IG09:
mov rdi, rbx
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x68]
call [rax+0x30]System.Net.Security.AuthenticatedStream:get_IsServer():ubyte:this
xor edi, edi
- mov qword ptr [rbp-0xD0], rdi
- mov gword ptr [rbp-0xE0], rbx
- mov byte ptr [rbp-0xD4], al
+ mov qword ptr [rbp-0xD8], rdi
+ mov gword ptr [rbp-0xE8], rbx
+ mov byte ptr [rbp-0xDC], al
;; size=35 bbWeight=0.50 PerfScore 5.25
G_M30991_IG10:
- mov gword ptr [rbp-0xE8], rdi
- mov gword ptr [rbp-0xC8], r12
- mov dword ptr [rbp-0xD8], -1
- lea rdi, [rbp-0xE8]
+ mov gword ptr [rbp-0xF0], rdi
+ mov gword ptr [rbp-0xD0], r12
+ mov dword ptr [rbp-0xE0], -1
+ lea rdi, [rbp-0xF0]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]](byref)
call [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]](byref)
- mov rdi, gword ptr [rbp-0xD0]
+ mov rdi, gword ptr [rbp-0xD8]
test rdi, rdi
jne SHORT G_M30991_IG11
- lea rdi, [rbp-0xD0]
+ lea rdi, [rbp-0xD8]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]:this
call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:InitializeTaskAsPromise():System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]:this
mov rdi, rax
;; size=77 bbWeight=0.50 PerfScore 6.50
G_M30991_IG11:
mov rsi, r14
mov rdx, r13
mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.TaskToAsyncResult:Begin(System.Threading.Tasks.Task,System.AsyncCallback,System.Object):System.IAsyncResult
call [rax]System.Threading.Tasks.TaskToAsyncResult:Begin(System.Threading.Tasks.Task,System.AsyncCallback,System.Object):System.IAsyncResult
nop
;; size=19 bbWeight=1 PerfScore 4.00
G_M30991_IG12:
add rsp, 200
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1 PerfScore 4.25
G_M30991_IG13:
mov edi, 0x2BFA
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:Throw(System.String)
call [rax]System.ArgumentNullException:Throw(System.String)
int3
;; size=36 bbWeight=0 PerfScore 0.00
-; Total bytes of code 449, prolog size 78, PerfScore 75.21, instruction count 103, allocated bytes for code 449 (MethodHash=b01086f0) for method System.Net.Security.SslStream:BeginAuthenticateAsClient(System.Net.Security.SslClientAuthenticationOptions,System.Threading.CancellationToken,System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts)
+; Total bytes of code 435, prolog size 64, PerfScore 69.96, instruction count 99, allocated bytes for code 435 (MethodHash=b01086f0) for method System.Net.Security.SslStream:BeginAuthenticateAsClient(System.Net.Security.SslClientAuthenticationOptions,System.Threading.CancellationToken,System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts)
-14 (-1.56 % of base) - System.Net.WebClient:UploadDataAsync(System.Uri,System.String,ubyte[],System.Object):this
; Assembly listing for method System.Net.WebClient:UploadDataAsync(System.Uri,System.String,ubyte[],System.Object):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; 4 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 16, 13 ) ref -> [rbp-0xD8] this class-hnd EH-live single-def <System.Net.WebClient>
+; V00 this [V00,T00] ( 16, 13 ) ref -> [rbp-0xE0] this class-hnd EH-live single-def <System.Net.WebClient>
; V01 arg1 [V01,T02] ( 5, 5 ) ref -> r15 class-hnd single-def <System.Uri>
; V02 arg2 [V02,T03] ( 5, 5 ) ref -> r14 class-hnd <System.String>
; V03 arg3 [V03,T04] ( 5, 5 ) ref -> r13 class-hnd single-def <ubyte[]>
; V04 arg4 [V04,T07] ( 3, 3 ) ref -> r12 class-hnd single-def <System.Object>
-; V05 loc0 [V05,T08] ( 7, 4 ) ref -> [rbp-0xE0] class-hnd exact EH-live spill-single-def <System.Net.WebClient+<>c__DisplayClass178_0>
+; V05 loc0 [V05,T08] ( 7, 4 ) ref -> [rbp-0xE8] class-hnd exact EH-live spill-single-def <System.Net.WebClient+<>c__DisplayClass178_0>
;* V06 loc1 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Net.WebRequest>
; V07 loc2 [V07,T11] ( 3, 3 ) int -> r12
;* V08 loc3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Net.WebRequest>
-; V09 loc4 [V09,T17] ( 3, 0 ) ref -> [rbp-0xE8] must-init class-hnd EH-live single-def <System.Exception>
+; V09 loc4 [V09,T17] ( 3, 0 ) ref -> [rbp-0xF0] must-init class-hnd EH-live single-def <System.Exception>
;* V10 loc5 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Net.UploadDataCompletedEventArgs>
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V12 tmp1 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Net.WebClient+<>c__DisplayClass178_0>
; V13 tmp2 [V13,T05] ( 3, 6 ) ref -> r15 class-hnd single-def "dup spill" <System.Net.WebRequest>
; V14 tmp3 [V14,T01] ( 4, 8 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Action`3[ubyte[],System.Exception,System.ComponentModel.AsyncOperation]>
-; V15 tmp4 [V15,T09] ( 2, 4 ) ref -> [rbp-0xF0] class-hnd exact spill-single-def "impAppendStmt" <System.ComponentModel.AsyncOperation>
+; V15 tmp4 [V15,T09] ( 2, 4 ) ref -> [rbp-0xF8] class-hnd exact spill-single-def "impAppendStmt" <System.ComponentModel.AsyncOperation>
; V16 tmp5 [V16,T21] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <System.Object>
; V17 tmp6 [V17,T18] ( 3, 0 ) ref -> rsi class-hnd single-def "dup spill" <System.Exception>
;* V18 tmp7 [V18 ] ( 0, 0 ) ref -> zero-ref single-def
; V19 tmp8 [V19,T20] ( 3, 0 ) int -> rax
;* V20 tmp9 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.Object>
; V21 tmp10 [V21,T22] ( 2, 0 ) ref -> rbx class-hnd single-def "non-inline candidate call" <System.Exception>
; V22 tmp11 [V22,T24] ( 2, 0 ) int -> r14 "non-inline candidate call"
; V23 tmp12 [V23,T19] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Net.UploadDataCompletedEventArgs>
; V24 tmp13 [V24,T15] ( 2, 2 ) long -> r12 "Inline return value spill temp"
; V25 tmp14 [V25,T06] ( 3, 6 ) long -> r14 "Inlining Arg"
-; V26 tmp15 [V26 ] ( 13, 13 ) struct (168) [rbp-0xD0] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.WebClient+<UploadBitsAsync>d__152>
+; V26 tmp15 [V26 ] ( 13, 13 ) struct (168) [rbp-0xD8] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.WebClient+<UploadBitsAsync>d__152>
;* V27 tmp16 [V27 ] ( 0, 0 ) struct (16) zero-ref multireg-ret single-def "RetBuf for struct inline return candidates." <System.Runtime.CompilerServices.AsyncVoidMethodBuilder>
; V28 tmp17 [V28,T13] ( 2, 2 ) ref -> rax "field V27._synchronizationContext (fldOffset=0x0)" P-INDEP
; V29 tmp18 [V29,T14] ( 2, 2 ) ref -> rdx "field V27._builder (fldOffset=0x8)" P-INDEP
; V30 tmp19 [V30,T10] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
; V31 tmp20 [V31,T23] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V32 PSPSym [V32,T16] ( 1, 1 ) long -> [rbp-0x100] do-not-enreg[V] "PSPSym"
; V33 cse0 [V33,T12] ( 3, 3 ) long -> r14 "CSE #02: moderate"
;
; Lcl frame size = 216
G_M33035_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 216
lea rbp, [rsp+0x100]
- xor eax, eax
- mov qword ptr [rbp-0xE8], rax
vxorps xmm8, xmm8, xmm8
- vmovdqu32 zmmword ptr [rbp-0xE0], zmm8
- vmovdqu32 zmmword ptr [rbp-0xA0], zmm8
- vmovdqa xmmword ptr [rbp-0x60], xmm8
- vmovdqa xmmword ptr [rbp-0x50], xmm8
- vmovdqa xmmword ptr [rbp-0x40], xmm8
- mov qword ptr [rbp-0x30], rax
+ vmovdqu32 zmmword ptr [rbp-0xF0], zmm8
+ vmovdqu32 zmmword ptr [rbp-0xB0], zmm8
+ vmovdqu32 zmmword ptr [rbp-0x70], zmm8
mov qword ptr [rbp-0x100], rsp
- mov gword ptr [rbp-0xD8], rdi
+ mov qword ptr [rbp-0x30], rdi
+ mov gword ptr [rbp-0xE0], rdi
mov rbx, rdi
mov r15, rsi
mov r14, rdx
mov r13, rcx
mov r12, r8
- ;; size=107 bbWeight=1 PerfScore 22.58
+ ;; size=93 bbWeight=1 PerfScore 17.33
G_M33035_IG02:
mov rdi, 0xD1FFAB1E ; System.Net.WebClient+<>c__DisplayClass178_0
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xE0], rax
+ mov gword ptr [rbp-0xE8], rax
lea rdi, bword ptr [rax+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
test r15, r15
je G_M33035_IG10
test r13, r13
je G_M33035_IG09
test r14, r14
jne SHORT G_M33035_IG03
mov rdi, rbx
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Net.WebClient:MapToDefaultMethod(System.Uri):System.String:this
call [rax]System.Net.WebClient:MapToDefaultMethod(System.Uri):System.String:this
mov r14, rax
;; size=78 bbWeight=1 PerfScore 11.75
G_M33035_IG03:
mov rdi, rbx
mov rsi, r12
mov rax, 0xD1FFAB1E ; code for System.Net.WebClient:StartAsyncOperation(System.Object):System.ComponentModel.AsyncOperation:this
call [rax]System.Net.WebClient:StartAsyncOperation(System.Object):System.ComponentModel.AsyncOperation:this
- mov rcx, gword ptr [rbp-0xE0]
+ mov rcx, gword ptr [rbp-0xE8]
lea rdi, bword ptr [rcx+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
nop
;; size=38 bbWeight=1 PerfScore 6.75
G_M33035_IG04:
lea rdi, bword ptr [rbx+0x50]
mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
mov r14d, dword ptr [r13+0x08]
mov qword ptr [rbx+0x128], r14
mov rdi, rbx
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Net.WebClient:GetUri(System.Uri):System.Uri:this
call [rax]System.Net.WebClient:GetUri(System.Uri):System.Uri:this
mov rsi, rax
mov rdi, rbx
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x58]
call [rax]System.Net.WebClient:GetWebRequest(System.Uri):System.Net.WebRequest:this
mov r15, rax
lea rdi, bword ptr [rbx+0x40]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
xor r12d, r12d
cmp gword ptr [rbx+0x118], 0
je SHORT G_M33035_IG05
mov r12d, 0x2000
cmp r14, 0x2000
cmovl r12, r14
;; size=101 bbWeight=1 PerfScore 23.00
G_M33035_IG05:
mov rdi, 0xD1FFAB1E ; System.Action`3[ubyte[],System.Exception,System.ComponentModel.AsyncOperation]
call CORINFO_HELP_NEWSFAST
mov r14, rax
- mov rcx, gword ptr [rbp-0xE0]
+ mov rcx, gword ptr [rbp-0xE8]
mov rax, gword ptr [rcx+0x10]
- mov gword ptr [rbp-0xF0], rax
+ mov gword ptr [rbp-0xF8], rax
lea rdi, bword ptr [r14+0x08]
mov rsi, rcx
call CORINFO_HELP_ASSIGN_REF
mov rax, 0xD1FFAB1E ; code for System.Net.WebClient+<>c__DisplayClass178_0:<UploadDataAsync>b__0(ubyte[],System.Exception,System.ComponentModel.AsyncOperation):this
mov qword ptr [r14+0x18], rax
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncVoidMethodBuilder:Create():System.Runtime.CompilerServices.AsyncVoidMethodBuilder
call [rax]System.Runtime.CompilerServices.AsyncVoidMethodBuilder:Create():System.Runtime.CompilerServices.AsyncVoidMethodBuilder
- mov gword ptr [rbp-0x68], rax
- mov gword ptr [rbp-0x60], rdx
- mov gword ptr [rbp-0xD0], rbx
- mov gword ptr [rbp-0xC8], r15
+ mov gword ptr [rbp-0x70], rax
+ mov gword ptr [rbp-0x68], rdx
+ mov gword ptr [rbp-0xD8], rbx
+ mov gword ptr [rbp-0xD0], r15
xor rdi, rdi
- mov gword ptr [rbp-0xA8], rdi
- mov gword ptr [rbp-0xA0], r13
- mov dword ptr [rbp-0x74], r12d
+ mov gword ptr [rbp-0xB0], rdi
+ mov gword ptr [rbp-0xA8], r13
+ mov dword ptr [rbp-0x7C], r12d
;; size=116 bbWeight=1 PerfScore 19.00
G_M33035_IG06:
- mov gword ptr [rbp-0xC0], rdi
+ mov gword ptr [rbp-0xC8], rdi
;; size=7 bbWeight=1 PerfScore 1.00
G_M33035_IG07:
- mov gword ptr [rbp-0xB8], rdi
- mov r15, gword ptr [rbp-0xF0]
- mov gword ptr [rbp-0xB0], r15
- mov gword ptr [rbp-0x98], r14
- mov dword ptr [rbp-0x78], -1
- lea rdi, [rbp-0xD0]
+ mov gword ptr [rbp-0xC0], rdi
+ mov r15, gword ptr [rbp-0xF8]
+ mov gword ptr [rbp-0xB8], r15
+ mov gword ptr [rbp-0xA0], r14
+ mov dword ptr [rbp-0x80], -1
+ lea rdi, [rbp-0xD8]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.WebClient+<UploadBitsAsync>d__152](byref)
call [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.WebClient+<UploadBitsAsync>d__152](byref)
nop
;; size=55 bbWeight=1 PerfScore 9.00
G_M33035_IG08:
add rsp, 216
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1 PerfScore 4.25
G_M33035_IG09:
mov edi, 481
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:Throw(System.String)
call [rax]System.ArgumentNullException:Throw(System.String)
int3
;; size=36 bbWeight=0 PerfScore 0.00
G_M33035_IG10:
mov edi, 447
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:Throw(System.String)
call [rax]System.ArgumentNullException:Throw(System.String)
int3
;; size=36 bbWeight=0 PerfScore 0.00
G_M33035_IG11:
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+0x100]
;; size=25 bbWeight=0 PerfScore 0.00
G_M33035_IG12:
mov rdi, 0xD1FFAB1E ; System.Exception
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
mov rsi, rax
test rsi, rsi
jne SHORT G_M33035_IG13
xor eax, eax
jmp SHORT G_M33035_IG14
;; size=34 bbWeight=0 PerfScore 0.00
G_M33035_IG13:
- mov gword ptr [rbp-0xE8], rsi
- mov rsi, gword ptr [rbp-0xE8]
+ mov gword ptr [rbp-0xF0], rsi
+ mov rsi, gword ptr [rbp-0xF0]
mov rdi, 0xD1FFAB1E ; System.OutOfMemoryException
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
sete al
movzx rax, al
;; size=45 bbWeight=0 PerfScore 0.00
G_M33035_IG14:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
G_M33035_IG15:
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+0x100]
;; size=25 bbWeight=0 PerfScore 0.00
G_M33035_IG16:
- mov rdi, gword ptr [rbp-0xE8]
+ mov rdi, gword ptr [rbp-0xF0]
mov rax, 0xD1FFAB1E ; code for System.Net.WebClient:GetExceptionToPropagate(System.Exception):System.Exception
call [rax]System.Net.WebClient:GetExceptionToPropagate(System.Exception):System.Exception
mov rbx, rax
- mov r15, gword ptr [rbp-0xD8]
+ mov r15, gword ptr [rbp-0xE0]
movzx r14, byte ptr [r15+0x135]
mov rdi, 0xD1FFAB1E ; System.Net.UploadDataCompletedEventArgs
call CORINFO_HELP_NEWSFAST
mov r13, rax
- mov rsi, gword ptr [rbp-0xE0]
+ mov rsi, gword ptr [rbp-0xE8]
mov rdi, gword ptr [rsi+0x10]
mov rax, 0xD1FFAB1E ; code for System.ComponentModel.AsyncOperation:get_UserSuppliedState():System.Object:this
cmp dword ptr [rdi], edi
call [rax]System.ComponentModel.AsyncOperation:get_UserSuppliedState():System.Object:this
mov r8, rax
mov rdi, r13
mov rdx, rbx
mov ecx, r14d
xor rsi, rsi
mov rax, 0xD1FFAB1E ; code for System.Net.UploadDataCompletedEventArgs:.ctor(ubyte[],System.Exception,ubyte,System.Object):this
call [rax]System.Net.UploadDataCompletedEventArgs:.ctor(ubyte[],System.Exception,ubyte,System.Object):this
mov rdx, gword ptr [r15+0xA0]
- mov rsi, gword ptr [rbp-0xE0]
+ mov rsi, gword ptr [rbp-0xE8]
mov rsi, gword ptr [rsi+0x10]
mov rdi, r15
mov rcx, r13
mov rax, 0xD1FFAB1E ; code for System.Net.WebClient:InvokeOperationCompleted(System.ComponentModel.AsyncOperation,System.Threading.SendOrPostCallback,System.ComponentModel.AsyncCompletedEventArgs):this
call [rax]System.Net.WebClient:InvokeOperationCompleted(System.ComponentModel.AsyncOperation,System.Threading.SendOrPostCallback,System.ComponentModel.AsyncCompletedEventArgs):this
lea rax, G_M33035_IG08
;; size=149 bbWeight=0 PerfScore 0.00
G_M33035_IG17:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 900, prolog size 107, PerfScore 97.33, instruction count 208, allocated bytes for code 900 (MethodHash=a6927ef4) for method System.Net.WebClient:UploadDataAsync(System.Uri,System.String,ubyte[],System.Object):this (FullOpts)
+; Total bytes of code 886, prolog size 93, PerfScore 92.08, instruction count 204, allocated bytes for code 886 (MethodHash=a6927ef4) for method System.Net.WebClient:UploadDataAsync(System.Uri,System.String,ubyte[],System.Object):this (FullOpts)
-14 (-1.53 % of base) - System.Net.WebClient:UploadValuesAsync(System.Uri,System.String,System.Collections.Specialized.NameValueCollection,System.Object):this
; Assembly listing for method System.Net.WebClient:UploadValuesAsync(System.Uri,System.String,System.Collections.Specialized.NameValueCollection,System.Object):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; 4 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 16, 13 ) ref -> [rbp-0xD8] this class-hnd EH-live single-def <System.Net.WebClient>
+; V00 this [V00,T00] ( 16, 13 ) ref -> [rbp-0xE0] this class-hnd EH-live single-def <System.Net.WebClient>
; V01 arg1 [V01,T02] ( 5, 5 ) ref -> r15 class-hnd single-def <System.Uri>
; V02 arg2 [V02,T03] ( 5, 5 ) ref -> r14 class-hnd <System.String>
; V03 arg3 [V03,T04] ( 4, 4 ) ref -> r13 class-hnd single-def <System.Collections.Specialized.NameValueCollection>
; V04 arg4 [V04,T07] ( 3, 3 ) ref -> r12 class-hnd single-def <System.Object>
-; V05 loc0 [V05,T08] ( 7, 4 ) ref -> [rbp-0xE0] class-hnd exact EH-live spill-single-def <System.Net.WebClient+<>c__DisplayClass184_0>
+; V05 loc0 [V05,T08] ( 7, 4 ) ref -> [rbp-0xE8] class-hnd exact EH-live spill-single-def <System.Net.WebClient+<>c__DisplayClass184_0>
; V06 loc1 [V06,T11] ( 3, 3 ) ref -> r13 class-hnd single-def <ubyte[]>
;* V07 loc2 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Net.WebRequest>
; V08 loc3 [V08,T12] ( 3, 3 ) int -> r14
;* V09 loc4 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Net.WebRequest>
-; V10 loc5 [V10,T17] ( 3, 0 ) ref -> [rbp-0xE8] must-init class-hnd EH-live single-def <System.Exception>
+; V10 loc5 [V10,T17] ( 3, 0 ) ref -> [rbp-0xF0] must-init class-hnd EH-live single-def <System.Exception>
;* V11 loc6 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Net.UploadValuesCompletedEventArgs>
;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V13 tmp1 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Net.WebClient+<>c__DisplayClass184_0>
; V14 tmp2 [V14,T05] ( 3, 6 ) ref -> r15 class-hnd single-def "dup spill" <System.Net.WebRequest>
; V15 tmp3 [V15,T01] ( 4, 8 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <System.Action`3[ubyte[],System.Exception,System.ComponentModel.AsyncOperation]>
-; V16 tmp4 [V16,T09] ( 2, 4 ) ref -> [rbp-0xF0] class-hnd exact spill-single-def "impAppendStmt" <System.ComponentModel.AsyncOperation>
+; V16 tmp4 [V16,T09] ( 2, 4 ) ref -> [rbp-0xF8] class-hnd exact spill-single-def "impAppendStmt" <System.ComponentModel.AsyncOperation>
; V17 tmp5 [V17,T21] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <System.Object>
; V18 tmp6 [V18,T18] ( 3, 0 ) ref -> rsi class-hnd single-def "dup spill" <System.Exception>
;* V19 tmp7 [V19 ] ( 0, 0 ) ref -> zero-ref single-def
; V20 tmp8 [V20,T20] ( 3, 0 ) int -> rax
;* V21 tmp9 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.Object>
; V22 tmp10 [V22,T22] ( 2, 0 ) ref -> rbx class-hnd single-def "non-inline candidate call" <System.Exception>
; V23 tmp11 [V23,T24] ( 2, 0 ) int -> r14 "non-inline candidate call"
; V24 tmp12 [V24,T19] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Net.UploadValuesCompletedEventArgs>
; V25 tmp13 [V25,T15] ( 2, 2 ) long -> r14 "Inline return value spill temp"
; V26 tmp14 [V26,T06] ( 3, 6 ) long -> rdi "Inlining Arg"
-; V27 tmp15 [V27 ] ( 13, 13 ) struct (168) [rbp-0xD0] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.WebClient+<UploadBitsAsync>d__152>
+; V27 tmp15 [V27 ] ( 13, 13 ) struct (168) [rbp-0xD8] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.Net.WebClient+<UploadBitsAsync>d__152>
;* V28 tmp16 [V28 ] ( 0, 0 ) struct (16) zero-ref multireg-ret single-def "RetBuf for struct inline return candidates." <System.Runtime.CompilerServices.AsyncVoidMethodBuilder>
; V29 tmp17 [V29,T13] ( 2, 2 ) ref -> rax "field V28._synchronizationContext (fldOffset=0x0)" P-INDEP
; V30 tmp18 [V30,T14] ( 2, 2 ) ref -> rdx "field V28._builder (fldOffset=0x8)" P-INDEP
; V31 tmp19 [V31,T10] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
; V32 tmp20 [V32,T23] ( 2, 0 ) ref -> r8 single-def "argument with side effect"
; V33 PSPSym [V33,T16] ( 1, 1 ) long -> [rbp-0x100] do-not-enreg[V] "PSPSym"
;
; Lcl frame size = 216
G_M50909_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 216
lea rbp, [rsp+0x100]
- xor eax, eax
- mov qword ptr [rbp-0xE8], rax
vxorps xmm8, xmm8, xmm8
- vmovdqu32 zmmword ptr [rbp-0xE0], zmm8
- vmovdqu32 zmmword ptr [rbp-0xA0], zmm8
- vmovdqa xmmword ptr [rbp-0x60], xmm8
- vmovdqa xmmword ptr [rbp-0x50], xmm8
- vmovdqa xmmword ptr [rbp-0x40], xmm8
- mov qword ptr [rbp-0x30], rax
+ vmovdqu32 zmmword ptr [rbp-0xF0], zmm8
+ vmovdqu32 zmmword ptr [rbp-0xB0], zmm8
+ vmovdqu32 zmmword ptr [rbp-0x70], zmm8
mov qword ptr [rbp-0x100], rsp
- mov gword ptr [rbp-0xD8], rdi
+ mov qword ptr [rbp-0x30], rdi
+ mov gword ptr [rbp-0xE0], rdi
mov rbx, rdi
mov r15, rsi
mov r14, rdx
mov r13, rcx
mov r12, r8
- ;; size=107 bbWeight=1 PerfScore 22.58
+ ;; size=93 bbWeight=1 PerfScore 17.33
G_M50909_IG02:
mov rdi, 0xD1FFAB1E ; System.Net.WebClient+<>c__DisplayClass184_0
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xE0], rax
+ mov gword ptr [rbp-0xE8], rax
lea rdi, bword ptr [rax+0x08]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
test r15, r15
je G_M50909_IG10
test r13, r13
je G_M50909_IG09
test r14, r14
jne SHORT G_M50909_IG03
mov rdi, rbx
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Net.WebClient:MapToDefaultMethod(System.Uri):System.String:this
call [rax]System.Net.WebClient:MapToDefaultMethod(System.Uri):System.String:this
mov r14, rax
;; size=78 bbWeight=1 PerfScore 11.75
G_M50909_IG03:
mov rdi, rbx
mov rsi, r12
mov rax, 0xD1FFAB1E ; code for System.Net.WebClient:StartAsyncOperation(System.Object):System.ComponentModel.AsyncOperation:this
call [rax]System.Net.WebClient:StartAsyncOperation(System.Object):System.ComponentModel.AsyncOperation:this
- mov rcx, gword ptr [rbp-0xE0]
+ mov rcx, gword ptr [rbp-0xE8]
lea rdi, bword ptr [rcx+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
nop
;; size=38 bbWeight=1 PerfScore 6.75
G_M50909_IG04:
mov rdi, rbx
mov rsi, r13
mov rax, 0xD1FFAB1E ; code for System.Net.WebClient:GetValuesToUpload(System.Collections.Specialized.NameValueCollection):ubyte[]:this
call [rax]System.Net.WebClient:GetValuesToUpload(System.Collections.Specialized.NameValueCollection):ubyte[]:this
mov r13, rax
lea rdi, bword ptr [rbx+0x50]
mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
mov rdi, rbx
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Net.WebClient:GetUri(System.Uri):System.Uri:this
call [rax]System.Net.WebClient:GetUri(System.Uri):System.Uri:this
mov rsi, rax
mov rdi, rbx
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x58]
call [rax]System.Net.WebClient:GetWebRequest(System.Uri):System.Net.WebRequest:this
mov r15, rax
lea rdi, bword ptr [rbx+0x40]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
xor r14d, r14d
cmp gword ptr [rbx+0x118], 0
je SHORT G_M50909_IG05
mov edi, dword ptr [r13+0x08]
mov r14d, 0x2000
cmp rdi, 0x2000
cmovl r14, rdi
;; size=115 bbWeight=1 PerfScore 26.00
G_M50909_IG05:
mov rdi, 0xD1FFAB1E ; System.Action`3[ubyte[],System.Exception,System.ComponentModel.AsyncOperation]
call CORINFO_HELP_NEWSFAST
mov r12, rax
- mov rcx, gword ptr [rbp-0xE0]
+ mov rcx, gword ptr [rbp-0xE8]
mov rax, gword ptr [rcx+0x10]
- mov gword ptr [rbp-0xF0], rax
+ mov gword ptr [rbp-0xF8], rax
lea rdi, bword ptr [r12+0x08]
mov rsi, rcx
call CORINFO_HELP_ASSIGN_REF
mov rax, 0xD1FFAB1E ; code for System.Net.WebClient+<>c__DisplayClass184_0:<UploadValuesAsync>b__0(ubyte[],System.Exception,System.ComponentModel.AsyncOperation):this
mov qword ptr [r12+0x18], rax
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncVoidMethodBuilder:Create():System.Runtime.CompilerServices.AsyncVoidMethodBuilder
call [rax]System.Runtime.CompilerServices.AsyncVoidMethodBuilder:Create():System.Runtime.CompilerServices.AsyncVoidMethodBuilder
- mov gword ptr [rbp-0x68], rax
- mov gword ptr [rbp-0x60], rdx
- mov gword ptr [rbp-0xD0], rbx
- mov gword ptr [rbp-0xC8], r15
+ mov gword ptr [rbp-0x70], rax
+ mov gword ptr [rbp-0x68], rdx
+ mov gword ptr [rbp-0xD8], rbx
+ mov gword ptr [rbp-0xD0], r15
xor rdi, rdi
- mov gword ptr [rbp-0xA8], rdi
- mov gword ptr [rbp-0xA0], r13
- mov dword ptr [rbp-0x74], r14d
+ mov gword ptr [rbp-0xB0], rdi
+ mov gword ptr [rbp-0xA8], r13
+ mov dword ptr [rbp-0x7C], r14d
;; size=118 bbWeight=1 PerfScore 19.00
G_M50909_IG06:
- mov gword ptr [rbp-0xC0], rdi
+ mov gword ptr [rbp-0xC8], rdi
;; size=7 bbWeight=1 PerfScore 1.00
G_M50909_IG07:
- mov gword ptr [rbp-0xB8], rdi
- mov r15, gword ptr [rbp-0xF0]
- mov gword ptr [rbp-0xB0], r15
- mov gword ptr [rbp-0x98], r12
- mov dword ptr [rbp-0x78], -1
- lea rdi, [rbp-0xD0]
+ mov gword ptr [rbp-0xC0], rdi
+ mov r15, gword ptr [rbp-0xF8]
+ mov gword ptr [rbp-0xB8], r15
+ mov gword ptr [rbp-0xA0], r12
+ mov dword ptr [rbp-0x80], -1
+ lea rdi, [rbp-0xD8]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.WebClient+<UploadBitsAsync>d__152](byref)
call [rax]System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.Net.WebClient+<UploadBitsAsync>d__152](byref)
nop
;; size=55 bbWeight=1 PerfScore 9.00
G_M50909_IG08:
add rsp, 216
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1 PerfScore 4.25
G_M50909_IG09:
mov edi, 481
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:Throw(System.String)
call [rax]System.ArgumentNullException:Throw(System.String)
int3
;; size=36 bbWeight=0 PerfScore 0.00
G_M50909_IG10:
mov edi, 447
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:Throw(System.String)
call [rax]System.ArgumentNullException:Throw(System.String)
int3
;; size=36 bbWeight=0 PerfScore 0.00
G_M50909_IG11:
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+0x100]
;; size=25 bbWeight=0 PerfScore 0.00
G_M50909_IG12:
mov rdi, 0xD1FFAB1E ; System.Exception
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
mov rsi, rax
test rsi, rsi
jne SHORT G_M50909_IG13
xor eax, eax
jmp SHORT G_M50909_IG14
;; size=34 bbWeight=0 PerfScore 0.00
G_M50909_IG13:
- mov gword ptr [rbp-0xE8], rsi
- mov rsi, gword ptr [rbp-0xE8]
+ mov gword ptr [rbp-0xF0], rsi
+ mov rsi, gword ptr [rbp-0xF0]
mov rdi, 0xD1FFAB1E ; System.OutOfMemoryException
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
sete al
movzx rax, al
;; size=45 bbWeight=0 PerfScore 0.00
G_M50909_IG14:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
G_M50909_IG15:
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+0x100]
;; size=25 bbWeight=0 PerfScore 0.00
G_M50909_IG16:
- mov rdi, gword ptr [rbp-0xE8]
+ mov rdi, gword ptr [rbp-0xF0]
mov rax, 0xD1FFAB1E ; code for System.Net.WebClient:GetExceptionToPropagate(System.Exception):System.Exception
call [rax]System.Net.WebClient:GetExceptionToPropagate(System.Exception):System.Exception
mov rbx, rax
- mov r15, gword ptr [rbp-0xD8]
+ mov r15, gword ptr [rbp-0xE0]
movzx r14, byte ptr [r15+0x135]
mov rdi, 0xD1FFAB1E ; System.Net.UploadValuesCompletedEventArgs
call CORINFO_HELP_NEWSFAST
mov r13, rax
- mov rsi, gword ptr [rbp-0xE0]
+ mov rsi, gword ptr [rbp-0xE8]
mov rdi, gword ptr [rsi+0x10]
mov rax, 0xD1FFAB1E ; code for System.ComponentModel.AsyncOperation:get_UserSuppliedState():System.Object:this
cmp dword ptr [rdi], edi
call [rax]System.ComponentModel.AsyncOperation:get_UserSuppliedState():System.Object:this
mov r8, rax
mov rdi, r13
mov rdx, rbx
mov ecx, r14d
xor rsi, rsi
mov rax, 0xD1FFAB1E ; code for System.Net.UploadValuesCompletedEventArgs:.ctor(ubyte[],System.Exception,ubyte,System.Object):this
call [rax]System.Net.UploadValuesCompletedEventArgs:.ctor(ubyte[],System.Exception,ubyte,System.Object):this
mov rdx, gword ptr [r15+0xB0]
- mov rsi, gword ptr [rbp-0xE0]
+ mov rsi, gword ptr [rbp-0xE8]
mov rsi, gword ptr [rsi+0x10]
mov rdi, r15
mov rcx, r13
mov rax, 0xD1FFAB1E ; code for System.Net.WebClient:InvokeOperationCompleted(System.ComponentModel.AsyncOperation,System.Threading.SendOrPostCallback,System.ComponentModel.AsyncCompletedEventArgs):this
call [rax]System.Net.WebClient:InvokeOperationCompleted(System.ComponentModel.AsyncOperation,System.Threading.SendOrPostCallback,System.ComponentModel.AsyncCompletedEventArgs):this
lea rax, G_M50909_IG08
;; size=149 bbWeight=0 PerfScore 0.00
G_M50909_IG17:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 916, prolog size 107, PerfScore 100.33, instruction count 212, allocated bytes for code 916 (MethodHash=a4023922) for method System.Net.WebClient:UploadValuesAsync(System.Uri,System.String,System.Collections.Specialized.NameValueCollection,System.Object):this (FullOpts)
+; Total bytes of code 902, prolog size 93, PerfScore 95.08, instruction count 208, allocated bytes for code 902 (MethodHash=a4023922) for method System.Net.WebClient:UploadValuesAsync(System.Uri,System.String,System.Collections.Specialized.NameValueCollection,System.Object):this (FullOpts)
-12 (-1.39 % of base) - System.Net.Security.SslStream:GenerateToken(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken:this
; Assembly listing for method System.Net.Security.SslStream:GenerateToken(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken: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; 20 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T02] ( 24, 64 ) ref -> [rbp-0x68] this class-hnd EH-live single-def <System.Net.Security.SslStream>
-; V01 RetBuf [V01,T20] ( 4, 4 ) byref -> [rbp-0x70] EH-live single-def
+; V00 this [V00,T02] ( 24, 64 ) ref -> [rbp-0x70] this class-hnd EH-live single-def <System.Net.Security.SslStream>
+; V01 RetBuf [V01,T20] ( 4, 4 ) byref -> [rbp-0x78] EH-live single-def
;* V02 arg1 [V02 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
-; V03 loc0 [V03,T05] ( 5, 18 ) ubyte -> [rbp-0x2C] do-not-enreg[Z] EH-live
-; V04 loc1 [V04,T24] ( 3, 6 ) ubyte -> [rbp-0x30] do-not-enreg[Z] EH-live
-; V05 loc2 [V05 ] ( 5, 21 ) ref -> [rbp-0x38] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <ubyte[]>
-; V06 loc3 [V06 ] ( 9, 22 ) struct (32) [rbp-0x58] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Net.Security.ProtocolToken>
-; V07 loc4 [V07,T10] ( 4, 14 ) ubyte -> [rbp-0x5C] do-not-enreg[Z] EH-live
+; V03 loc0 [V03,T05] ( 5, 18 ) ubyte -> [rbp-0x34] do-not-enreg[Z] EH-live
+; V04 loc1 [V04,T24] ( 3, 6 ) ubyte -> [rbp-0x38] do-not-enreg[Z] EH-live
+; V05 loc2 [V05 ] ( 5, 21 ) ref -> [rbp-0x40] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <ubyte[]>
+; V06 loc3 [V06 ] ( 9, 22 ) struct (32) [rbp-0x60] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Net.Security.ProtocolToken>
+; V07 loc4 [V07,T10] ( 4, 14 ) ubyte -> [rbp-0x64] do-not-enreg[Z] EH-live
;* V08 loc5 [V08 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op <System.Nullable`1[ubyte]>
;* V09 loc6 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.String>
; V10 OutArgs [V10 ] ( 1, 1 ) struct (16) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V11 tmp1 [V11 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
; V12 tmp2 [V12,T06] ( 2, 16 ) byref -> rsi "impAppendStmt"
;* V13 tmp3 [V13 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
; V14 tmp4 [V14,T01] ( 3, 80 ) ref -> r13 class-hnd "dup spill" <System.Net.Security.SslStreamCertificateContext>
;* V15 tmp5 [V15 ] ( 0, 0 ) ref -> zero-ref
-; V16 tmp6 [V16,T00] ( 3,136 ) ref -> rax class-hnd exact "dup spill" <System.Net.Security.SslCertificateTrust>
+; V16 tmp6 [V16,T00] ( 3,136 ) ref -> rdi class-hnd exact "dup spill" <System.Net.Security.SslCertificateTrust>
;* V17 tmp7 [V17 ] ( 0, 0 ) ref -> zero-ref
;* V18 tmp8 [V18 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[ubyte]>
;* V19 tmp9 [V19 ] ( 0, 0 ) struct ( 8) zero-ref <System.Nullable`1[ubyte]>
-; V20 tmp10 [V20,T36] ( 2, 0 ) ref -> rsi class-hnd "impAppendStmt" <System.Net.Security.SafeFreeCredentials>
-; V21 tmp11 [V21,T37] ( 2, 0 ) ref -> rdx class-hnd "impAppendStmt" <System.Net.Security.SafeDeleteSslContext>
-; V22 tmp12 [V22,T38] ( 2, 0 ) ref -> rax class-hnd exact "impAppendStmt" <System.Net.Security.SslAuthenticationOptions>
+; V20 tmp10 [V20,T36] ( 2, 0 ) ref -> rdi class-hnd "impAppendStmt" <System.Net.Security.SafeFreeCredentials>
+; V21 tmp11 [V21,T37] ( 2, 0 ) ref -> rsi class-hnd "impAppendStmt" <System.Net.Security.SafeDeleteSslContext>
+; V22 tmp12 [V22,T38] ( 2, 0 ) ref -> rdx class-hnd exact "impAppendStmt" <System.Net.Security.SslAuthenticationOptions>
;* V23 tmp13 [V23 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
;* V24 tmp14 [V24 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V25 tmp15 [V25 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
;* V26 tmp16 [V26 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
; V27 tmp17 [V27,T12] ( 3, 12 ) int -> rax
-; V28 tmp18 [V28,T21] ( 3, 6 ) ref -> rax class-hnd single-def "dup spill" <System.Net.Security.SafeFreeCredentials>
+; V28 tmp18 [V28,T21] ( 3, 6 ) ref -> rdi class-hnd single-def "dup spill" <System.Net.Security.SafeFreeCredentials>
;* V29 tmp19 [V29 ] ( 0, 0 ) ref -> zero-ref single-def
-; V30 tmp20 [V30,T25] ( 2, 4 ) ref -> rsi class-hnd single-def "impAppendStmt" <System.Net.Security.SafeFreeCredentials>
-; V31 tmp21 [V31,T26] ( 2, 4 ) ref -> rax class-hnd single-def "impAppendStmt" <ubyte[]>
+; V30 tmp20 [V30,T25] ( 2, 4 ) ref -> rdi class-hnd single-def "impAppendStmt" <System.Net.Security.SafeFreeCredentials>
+; V31 tmp21 [V31,T26] ( 2, 4 ) ref -> rsi class-hnd single-def "impAppendStmt" <ubyte[]>
;* V32 tmp22 [V32 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V33 tmp23 [V33 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V34 tmp24 [V34 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V35 tmp25 [V35 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V36 tmp26 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.SslAuthenticationOptions>
;* V37 tmp27 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.SslAuthenticationOptions>
;* V38 tmp28 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.SslAuthenticationOptions>
;* V39 tmp29 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V40 tmp30 [V40 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V41 tmp31 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.SslAuthenticationOptions>
; V42 tmp32 [V42,T33] ( 4, 0 ) ref -> rcx class-hnd "Inlining Arg" <ubyte[]>
;* V43 tmp33 [V43 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V44 tmp34 [V44 ] ( 0, 0 ) struct (16) zero-ref multireg-ret "RetBuf for struct inline return candidates." <System.Net.SecurityStatusPal>
;* V45 tmp35 [V45 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V46 tmp36 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.SslAuthenticationOptions>
;* V47 tmp37 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.SslAuthenticationOptions>
;* V48 tmp38 [V48 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V49 tmp39 [V49 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.SslAuthenticationOptions>
;* V50 tmp40 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
-; V51 tmp41 [V51,T07] ( 2, 16 ) ref -> r13 class-hnd exact "impAppendStmt" <System.Net.NetEventSource>
-; V52 tmp42 [V52,T08] ( 2, 16 ) ref -> r12 class-hnd exact "non-inline candidate call" <System.String>
+; V51 tmp41 [V51,T07] ( 2, 16 ) ref -> r12 class-hnd exact "impAppendStmt" <System.Net.NetEventSource>
+; V52 tmp42 [V52,T08] ( 2, 16 ) ref -> [rbp-0x80] class-hnd exact spill-single-def "non-inline candidate call" <System.String>
;* V53 tmp43 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" <System.String>
; V54 tmp44 [V54,T15] ( 2, 8 ) ref -> rdi
;* V55 tmp45 [V55,T28] ( 0, 0 ) int -> zero-ref
; V56 tmp46 [V56,T16] ( 2, 8 ) ref -> rdx
;* V57 tmp47 [V57,T27] ( 0, 0 ) ref -> zero-ref
; V58 tmp48 [V58,T09] ( 2, 16 ) ref -> r8 class-hnd exact "Inlining Arg" <System.String>
;* V59 tmp49 [V59 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ubyte]>
;* V60 tmp50 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.SslAuthenticationOptions>
;* V61 tmp51 [V61 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.SslAuthenticationOptions>
;* V62 tmp52 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.SslAuthenticationOptions>
;* V63 tmp53 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.SslAuthenticationOptions>
;* V64 tmp54 [V64 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.SslAuthenticationOptions>
;* V65 tmp55 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.Security.SslAuthenticationOptions>
; V66 tmp56 [V66,T13] ( 3, 9 ) byref -> rbx single-def "field V02._reference (fldOffset=0x0)" P-INDEP
; V67 tmp57 [V67,T14] ( 3, 9 ) int -> r15 single-def "field V02._length (fldOffset=0x8)" P-INDEP
;* V68 tmp58 [V68 ] ( 0, 0 ) ubyte -> zero-ref "field V08.hasValue (fldOffset=0x0)" P-INDEP
;* V69 tmp59 [V69 ] ( 0, 0 ) ubyte -> zero-ref "field V08.value (fldOffset=0x1)" P-INDEP
;* V70 tmp60 [V70 ] ( 0, 0 ) byref -> zero-ref "field V13._reference (fldOffset=0x0)" P-INDEP
;* V71 tmp61 [V71 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP
;* V72 tmp62 [V72 ] ( 0, 0 ) ubyte -> zero-ref "field V18.hasValue (fldOffset=0x0)" P-INDEP
-; V73 tmp63 [V73,T18] ( 2, 8 ) ubyte -> rax "field V18.value (fldOffset=0x1)" P-INDEP
+; V73 tmp63 [V73,T18] ( 2, 8 ) ubyte -> r9 "field V18.value (fldOffset=0x1)" P-INDEP
;* V74 tmp64 [V74 ] ( 0, 0 ) ubyte -> zero-ref "field V19.hasValue (fldOffset=0x0)" P-INDEP
-; V75 tmp65 [V75,T04] ( 3, 24 ) ubyte -> rax "field V19.value (fldOffset=0x1)" P-INDEP
+; V75 tmp65 [V75,T04] ( 3, 24 ) ubyte -> r9 "field V19.value (fldOffset=0x1)" P-INDEP
;* V76 tmp66 [V76 ] ( 0, 0 ) byref -> zero-ref "field V23._reference (fldOffset=0x0)" P-INDEP
;* V77 tmp67 [V77 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
;* V78 tmp68 [V78 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP
;* V79 tmp69 [V79 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP
; V80 tmp70 [V80,T34] ( 3, 0 ) byref -> r8 "field V43._reference (fldOffset=0x0)" P-INDEP
-; V81 tmp71 [V81,T35] ( 3, 0 ) int -> r9 "field V43._length (fldOffset=0x8)" P-INDEP
+; V81 tmp71 [V81,T35] ( 3, 0 ) int -> rax "field V43._length (fldOffset=0x8)" P-INDEP
; V82 tmp72 [V82,T39] ( 2, 0 ) ref -> rax "field V44.Exception (fldOffset=0x0)" P-INDEP
; V83 tmp73 [V83,T40] ( 2, 0 ) int -> rdx "field V44.ErrorCode (fldOffset=0x8)" P-INDEP
;* V84 tmp74 [V84 ] ( 0, 0 ) byref -> zero-ref "field V45._reference (fldOffset=0x0)" P-INDEP
;* V85 tmp75 [V85 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP
; V86 tmp76 [V86,T17] ( 2, 8 ) byref -> rdx "field V59._reference (fldOffset=0x0)" P-INDEP
;* V87 tmp77 [V87,T29] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
-; V88 tmp78 [V88,T22] ( 3, 6 ) ref -> rax single-def "argument with side effect"
-; V89 tmp79 [V89,T23] ( 3, 6 ) ref -> rax single-def "argument with side effect"
-; V90 PSPSym [V90,T32] ( 1, 1 ) long -> [rbp-0x80] do-not-enreg[V] "PSPSym"
-; V91 cse0 [V91,T11] ( 3, 12 ) ref -> r13 "CSE #03: moderate"
-; V92 cse1 [V92,T03] ( 5, 28 ) ref -> r8 "CSE #01: aggressive"
+; V88 tmp78 [V88,T22] ( 3, 6 ) ref -> rdi single-def "argument with side effect"
+; V89 tmp79 [V89,T23] ( 3, 6 ) ref -> rdi single-def "argument with side effect"
+; V90 PSPSym [V90,T32] ( 1, 1 ) long -> [rbp-0x90] do-not-enreg[V] "PSPSym"
+; V91 cse0 [V91,T11] ( 3, 12 ) ref -> r12 "CSE #03: moderate"
+; V92 cse1 [V92,T03] ( 5, 28 ) ref -> rax "CSE #01: aggressive"
; V93 cse2 [V93,T19] ( 6, 6 ) ref -> r8 "CSE #06: moderate"
-; V94 cse3 [V94,T30] ( 3, 3 ) ref -> rax "CSE #04: moderate"
-; V95 cse4 [V95,T31] ( 3, 3 ) ref -> rax "CSE #05: moderate"
+; V94 cse3 [V94,T30] ( 3, 3 ) ref -> rdi "CSE #04: moderate"
+; V95 cse4 [V95,T31] ( 3, 3 ) ref -> rdi "CSE #05: moderate"
;
-; Lcl frame size = 104
+; Lcl frame size = 120
G_M15651_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 104
- lea rbp, [rsp+0x90]
- xor eax, eax
- mov qword ptr [rbp-0x58], rax
+ sub rsp, 120
+ lea rbp, [rsp+0xA0]
vxorps xmm8, xmm8, xmm8
- vmovdqu ymmword ptr [rbp-0x50], ymm8
- mov qword ptr [rbp-0x80], rsp
- mov gword ptr [rbp-0x68], rdi
- mov bword ptr [rbp-0x70], rsi
+ vmovdqu ymmword ptr [rbp-0x60], ymm8
+ xor eax, eax
+ mov qword ptr [rbp-0x40], rax
+ mov qword ptr [rbp-0x90], rsp
+ mov qword ptr [rbp-0x30], rdi
+ mov gword ptr [rbp-0x70], rdi
+ mov bword ptr [rbp-0x78], rsi
+ mov r8, rdi
mov r14, rsi
mov rbx, rdx
mov r15d, ecx
- ;; size=59 bbWeight=1 PerfScore 14.08
+ ;; size=69 bbWeight=1 PerfScore 15.33
G_M15651_IG02:
xor esi, esi
- mov dword ptr [rbp-0x2C], esi
+ mov dword ptr [rbp-0x34], esi
;; size=5 bbWeight=1 PerfScore 1.25
G_M15651_IG03:
- mov dword ptr [rbp-0x30], esi
- mov byte ptr [rbp-0x4C], 1
- cmp gword ptr [rdi+0x50], 0
+ mov dword ptr [rbp-0x38], esi
+ mov byte ptr [rbp-0x54], 1
+ cmp gword ptr [r8+0x50], 0
sete sil
movzx rsi, sil
- mov dword ptr [rbp-0x5C], esi
+ mov dword ptr [rbp-0x64], esi
;; size=23 bbWeight=1 PerfScore 7.25
G_M15651_IG04:
+ mov r8, gword ptr [rbp-0x70]
xor rsi, rsi
- mov gword ptr [rbp-0x38], rsi
- cmp dword ptr [rbp-0x5C], 0
+ mov gword ptr [rbp-0x40], rsi
+ cmp dword ptr [rbp-0x64], 0
je SHORT G_M15651_IG08
- ;; size=12 bbWeight=8 PerfScore 34.00
+ ;; size=16 bbWeight=8 PerfScore 42.00
G_M15651_IG05:
- mov rsi, gword ptr [rdi+0x38]
+ mov rsi, gword ptr [r8+0x38]
cmp byte ptr [rsi+0x6D], 0
jne SHORT G_M15651_IG06
- lea rsi, [rbp-0x38]
+ lea rsi, [rbp-0x40]
+ mov rdi, r8
xor edx, edx
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslStream:AcquireClientCredentials(byref,ubyte):ubyte:this
call [rax]System.Net.Security.SslStream:AcquireClientCredentials(byref,ubyte):ubyte:this
jmp SHORT G_M15651_IG07
- ;; size=30 bbWeight=4 PerfScore 48.00
+ ;; size=33 bbWeight=4 PerfScore 49.00
G_M15651_IG06:
- lea rsi, [rbp-0x38]
+ lea rsi, [rbp-0x40]
+ mov rdi, r8
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslStream:AcquireServerCredentials(byref):ubyte:this
call [rax]System.Net.Security.SslStream:AcquireServerCredentials(byref):ubyte:this
- ;; size=16 bbWeight=4 PerfScore 15.00
+ ;; size=19 bbWeight=4 PerfScore 16.00
G_M15651_IG07:
- mov dword ptr [rbp-0x2C], eax
- mov rdi, gword ptr [rbp-0x68]
+ mov dword ptr [rbp-0x34], eax
+ mov r8, gword ptr [rbp-0x70]
;; size=7 bbWeight=4 PerfScore 8.00
G_M15651_IG08:
- mov r8, gword ptr [rdi+0x38]
- cmp byte ptr [r8+0x6D], 0
+ mov rax, gword ptr [r8+0x38]
+ cmp byte ptr [rax+0x6D], 0
je SHORT G_M15651_IG12
- ;; size=11 bbWeight=8 PerfScore 48.00
+ ;; size=10 bbWeight=8 PerfScore 48.00
G_M15651_IG09:
- mov r13, gword ptr [r8+0x20]
+ mov r13, gword ptr [rax+0x20]
test r13, r13
jne G_M15651_IG15
;; size=13 bbWeight=4 PerfScore 13.00
G_M15651_IG10:
- xor eax, eax
- ;; size=2 bbWeight=16 PerfScore 4.00
+ xor r9d, r9d
+ ;; size=3 bbWeight=16 PerfScore 4.00
G_M15651_IG11:
- movzx rdx, al
- mov dword ptr [rbp-0x30], edx
+ movzx rdx, r9b
+ mov dword ptr [rbp-0x38], edx
mov rdx, rbx
mov ecx, r15d
+ mov r8, rax
+ mov rdi, gword ptr [rbp-0x70]
lea rsi, bword ptr [rdi+0x50]
- lea rdi, [rbp-0x58]
+ lea rdi, [rbp-0x60]
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslStreamPal:HandshakeInternal(byref,System.ReadOnlySpan`1[ubyte],System.Net.Security.SslAuthenticationOptions):System.Net.Security.ProtocolToken
call [rax]System.Net.Security.SslStreamPal:HandshakeInternal(byref,System.ReadOnlySpan`1[ubyte],System.Net.Security.SslAuthenticationOptions):System.Net.Security.ProtocolToken
- cmp dword ptr [rbp-0x40], 9
+ cmp dword ptr [rbp-0x48], 9
jne G_M15651_IG14
jmp G_M15651_IG17
- ;; size=47 bbWeight=4 PerfScore 44.00
+ ;; size=55 bbWeight=4 PerfScore 49.00
G_M15651_IG12:
- mov rdi, gword ptr [r8+0x08]
+ mov rdi, gword ptr [rax+0x08]
mov rax, 0xD1FFAB1E ; code for System.Net.Security.TargetHostNameHelper:NormalizeHostName(System.String):System.String
call [rax]System.Net.Security.TargetHostNameHelper:NormalizeHostName(System.String):System.String
mov rdx, rbx
mov ecx, r15d
- mov rdi, gword ptr [rbp-0x68]
- mov r8, gword ptr [rdi+0x38]
- lea rsi, bword ptr [rdi+0x50]
- lea rdi, [rbp-0x58]
+ mov r8, gword ptr [rbp-0x70]
+ mov r8, gword ptr [r8+0x38]
+ mov r13, gword ptr [rbp-0x70]
+ lea rsi, bword ptr [r13+0x50]
+ lea rdi, [rbp-0x60]
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslStreamPal:HandshakeInternal(byref,System.ReadOnlySpan`1[ubyte],System.Net.Security.SslAuthenticationOptions):System.Net.Security.ProtocolToken
call [rax]System.Net.Security.SslStreamPal:HandshakeInternal(byref,System.ReadOnlySpan`1[ubyte],System.Net.Security.SslAuthenticationOptions):System.Net.Security.ProtocolToken
- cmp dword ptr [rbp-0x40], 6
+ cmp dword ptr [rbp-0x48], 6
jne G_M15651_IG14
- mov dword ptr [rbp-0x5C], 1
- lea rsi, [rbp-0x38]
- mov rdi, gword ptr [rbp-0x68]
+ mov dword ptr [rbp-0x64], 1
+ lea rsi, [rbp-0x40]
+ mov rdi, r13
mov edx, 1
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslStream:AcquireClientCredentials(byref,ubyte):ubyte:this
call [rax]System.Net.Security.SslStream:AcquireClientCredentials(byref,ubyte):ubyte:this
- mov dword ptr [rbp-0x2C], eax
+ mov dword ptr [rbp-0x34], eax
mov rdi, 0xD1FFAB1E ; const ptr
- mov r13, gword ptr [rdi]
- cmp byte ptr [r13+0x9D], 0
+ mov r12, gword ptr [rdi]
+ cmp byte ptr [r12+0x9D], 0
je SHORT G_M15651_IG13
- mov rdi, gword ptr [rbp-0x68]
+ mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String
call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String
- mov r12, rax
+ mov gword ptr [rbp-0x80], rax
mov rdi, 0xD1FFAB1E ; 'InitializeSecurityContext() returned 'CredentialsNeeded'.'
mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:Format(System.Object):System.String
call [rax]System.Net.NetEventSource:Format(System.Object):System.String
mov r8, rax
- mov rdi, r13
+ mov rdi, r12
+ mov r12, gword ptr [rbp-0x80]
mov rdx, r12
mov esi, 1
mov rcx, 0xD1FFAB1E ; 'GenerateToken'
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this
call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this
- ;; size=195 bbWeight=4 PerfScore 167.00
+ ;; size=203 bbWeight=4 PerfScore 172.00
G_M15651_IG13:
- mov rdi, gword ptr [rbp-0x68]
- lea rsi, bword ptr [rdi+0x50]
+ lea rsi, bword ptr [r13+0x50]
xor rdx, rdx
xor ecx, ecx
- mov r8, gword ptr [rdi+0x38]
- lea rdi, [rbp-0x58]
+ mov r8, gword ptr [r13+0x38]
+ lea rdi, [rbp-0x60]
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslStreamPal:HandshakeInternal(byref,System.ReadOnlySpan`1[ubyte],System.Net.Security.SslAuthenticationOptions):System.Net.Security.ProtocolToken
call [rax]System.Net.Security.SslStreamPal:HandshakeInternal(byref,System.ReadOnlySpan`1[ubyte],System.Net.Security.SslAuthenticationOptions):System.Net.Security.ProtocolToken
- ;; size=32 bbWeight=4 PerfScore 31.00
+ nop
+ ;; size=29 bbWeight=4 PerfScore 28.00
G_M15651_IG14:
- cmp dword ptr [rbp-0x2C], 0
+ cmp dword ptr [rbp-0x34], 0
je SHORT G_M15651_IG20
- mov rdi, gword ptr [rbp-0x68]
- cmp gword ptr [rdi+0x48], 0
+ mov r13, gword ptr [rbp-0x70]
+ cmp gword ptr [r13+0x48], 0
je G_M15651_IG04
jmp SHORT G_M15651_IG20
;; size=23 bbWeight=8 PerfScore 80.00
G_M15651_IG15:
- mov rax, gword ptr [r13+0x08]
- test rax, rax
+ mov rdi, gword ptr [r13+0x08]
+ test rdi, rdi
je G_M15651_IG10
;; size=13 bbWeight=32 PerfScore 104.00
G_M15651_IG16:
- movzx rax, byte ptr [rax+0x18]
+ movzx r9, byte ptr [rdi+0x18]
jmp G_M15651_IG11
- ;; size=9 bbWeight=4 PerfScore 16.00
+ ;; size=10 bbWeight=4 PerfScore 16.00
G_M15651_IG17:
- mov rdi, gword ptr [rbp-0x68]
- mov rsi, gword ptr [rdi+0x48]
- mov rdx, gword ptr [rdi+0x50]
- mov rax, gword ptr [rdi+0x38]
- mov rcx, gword ptr [rdi+0xB8]
+ mov r13, gword ptr [rbp-0x70]
+ mov rdi, gword ptr [r13+0x48]
+ mov rsi, gword ptr [r13+0x50]
+ mov rdx, gword ptr [r13+0x38]
+ mov rcx, gword ptr [r13+0xB8]
test rcx, rcx
je SHORT G_M15651_IG18
lea r8, bword ptr [rcx+0x10]
- mov r9d, dword ptr [rcx+0x08]
+ mov eax, dword ptr [rcx+0x08]
jmp SHORT G_M15651_IG19
- ;; size=38 bbWeight=0 PerfScore 0.00
+ ;; size=37 bbWeight=0 PerfScore 0.00
G_M15651_IG18:
xor r8, r8
- xor r9d, r9d
- ;; size=6 bbWeight=0 PerfScore 0.00
+ xor eax, eax
+ ;; size=5 bbWeight=0 PerfScore 0.00
G_M15651_IG19:
mov rcx, r8
- mov r8d, r9d
- mov rdi, rsi
- mov rsi, rdx
- mov rdx, rax
+ mov r8d, eax
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslStreamPal:SelectApplicationProtocol(System.Net.Security.SafeFreeCredentials,System.Net.Security.SafeDeleteSslContext,System.Net.Security.SslAuthenticationOptions,System.ReadOnlySpan`1[ubyte]):System.Net.SecurityStatusPal
call [rax]System.Net.Security.SslStreamPal:SelectApplicationProtocol(System.Net.Security.SafeFreeCredentials,System.Net.Security.SafeDeleteSslContext,System.Net.Security.SslAuthenticationOptions,System.ReadOnlySpan`1[ubyte]):System.Net.SecurityStatusPal
- mov gword ptr [rbp-0x48], rax
- mov dword ptr [rbp-0x40], edx
+ mov gword ptr [rbp-0x50], rax
+ mov dword ptr [rbp-0x48], edx
int3
- ;; size=35 bbWeight=0 PerfScore 0.00
+ ;; size=26 bbWeight=0 PerfScore 0.00
G_M15651_IG20:
mov rdi, rsp
call G_M15651_IG24
;; size=8 bbWeight=1 PerfScore 1.25
G_M15651_IG21:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M15651_IG22:
- mov rdi, bword ptr [rbp-0x70]
- lea rsi, bword ptr [rbp-0x58]
+ mov rdi, bword ptr [rbp-0x78]
+ lea rsi, bword ptr [rbp-0x60]
call CORINFO_HELP_ASSIGN_BYREF
movsq
call CORINFO_HELP_ASSIGN_BYREF
movsq
- mov rax, bword ptr [rbp-0x70]
+ mov rax, bword ptr [rbp-0x78]
;; size=26 bbWeight=1 PerfScore 6.50
G_M15651_IG23:
- add rsp, 104
+ add rsp, 120
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M15651_IG24:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
mov rbp, qword ptr [rdi+0x10]
mov qword ptr [rsp+0x10], rbp
- lea rbp, [rbp+0x90]
+ lea rbp, [rbp+0xA0]
;; size=30 bbWeight=1 PerfScore 9.75
G_M15651_IG25:
- cmp dword ptr [rbp-0x5C], 0
+ cmp dword ptr [rbp-0x64], 0
je G_M15651_IG27
- mov rdi, gword ptr [rbp-0x68]
- mov rax, gword ptr [rdi+0x48]
- test rax, rax
+ mov r13, gword ptr [rbp-0x70]
+ mov rdi, gword ptr [r13+0x48]
+ test rdi, rdi
je SHORT G_M15651_IG26
- mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Runtime.InteropServices.SafeHandle:Dispose():this
call [rax]System.Runtime.InteropServices.SafeHandle:Dispose():this
- ;; size=38 bbWeight=1 PerfScore 10.75
+ ;; size=35 bbWeight=1 PerfScore 10.50
G_M15651_IG26:
- cmp dword ptr [rbp-0x2C], 0
- jne G_M15651_IG27
- mov rdi, gword ptr [rbp-0x68]
- mov rax, gword ptr [rdi+0x50]
- test rax, rax
- je G_M15651_IG27
- mov rdi, rax
- mov rax, qword ptr [rax]
+ cmp dword ptr [rbp-0x34], 0
+ jne SHORT G_M15651_IG27
+ mov rdi, gword ptr [r13+0x50]
+ test rdi, rdi
+ je SHORT G_M15651_IG27
+ mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x20]System.Runtime.InteropServices.SafeHandle:get_IsInvalid():ubyte:this
test eax, eax
jne SHORT G_M15651_IG27
- mov rdi, gword ptr [rbp-0x68]
- mov rax, gword ptr [rdi+0x48]
- test rax, rax
+ mov rdi, gword ptr [r13+0x48]
+ test rdi, rdi
je SHORT G_M15651_IG27
- mov rdi, rax
- mov rax, qword ptr [rax]
+ mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x20]System.Runtime.InteropServices.SafeHandle:get_IsInvalid():ubyte:this
test eax, eax
jne SHORT G_M15651_IG27
- mov rdi, gword ptr [rbp-0x68]
- mov rsi, gword ptr [rdi+0x48]
- mov rax, gword ptr [rbp-0x38]
- mov r8, gword ptr [rdi+0x38]
+ mov rdi, gword ptr [r13+0x48]
+ mov rsi, gword ptr [rbp-0x40]
+ mov r8, gword ptr [r13+0x38]
movzx r9, byte ptr [r8+0x70]
mov dword ptr [rsp], r9d
- mov r9d, dword ptr [rbp-0x30]
+ mov r9d, dword ptr [rbp-0x38]
mov dword ptr [rsp+0x08], r9d
cmp dword ptr [r8+0x64], 0
setne r9b
movzx r9, r9b
movzx rcx, byte ptr [r8+0x6D]
mov edx, dword ptr [r8+0x60]
mov r8d, dword ptr [r8+0x68]
- mov rdi, rsi
- mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Net.Security.SslSessionsCache:CacheCredential(System.Net.Security.SafeFreeCredentials,ubyte[],int,ubyte,int,ubyte,ubyte,ubyte)
call [rax]System.Net.Security.SslSessionsCache:CacheCredential(System.Net.Security.SafeFreeCredentials,ubyte[],int,ubyte,int,ubyte,ubyte,ubyte)
- ;; size=152 bbWeight=1 PerfScore 53.50
-G_M15651_IG27:
nop
- ;; size=1 bbWeight=1 PerfScore 0.25
-G_M15651_IG28:
+ ;; size=121 bbWeight=1 PerfScore 49.75
+G_M15651_IG27:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 862, prolog size 59, PerfScore 725.33, instruction count 226, allocated bytes for code 862 (MethodHash=4b4ec2dc) for method System.Net.Security.SslStream:GenerateToken(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken:this (FullOpts)
+; Total bytes of code 850, prolog size 69, PerfScore 739.33, instruction count 224, allocated bytes for code 850 (MethodHash=4b4ec2dc) for method System.Net.Security.SslStream:GenerateToken(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken:this (FullOpts)
-12 (-2.33 % of base) - System.Net.Sockets.NetworkStream:Read(ubyte[],int,int):int:this
; Assembly listing for method System.Net.Sockets.NetworkStream:Read(ubyte[],int,int):int: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; 2 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 7, 6 ) ref -> rbx this class-hnd single-def <System.Net.Sockets.NetworkStream>
-; V01 arg1 [V01,T01] ( 5, 5 ) ref -> r15 class-hnd single-def <ubyte[]>
-; V02 arg2 [V02,T02] ( 5, 5 ) int -> r14 single-def
-; V03 arg3 [V03,T03] ( 4, 4 ) int -> r13 single-def
+; V00 this [V00,T00] ( 7, 6 ) ref -> [rbp-0x30] this class-hnd EH-live single-def <System.Net.Sockets.NetworkStream>
+; V01 arg1 [V01,T01] ( 5, 5 ) ref -> rbx class-hnd single-def <ubyte[]>
+; V02 arg2 [V02,T02] ( 5, 5 ) int -> r15 single-def
+; V03 arg3 [V03,T03] ( 4, 4 ) int -> r14 single-def
;* V04 loc0 [V04 ] ( 0, 0 ) int -> zero-ref
-; V05 loc1 [V05,T07] ( 3, 0 ) ref -> [rbp-0x30] must-init class-hnd EH-live single-def <System.Exception>
+; V05 loc1 [V05,T07] ( 3, 0 ) ref -> [rbp-0x38] must-init class-hnd EH-live single-def <System.Exception>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V07 tmp1 [V07,T12] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <System.Object>
; V08 tmp2 [V08,T08] ( 3, 0 ) ref -> rsi class-hnd single-def "dup spill" <System.Exception>
;* V09 tmp3 [V09 ] ( 0, 0 ) ref -> zero-ref single-def
; V10 tmp4 [V10,T11] ( 3, 0 ) int -> rax
;* V11 tmp5 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.Object>
; V12 tmp6 [V12,T09] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
;* V13 tmp7 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V14 tmp8 [V14,T04] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Net.Sockets.Socket>
+; V14 tmp8 [V14,T04] ( 3, 6 ) ref -> rsi class-hnd single-def "Inlining Arg" <System.Net.Sockets.Socket>
; V15 tmp9 [V15 ] ( 3, 2 ) int -> [rbp-0x28] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
; V16 tmp10 [V16,T05] ( 2, 2 ) int -> rax
; V17 tmp11 [V17,T10] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Net.Sockets.SocketException>
; V18 tmp12 [V18,T15] ( 2, 0 ) int -> rsi "Inlining Arg"
; V19 tmp13 [V19,T13] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
; V20 tmp14 [V20,T14] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V21 PSPSym [V21,T06] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[V] "PSPSym"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M21791_IG01:
push rbp
push r15
push r14
- push r13
push rbx
- sub rsp, 32
+ sub rsp, 40
lea rbp, [rsp+0x40]
xor eax, eax
- mov qword ptr [rbp-0x30], rax
+ mov qword ptr [rbp-0x38], rax
mov qword ptr [rbp-0x40], rsp
- mov rbx, rdi
- mov r15, rsi
- mov r14d, edx
- mov r13d, ecx
- ;; size=39 bbWeight=1 PerfScore 9.00
+ mov qword ptr [rbp-0x20], rdi
+ mov gword ptr [rbp-0x30], rdi
+ mov rbx, rsi
+ mov r15d, edx
+ mov r14d, ecx
+ ;; size=42 bbWeight=1 PerfScore 9.75
G_M21791_IG02:
- test r15, r15
+ test rbx, rbx
je G_M21791_IG10
- test r14d, r14d
+ test r15d, r15d
jl G_M21791_IG09
- mov edi, dword ptr [r15+0x08]
- sub edi, r14d
- movsxd rdi, edi
- mov eax, r13d
- cmp rdi, rax
+ mov eax, dword ptr [rbx+0x08]
+ sub eax, r15d
+ cdqe
+ mov ecx, r14d
+ cmp rax, rcx
jl G_M21791_IG08
- cmp dword ptr [rbx+0x18], 0
+ cmp dword ptr [rdi+0x18], 0
jne G_M21791_IG07
- mov rdi, rbx
- mov rax, qword ptr [rbx]
+ mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x28]System.IO.Stream:get_CanRead():ubyte:this
test eax, eax
je SHORT G_M21791_IG06
- ;; size=67 bbWeight=1 PerfScore 19.00
+ ;; size=62 bbWeight=1 PerfScore 18.75
G_M21791_IG03:
- mov rdi, gword ptr [rbx+0x10]
- cmp byte ptr [rdi], dil
+ mov rdi, gword ptr [rbp-0x30]
+ mov rsi, gword ptr [rdi+0x10]
+ cmp byte ptr [rsi], sil
lea r9, [rbp-0x28]
- mov rsi, r15
- mov edx, r14d
- mov ecx, r13d
+ mov rdi, rsi
+ mov rsi, rbx
+ mov edx, r15d
+ mov ecx, r14d
xor r8d, r8d
mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:Receive(ubyte[],int,int,int,byref):int:this
call [rax]System.Net.Sockets.Socket:Receive(ubyte[],int,int,int,byref):int:this
cmp dword ptr [rbp-0x28], 0
je SHORT G_M21791_IG05
- ;; size=41 bbWeight=1 PerfScore 12.75
+ ;; size=48 bbWeight=1 PerfScore 14.00
G_M21791_IG04:
mov rdi, 0xD1FFAB1E ; System.Net.Sockets.SocketException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov esi, dword ptr [rbp-0x28]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.SocketException:.ctor(int):this
call [rax]System.Net.Sockets.SocketException:.ctor(int):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=45 bbWeight=0 PerfScore 0.00
G_M21791_IG05:
- add rsp, 32
+ add rsp, 40
pop rbx
- pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=1 PerfScore 3.75
+ ;; size=11 bbWeight=1 PerfScore 3.25
G_M21791_IG06:
mov rdi, 0xD1FFAB1E ; System.InvalidOperationException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_net_writeonlystream():System.String
call [rax]System.SR:get_net_writeonlystream():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_M21791_IG07:
- mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowObjectDisposedException(System.Object)
call [rax]System.ThrowHelper:ThrowObjectDisposedException(System.Object)
int3
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=13 bbWeight=0 PerfScore 0.00
G_M21791_IG08:
mov edi, 27
mov esi, 16
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
int3
;; size=23 bbWeight=0 PerfScore 0.00
G_M21791_IG09:
mov edi, 90
mov esi, 13
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
int3
;; size=23 bbWeight=0 PerfScore 0.00
G_M21791_IG10:
mov edi, 88
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
G_M21791_IG11:
push rbp
push r15
push r14
- push r13
push rbx
- sub rsp, 16
+ push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x40]
- ;; size=23 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
G_M21791_IG12:
mov rdi, 0xD1FFAB1E ; System.Exception
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
mov rsi, rax
test rsi, rsi
jne SHORT G_M21791_IG13
xor eax, eax
jmp SHORT G_M21791_IG14
;; size=34 bbWeight=0 PerfScore 0.00
G_M21791_IG13:
- mov gword ptr [rbp-0x30], rsi
- mov rsi, gword ptr [rbp-0x30]
+ mov gword ptr [rbp-0x38], rsi
+ mov rsi, gword ptr [rbp-0x38]
mov rdi, 0xD1FFAB1E ; System.OutOfMemoryException
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
sete al
movzx rax, al
;; size=39 bbWeight=0 PerfScore 0.00
G_M21791_IG14:
- add rsp, 16
+ add rsp, 8
pop rbx
- pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=11 bbWeight=0 PerfScore 0.00
G_M21791_IG15:
push rbp
push r15
push r14
- push r13
push rbx
- sub rsp, 16
+ push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x40]
- ;; size=23 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
G_M21791_IG16:
mov rax, 0xD1FFAB1E ; code for System.SR:get_net_io_readfailure():System.String
call [rax]System.SR:get_net_io_readfailure():System.String
mov rdi, rax
- mov rsi, gword ptr [rbp-0x30]
+ mov rsi, gword ptr [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.NetworkStream:WrapException(System.String,System.Exception):System.IO.IOException
call [rax]System.Net.Sockets.NetworkStream:WrapException(System.String,System.Exception):System.IO.IOException
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=40 bbWeight=0 PerfScore 0.00
-; Total bytes of code 514, prolog size 39, PerfScore 44.50, instruction count 140, allocated bytes for code 514 (MethodHash=8b38aae0) for method System.Net.Sockets.NetworkStream:Read(ubyte[],int,int):int:this (FullOpts)
+; Total bytes of code 502, prolog size 42, PerfScore 45.75, instruction count 136, allocated bytes for code 502 (MethodHash=8b38aae0) for method System.Net.Sockets.NetworkStream:Read(ubyte[],int,int):int:this (FullOpts)
-12 (-2.33 % of base) - System.Net.Sockets.NetworkStream:Write(ubyte[],int,int):this
; Assembly listing for method System.Net.Sockets.NetworkStream:Write(ubyte[],int,int):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; 2 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 7, 6 ) ref -> rbx this class-hnd single-def <System.Net.Sockets.NetworkStream>
-; V01 arg1 [V01,T01] ( 5, 5 ) ref -> r15 class-hnd single-def <ubyte[]>
-; V02 arg2 [V02,T02] ( 5, 5 ) int -> r14 single-def
-; V03 arg3 [V03,T03] ( 4, 4 ) int -> r13 single-def
-; V04 loc0 [V04,T06] ( 3, 0 ) ref -> [rbp-0x30] must-init class-hnd EH-live single-def <System.Exception>
+; V00 this [V00,T00] ( 7, 6 ) ref -> [rbp-0x30] this class-hnd EH-live single-def <System.Net.Sockets.NetworkStream>
+; V01 arg1 [V01,T01] ( 5, 5 ) ref -> rbx class-hnd single-def <ubyte[]>
+; V02 arg2 [V02,T02] ( 5, 5 ) int -> r15 single-def
+; V03 arg3 [V03,T03] ( 4, 4 ) int -> r14 single-def
+; V04 loc0 [V04,T06] ( 3, 0 ) ref -> [rbp-0x38] must-init class-hnd EH-live single-def <System.Exception>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T11] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <System.Object>
; V07 tmp2 [V07,T07] ( 3, 0 ) ref -> rsi class-hnd single-def "dup spill" <System.Exception>
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref single-def
; V09 tmp4 [V09,T10] ( 3, 0 ) int -> rax
;* V10 tmp5 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.Object>
; V11 tmp6 [V11,T08] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
;* V12 tmp7 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-; V13 tmp8 [V13,T04] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Net.Sockets.Socket>
+; V13 tmp8 [V13,T04] ( 3, 6 ) ref -> rsi class-hnd single-def "Inlining Arg" <System.Net.Sockets.Socket>
; V14 tmp9 [V14 ] ( 3, 2 ) int -> [rbp-0x28] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V15 tmp10 [V15 ] ( 0, 0 ) int -> zero-ref
; V16 tmp11 [V16,T09] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Net.Sockets.SocketException>
; V17 tmp12 [V17,T14] ( 2, 0 ) int -> rsi "Inlining Arg"
; V18 tmp13 [V18,T12] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
; V19 tmp14 [V19,T13] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V20 PSPSym [V20,T05] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[V] "PSPSym"
;
-; Lcl frame size = 32
+; Lcl frame size = 40
G_M43417_IG01:
push rbp
push r15
push r14
- push r13
push rbx
- sub rsp, 32
+ sub rsp, 40
lea rbp, [rsp+0x40]
xor eax, eax
- mov qword ptr [rbp-0x30], rax
+ mov qword ptr [rbp-0x38], rax
mov qword ptr [rbp-0x40], rsp
- mov rbx, rdi
- mov r15, rsi
- mov r14d, edx
- mov r13d, ecx
- ;; size=39 bbWeight=1 PerfScore 9.00
+ mov qword ptr [rbp-0x20], rdi
+ mov gword ptr [rbp-0x30], rdi
+ mov rbx, rsi
+ mov r15d, edx
+ mov r14d, ecx
+ ;; size=42 bbWeight=1 PerfScore 9.75
G_M43417_IG02:
- test r15, r15
+ test rbx, rbx
je G_M43417_IG10
- test r14d, r14d
+ test r15d, r15d
jl G_M43417_IG09
- mov edi, dword ptr [r15+0x08]
- sub edi, r14d
- movsxd rdi, edi
- mov eax, r13d
- cmp rdi, rax
+ mov eax, dword ptr [rbx+0x08]
+ sub eax, r15d
+ cdqe
+ mov ecx, r14d
+ cmp rax, rcx
jl G_M43417_IG08
- cmp dword ptr [rbx+0x18], 0
+ cmp dword ptr [rdi+0x18], 0
jne G_M43417_IG07
- mov rdi, rbx
- mov rax, qword ptr [rbx]
+ mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x40]
call [rax+0x30]System.IO.Stream:get_CanWrite():ubyte:this
test eax, eax
je SHORT G_M43417_IG06
- ;; size=67 bbWeight=1 PerfScore 19.00
+ ;; size=62 bbWeight=1 PerfScore 18.75
G_M43417_IG03:
- mov rdi, gword ptr [rbx+0x10]
- cmp byte ptr [rdi], dil
+ mov rdi, gword ptr [rbp-0x30]
+ mov rsi, gword ptr [rdi+0x10]
+ cmp byte ptr [rsi], sil
lea r9, [rbp-0x28]
- mov rsi, r15
- mov edx, r14d
- mov ecx, r13d
+ mov rdi, rsi
+ mov rsi, rbx
+ mov edx, r15d
+ mov ecx, r14d
xor r8d, r8d
mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:Send(ubyte[],int,int,int,byref):int:this
call [rax]System.Net.Sockets.Socket:Send(ubyte[],int,int,int,byref):int:this
cmp dword ptr [rbp-0x28], 0
je SHORT G_M43417_IG05
- ;; size=41 bbWeight=1 PerfScore 12.75
+ ;; size=48 bbWeight=1 PerfScore 14.00
G_M43417_IG04:
mov rdi, 0xD1FFAB1E ; System.Net.Sockets.SocketException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov esi, dword ptr [rbp-0x28]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.SocketException:.ctor(int):this
call [rax]System.Net.Sockets.SocketException:.ctor(int):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=45 bbWeight=0 PerfScore 0.00
G_M43417_IG05:
- add rsp, 32
+ add rsp, 40
pop rbx
- pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=1 PerfScore 3.75
+ ;; size=11 bbWeight=1 PerfScore 3.25
G_M43417_IG06:
mov rdi, 0xD1FFAB1E ; System.InvalidOperationException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_net_readonlystream():System.String
call [rax]System.SR:get_net_readonlystream():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_M43417_IG07:
- mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowObjectDisposedException(System.Object)
call [rax]System.ThrowHelper:ThrowObjectDisposedException(System.Object)
int3
- ;; size=16 bbWeight=0 PerfScore 0.00
+ ;; size=13 bbWeight=0 PerfScore 0.00
G_M43417_IG08:
mov edi, 27
mov esi, 16
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
int3
;; size=23 bbWeight=0 PerfScore 0.00
G_M43417_IG09:
mov edi, 90
mov esi, 13
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int,int)
int3
;; size=23 bbWeight=0 PerfScore 0.00
G_M43417_IG10:
mov edi, 88
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int)
call [rax]System.ThrowHelper:ThrowArgumentNullException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
G_M43417_IG11:
push rbp
push r15
push r14
- push r13
push rbx
- sub rsp, 16
+ push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x40]
- ;; size=23 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
G_M43417_IG12:
mov rdi, 0xD1FFAB1E ; System.Exception
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
mov rsi, rax
test rsi, rsi
jne SHORT G_M43417_IG13
xor eax, eax
jmp SHORT G_M43417_IG14
;; size=34 bbWeight=0 PerfScore 0.00
G_M43417_IG13:
- mov gword ptr [rbp-0x30], rsi
- mov rsi, gword ptr [rbp-0x30]
+ mov gword ptr [rbp-0x38], rsi
+ mov rsi, gword ptr [rbp-0x38]
mov rdi, 0xD1FFAB1E ; System.OutOfMemoryException
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
sete al
movzx rax, al
;; size=39 bbWeight=0 PerfScore 0.00
G_M43417_IG14:
- add rsp, 16
+ add rsp, 8
pop rbx
- pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=13 bbWeight=0 PerfScore 0.00
+ ;; size=11 bbWeight=0 PerfScore 0.00
G_M43417_IG15:
push rbp
push r15
push r14
- push r13
push rbx
- sub rsp, 16
+ push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x40]
- ;; size=23 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
G_M43417_IG16:
mov rax, 0xD1FFAB1E ; code for System.SR:get_net_io_writefailure():System.String
call [rax]System.SR:get_net_io_writefailure():System.String
mov rdi, rax
- mov rsi, gword ptr [rbp-0x30]
+ mov rsi, gword ptr [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.NetworkStream:WrapException(System.String,System.Exception):System.IO.IOException
call [rax]System.Net.Sockets.NetworkStream:WrapException(System.String,System.Exception):System.IO.IOException
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=40 bbWeight=0 PerfScore 0.00
-; Total bytes of code 514, prolog size 39, PerfScore 44.50, instruction count 140, allocated bytes for code 514 (MethodHash=1eb35666) for method System.Net.Sockets.NetworkStream:Write(ubyte[],int,int):this (FullOpts)
+; Total bytes of code 502, prolog size 42, PerfScore 45.75, instruction count 136, allocated bytes for code 502 (MethodHash=1eb35666) for method System.Net.Sockets.NetworkStream:Write(ubyte[],int,int):this (FullOpts)