forked from MihaZupan/runtime-utils
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[X64] [MihaZupan] Drop generic type constraints from Unsafe.BitCast #358
Comments
Top method regressions385 (24.15 % of base) - System.Security.Cryptography.Xml.RSAKeyValue:GetXml(System.Xml.XmlDocument):System.Xml.XmlElement:this ; Assembly listing for method System.Security.Cryptography.Xml.RSAKeyValue:GetXml(System.Xml.XmlDocument):System.Xml.XmlElement:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 34 single block inlinees; 24 inlinees without PGO data
+; 0 inlinees with PGO data; 44 single block inlinees; 32 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T12] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Security.Cryptography.Xml.RSAKeyValue>
+; V00 this [V00,T14] ( 3, 3 ) ref -> rdi this class-hnd single-def <System.Security.Cryptography.Xml.RSAKeyValue>
; V01 arg1 [V01,T00] ( 11, 11 ) ref -> rbx class-hnd single-def <System.Xml.XmlDocument>
; V02 loc0 [V02 ] ( 3, 3 ) struct (64) [rbp-0x68] do-not-enreg[XS] must-init addr-exposed <System.Security.Cryptography.RSAParameters>
-; V03 loc1 [V03,T13] ( 4, 4 ) ref -> r14 class-hnd single-def <System.Xml.XmlElement>
-; V04 loc2 [V04,T09] ( 5, 5 ) ref -> r13 class-hnd single-def <System.Xml.XmlElement>
-; V05 loc3 [V05,T14] ( 4, 4 ) ref -> [rbp-0xA8] class-hnd spill-single-def <System.Xml.XmlElement>
-;* V06 loc4 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Xml.XmlElement>
+; V03 loc1 [V03,T15] ( 4, 4 ) ref -> r14 class-hnd single-def <System.Xml.XmlElement>
+; V04 loc2 [V04,T11] ( 5, 5 ) ref -> r13 class-hnd single-def <System.Xml.XmlElement>
+; V05 loc3 [V05,T16] ( 4, 4 ) ref -> [rbp-0xA8] class-hnd spill-single-def <System.Xml.XmlElement>
+; V06 loc4 [V06,T17] ( 4, 4 ) ref -> r15 class-hnd single-def <System.Xml.XmlElement>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V08 tmp1 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Xml.XmlElement>
-; V09 tmp2 [V09,T40] ( 3, 2 ) ref -> r13 ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.String>
-; V10 tmp3 [V10,T41] ( 3, 2 ) ref -> rdx ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.String>
+; V09 tmp2 [V09,T48] ( 3, 2 ) ref -> r13 ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.String>
+; V10 tmp3 [V10,T49] ( 3, 2 ) ref -> rdx ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.String>
;* V11 tmp4 [V11 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
;* V12 tmp5 [V12 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V13 tmp6 [V13 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V14 tmp7 [V14,T03] ( 10, 5.50) int -> r14 "Inline return value spill temp"
-; V15 tmp8 [V15,T16] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
-;* V16 tmp9 [V16,T58] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V17 tmp10 [V17 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V18 tmp11 [V18 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V19 tmp12 [V19,T61] ( 3, 1.50) ref -> r13 class-hnd "Inline return value spill temp" <System.String>
-;* V20 tmp13 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-; V21 tmp14 [V21,T31] ( 4, 2 ) ref -> r13 class-hnd exact single-def "Inline stloc first use temp" <System.String>
-; V22 tmp15 [V22,T64] ( 2, 1 ) long -> rdx single-def "Inline stloc first use temp"
-; V23 tmp16 [V23,T46] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
-; V24 tmp17 [V24,T47] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
-;* V25 tmp18 [V25 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V26 tmp19 [V26,T32] ( 4, 2 ) ref -> rdx class-hnd "Inline return value spill temp" <System.String>
-; V27 tmp20 [V27,T06] ( 6, 5 ) int -> r14 "Inlining Arg"
-; V28 tmp21 [V28,T28] ( 5, 2 ) int -> r12 single-def "Inline stloc first use temp"
-;* V29 tmp22 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-; V30 tmp23 [V30,T33] ( 4, 2 ) ref -> [rbp-0xB0] class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
-; V31 tmp24 [V31,T65] ( 2, 1 ) long -> rdi single-def "Inline stloc first use temp"
-; V32 tmp25 [V32,T48] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
-; V33 tmp26 [V33,T49] ( 2, 2 ) byref -> rax single-def "Inlining Arg"
-;* V34 tmp27 [V34 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V35 tmp28 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Xml.XmlElement>
-; V36 tmp29 [V36,T42] ( 3, 2 ) ref -> [rbp-0xB8] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.String>
-; V37 tmp30 [V37,T43] ( 3, 2 ) ref -> rdx ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.String>
-;* V38 tmp31 [V38 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
-;* V39 tmp32 [V39 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V40 tmp33 [V40 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V41 tmp34 [V41,T04] ( 10, 5.50) int -> [rbp-0x6C] spill-single-def "Inline return value spill temp"
-; V42 tmp35 [V42,T17] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
-;* V43 tmp36 [V43,T59] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V44 tmp37 [V44 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V45 tmp38 [V45 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V46 tmp39 [V46,T62] ( 3, 1.50) ref -> rcx class-hnd "Inline return value spill temp" <System.String>
-;* V47 tmp40 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-; V48 tmp41 [V48,T34] ( 4, 2 ) ref -> [rbp-0xC0] class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
-; V49 tmp42 [V49,T66] ( 2, 1 ) long -> rdx single-def "Inline stloc first use temp"
-; V50 tmp43 [V50,T50] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
-; V51 tmp44 [V51,T51] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
-;* V52 tmp45 [V52 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V53 tmp46 [V53,T35] ( 4, 2 ) ref -> rdx class-hnd "Inline return value spill temp" <System.String>
-; V54 tmp47 [V54,T07] ( 6, 5 ) int -> [rbp-0x70] spill-single-def "Inlining Arg"
-; V55 tmp48 [V55,T29] ( 5, 2 ) int -> [rbp-0x74] spill-single-def "Inline stloc first use temp"
-;* V56 tmp49 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-; V57 tmp50 [V57,T36] ( 4, 2 ) ref -> [rbp-0xC8] class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
-; V58 tmp51 [V58,T67] ( 2, 1 ) long -> rdi single-def "Inline stloc first use temp"
-; V59 tmp52 [V59,T52] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
-; V60 tmp53 [V60,T53] ( 2, 2 ) byref -> rax single-def "Inlining Arg"
-;* V61 tmp54 [V61 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V62 tmp55 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Xml.XmlElement>
-; V63 tmp56 [V63,T44] ( 3, 2 ) ref -> [rbp-0xD0] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.String>
-; V64 tmp57 [V64,T45] ( 3, 2 ) ref -> rdx ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.String>
-;* V65 tmp58 [V65 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
-;* V66 tmp59 [V66 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V67 tmp60 [V67 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V68 tmp61 [V68,T05] ( 10, 5.50) int -> [rbp-0x78] spill-single-def "Inline return value spill temp"
-; V69 tmp62 [V69,T18] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
-;* V70 tmp63 [V70,T60] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V71 tmp64 [V71 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg"
-;* V72 tmp65 [V72 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-; V73 tmp66 [V73,T63] ( 3, 1.50) ref -> rcx class-hnd "Inline return value spill temp" <System.String>
+; V14 tmp7 [V14,T03] ( 10, 5.50) int -> r14 single-def "Inline return value spill temp"
+; V15 tmp8 [V15,T18] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
+; V16 tmp9 [V16,T72] ( 3, 1.50) ref -> r13 class-hnd "Inline return value spill temp" <System.String>
+;* V17 tmp10 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
+; V18 tmp11 [V18,T36] ( 4, 2 ) ref -> r13 class-hnd exact single-def "Inline stloc first use temp" <System.String>
+; V19 tmp12 [V19,T76] ( 2, 1 ) long -> rdx single-def "Inline stloc first use temp"
+; V20 tmp13 [V20,T56] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
+; V21 tmp14 [V21,T57] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
+;* V22 tmp15 [V22 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V23 tmp16 [V23,T37] ( 4, 2 ) ref -> rdx class-hnd "Inline return value spill temp" <System.String>
+; V24 tmp17 [V24,T07] ( 6, 5 ) int -> r14 "Inlining Arg"
+; V25 tmp18 [V25,T32] ( 5, 2 ) int -> r12 single-def "Inline stloc first use temp"
+;* V26 tmp19 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
+; V27 tmp20 [V27,T38] ( 4, 2 ) ref -> [rbp-0xB0] class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
+; V28 tmp21 [V28,T77] ( 2, 1 ) long -> rdi single-def "Inline stloc first use temp"
+; V29 tmp22 [V29,T58] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
+; V30 tmp23 [V30,T59] ( 2, 2 ) byref -> rax single-def "Inlining Arg"
+;* V31 tmp24 [V31 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V32 tmp25 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Xml.XmlElement>
+; V33 tmp26 [V33,T50] ( 3, 2 ) ref -> [rbp-0xB8] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.String>
+; V34 tmp27 [V34,T51] ( 3, 2 ) ref -> rdx ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.String>
+;* V35 tmp28 [V35 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
+;* V36 tmp29 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V37 tmp30 [V37 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V38 tmp31 [V38,T04] ( 10, 5.50) int -> [rbp-0x6C] spill-single-def "Inline return value spill temp"
+; V39 tmp32 [V39,T19] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
+; V40 tmp33 [V40,T73] ( 3, 1.50) ref -> rcx class-hnd "Inline return value spill temp" <System.String>
+;* V41 tmp34 [V41 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
+; V42 tmp35 [V42,T39] ( 4, 2 ) ref -> [rbp-0xC0] class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
+; V43 tmp36 [V43,T78] ( 2, 1 ) long -> rdx single-def "Inline stloc first use temp"
+; V44 tmp37 [V44,T60] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
+; V45 tmp38 [V45,T61] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
+;* V46 tmp39 [V46 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V47 tmp40 [V47,T40] ( 4, 2 ) ref -> rdx class-hnd "Inline return value spill temp" <System.String>
+; V48 tmp41 [V48,T08] ( 6, 5 ) int -> [rbp-0x70] spill-single-def "Inlining Arg"
+; V49 tmp42 [V49,T33] ( 5, 2 ) int -> [rbp-0x74] spill-single-def "Inline stloc first use temp"
+;* V50 tmp43 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
+; V51 tmp44 [V51,T41] ( 4, 2 ) ref -> [rbp-0xC8] class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
+; V52 tmp45 [V52,T79] ( 2, 1 ) long -> rdi single-def "Inline stloc first use temp"
+; V53 tmp46 [V53,T62] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
+; V54 tmp47 [V54,T63] ( 2, 2 ) byref -> rax single-def "Inlining Arg"
+;* V55 tmp48 [V55 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V56 tmp49 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Xml.XmlElement>
+; V57 tmp50 [V57,T52] ( 3, 2 ) ref -> [rbp-0xD0] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.String>
+; V58 tmp51 [V58,T53] ( 3, 2 ) ref -> rdx ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.String>
+;* V59 tmp52 [V59 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
+;* V60 tmp53 [V60 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V61 tmp54 [V61 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V62 tmp55 [V62,T05] ( 10, 5.50) int -> [rbp-0x78] spill-single-def "Inline return value spill temp"
+; V63 tmp56 [V63,T20] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
+; V64 tmp57 [V64,T74] ( 3, 1.50) ref -> rcx class-hnd "Inline return value spill temp" <System.String>
+;* V65 tmp58 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
+; V66 tmp59 [V66,T42] ( 4, 2 ) ref -> [rbp-0xD8] class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
+; V67 tmp60 [V67,T80] ( 2, 1 ) long -> rdx single-def "Inline stloc first use temp"
+; V68 tmp61 [V68,T64] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
+; V69 tmp62 [V69,T65] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
+;* V70 tmp63 [V70 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V71 tmp64 [V71,T43] ( 4, 2 ) ref -> rdx class-hnd "Inline return value spill temp" <System.String>
+; V72 tmp65 [V72,T09] ( 6, 5 ) int -> [rbp-0x7C] spill-single-def "Inlining Arg"
+; V73 tmp66 [V73,T34] ( 5, 2 ) int -> [rbp-0x80] spill-single-def "Inline stloc first use temp"
;* V74 tmp67 [V74 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-; V75 tmp68 [V75,T37] ( 4, 2 ) ref -> [rbp-0xD8] class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
-; V76 tmp69 [V76,T68] ( 2, 1 ) long -> rdx single-def "Inline stloc first use temp"
-; V77 tmp70 [V77,T54] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
-; V78 tmp71 [V78,T55] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
+; V75 tmp68 [V75,T44] ( 4, 2 ) ref -> [rbp-0xE0] class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
+; V76 tmp69 [V76,T81] ( 2, 1 ) long -> rdi single-def "Inline stloc first use temp"
+; V77 tmp70 [V77,T66] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
+; V78 tmp71 [V78,T67] ( 2, 2 ) byref -> rax single-def "Inlining Arg"
;* V79 tmp72 [V79 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V80 tmp73 [V80,T38] ( 4, 2 ) ref -> rdx class-hnd "Inline return value spill temp" <System.String>
-; V81 tmp74 [V81,T08] ( 6, 5 ) int -> [rbp-0x7C] spill-single-def "Inlining Arg"
-; V82 tmp75 [V82,T30] ( 5, 2 ) int -> [rbp-0x80] spill-single-def "Inline stloc first use temp"
-;* V83 tmp76 [V83 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
-; V84 tmp77 [V84,T39] ( 4, 2 ) ref -> [rbp-0xE0] class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
-; V85 tmp78 [V85,T69] ( 2, 1 ) long -> rdi single-def "Inline stloc first use temp"
-; V86 tmp79 [V86,T56] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
-; V87 tmp80 [V87,T57] ( 2, 2 ) byref -> rax single-def "Inlining Arg"
-;* V88 tmp81 [V88 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V89 tmp82 [V89,T15] ( 4, 4 ) ref -> r15 class-hnd single-def "Inline return value spill temp" <System.Xml.XmlElement>
-; V90 tmp83 [V90 ] ( 3, 3 ) ref -> [rbp-0x88] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.String>
-; V91 tmp84 [V91 ] ( 3, 3 ) ref -> [rbp-0x90] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.String>
-; V92 tmp85 [V92,T02] ( 3, 6 ) ref -> rdi single-def "argument with side effect"
-; V93 tmp86 [V93,T70] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
-; V94 tmp87 [V94,T71] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
-; V95 tmp88 [V95,T72] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
-; V96 tmp89 [V96,T73] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
-; V97 tmp90 [V97,T74] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
-; V98 tmp91 [V98,T75] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
-; V99 tmp92 [V99,T19] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
-; V100 tmp93 [V100,T20] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
-; V101 tmp94 [V101,T21] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
-; V102 tmp95 [V102,T22] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
-; V103 cse0 [V103,T11] ( 5, 5 ) long -> r15 "CSE #08: moderate"
-; V104 cse1 [V104,T26] ( 3, 3 ) long -> [rbp-0x98] spill-single-def "CSE #11: moderate"
-; V105 cse2 [V105,T27] ( 3, 3 ) long -> [rbp-0xA0] spill-single-def "CSE #13: moderate"
-; V106 cse3 [V106,T23] ( 4, 3 ) byref -> r15 "CSE #03: moderate"
-; V107 cse4 [V107,T24] ( 4, 3 ) byref -> r13 "CSE #05: moderate"
-; V108 cse5 [V108,T25] ( 4, 3 ) byref -> [rbp-0xE8] spill-single-def "CSE #10: moderate"
-; V109 cse6 [V109,T10] ( 5, 5 ) ref -> r12 "CSE #06: moderate"
-; V110 cse7 [V110,T01] ( 12, 6 ) ref -> registers multi-def "CSE #02: aggressive"
+;* V80 tmp73 [V80 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Xml.XmlElement>
+; V81 tmp74 [V81,T54] ( 3, 2 ) ref -> [rbp-0xE8] ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.String>
+; V82 tmp75 [V82,T55] ( 3, 2 ) ref -> rdx ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.String>
+;* V83 tmp76 [V83 ] ( 0, 0 ) int -> zero-ref single-def "Inline stloc first use temp"
+;* V84 tmp77 [V84 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+;* V85 tmp78 [V85 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
+; V86 tmp79 [V86,T06] ( 10, 5.50) int -> [rbp-0x84] spill-single-def "Inline return value spill temp"
+; V87 tmp80 [V87,T21] ( 2, 4 ) byref -> rdi single-def "Inlining Arg"
+; V88 tmp81 [V88,T75] ( 3, 1.50) ref -> rcx class-hnd "Inline return value spill temp" <System.String>
+;* V89 tmp82 [V89 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
+; V90 tmp83 [V90,T45] ( 4, 2 ) ref -> [rbp-0xF0] class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
+; V91 tmp84 [V91,T82] ( 2, 1 ) long -> rdx single-def "Inline stloc first use temp"
+; V92 tmp85 [V92,T68] ( 2, 2 ) byref -> rdi single-def "Inlining Arg"
+; V93 tmp86 [V93,T69] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
+;* V94 tmp87 [V94 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V95 tmp88 [V95,T46] ( 4, 2 ) ref -> rdx class-hnd "Inline return value spill temp" <System.String>
+; V96 tmp89 [V96,T10] ( 6, 5 ) int -> [rbp-0x88] spill-single-def "Inlining Arg"
+; V97 tmp90 [V97,T35] ( 5, 2 ) int -> [rbp-0x8C] spill-single-def "Inline stloc first use temp"
+;* V98 tmp91 [V98 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.String>
+; V99 tmp92 [V99,T47] ( 4, 2 ) ref -> [rbp-0xF8] class-hnd exact spill-single-def "Inline stloc first use temp" <System.String>
+; V100 tmp93 [V100,T83] ( 2, 1 ) long -> rdi single-def "Inline stloc first use temp"
+; V101 tmp94 [V101,T70] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
+; V102 tmp95 [V102,T71] ( 2, 2 ) byref -> rax single-def "Inlining Arg"
+;* V103 tmp96 [V103 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+; V104 tmp97 [V104,T02] ( 3, 6 ) ref -> rdi single-def "argument with side effect"
+; V105 tmp98 [V105,T84] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
+; V106 tmp99 [V106,T85] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
+; V107 tmp100 [V107,T86] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
+; V108 tmp101 [V108,T87] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
+; V109 tmp102 [V109,T88] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
+; V110 tmp103 [V110,T89] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
+; V111 tmp104 [V111,T22] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
+; V112 tmp105 [V112,T23] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
+; V113 tmp106 [V113,T90] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
+; V114 tmp107 [V114,T91] ( 2, 0 ) ref -> rdi single-def "argument with side effect"
+; V115 tmp108 [V115,T24] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
+; V116 tmp109 [V116,T25] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
+; V117 cse0 [V117,T13] ( 5, 5 ) long -> r15 "CSE #08: moderate"
+; V118 cse1 [V118,T30] ( 3, 3 ) long -> [rbp-0x98] spill-single-def "CSE #13: moderate"
+; V119 cse2 [V119,T31] ( 3, 3 ) long -> [rbp-0xA0] spill-single-def "CSE #15: moderate"
+; V120 cse3 [V120,T26] ( 4, 3 ) byref -> r15 "CSE #03: moderate"
+; V121 cse4 [V121,T27] ( 4, 3 ) byref -> r13 "CSE #05: moderate"
+; V122 cse5 [V122,T28] ( 4, 3 ) byref -> [rbp-0x100] spill-single-def "CSE #10: moderate"
+; V123 cse6 [V123,T29] ( 4, 3 ) byref -> [rbp-0x108] spill-single-def "CSE #12: moderate"
+; V124 cse7 [V124,T12] ( 5, 5 ) ref -> r12 "CSE #06: moderate"
+; V125 cse8 [V125,T01] ( 16, 8 ) ref -> registers multi-def "CSE #02: aggressive"
;
-; Lcl frame size = 200
+; Lcl frame size = 232
G_M26937_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 200
- lea rbp, [rsp+0xF0]
- vxorps xmm8, xmm8, xmm8
- vmovdqu ymmword ptr [rbp-0x90], ymm8
- vmovdqu ymmword ptr [rbp-0x70], ymm8
- vmovdqu ymmword ptr [rbp-0x50], ymm8
+ sub rsp, 232
+ lea rbp, [rsp+0x110]
xor eax, eax
+ mov qword ptr [rbp-0x68], rax
+ vxorps xmm8, xmm8, xmm8
+ vmovdqu ymmword ptr [rbp-0x60], ymm8
+ vmovdqa xmmword ptr [rbp-0x40], xmm8
mov qword ptr [rbp-0x30], rax
mov rbx, rsi
- ;; size=57 bbWeight=1 PerfScore 14.58
+ ;; size=53 bbWeight=1 PerfScore 13.58
G_M26937_IG02:
mov rdi, gword ptr [rdi+0x08]
lea rsi, [rbp-0x68]
xor edx, edx
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x58]
call [rax+0x20]System.Security.Cryptography.RSA:ExportParameters(ubyte):System.Security.Cryptography.RSAParameters:this
cmp byte ptr [rbx], bl
mov r15, 0xD1FFAB1E
mov rdi, r15
mov esi, 58
mov edx, 8
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
call [rax]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
mov r14d, eax
cmp r14d, -1
je SHORT G_M26937_IG04
;; size=66 bbWeight=1 PerfScore 18.50
G_M26937_IG03:
test r14d, r14d
je SHORT G_M26937_IG04
cmp r14d, 7
jne SHORT G_M26937_IG05
;; size=11 bbWeight=0.50 PerfScore 1.25
G_M26937_IG04:
mov r13, 0xD1FFAB1E ; ''
mov rdx, 0xD1FFAB1E ; 'KeyValue'
jmp G_M26937_IG10
;; size=25 bbWeight=0.50 PerfScore 1.25
G_M26937_IG05:
cmp r14d, 8
- ja G_M26937_IG30
+ ja G_M26937_IG37
cmp r14d, 8
jne SHORT G_M26937_IG06
mov r13, 0xD1FFAB1E ; 'KeyValue'
jmp SHORT G_M26937_IG07
;; size=28 bbWeight=0.50 PerfScore 2.38
G_M26937_IG06:
mov edi, r14d
call System.String:FastAllocateString(int):System.String
mov r13, rax
mov edx, r14d
cmp byte ptr [r13], r13b
lea rdi, bword ptr [r13+0x0C]
mov rsi, r15
add rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
;; size=40 bbWeight=0.50 PerfScore 4.50
G_M26937_IG07:
inc r14d
jne SHORT G_M26937_IG08
mov rdx, 0xD1FFAB1E ; 'KeyValue'
jmp SHORT G_M26937_IG10
;; size=17 bbWeight=0.50 PerfScore 1.75
G_M26937_IG08:
mov r12d, r14d
neg r12d
add r12d, 8
jne SHORT G_M26937_IG09
mov rdx, 0xD1FFAB1E ; ''
jmp SHORT G_M26937_IG10
;; size=24 bbWeight=0.50 PerfScore 2.00
G_M26937_IG09:
cmp r14d, 8
- ja G_M26937_IG31
+ ja G_M26937_IG38
mov edi, r12d
call System.String:FastAllocateString(int):System.String
mov rdx, rax
mov gword ptr [rbp-0xB0], rdx
mov edi, r12d
cmp byte ptr [rdx], dl
lea rsi, bword ptr [rdx+0x0C]
mov eax, r14d
lea rax, bword ptr [r15+2*rax]
lea rdx, [rdi+rdi]
mov rdi, rsi
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
mov r14, gword ptr [rbp-0xB0]
mov rdx, r14
;; size=76 bbWeight=0.50 PerfScore 6.88
G_M26937_IG10:
mov rdi, rbx
mov rsi, r13
mov r12, 0xD1FFAB1E ; 'http://www.w3.org/2000/09/xmldsig#'
mov rcx, r12
mov rax, qword ptr [rbx]
mov r15, qword ptr [rax+0x98]
call [r15+0x10]System.Xml.XmlDocument:CreateElement(System.String,System.String,System.String):System.Xml.XmlElement:this
mov r14, rax
mov r13, 0xD1FFAB1E
mov rdi, r13
mov esi, 58
mov edx, 11
mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
call [rax]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
mov dword ptr [rbp-0x6C], eax
cmp eax, -1
je SHORT G_M26937_IG12
;; size=79 bbWeight=1 PerfScore 14.75
G_M26937_IG11:
test eax, eax
je SHORT G_M26937_IG12
cmp eax, 10
jne SHORT G_M26937_IG13
;; size=9 bbWeight=0.50 PerfScore 1.25
G_M26937_IG12:
mov rdx, 0xD1FFAB1E ; ''
mov r13, rdx
mov rdx, 0xD1FFAB1E ; 'RSAKeyValue'
jmp G_M26937_IG19
;; size=28 bbWeight=0.50 PerfScore 1.38
G_M26937_IG13:
cmp eax, 11
- ja G_M26937_IG32
+ ja G_M26937_IG39
cmp eax, 11
jne SHORT G_M26937_IG14
mov rcx, 0xD1FFAB1E ; 'RSAKeyValue'
jmp SHORT G_M26937_IG15
;; size=26 bbWeight=0.50 PerfScore 2.38
G_M26937_IG14:
mov edi, eax
call System.String:FastAllocateString(int):System.String
mov rcx, rax
mov gword ptr [rbp-0xC0], rcx
mov edx, dword ptr [rbp-0x6C]
cmp byte ptr [rcx], cl
lea rdi, bword ptr [rcx+0x0C]
mov rsi, r13
add rdx, rdx
mov r8, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [r8]System.SpanHelpers:Memmove(byref,byref,ulong)
mov rcx, gword ptr [rbp-0xC0]
mov eax, dword ptr [rbp-0x6C]
;; size=55 bbWeight=0.50 PerfScore 6.38
G_M26937_IG15:
mov gword ptr [rbp-0xB8], rcx
lea edx, [rax+0x01]
mov dword ptr [rbp-0x70], edx
test edx, edx
jne SHORT G_M26937_IG16
mov rcx, gword ptr [rbp-0xB8]
mov rdx, 0xD1FFAB1E ; 'RSAKeyValue'
jmp SHORT G_M26937_IG18
;; size=36 bbWeight=0.50 PerfScore 3.50
G_M26937_IG16:
mov rcx, gword ptr [rbp-0xB8]
mov esi, edx
neg esi
add esi, 11
mov dword ptr [rbp-0x74], esi
test esi, esi
jne SHORT G_M26937_IG17
mov rdx, 0xD1FFAB1E ; ''
jmp SHORT G_M26937_IG18
;; size=33 bbWeight=0.50 PerfScore 3.12
G_M26937_IG17:
cmp edx, 11
- ja G_M26937_IG33
+ ja G_M26937_IG40
mov gword ptr [rbp-0xB8], rcx
mov edi, esi
call System.String:FastAllocateString(int):System.String
mov rdx, rax
mov gword ptr [rbp-0xC8], rdx
mov edi, dword ptr [rbp-0x74]
cmp byte ptr [rdx], dl
lea rsi, bword ptr [rdx+0x0C]
mov eax, dword ptr [rbp-0x70]
lea rax, bword ptr [r13+2*rax]
lea rdx, [rdi+rdi]
mov rdi, rsi
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
mov r13, gword ptr [rbp-0xC8]
mov rdx, r13
mov rcx, gword ptr [rbp-0xB8]
;; size=89 bbWeight=0.50 PerfScore 9.38
G_M26937_IG18:
mov r13, rcx
;; size=3 bbWeight=0.50 PerfScore 0.12
G_M26937_IG19:
mov rdi, rbx
mov rsi, r13
mov rcx, r12
call [r15+0x10]System.Xml.XmlDocument:CreateElement(System.String,System.String,System.String):System.Xml.XmlElement:this
mov r13, rax
mov rax, 0xD1FFAB1E
- mov bword ptr [rbp-0xE8], rax
+ mov bword ptr [rbp-0x100], rax
mov rdi, rax
mov esi, 58
mov edx, 7
mov rcx, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
call [rcx]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
mov dword ptr [rbp-0x78], eax
cmp eax, -1
je SHORT G_M26937_IG21
;; size=66 bbWeight=1 PerfScore 11.50
G_M26937_IG20:
test eax, eax
je SHORT G_M26937_IG21
cmp eax, 6
jne SHORT G_M26937_IG22
;; size=9 bbWeight=0.50 PerfScore 1.25
G_M26937_IG21:
mov rdx, 0xD1FFAB1E ; ''
mov rcx, rdx
mov rdx, 0xD1FFAB1E ; 'Modulus'
jmp G_M26937_IG27
;; size=28 bbWeight=0.50 PerfScore 1.38
G_M26937_IG22:
cmp eax, 7
- ja G_M26937_IG34
+ ja G_M26937_IG41
cmp eax, 7
jne SHORT G_M26937_IG23
mov rcx, 0xD1FFAB1E ; 'Modulus'
jmp SHORT G_M26937_IG24
;; size=26 bbWeight=0.50 PerfScore 2.38
G_M26937_IG23:
mov edi, eax
call System.String:FastAllocateString(int):System.String
mov rcx, rax
mov gword ptr [rbp-0xD8], rcx
mov edx, dword ptr [rbp-0x78]
cmp byte ptr [rcx], cl
lea rdi, bword ptr [rcx+0x0C]
- mov r8, bword ptr [rbp-0xE8]
+ mov r8, bword ptr [rbp-0x100]
mov rsi, r8
add rdx, rdx
mov r9, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [r9]System.SpanHelpers:Memmove(byref,byref,ulong)
mov rcx, gword ptr [rbp-0xD8]
mov eax, dword ptr [rbp-0x78]
;; size=62 bbWeight=0.50 PerfScore 6.88
G_M26937_IG24:
mov gword ptr [rbp-0xD0], rcx
lea edx, [rax+0x01]
mov dword ptr [rbp-0x7C], edx
test edx, edx
jne SHORT G_M26937_IG25
mov rcx, gword ptr [rbp-0xD0]
mov rdx, 0xD1FFAB1E ; 'Modulus'
jmp G_M26937_IG27
;; size=39 bbWeight=0.50 PerfScore 3.50
G_M26937_IG25:
mov rcx, gword ptr [rbp-0xD0]
mov esi, edx
neg esi
add esi, 7
mov dword ptr [rbp-0x80], esi
test esi, esi
jne SHORT G_M26937_IG26
mov rdx, 0xD1FFAB1E ; ''
jmp SHORT G_M26937_IG27
;; size=33 bbWeight=0.50 PerfScore 3.12
G_M26937_IG26:
cmp edx, 7
- ja G_M26937_IG35
+ ja G_M26937_IG42
mov gword ptr [rbp-0xD0], rcx
mov edi, esi
call System.String:FastAllocateString(int):System.String
mov rdx, rax
mov gword ptr [rbp-0xE0], rdx
mov edi, dword ptr [rbp-0x80]
cmp byte ptr [rdx], dl
lea rsi, bword ptr [rdx+0x0C]
mov eax, dword ptr [rbp-0x7C]
- mov r8, bword ptr [rbp-0xE8]
+ mov r8, bword ptr [rbp-0x100]
lea rax, bword ptr [r8+2*rax]
lea rdx, [rdi+rdi]
mov rdi, rsi
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
mov rdx, gword ptr [rbp-0xE0]
mov rcx, gword ptr [rbp-0xD0]
;; size=92 bbWeight=0.50 PerfScore 9.00
G_M26937_IG27:
mov rdi, rbx
mov rsi, rcx
mov rcx, r12
call [r15+0x10]System.Xml.XmlDocument:CreateElement(System.String,System.String,System.String):System.Xml.XmlElement:this
mov gword ptr [rbp-0xA8], rax
mov rdi, gword ptr [rbp-0x40]
mov rcx, 0xD1FFAB1E ; code for System.Convert:ToBase64String(ubyte[]):System.String
call [rcx]System.Convert:ToBase64String(ubyte[]):System.String
mov rsi, rax
mov rdi, rbx
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x90]
mov qword ptr [rbp-0x98], rax
call [rax]System.Xml.XmlDocument:CreateTextNode(System.String):System.Xml.XmlText:this
mov rsi, rax
mov rdi, gword ptr [rbp-0xA8]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x58]
call [rax+0x08]System.Xml.XmlNode:AppendChild(System.Xml.XmlNode):System.Xml.XmlNode:this
mov rdi, r13
mov rsi, gword ptr [rbp-0xA8]
mov rax, qword ptr [r13]
mov rax, qword ptr [rax+0x58]
mov qword ptr [rbp-0xA0], rax
call [rax+0x08]System.Xml.XmlNode:AppendChild(System.Xml.XmlNode):System.Xml.XmlNode:this
- lea rdx, [rbp-0x90]
- lea rsi, [rbp-0x88]
- mov rdi, 0xD1FFAB1E ; 'Exponent'
- mov rax, 0xD1FFAB1E ; code for System.Xml.XmlNode:SplitName(System.String,byref,byref)
- call [rax]System.Xml.XmlNode:SplitName(System.String,byref,byref)
+ mov rax, 0xD1FFAB1E
+ mov bword ptr [rbp-0x108], rax
+ mov rdi, rax
+ mov esi, 58
+ mov edx, 8
+ mov rcx, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
+ call [rcx]System.PackedSpanHelpers:IndexOf[System.SpanHelpers+DontNegate`1[short],System.PackedSpanHelpers+NopTransform](byref,short,int):int
+ mov dword ptr [rbp-0x84], eax
+ cmp eax, -1
+ je SHORT G_M26937_IG29
+ ;; size=162 bbWeight=1 PerfScore 42.50
+G_M26937_IG28:
+ test eax, eax
+ je SHORT G_M26937_IG29
+ cmp eax, 7
+ jne SHORT G_M26937_IG30
+ ;; size=9 bbWeight=0.50 PerfScore 1.25
+G_M26937_IG29:
+ mov rdx, 0xD1FFAB1E ; ''
+ mov rcx, rdx
+ mov rdx, 0xD1FFAB1E ; 'Exponent'
+ jmp G_M26937_IG35
+ ;; size=28 bbWeight=0.50 PerfScore 1.38
+G_M26937_IG30:
+ cmp eax, 8
+ ja G_M26937_IG43
+ cmp eax, 8
+ jne SHORT G_M26937_IG31
+ mov rcx, 0xD1FFAB1E ; 'Exponent'
+ jmp SHORT G_M26937_IG32
+ ;; size=26 bbWeight=0.50 PerfScore 2.38
+G_M26937_IG31:
+ mov edi, eax
+ call System.String:FastAllocateString(int):System.String
+ mov rcx, rax
+ mov gword ptr [rbp-0xF0], rcx
+ mov edx, dword ptr [rbp-0x84]
+ cmp byte ptr [rcx], cl
+ lea rdi, bword ptr [rcx+0x0C]
+ mov r8, bword ptr [rbp-0x108]
+ mov rsi, r8
+ add rdx, rdx
+ mov r9, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+ call [r9]System.SpanHelpers:Memmove(byref,byref,ulong)
+ mov rcx, gword ptr [rbp-0xF0]
+ mov eax, dword ptr [rbp-0x84]
+ ;; size=68 bbWeight=0.50 PerfScore 6.88
+G_M26937_IG32:
+ mov gword ptr [rbp-0xE8], rcx
+ lea edx, [rax+0x01]
+ mov dword ptr [rbp-0x88], edx
+ test edx, edx
+ jne SHORT G_M26937_IG33
+ mov rcx, gword ptr [rbp-0xE8]
+ mov rdx, 0xD1FFAB1E ; 'Exponent'
+ jmp G_M26937_IG35
+ ;; size=42 bbWeight=0.50 PerfScore 3.50
+G_M26937_IG33:
+ mov rcx, gword ptr [rbp-0xE8]
+ mov esi, edx
+ neg esi
+ add esi, 8
+ mov dword ptr [rbp-0x8C], esi
+ test esi, esi
+ jne SHORT G_M26937_IG34
+ mov rdx, 0xD1FFAB1E ; ''
+ jmp SHORT G_M26937_IG35
+ ;; size=36 bbWeight=0.50 PerfScore 3.12
+G_M26937_IG34:
+ cmp edx, 8
+ ja G_M26937_IG44
+ mov gword ptr [rbp-0xE8], rcx
+ mov edi, esi
+ call System.String:FastAllocateString(int):System.String
+ mov rdx, rax
+ mov gword ptr [rbp-0xF8], rdx
+ mov edi, dword ptr [rbp-0x8C]
+ cmp byte ptr [rdx], dl
+ lea rsi, bword ptr [rdx+0x0C]
+ mov eax, dword ptr [rbp-0x88]
+ mov r8, bword ptr [rbp-0x108]
+ lea rax, bword ptr [r8+2*rax]
+ lea rdx, [rdi+rdi]
+ mov rdi, rsi
+ mov rsi, rax
+ mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+ call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+ mov rdx, gword ptr [rbp-0xF8]
+ mov rcx, gword ptr [rbp-0xE8]
+ ;; size=98 bbWeight=0.50 PerfScore 9.00
+G_M26937_IG35:
mov rdi, rbx
- mov rsi, gword ptr [rbp-0x88]
- mov rdx, gword ptr [rbp-0x90]
+ mov rsi, rcx
mov rcx, r12
call [r15+0x10]System.Xml.XmlDocument:CreateElement(System.String,System.String,System.String):System.Xml.XmlElement:this
mov r15, rax
- xor rdi, rdi
- mov gword ptr [rbp-0x88], rdi
- ;; size=181 bbWeight=1 PerfScore 46.50
-G_M26937_IG28:
- mov gword ptr [rbp-0x90], rdi
mov rdi, gword ptr [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.Convert:ToBase64String(ubyte[]):System.String
call [rax]System.Convert:ToBase64String(ubyte[]):System.String
mov rsi, rax
mov rdi, rbx
mov rbx, qword ptr [rbp-0x98]
call [rbx]System.Xml.XmlDocument:CreateTextNode(System.String):System.Xml.XmlText:this
mov rsi, rax
mov rdi, r15
mov rax, qword ptr [r15]
mov rax, qword ptr [rax+0x58]
call [rax+0x08]System.Xml.XmlNode:AppendChild(System.Xml.XmlNode):System.Xml.XmlNode:this
mov rdi, r13
mov rsi, r15
mov rbx, qword ptr [rbp-0xA0]
call [rbx+0x08]System.Xml.XmlNode:AppendChild(System.Xml.XmlNode):System.Xml.XmlNode:this
mov rdi, r14
mov rsi, r13
mov rax, qword ptr [r14]
mov rax, qword ptr [rax+0x58]
call [rax+0x08]System.Xml.XmlNode:AppendChild(System.Xml.XmlNode):System.Xml.XmlNode:this
mov rax, r14
- ;; size=89 bbWeight=1 PerfScore 29.50
-G_M26937_IG29:
- add rsp, 200
+ ;; size=98 bbWeight=1 PerfScore 32.50
+G_M26937_IG36:
+ add rsp, 232
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=1 PerfScore 4.25
-G_M26937_IG30:
+G_M26937_IG37:
mov edi, 0x19E1
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov edx, r14d
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this
call [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int):this
int3
;; size=41 bbWeight=0 PerfScore 0.00
-G_M26937_IG31:
+G_M26937_IG38:
mov edi, 0x19E1
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov esi, r14d
mov edx, r12d
mov rax, 0xD1FFAB1E ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this
call [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int):this
int3
;; size=42 bbWeight=0 PerfScore 0.00
-G_M26937_IG32:
+G_M26937_IG39:
mov edi, 0x28BD
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov edx, dword ptr [rbp-0x6C]
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this
call [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int):this
int3
;; size=41 bbWeight=0 PerfScore 0.00
-G_M26937_IG33:
+G_M26937_IG40:
mov edi, 0x28BD
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov esi, dword ptr [rbp-0x70]
mov edx, dword ptr [rbp-0x74]
mov rax, 0xD1FFAB1E ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this
call [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int):this
int3
;; size=42 bbWeight=0 PerfScore 0.00
-G_M26937_IG34:
+G_M26937_IG41:
mov edi, 0x28D5
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov edx, dword ptr [rbp-0x78]
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this
call [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int):this
int3
;; size=41 bbWeight=0 PerfScore 0.00
-G_M26937_IG35:
+G_M26937_IG42:
mov edi, 0x28D5
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov esi, dword ptr [rbp-0x7C]
mov edx, dword ptr [rbp-0x80]
mov rax, 0xD1FFAB1E ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this
call [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int):this
int3
;; size=42 bbWeight=0 PerfScore 0.00
+G_M26937_IG43:
+ mov edi, 0x28E5
+ mov rsi, 0xD1FFAB1E
+ call CORINFO_HELP_STRCNS
+ mov rdi, rax
+ mov edx, dword ptr [rbp-0x84]
+ xor esi, esi
+ mov rax, 0xD1FFAB1E ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this
+ call [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int):this
+ int3
+ ;; size=44 bbWeight=0 PerfScore 0.00
+G_M26937_IG44:
+ mov edi, 0x28E5
+ mov rsi, 0xD1FFAB1E
+ call CORINFO_HELP_STRCNS
+ mov rdi, rax
+ mov esi, dword ptr [rbp-0x88]
+ mov edx, dword ptr [rbp-0x8C]
+ mov rax, 0xD1FFAB1E ; code for System.String:ThrowSubstringArgumentOutOfRange(int,int):this
+ call [rax]System.String:ThrowSubstringArgumentOutOfRange(int,int):this
+ int3
+ ;; size=48 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1594, prolog size 54, PerfScore 214.58, instruction count 367, allocated bytes for code 1594 (MethodHash=823f96c6) for method System.Security.Cryptography.Xml.RSAKeyValue:GetXml(System.Xml.XmlDocument):System.Xml.XmlElement:this (FullOpts)
+; Total bytes of code 1979, prolog size 50, PerfScore 240.08, instruction count 451, allocated bytes for code 1979 (MethodHash=823f96c6) for method System.Security.Cryptography.Xml.RSAKeyValue:GetXml(System.Xml.XmlDocument):System.Xml.XmlElement:this (FullOpts) Note: some changes were skipped as they were too large to fit into a comment. Larger list of diffs: https://gist.github.com/MihuBot/620b83694f4bc014b05b7acfe04ab187 |
Top method improvements-128 (-16.91 % of base) - System.Net.Http.Headers.UriHeaderParser:DecodeUtf8FromString(System.String):System.String ; Assembly listing for method System.Net.Http.Headers.UriHeaderParser:DecodeUtf8FromString(System.String):System.String (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
-; 0 inlinees with PGO data; 43 single block inlinees; 15 inlinees without PGO data
+; 0 inlinees with PGO data; 43 single block inlinees; 27 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 12, 15 ) ref -> [rbp-0x40] class-hnd EH-live single-def <System.String>
+; V00 arg0 [V00,T01] ( 12, 15 ) ref -> [rbp-0x30] class-hnd EH-live single-def <System.String>
;* V01 loc0 [V01 ] ( 0, 0 ) int -> zero-ref
;* V02 loc1 [V02 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op <System.Span`1[ubyte]>
;* V03 loc2 [V03 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[ubyte]>
-; V04 loc3 [V04,T27] ( 3, 3 ) int -> r15
+; V04 loc3 [V04,T23] ( 3, 3 ) int -> r15
;* V05 loc4 [V05 ] ( 0, 0 ) struct (16) zero-ref <System.Span`1[ubyte]>
; V06 loc5 [V06,T00] ( 6, 25 ) int -> rdx
;* V07 loc6 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Text.Encoding>
-; V08 loc7 [V08,T31] ( 2, 2 ) ref -> rax class-hnd exact single-def <System.String>
+; V08 loc7 [V08,T27] ( 2, 2 ) ref -> rax class-hnd exact single-def <System.String>
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V10 tmp1 [V10 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
;* V11 tmp2 [V11 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-; V12 tmp3 [V12,T09] ( 3, 6 ) ref -> rbx class-hnd exact single-def "impAppendStmt" <System.Text.EncoderExceptionFallback>
+; V12 tmp3 [V12,T05] ( 3, 6 ) ref -> rbx class-hnd exact single-def "impAppendStmt" <System.Text.EncoderExceptionFallback>
;* V13 tmp4 [V13 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret "Return value temp for multireg return" <System.ReadOnlySpan`1[ubyte]>
;* V14 tmp5 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" <System.ArgumentException>
;* V15 tmp6 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V16 tmp7 [V16 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
;* V17 tmp8 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V18 tmp9 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V19 tmp10 [V19,T19] ( 2, 4 ) byref -> rax single-def "Inlining Arg"
-; V20 tmp11 [V20,T22] ( 2, 4 ) int -> rbx "Inlining Arg"
-; V21 tmp12 [V21,T08] ( 6, 6 ) int -> rax "Inline return value spill temp"
-; V22 tmp13 [V22 ] ( 2, 4 ) ushort -> [rbp-0x2C] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V23 tmp14 [V23 ] ( 2, 4 ) ushort -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+; V19 tmp10 [V19,T11] ( 2, 4 ) byref -> rcx single-def "Inlining Arg"
+; V20 tmp11 [V20,T15] ( 2, 4 ) int -> rbx "Inlining Arg"
+; V21 tmp12 [V21,T04] ( 6, 6 ) int -> rax "Inline return value spill temp"
+;* V22 tmp13 [V22 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V23 tmp14 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V24 tmp15 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V25 tmp16 [V25 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V26 tmp17 [V26 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V27 tmp18 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V28 tmp19 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V29 tmp20 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V27 tmp18 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V28 tmp19 [V28 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V29 tmp20 [V29 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
;* V30 tmp21 [V30 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V31 tmp22 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V32 tmp23 [V32 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V33 tmp24 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V34 tmp25 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V35 tmp26 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V36 tmp27 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V37 tmp28 [V37 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V38 tmp29 [V38 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V39 tmp30 [V39 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V40 tmp31 [V40 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V41 tmp32 [V41 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V42 tmp33 [V42 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V43 tmp34 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V44 tmp35 [V44 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V45 tmp36 [V45,T03] ( 6, 12 ) ushort -> rsi "Inlining Arg"
-; V46 tmp37 [V46,T06] ( 5, 10 ) ushort -> rdx "Inlining Arg"
-;* V47 tmp38 [V47 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V48 tmp39 [V48,T28] ( 3, 3 ) int -> rax "Inline return value spill temp"
-;* V49 tmp40 [V49 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V50 tmp41 [V50 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V51 tmp42 [V51 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
+;* V33 tmp24 [V33 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V34 tmp25 [V34 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V35 tmp26 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V36 tmp27 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V37 tmp28 [V37 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V38 tmp29 [V38 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V39 tmp30 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V40 tmp31 [V40 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V41 tmp32 [V41 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V42 tmp33 [V42 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V43 tmp34 [V43 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V44 tmp35 [V44 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V45 tmp36 [V45 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V46 tmp37 [V46 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V47 tmp38 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V48 tmp39 [V48 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
+;* V49 tmp40 [V49 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+; V50 tmp41 [V50,T33] ( 2, 2 ) int -> rax "Inline return value spill temp"
+;* V51 tmp42 [V51 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
;* V52 tmp43 [V52 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
;* V53 tmp44 [V53 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V54 tmp45 [V54 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V54 tmp45 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
;* V55 tmp46 [V55 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V56 tmp47 [V56 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V57 tmp48 [V57 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V58 tmp49 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V59 tmp50 [V59 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V60 tmp51 [V60 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V61 tmp52 [V61 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V62 tmp53 [V62 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V63 tmp54 [V63 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V64 tmp55 [V64 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V65 tmp56 [V65 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
+;* V56 tmp47 [V56 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V57 tmp48 [V57 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V58 tmp49 [V58 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V59 tmp50 [V59 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V60 tmp51 [V60 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V61 tmp52 [V61 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V62 tmp53 [V62 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V63 tmp54 [V63 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V64 tmp55 [V64 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V65 tmp56 [V65 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V66 tmp57 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V67 tmp58 [V67 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V68 tmp59 [V68 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V69 tmp60 [V69 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V70 tmp61 [V70 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V71 tmp62 [V71 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V72 tmp63 [V72 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V73 tmp64 [V73 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V74 tmp65 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V75 tmp66 [V75 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
-;* V76 tmp67 [V76 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
-;* V77 tmp68 [V77 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V78 tmp69 [V78,T20] ( 2, 4 ) byref -> r8 single-def "Inlining Arg"
-; V79 tmp70 [V79,T23] ( 2, 4 ) int -> rcx "Inlining Arg"
-; V80 tmp71 [V80,T37] ( 2, 2 ) int -> rax "Inline return value spill temp"
-; V81 tmp72 [V81 ] ( 2, 4 ) ushort -> [rbp-0x34] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
-; V82 tmp73 [V82 ] ( 2, 4 ) ushort -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V67 tmp58 [V67 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
+;* V68 tmp59 [V68 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
+;* V69 tmp60 [V69 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
+; V70 tmp61 [V70,T12] ( 2, 4 ) byref -> rcx single-def "Inlining Arg"
+; V71 tmp62 [V71,T16] ( 2, 4 ) int -> rsi "Inlining Arg"
+; V72 tmp63 [V72,T34] ( 2, 2 ) int -> rax "Inline return value spill temp"
+;* V73 tmp64 [V73 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V74 tmp65 [V74 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V75 tmp66 [V75 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V76 tmp67 [V76 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V77 tmp68 [V77 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V78 tmp69 [V78 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V79 tmp70 [V79 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V80 tmp71 [V80 ] ( 0, 0 ) long -> zero-ref "impAppendStmt"
+;* V81 tmp72 [V81 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V82 tmp73 [V82 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V83 tmp74 [V83 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V84 tmp75 [V84 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V85 tmp76 [V85 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
+;* V84 tmp75 [V84 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V85 tmp76 [V85 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
;* V86 tmp77 [V86 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V87 tmp78 [V87 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V88 tmp79 [V88 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V89 tmp80 [V89 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V90 tmp81 [V90 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V91 tmp82 [V91 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V92 tmp83 [V92 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V93 tmp84 [V93 ] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
-;* V94 tmp85 [V94 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V95 tmp86 [V95 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V96 tmp87 [V96 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V88 tmp79 [V88 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
+;* V89 tmp80 [V89 ] ( 0, 0 ) int -> zero-ref "impAppendStmt"
+;* V90 tmp81 [V90 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V91 tmp82 [V91 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V92 tmp83 [V92 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V93 tmp84 [V93 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V94 tmp85 [V94 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
+;* V95 tmp86 [V95 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V96 tmp87 [V96 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V97 tmp88 [V97 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
-;* V98 tmp89 [V98 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V99 tmp90 [V99 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V100 tmp91 [V100 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V101 tmp92 [V101 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op "Inlining Arg"
-;* V102 tmp93 [V102 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V103 tmp94 [V103 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
-; V104 tmp95 [V104,T04] ( 6, 12 ) ushort -> rsi "Inlining Arg"
-; V105 tmp96 [V105,T07] ( 5, 10 ) ushort -> rdx "Inlining Arg"
-;* V106 tmp97 [V106 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-; V107 tmp98 [V107,T29] ( 3, 3 ) int -> rax "Inline return value spill temp"
-;* V108 tmp99 [V108 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V109 tmp100 [V109 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V110 tmp101 [V110 ] ( 0, 0 ) byref -> zero-ref single-def "Inline stloc first use temp"
-;* V111 tmp102 [V111 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V112 tmp103 [V112 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
-;* V113 tmp104 [V113 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V114 tmp105 [V114 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
-;* V115 tmp106 [V115 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
-;* V116 tmp107 [V116 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg"
+;* V98 tmp89 [V98 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+; V99 tmp90 [V99,T13] ( 2, 4 ) byref -> rcx single-def "Inlining Arg"
+; V100 tmp91 [V100,T17] ( 2, 4 ) int -> rsi "Inlining Arg"
+; V101 tmp92 [V101,T35] ( 2, 2 ) int -> rax "Inline return value spill temp"
+;* V102 tmp93 [V102 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
+;* V103 tmp94 [V103 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V104 tmp95 [V104 ] ( 0, 0 ) ushort -> zero-ref "Inline stloc first use temp"
+;* V105 tmp96 [V105 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V106 tmp97 [V106 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V107 tmp98 [V107 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V108 tmp99 [V108 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V109 tmp100 [V109 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V110 tmp101 [V110 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
+;* V111 tmp102 [V111 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
+;* V112 tmp103 [V112 ] ( 0, 0 ) ushort -> zero-ref ld-addr-op "Inlining Arg"
+;* V113 tmp104 [V113 ] ( 0, 0 ) ushort -> zero-ref do-not-enreg[X] addr-exposed ld-addr-op "Inlining Arg"
+;* V114 tmp105 [V114 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
+;* V115 tmp106 [V115 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
+;* V116 tmp107 [V116 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
;* V117 tmp108 [V117 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V118 tmp109 [V118 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V119 tmp110 [V119 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V120 tmp111 [V120 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V121 tmp112 [V121 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V122 tmp113 [V122 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V123 tmp114 [V123 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V124 tmp115 [V124 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg"
-;* V125 tmp116 [V125 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;* V126 tmp117 [V126 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-;* V127 tmp118 [V127 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V128 tmp119 [V128 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-;* V129 tmp120 [V129 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
-;* V130 tmp121 [V130 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp"
-;* V131 tmp122 [V131 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V132 tmp123 [V132 ] ( 0, 0 ) long -> zero-ref ld-addr-op "Inlining Arg"
-;* V133 tmp124 [V133 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-; V134 tmp125 [V134,T24] ( 2, 4 ) long -> r14 "Inlining Arg"
-; V135 tmp126 [V135,T10] ( 3, 6 ) ref -> rax class-hnd exact single-def "Inlining Arg" <ubyte[]>
-;* V136 tmp127 [V136 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-; V137 tmp128 [V137,T11] ( 3, 6 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.Text.DecoderExceptionFallback>
-; V138 tmp129 [V138,T21] ( 2, 4 ) ref -> r12 class-hnd single-def "dup spill" <System.Text.Encoding>
-; V139 tmp130 [V139,T14] ( 4, 4 ) ref -> r12
-; V140 tmp131 [V140,T12] ( 3, 6 ) byref -> r14 single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-; V141 tmp132 [V141,T13] ( 3, 6 ) int -> r15 "field V02._length (fldOffset=0x8)" P-INDEP
-; V142 tmp133 [V142,T26] ( 3, 3 ) byref -> r14 "field V03._reference (fldOffset=0x0)" P-INDEP
-; V143 tmp134 [V143,T30] ( 3, 3 ) int -> r15 "field V03._length (fldOffset=0x8)" P-INDEP
-;* V144 tmp135 [V144 ] ( 0, 0 ) byref -> zero-ref "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V145 tmp136 [V145 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
-;* V146 tmp137 [V146 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
-;* V147 tmp138 [V147 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
-;* V148 tmp139 [V148 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
-;* V149 tmp140 [V149 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
-; V150 tmp141 [V150,T32] ( 2, 2 ) byref -> rsi "field V13._reference (fldOffset=0x0)" P-INDEP
-; V151 tmp142 [V151,T38] ( 2, 2 ) int -> rdx "field V13._length (fldOffset=0x8)" P-INDEP
-; V152 tmp143 [V152,T33] ( 2, 2 ) byref -> r14 single-def "field V15._reference (fldOffset=0x0)" P-INDEP
-; V153 tmp144 [V153,T39] ( 2, 2 ) int -> r15 "field V15._length (fldOffset=0x8)" P-INDEP
-; V154 tmp145 [V154,T15] ( 4, 4 ) byref -> rax "field V16._reference (fldOffset=0x0)" P-INDEP
-; V155 tmp146 [V155,T17] ( 4, 4 ) int -> rcx "field V16._length (fldOffset=0x8)" P-INDEP
-; V156 tmp147 [V156,T34] ( 2, 2 ) byref -> rax single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-; V157 tmp148 [V157,T40] ( 2, 2 ) int -> rcx "field V17._length (fldOffset=0x8)" P-INDEP
-;* V158 tmp149 [V158 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
-;* V159 tmp150 [V159 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
-;* V160 tmp151 [V160 ] ( 0, 0 ) byref -> zero-ref single-def "field V29._reference (fldOffset=0x0)" P-INDEP
-;* V161 tmp152 [V161 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP
-;* V162 tmp153 [V162 ] ( 0, 0 ) byref -> zero-ref "field V35._reference (fldOffset=0x0)" P-INDEP
-;* V163 tmp154 [V163 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP
-;* V164 tmp155 [V164 ] ( 0, 0 ) byref -> zero-ref single-def "field V43._reference (fldOffset=0x0)" P-INDEP
-;* V165 tmp156 [V165 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
-;* V166 tmp157 [V166 ] ( 0, 0 ) byref -> zero-ref "field V58._reference (fldOffset=0x0)" P-INDEP
-;* V167 tmp158 [V167 ] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP
-;* V168 tmp159 [V168 ] ( 0, 0 ) byref -> zero-ref "field V66._reference (fldOffset=0x0)" P-INDEP
-;* V169 tmp160 [V169 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP
-;* V170 tmp161 [V170 ] ( 0, 0 ) byref -> zero-ref "field V74._reference (fldOffset=0x0)" P-INDEP
-;* V171 tmp162 [V171 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP
-; V172 tmp163 [V172,T16] ( 4, 4 ) byref -> r8 "field V75._reference (fldOffset=0x0)" P-INDEP
-; V173 tmp164 [V173,T18] ( 4, 4 ) int -> rcx "field V75._length (fldOffset=0x8)" P-INDEP
-; V174 tmp165 [V174,T35] ( 2, 2 ) byref -> r8 single-def "field V76._reference (fldOffset=0x0)" P-INDEP
-; V175 tmp166 [V175,T41] ( 2, 2 ) int -> rcx "field V76._length (fldOffset=0x8)" P-INDEP
-;* V176 tmp167 [V176 ] ( 0, 0 ) byref -> zero-ref single-def "field V77._reference (fldOffset=0x0)" P-INDEP
-;* V177 tmp168 [V177 ] ( 0, 0 ) int -> zero-ref "field V77._length (fldOffset=0x8)" P-INDEP
-;* V178 tmp169 [V178 ] ( 0, 0 ) byref -> zero-ref single-def "field V88._reference (fldOffset=0x0)" P-INDEP
-;* V179 tmp170 [V179 ] ( 0, 0 ) int -> zero-ref "field V88._length (fldOffset=0x8)" P-INDEP
-;* V180 tmp171 [V180 ] ( 0, 0 ) byref -> zero-ref "field V94._reference (fldOffset=0x0)" P-INDEP
-;* V181 tmp172 [V181 ] ( 0, 0 ) int -> zero-ref "field V94._length (fldOffset=0x8)" P-INDEP
-;* V182 tmp173 [V182 ] ( 0, 0 ) byref -> zero-ref single-def "field V102._reference (fldOffset=0x0)" P-INDEP
-;* V183 tmp174 [V183 ] ( 0, 0 ) int -> zero-ref "field V102._length (fldOffset=0x8)" P-INDEP
-;* V184 tmp175 [V184 ] ( 0, 0 ) byref -> zero-ref "field V117._reference (fldOffset=0x0)" P-INDEP
-;* V185 tmp176 [V185 ] ( 0, 0 ) int -> zero-ref "field V117._length (fldOffset=0x8)" P-INDEP
-;* V186 tmp177 [V186 ] ( 0, 0 ) byref -> zero-ref "field V125._reference (fldOffset=0x0)" P-INDEP
-;* V187 tmp178 [V187 ] ( 0, 0 ) int -> zero-ref "field V125._length (fldOffset=0x8)" P-INDEP
-;* V188 tmp179 [V188 ] ( 0, 0 ) byref -> zero-ref "field V133._reference (fldOffset=0x0)" P-INDEP
-;* V189 tmp180 [V189 ] ( 0, 0 ) int -> zero-ref "field V133._length (fldOffset=0x8)" P-INDEP
-; V190 tmp181 [V190,T36] ( 2, 2 ) byref -> r14 "field V136._reference (fldOffset=0x0)" P-INDEP
-; V191 tmp182 [V191,T42] ( 2, 2 ) int -> r15 "field V136._length (fldOffset=0x8)" P-INDEP
-; V192 tmp183 [V192,T25] ( 2, 4 ) int -> rdi "argument with side effect"
-; V193 GsCookie [V193 ] ( 1, 1 ) long -> [rbp-0x48] do-not-enreg[X] addr-exposed "GSSecurityCookie"
-; V194 PSPSym [V194,T43] ( 1, 1 ) long -> [rbp-0x50] do-not-enreg[V] "PSPSym"
-; V195 cse0 [V195,T02] ( 10, 17 ) int -> rbx multi-def "CSE #01: aggressive"
-; V196 cse1 [V196,T05] ( 3, 12 ) long -> rsi "CSE #03: aggressive"
+; V118 tmp109 [V118,T18] ( 2, 4 ) long -> r14 "Inlining Arg"
+; V119 tmp110 [V119,T06] ( 3, 6 ) ref -> rax class-hnd exact single-def "Inlining Arg" <ubyte[]>
+;* V120 tmp111 [V120 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+; V121 tmp112 [V121,T07] ( 3, 6 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.Text.DecoderExceptionFallback>
+; V122 tmp113 [V122,T14] ( 2, 4 ) ref -> r12 class-hnd single-def "dup spill" <System.Text.Encoding>
+; V123 tmp114 [V123,T10] ( 4, 4 ) ref -> r12
+; V124 tmp115 [V124,T08] ( 3, 6 ) byref -> r14 single-def "field V02._reference (fldOffset=0x0)" P-INDEP
+; V125 tmp116 [V125,T09] ( 3, 6 ) int -> r15 "field V02._length (fldOffset=0x8)" P-INDEP
+; V126 tmp117 [V126,T20] ( 3, 3 ) byref -> r14 "field V03._reference (fldOffset=0x0)" P-INDEP
+; V127 tmp118 [V127,T24] ( 3, 3 ) int -> r15 "field V03._length (fldOffset=0x8)" P-INDEP
+;* V128 tmp119 [V128 ] ( 0, 0 ) byref -> zero-ref "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V129 tmp120 [V129 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
+;* V130 tmp121 [V130 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP
+;* V131 tmp122 [V131 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
+;* V132 tmp123 [V132 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
+;* V133 tmp124 [V133 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
+; V134 tmp125 [V134,T28] ( 2, 2 ) byref -> rsi "field V13._reference (fldOffset=0x0)" P-INDEP
+; V135 tmp126 [V135,T36] ( 2, 2 ) int -> rdx "field V13._length (fldOffset=0x8)" P-INDEP
+; V136 tmp127 [V136,T29] ( 2, 2 ) byref -> r14 single-def "field V15._reference (fldOffset=0x0)" P-INDEP
+; V137 tmp128 [V137,T37] ( 2, 2 ) int -> r15 "field V15._length (fldOffset=0x8)" P-INDEP
+; V138 tmp129 [V138,T21] ( 3, 3 ) byref -> rcx "field V16._reference (fldOffset=0x0)" P-INDEP
+; V139 tmp130 [V139,T25] ( 3, 3 ) int -> rsi "field V16._length (fldOffset=0x8)" P-INDEP
+; V140 tmp131 [V140,T30] ( 2, 2 ) byref -> rcx single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+; V141 tmp132 [V141,T38] ( 2, 2 ) int -> rsi "field V17._length (fldOffset=0x8)" P-INDEP
+;* V142 tmp133 [V142 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
+;* V143 tmp134 [V143 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
+;* V144 tmp135 [V144 ] ( 0, 0 ) byref -> zero-ref single-def "field V27._reference (fldOffset=0x0)" P-INDEP
+;* V145 tmp136 [V145 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP
+;* V146 tmp137 [V146 ] ( 0, 0 ) byref -> zero-ref "field V39._reference (fldOffset=0x0)" P-INDEP
+;* V147 tmp138 [V147 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
+;* V148 tmp139 [V148 ] ( 0, 0 ) byref -> zero-ref single-def "field V47._reference (fldOffset=0x0)" P-INDEP
+;* V149 tmp140 [V149 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP
+;* V150 tmp141 [V150 ] ( 0, 0 ) byref -> zero-ref "field V54._reference (fldOffset=0x0)" P-INDEP
+;* V151 tmp142 [V151 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
+;* V152 tmp143 [V152 ] ( 0, 0 ) byref -> zero-ref "field V60._reference (fldOffset=0x0)" P-INDEP
+;* V153 tmp144 [V153 ] ( 0, 0 ) int -> zero-ref "field V60._length (fldOffset=0x8)" P-INDEP
+;* V154 tmp145 [V154 ] ( 0, 0 ) byref -> zero-ref "field V66._reference (fldOffset=0x0)" P-INDEP
+;* V155 tmp146 [V155 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP
+; V156 tmp147 [V156,T22] ( 3, 3 ) byref -> rcx "field V67._reference (fldOffset=0x0)" P-INDEP
+; V157 tmp148 [V157,T26] ( 3, 3 ) int -> rsi "field V67._length (fldOffset=0x8)" P-INDEP
+; V158 tmp149 [V158,T31] ( 2, 2 ) byref -> rcx single-def "field V68._reference (fldOffset=0x0)" P-INDEP
+; V159 tmp150 [V159,T39] ( 2, 2 ) int -> rsi "field V68._length (fldOffset=0x8)" P-INDEP
+;* V160 tmp151 [V160 ] ( 0, 0 ) byref -> zero-ref single-def "field V69._reference (fldOffset=0x0)" P-INDEP
+;* V161 tmp152 [V161 ] ( 0, 0 ) int -> zero-ref "field V69._length (fldOffset=0x8)" P-INDEP
+;* V162 tmp153 [V162 ] ( 0, 0 ) byref -> zero-ref single-def "field V78._reference (fldOffset=0x0)" P-INDEP
+;* V163 tmp154 [V163 ] ( 0, 0 ) int -> zero-ref "field V78._length (fldOffset=0x8)" P-INDEP
+;* V164 tmp155 [V164 ] ( 0, 0 ) byref -> zero-ref "field V90._reference (fldOffset=0x0)" P-INDEP
+;* V165 tmp156 [V165 ] ( 0, 0 ) int -> zero-ref "field V90._length (fldOffset=0x8)" P-INDEP
+;* V166 tmp157 [V166 ] ( 0, 0 ) byref -> zero-ref single-def "field V98._reference (fldOffset=0x0)" P-INDEP
+;* V167 tmp158 [V167 ] ( 0, 0 ) int -> zero-ref "field V98._length (fldOffset=0x8)" P-INDEP
+;* V168 tmp159 [V168 ] ( 0, 0 ) byref -> zero-ref "field V105._reference (fldOffset=0x0)" P-INDEP
+;* V169 tmp160 [V169 ] ( 0, 0 ) int -> zero-ref "field V105._length (fldOffset=0x8)" P-INDEP
+;* V170 tmp161 [V170 ] ( 0, 0 ) byref -> zero-ref "field V111._reference (fldOffset=0x0)" P-INDEP
+;* V171 tmp162 [V171 ] ( 0, 0 ) int -> zero-ref "field V111._length (fldOffset=0x8)" P-INDEP
+;* V172 tmp163 [V172 ] ( 0, 0 ) byref -> zero-ref "field V117._reference (fldOffset=0x0)" P-INDEP
+;* V173 tmp164 [V173 ] ( 0, 0 ) int -> zero-ref "field V117._length (fldOffset=0x8)" P-INDEP
+; V174 tmp165 [V174,T32] ( 2, 2 ) byref -> r14 "field V120._reference (fldOffset=0x0)" P-INDEP
+; V175 tmp166 [V175,T40] ( 2, 2 ) int -> r15 "field V120._length (fldOffset=0x8)" P-INDEP
+; V176 tmp167 [V176,T19] ( 2, 4 ) int -> rdi "argument with side effect"
+; V177 GsCookie [V177 ] ( 1, 1 ) long -> [rbp-0x38] do-not-enreg[X] addr-exposed "GSSecurityCookie"
+; V178 PSPSym [V178,T41] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[V] "PSPSym"
+; V179 cse0 [V179,T02] ( 10, 17 ) int -> rbx multi-def "CSE #01: aggressive"
+; V180 cse1 [V180,T03] ( 3, 12 ) long -> rsi "CSE #03: aggressive"
;
-; Lcl frame size = 40
+; Lcl frame size = 24
G_M22867_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 40
- lea rbp, [rsp+0x50]
- mov qword ptr [rbp-0x50], rsp
- mov qword ptr [rbp-0x48], 0xD1FFAB1E
- mov gword ptr [rbp-0x40], rdi
+ sub rsp, 24
+ lea rbp, [rsp+0x40]
+ mov qword ptr [rbp-0x40], rsp
+ mov qword ptr [rbp-0x38], 0xD1FFAB1E
+ mov gword ptr [rbp-0x30], rdi
;; size=35 bbWeight=1 PerfScore 9.75
G_M22867_IG02:
mov rax, 0xD1FFAB1E ; code for System.String:IsNullOrWhiteSpace(System.String):ubyte
call [rax]System.String:IsNullOrWhiteSpace(System.String):ubyte
test eax, eax
- jne G_M22867_IG22
- mov rdi, gword ptr [rbp-0x40]
+ jne G_M22867_IG18
+ mov rdi, gword ptr [rbp-0x30]
test rdi, rdi
jne SHORT G_M22867_IG03
- xor rax, rax
- xor ecx, ecx
+ xor rcx, rcx
+ xor esi, esi
jmp SHORT G_M22867_IG04
- align [1 bytes for IG15]
- ;; size=36 bbWeight=1 PerfScore 9.25
+ align [13 bytes for IG11]
+ ;; size=48 bbWeight=1 PerfScore 9.25
G_M22867_IG03:
- lea rax, bword ptr [rdi+0x0C]
+ lea rcx, bword ptr [rdi+0x0C]
mov ebx, dword ptr [rdi+0x08]
- mov ecx, ebx
- mov rdi, gword ptr [rbp-0x40]
- ;; size=13 bbWeight=1 PerfScore 3.75
+ mov esi, ebx
+ ;; size=9 bbWeight=1 PerfScore 2.75
G_M22867_IG04:
- xor edx, edx
- mov dword ptr [rbp-0x2C], edx
- mov dword ptr [rbp-0x30], 127
- movzx rsi, word ptr [rbp-0x2C]
- movzx rdx, word ptr [rbp-0x30]
- lea r8d, [rsi-0x01]
- cmp r8d, 254
- jae SHORT G_M22867_IG05
- lea r8d, [rdx-0x01]
- cmp r8d, 254
- jae SHORT G_M22867_IG05
- cmp edx, esi
- jl SHORT G_M22867_IG05
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
- mov rdi, rax
- mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
- call [rax]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
- jmp SHORT G_M22867_IG06
- ;; size=77 bbWeight=1 PerfScore 15.25
-G_M22867_IG05:
- mov rdi, rax
+ mov rdi, rcx
+ mov ecx, esi
+ xor esi, esi
+ mov edx, 127
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
call [rax]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=15 bbWeight=1 PerfScore 3.50
-G_M22867_IG06:
test eax, eax
- jl G_M22867_IG22
- mov rdi, gword ptr [rbp-0x40]
+ jl G_M22867_IG18
+ mov rdi, gword ptr [rbp-0x30]
test rdi, rdi
- jne SHORT G_M22867_IG07
+ jne SHORT G_M22867_IG05
test eax, eax
- jne G_M22867_IG26
- xor r8, r8
- xor ecx, ecx
- jmp SHORT G_M22867_IG08
- ;; size=32 bbWeight=1 PerfScore 7.25
-G_M22867_IG07:
+ jne G_M22867_IG22
+ xor rcx, rcx
+ xor esi, esi
+ jmp SHORT G_M22867_IG06
+ ;; size=55 bbWeight=1 PerfScore 11.50
+G_M22867_IG05:
mov ebx, dword ptr [rdi+0x08]
cmp ebx, eax
- jb G_M22867_IG26
- mov r8d, eax
- lea r8, bword ptr [rdi+2*r8+0x0C]
- mov ecx, ebx
- sub ecx, eax
- mov rdi, gword ptr [rbp-0x40]
- ;; size=27 bbWeight=1 PerfScore 6.00
-G_M22867_IG08:
- xor edx, edx
- mov dword ptr [rbp-0x34], edx
- mov dword ptr [rbp-0x38], 255
- movzx rsi, word ptr [rbp-0x34]
- movzx rdx, word ptr [rbp-0x38]
- lea eax, [rsi-0x01]
- cmp eax, 254
- jae SHORT G_M22867_IG09
- lea eax, [rdx-0x01]
- cmp eax, 254
- jae SHORT G_M22867_IG09
- cmp edx, esi
- jl SHORT G_M22867_IG09
- sub edx, esi
- movsx rdx, dx
- movsx rsi, si
- mov rdi, r8
- mov rax, 0xD1FFAB1E ; code for System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
- call [rax]System.PackedSpanHelpers:IndexOfAnyInRange[System.SpanHelpers+Negate`1[short]](byref,short,short,int):int
- jmp SHORT G_M22867_IG10
- ;; size=71 bbWeight=1 PerfScore 15.25
-G_M22867_IG09:
- mov rdi, r8
+ jb G_M22867_IG22
+ mov ecx, eax
+ lea rcx, bword ptr [rdi+2*rcx+0x0C]
+ mov esi, ebx
+ sub esi, eax
+ ;; size=22 bbWeight=1 PerfScore 5.00
+G_M22867_IG06:
+ mov rdi, rcx
+ mov ecx, esi
+ xor esi, esi
+ mov edx, 255
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
call [rax]System.SpanHelpers:NonPackedIndexOfAnyInRangeUnsignedNumber[ushort,System.SpanHelpers+Negate`1[ushort]](byref,ushort,ushort,int):int
- ;; size=15 bbWeight=1 PerfScore 3.50
-G_M22867_IG10:
test eax, eax
- jge G_M22867_IG22
- mov rdi, gword ptr [rbp-0x40]
+ jge G_M22867_IG18
+ mov rdi, gword ptr [rbp-0x30]
mov ebx, dword ptr [rdi+0x08]
cmp ebx, 256
- jg SHORT G_M22867_IG13
+ jg SHORT G_M22867_IG09
mov r15d, ebx
mov esi, r15d
mov r14, rsi
test r14, r14
- je SHORT G_M22867_IG12
+ je SHORT G_M22867_IG08
mov rax, r14
add rax, 15
and rax, -16
neg rax
add rax, rsp
- jb SHORT G_M22867_IG11
+ jb SHORT G_M22867_IG07
xor eax, eax
- ;; size=58 bbWeight=1 PerfScore 10.00
-G_M22867_IG11:
+ ;; size=82 bbWeight=1 PerfScore 14.25
+G_M22867_IG07:
test dword ptr [rsp], esp
sub rsp, 0x1000
cmp rsp, rax
- jae SHORT G_M22867_IG11
+ jae SHORT G_M22867_IG07
mov rsp, rax
lea r14, [rsp]
;; size=22 bbWeight=1 PerfScore 5.25
-G_M22867_IG12:
- jmp SHORT G_M22867_IG14
+G_M22867_IG08:
+ jmp SHORT G_M22867_IG10
;; size=2 bbWeight=1 PerfScore 2.00
-G_M22867_IG13:
+G_M22867_IG09:
mov esi, ebx
mov rdi, 0xD1FFAB1E ; ubyte[]
call CORINFO_HELP_NEWARR_1_VC
lea r14, bword ptr [rax+0x10]
mov r15d, dword ptr [rax+0x08]
;; size=25 bbWeight=1 PerfScore 4.00
-G_M22867_IG14:
+G_M22867_IG10:
xor edx, edx
- jmp SHORT G_M22867_IG16
+ jmp SHORT G_M22867_IG12
;; size=4 bbWeight=1 PerfScore 2.25
-G_M22867_IG15:
+G_M22867_IG11:
cmp edx, r15d
- jae G_M22867_IG25
+ jae G_M22867_IG21
mov esi, edx
- mov rdi, gword ptr [rbp-0x40]
+ mov rdi, gword ptr [rbp-0x30]
movzx rax, byte ptr [rdi+2*rsi+0x0C]
mov byte ptr [r14+rsi], al
inc edx
;; size=26 bbWeight=4 PerfScore 23.00
-G_M22867_IG16:
+G_M22867_IG12:
cmp ebx, edx
- jg SHORT G_M22867_IG15
+ jg SHORT G_M22867_IG11
;; size=4 bbWeight=8 PerfScore 10.00
-G_M22867_IG17:
+G_M22867_IG13:
mov rdx, 0xD1FFAB1E ; const ptr
mov rbx, gword ptr [rdx]
mov rdx, 0xD1FFAB1E ; const ptr
mov r13, gword ptr [rdx]
mov rdx, r13
mov rsi, rbx
mov rdi, 0xD1FFAB1E ; 'utf-8'
mov rax, 0xD1FFAB1E ; code for System.Text.EncodingProvider:GetEncodingFromProvider(System.String,System.Text.EncoderFallback,System.Text.DecoderFallback):System.Text.Encoding
call [rax]System.Text.EncodingProvider:GetEncodingFromProvider(System.String,System.Text.EncoderFallback,System.Text.DecoderFallback):System.Text.Encoding
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Text.Encoding:FilterDisallowedEncodings(System.Text.Encoding):System.Text.Encoding
call [rax]System.Text.Encoding:FilterDisallowedEncodings(System.Text.Encoding):System.Text.Encoding
mov r12, rax
test r12, r12
- jne SHORT G_M22867_IG18
+ jne SHORT G_M22867_IG14
mov rdi, 0xD1FFAB1E ; 'utf-8'
mov rax, 0xD1FFAB1E ; code for System.Text.EncodingTable:GetCodePageFromName(System.String):int
call [rax]System.Text.EncodingTable:GetCodePageFromName(System.String):int
mov edi, eax
mov rsi, rbx
mov rdx, r13
mov rax, 0xD1FFAB1E ; code for System.Text.Encoding:GetEncoding(int,System.Text.EncoderFallback,System.Text.DecoderFallback):System.Text.Encoding
call [rax]System.Text.Encoding:GetEncoding(int,System.Text.EncoderFallback,System.Text.DecoderFallback):System.Text.Encoding
mov r12, rax
;; size=122 bbWeight=1 PerfScore 21.25
-G_M22867_IG18:
+G_M22867_IG14:
mov rdi, r14
mov esi, r15d
mov rax, 0xD1FFAB1E ; code for System.Span`1[ubyte]:op_Implicit(System.Span`1[ubyte]):System.ReadOnlySpan`1[ubyte]
call [rax]System.Span`1[ubyte]:op_Implicit(System.Span`1[ubyte]):System.ReadOnlySpan`1[ubyte]
mov rsi, rax
mov rdi, r12
mov rax, 0xD1FFAB1E ; code for System.Text.Encoding:GetString(System.ReadOnlySpan`1[ubyte]):System.String:this
cmp dword ptr [rdi], edi
call [rax]System.Text.Encoding:GetString(System.ReadOnlySpan`1[ubyte]):System.String:this
nop
;; size=39 bbWeight=1 PerfScore 10.75
-G_M22867_IG19:
- cmp qword ptr [rbp-0x48], 0xD1FFAB1E
- je SHORT G_M22867_IG20
+G_M22867_IG15:
+ cmp qword ptr [rbp-0x38], 0xD1FFAB1E
+ je SHORT G_M22867_IG16
call CORINFO_HELP_FAIL_FAST
;; size=15 bbWeight=1 PerfScore 4.00
-G_M22867_IG20:
+G_M22867_IG16:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M22867_IG21:
+G_M22867_IG17:
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_M22867_IG22:
- mov rax, gword ptr [rbp-0x40]
- cmp qword ptr [rbp-0x48], 0xD1FFAB1E
- je SHORT G_M22867_IG23
+G_M22867_IG18:
+ mov rax, gword ptr [rbp-0x30]
+ cmp qword ptr [rbp-0x38], 0xD1FFAB1E
+ je SHORT G_M22867_IG19
call CORINFO_HELP_FAIL_FAST
;; size=19 bbWeight=1 PerfScore 5.00
-G_M22867_IG23:
+G_M22867_IG19:
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M22867_IG24:
+G_M22867_IG20:
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_M22867_IG25:
+G_M22867_IG21:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-G_M22867_IG26:
+G_M22867_IG22:
mov edi, 33
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
-G_M22867_IG27:
+G_M22867_IG23:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
- lea rbp, [rbp+0x50]
+ lea rbp, [rbp+0x40]
;; size=22 bbWeight=0 PerfScore 0.00
-G_M22867_IG28:
- lea rax, G_M22867_IG22
+G_M22867_IG24:
+ lea rax, G_M22867_IG18
;; size=7 bbWeight=0 PerfScore 0.00
-G_M22867_IG29:
+G_M22867_IG25:
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 757, prolog size 35, PerfScore 180.50, instruction count 215, allocated bytes for code 757 (MethodHash=f9b6a6ac) for method System.Net.Http.Headers.UriHeaderParser:DecodeUtf8FromString(System.String):System.String (FullOpts)
+; Total bytes of code 629, prolog size 35, PerfScore 149.50, instruction count 179, allocated bytes for code 629 (MethodHash=f9b6a6ac) for method System.Net.Http.Headers.UriHeaderParser:DecodeUtf8FromString(System.String):System.String (FullOpts) Larger list of diffs: https://gist.github.com/MihuBot/f388e8a09d7d4f1e238774b8cc791cbc |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Build completed in 24 minutes.
dotnet/runtime#100842
Diffs
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: