forked from MihaZupan/runtime-utils
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[JitDiff X64] [EgorBo] JIT: Optimize Memmove unrolling for constant src #691
Comments
Top method regressions43 (2.53 % of base) - Microsoft.CSharp.RuntimeBinder.Errors.UserStringBuilder:ErrAppendMethod(Microsoft.CSharp.RuntimeBinder.Semantics.MethodSymbol,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext,ubyte):this ; Assembly listing for method Microsoft.CSharp.RuntimeBinder.Errors.UserStringBuilder:ErrAppendMethod(Microsoft.CSharp.RuntimeBinder.Semantics.MethodSymbol,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext,ubyte):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 53 single block inlinees; 40 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 26, 14 ) byref -> rbx this single-def
; V01 arg1 [V01,T01] ( 21, 12 ) ref -> r15 class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.MethodSymbol>
; V02 arg2 [V02,T02] ( 13, 7.50) ref -> r14 class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext>
; V03 arg3 [V03,T16] ( 4, 3 ) ubyte -> r13 single-def
-; V04 loc0 [V04,T42] ( 4, 2 ) int -> r12
+; V04 loc0 [V04,T35] ( 4, 2 ) int -> r12
;* V05 loc1 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext>
-; V06 loc2 [V06,T48] ( 3, 1.50) ref -> r12 class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.PropertySymbol>
-; V07 loc3 [V07,T49] ( 3, 1.50) ref -> r12 class-hnd exact single-def <Microsoft.CSharp.RuntimeBinder.Semantics.EventSymbol>
+; V06 loc2 [V06,T55] ( 3, 1.50) ref -> r12 class-hnd single-def <Microsoft.CSharp.RuntimeBinder.Semantics.PropertySymbol>
+; V07 loc3 [V07,T56] ( 3, 1.50) ref -> r12 class-hnd exact single-def <Microsoft.CSharp.RuntimeBinder.Semantics.EventSymbol>
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V09 tmp1 [V09,T22] ( 3, 3 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext>
;* V10 tmp2 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.SymWithType>
-; V11 tmp3 [V11,T43] ( 2, 2 ) ref -> rdi class-hnd single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.SymWithType>
-; V12 tmp4 [V12,T41] ( 4, 2 ) ref -> r12 class-hnd "Inline return value spill temp" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType>
+; V11 tmp3 [V11,T36] ( 2, 2 ) ref -> rdi class-hnd single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.SymWithType>
+; V12 tmp4 [V12,T34] ( 4, 2 ) ref -> r12 class-hnd "Inline return value spill temp" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType>
; V13 tmp5 [V13,T23] ( 3, 3 ) ref -> r12 class-hnd exact single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType>
;* V14 tmp6 [V14 ] ( 0, 0 ) ref -> zero-ref
;* V15 tmp7 [V15 ] ( 0, 0 ) ref -> zero-ref single-def
-; V16 tmp8 [V16,T50] ( 3, 1.50) ref -> rsi
+; V16 tmp8 [V16,T57] ( 3, 1.50) ref -> rsi
;* V17 tmp9 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Semantics.SymWithType>
; V18 tmp10 [V18,T04] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
-; V19 tmp11 [V19,T51] ( 3, 1.50) ref -> rbx class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V20 tmp12 [V20,T65] ( 3, 1.50) int -> r13 "Inline stloc first use temp"
-; V21 tmp13 [V21,T24] ( 3, 3 ) byref -> rsi single-def "Inlining Arg"
+; V19 tmp11 [V19,T58] ( 3, 1.50) ref -> rbx class-hnd single-def "Inline stloc first use temp" <ushort[]>
+; V20 tmp12 [V20,T72] ( 3, 1.50) int -> r13 "Inline stloc first use temp"
+; V21 tmp13 [V21,T37] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
;* V22 tmp14 [V22 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
; V23 tmp15 [V23,T05] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
-; V24 tmp16 [V24,T52] ( 3, 1.50) ref -> rbx class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V25 tmp17 [V25,T66] ( 3, 1.50) int -> r15 "Inline stloc first use temp"
-; V26 tmp18 [V26,T25] ( 3, 3 ) byref -> rsi single-def "Inlining Arg"
+; V24 tmp16 [V24,T59] ( 3, 1.50) ref -> rbx class-hnd single-def "Inline stloc first use temp" <ushort[]>
+; V25 tmp17 [V25,T73] ( 3, 1.50) int -> r15 "Inline stloc first use temp"
+; V26 tmp18 [V26,T38] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
;* V27 tmp19 [V27 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
; V28 tmp20 [V28,T06] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
-; V29 tmp21 [V29,T53] ( 3, 1.50) ref -> rbx class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V30 tmp22 [V30,T67] ( 3, 1.50) int -> r13 "Inline stloc first use temp"
-; V31 tmp23 [V31,T26] ( 3, 3 ) byref -> rsi single-def "Inlining Arg"
+; V29 tmp21 [V29,T60] ( 3, 1.50) ref -> rbx class-hnd single-def "Inline stloc first use temp" <ushort[]>
+; V30 tmp22 [V30,T74] ( 3, 1.50) int -> r13 "Inline stloc first use temp"
+; V31 tmp23 [V31,T39] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
;* V32 tmp24 [V32 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
; V33 tmp25 [V33,T07] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
-; V34 tmp26 [V34,T54] ( 3, 1.50) ref -> rbx class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V35 tmp27 [V35,T68] ( 3, 1.50) int -> r15 "Inline stloc first use temp"
-; V36 tmp28 [V36,T27] ( 3, 3 ) byref -> rsi single-def "Inlining Arg"
+; V34 tmp26 [V34,T61] ( 3, 1.50) ref -> rbx class-hnd single-def "Inline stloc first use temp" <ushort[]>
+; V35 tmp27 [V35,T75] ( 3, 1.50) int -> r15 "Inline stloc first use temp"
+; V36 tmp28 [V36,T24] ( 3, 3 ) byref -> rsi single-def "Inlining Arg"
;* V37 tmp29 [V37 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
-; V38 tmp30 [V38,T40] ( 4, 2.75) ref -> rdx "ISINST eval op1"
-; V39 tmp31 [V39,T47] ( 3, 1.75) ref -> rdx class-hnd "spilling qmarkNull" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol>
-; V40 tmp32 [V40,T28] ( 3, 3 ) ref -> rdx class-hnd exact "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Syntax.Name>
+; V38 tmp30 [V38,T33] ( 4, 2.75) ref -> rdx "ISINST eval op1"
+; V39 tmp31 [V39,T54] ( 3, 1.75) ref -> rdx class-hnd "spilling qmarkNull" <Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol>
+; V40 tmp32 [V40,T25] ( 3, 3 ) ref -> rdx class-hnd exact "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Syntax.Name>
; V41 tmp33 [V41,T08] ( 5, 5 ) ref -> rdi class-hnd exact "Inlining Arg" <System.Text.StringBuilder>
-; V42 tmp34 [V42,T55] ( 3, 1.50) ref -> r12 class-hnd "Inline stloc first use temp" <ushort[]>
-; V43 tmp35 [V43,T69] ( 3, 1.50) int -> rax "Inline stloc first use temp"
-; V44 tmp36 [V44,T29] ( 3, 3 ) byref -> rsi "Inlining Arg"
+; V42 tmp34 [V42,T62] ( 3, 1.50) ref -> r12 class-hnd "Inline stloc first use temp" <ushort[]>
+; V43 tmp35 [V43,T76] ( 3, 1.50) int -> rax "Inline stloc first use temp"
+; V44 tmp36 [V44,T40] ( 2, 2 ) byref -> rsi "Inlining Arg"
;* V45 tmp37 [V45 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
; V46 tmp38 [V46,T17] ( 4, 4 ) ref -> rsi class-hnd exact "Inlining Arg" <System.String>
-; V47 tmp39 [V47,T30] ( 3, 3 ) ref -> rdi class-hnd exact "Inlining Arg" <System.Text.StringBuilder>
+; V47 tmp39 [V47,T26] ( 3, 3 ) ref -> rdi class-hnd exact "Inlining Arg" <System.Text.StringBuilder>
;* V48 tmp40 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.StringBuilder>
; V49 tmp41 [V49,T03] ( 6, 6 ) ref -> rdi class-hnd exact "Inlining Arg" <System.Text.StringBuilder>
-; V50 tmp42 [V50,T70] ( 3, 1.50) int -> r12 "Inline stloc first use temp"
-; V51 tmp43 [V51,T56] ( 3, 1.50) ref -> rax class-hnd "Inline stloc first use temp" <ushort[]>
+; V50 tmp42 [V50,T77] ( 3, 1.50) int -> r12 "Inline stloc first use temp"
+; V51 tmp43 [V51,T63] ( 3, 1.50) ref -> rax class-hnd "Inline stloc first use temp" <ushort[]>
; V52 tmp44 [V52,T09] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
-; V53 tmp45 [V53,T57] ( 3, 1.50) ref -> r12 class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V54 tmp46 [V54,T71] ( 3, 1.50) int -> rax "Inline stloc first use temp"
-; V55 tmp47 [V55,T31] ( 3, 3 ) byref -> rsi single-def "Inlining Arg"
+; V53 tmp45 [V53,T64] ( 3, 1.50) ref -> r12 class-hnd single-def "Inline stloc first use temp" <ushort[]>
+; V54 tmp46 [V54,T78] ( 3, 1.50) int -> rax "Inline stloc first use temp"
+; V55 tmp47 [V55,T41] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
;* V56 tmp48 [V56 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
; V57 tmp49 [V57,T10] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
-; V58 tmp50 [V58,T58] ( 3, 1.50) ref -> r12 class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V59 tmp51 [V59,T72] ( 3, 1.50) int -> rax "Inline stloc first use temp"
-; V60 tmp52 [V60,T32] ( 3, 3 ) byref -> rsi single-def "Inlining Arg"
+; V58 tmp50 [V58,T65] ( 3, 1.50) ref -> r12 class-hnd single-def "Inline stloc first use temp" <ushort[]>
+; V59 tmp51 [V59,T79] ( 3, 1.50) int -> rax "Inline stloc first use temp"
+; V60 tmp52 [V60,T42] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
;* V61 tmp53 [V61 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
; V62 tmp54 [V62,T11] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
-; V63 tmp55 [V63,T59] ( 3, 1.50) ref -> r12 class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V64 tmp56 [V64,T73] ( 3, 1.50) int -> rax "Inline stloc first use temp"
-; V65 tmp57 [V65,T33] ( 3, 3 ) byref -> rsi single-def "Inlining Arg"
+; V63 tmp55 [V63,T66] ( 3, 1.50) ref -> r12 class-hnd single-def "Inline stloc first use temp" <ushort[]>
+; V64 tmp56 [V64,T80] ( 3, 1.50) int -> rax "Inline stloc first use temp"
+; V65 tmp57 [V65,T27] ( 3, 3 ) byref -> rsi single-def "Inlining Arg"
;* V66 tmp58 [V66 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
; V67 tmp59 [V67,T12] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
-; V68 tmp60 [V68,T60] ( 3, 1.50) ref -> r12 class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V69 tmp61 [V69,T74] ( 3, 1.50) int -> rax "Inline stloc first use temp"
-; V70 tmp62 [V70,T34] ( 3, 3 ) byref -> rsi single-def "Inlining Arg"
+; V68 tmp60 [V68,T67] ( 3, 1.50) ref -> r12 class-hnd single-def "Inline stloc first use temp" <ushort[]>
+; V69 tmp61 [V69,T81] ( 3, 1.50) int -> rax "Inline stloc first use temp"
+; V70 tmp62 [V70,T28] ( 3, 3 ) byref -> rsi single-def "Inlining Arg"
;* V71 tmp63 [V71 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
; V72 tmp64 [V72,T18] ( 4, 4 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
-; V73 tmp65 [V73,T35] ( 3, 3 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
-; V74 tmp66 [V74,T36] ( 3, 3 ) ref -> rdx class-hnd exact single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Syntax.Name>
+; V73 tmp65 [V73,T29] ( 3, 3 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
+; V74 tmp66 [V74,T30] ( 3, 3 ) ref -> rdx class-hnd exact single-def "Inlining Arg" <Microsoft.CSharp.RuntimeBinder.Syntax.Name>
; V75 tmp67 [V75,T13] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
-; V76 tmp68 [V76,T61] ( 3, 1.50) ref -> r12 class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V77 tmp69 [V77,T75] ( 3, 1.50) int -> rax "Inline stloc first use temp"
-; V78 tmp70 [V78,T37] ( 3, 3 ) byref -> rsi single-def "Inlining Arg"
+; V76 tmp68 [V76,T68] ( 3, 1.50) ref -> r12 class-hnd single-def "Inline stloc first use temp" <ushort[]>
+; V77 tmp69 [V77,T82] ( 3, 1.50) int -> rax "Inline stloc first use temp"
+; V78 tmp70 [V78,T43] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
;* V79 tmp71 [V79 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
; V80 tmp72 [V80,T19] ( 4, 4 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
-; V81 tmp73 [V81,T38] ( 3, 3 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
+; V81 tmp73 [V81,T31] ( 3, 3 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
;* V82 tmp74 [V82 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.StringBuilder>
; V83 tmp75 [V83,T14] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
-; V84 tmp76 [V84,T76] ( 3, 1.50) int -> rax "Inline stloc first use temp"
-; V85 tmp77 [V85,T62] ( 3, 1.50) ref -> r12 class-hnd single-def "Inline stloc first use temp" <ushort[]>
+; V84 tmp76 [V84,T83] ( 3, 1.50) int -> rax "Inline stloc first use temp"
+; V85 tmp77 [V85,T69] ( 3, 1.50) ref -> r12 class-hnd single-def "Inline stloc first use temp" <ushort[]>
;* V86 tmp78 [V86 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" <System.Text.StringBuilder>
; V87 tmp79 [V87,T15] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.Text.StringBuilder>
-; V88 tmp80 [V88,T77] ( 3, 1.50) int -> rax "Inline stloc first use temp"
-; V89 tmp81 [V89,T63] ( 3, 1.50) ref -> rbx class-hnd single-def "Inline stloc first use temp" <ushort[]>
+; V88 tmp80 [V88,T84] ( 3, 1.50) int -> rax "Inline stloc first use temp"
+; V89 tmp81 [V89,T70] ( 3, 1.50) ref -> rbx class-hnd single-def "Inline stloc first use temp" <ushort[]>
; V90 tmp82 [V90,T44] ( 2, 2 ) ref -> rsi single-def "arr expr"
; V91 tmp83 [V91,T45] ( 2, 2 ) ref -> rsi "arr expr"
; V92 tmp84 [V92,T46] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
; V93 cse0 [V93,T20] ( 6, 3 ) int -> r14 multi-def "CSE #01: conservative"
; V94 cse1 [V94,T21] ( 6, 3 ) int -> rcx multi-def "CSE #24: conservative"
-; V95 cse2 [V95,T78] ( 3, 1.50) int -> r15 "CSE #09: conservative"
-; V96 cse3 [V96,T79] ( 3, 1.50) int -> r14 "CSE #17: conservative"
-; V97 cse4 [V97,T80] ( 3, 1.50) int -> rcx "CSE #18: conservative"
-; V98 cse5 [V98,T81] ( 3, 1.50) int -> rcx "CSE #28: conservative"
-; V99 cse6 [V99,T82] ( 3, 1.50) int -> rcx "CSE #29: conservative"
-; V100 cse7 [V100,T83] ( 3, 1.50) int -> rcx "CSE #34: conservative"
-; V101 cse8 [V101,T86] ( 2, 1 ) int -> rsi "CSE #36: conservative"
-; V102 cse9 [V102,T87] ( 2, 1 ) int -> rsi "CSE #38: conservative"
-; V103 cse10 [V103,T64] ( 3, 1.50) ref -> rdx "CSE #30: conservative"
-; V104 cse11 [V104,T84] ( 3, 1.50) int -> r13 "CSE #37: conservative"
-; V105 cse12 [V105,T85] ( 3, 1.50) int -> r15 "CSE #39: conservative"
-; V106 rat0 [V106,T39] ( 3, 2.86) int -> r12 "ReplaceWithLclVar is creating a new local variable"
+; V95 cse2 [V95,T85] ( 3, 1.50) int -> r15 "CSE #09: conservative"
+; V96 cse3 [V96,T86] ( 3, 1.50) int -> r14 "CSE #17: conservative"
+; V97 cse4 [V97,T87] ( 3, 1.50) int -> rcx "CSE #18: conservative"
+; V98 cse5 [V98,T88] ( 3, 1.50) int -> rcx "CSE #28: conservative"
+; V99 cse6 [V99,T89] ( 3, 1.50) int -> rcx "CSE #29: conservative"
+; V100 cse7 [V100,T90] ( 3, 1.50) int -> rcx "CSE #34: conservative"
+; V101 cse8 [V101,T93] ( 2, 1 ) int -> rsi "CSE #36: conservative"
+; V102 cse9 [V102,T94] ( 2, 1 ) int -> rsi "CSE #38: conservative"
+; V103 cse10 [V103,T71] ( 3, 1.50) ref -> rdx "CSE #30: conservative"
+; V104 cse11 [V104,T91] ( 3, 1.50) int -> r13 "CSE #37: conservative"
+; V105 cse12 [V105,T92] ( 3, 1.50) int -> r15 "CSE #39: conservative"
+; V106 rat0 [V106,T47] ( 2, 2 ) byref -> rsi "fgMakeTemp is creating a new local variable"
+; V107 rat1 [V107,T48] ( 2, 2 ) byref -> rsi "fgMakeTemp is creating a new local variable"
+; V108 rat2 [V108,T49] ( 2, 2 ) byref -> rsi "fgMakeTemp is creating a new local variable"
+; V109 rat3 [V109,T50] ( 2, 2 ) byref -> rdx "fgMakeTemp is creating a new local variable"
+; V110 rat4 [V110,T51] ( 2, 2 ) byref -> rsi "fgMakeTemp is creating a new local variable"
+; V111 rat5 [V111,T52] ( 2, 2 ) byref -> rsi "fgMakeTemp is creating a new local variable"
+; V112 rat6 [V112,T53] ( 2, 2 ) byref -> rsi "fgMakeTemp is creating a new local variable"
+; V113 rat7 [V113,T32] ( 3, 2.86) int -> r12 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 8
G_M27672_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
mov r15, rsi
mov r14, rdx
mov r13d, ecx
;; size=28 bbWeight=1 PerfScore 8.50
G_M27672_IG02:
cmp gword ptr [r15+0x08], 0
jne SHORT G_M27672_IG04
;; size=7 bbWeight=1 PerfScore 4.00
G_M27672_IG03:
mov rdi, gword ptr [r15+0x78]
xor rsi, rsi
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.SymWithType:op_Equality(Microsoft.CSharp.RuntimeBinder.Semantics.SymWithType,Microsoft.CSharp.RuntimeBinder.Semantics.SymWithType):ubyte
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.SymWithType:op_Equality(Microsoft.CSharp.RuntimeBinder.Semantics.SymWithType,Microsoft.CSharp.RuntimeBinder.Semantics.SymWithType):ubyte
test eax, eax
je G_M27672_IG41
;; size=26 bbWeight=0.50 PerfScore 3.38
G_M27672_IG04:
mov r12d, dword ptr [r15+0x9C]
cmp r12d, 3
jne G_M27672_IG08
mov r12, gword ptr [r15+0xA8]
mov rdi, rbx
mov rsi, r12
mov rdx, r14
mov ecx, 1
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Errors.UserStringBuilder:ErrAppendSym(Microsoft.CSharp.RuntimeBinder.Semantics.Symbol,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext,ubyte):this
call [rax]Microsoft.CSharp.RuntimeBinder.Errors.UserStringBuilder:ErrAppendSym(Microsoft.CSharp.RuntimeBinder.Semantics.Symbol,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext,ubyte):this
cmp gword ptr [r12+0xA0], r15
je SHORT G_M27672_IG06
mov rdi, gword ptr [rbx]
mov rsi, 0xD1FFAB1E
mov rbx, gword ptr [rdi+0x08]
mov r15d, dword ptr [rdi+0x18]
lea r14d, [r15+0x04]
cmp dword ptr [rbx+0x08], r14d
jae SHORT G_M27672_IG05
mov edx, 4
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
jmp G_M27672_IG40
;; size=113 bbWeight=0.50 PerfScore 14.88
G_M27672_IG05:
- movsxd rdx, r15d
- lea rdx, bword ptr [rbx+2*rdx+0x10]
- mov rax, qword ptr [rsi]
- mov qword ptr [rdx], rax
+ movsxd rsi, r15d
+ lea rsi, bword ptr [rbx+2*rsi+0x10]
+ mov rdx, 0xD1FFAB1E
+ mov qword ptr [rsi], rdx
mov dword ptr [rdi+0x18], r14d
jmp G_M27672_IG40
- ;; size=23 bbWeight=0.50 PerfScore 3.62
+ ;; size=30 bbWeight=0.50 PerfScore 2.75
G_M27672_IG06:
mov rdi, gword ptr [rbx]
mov rsi, 0xD1FFAB1E
mov rbx, gword ptr [rdi+0x08]
mov r13d, dword ptr [rdi+0x18]
lea r14d, [r13+0x04]
cmp dword ptr [rbx+0x08], r14d
jae SHORT G_M27672_IG07
mov edx, 4
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
jmp G_M27672_IG40
;; size=53 bbWeight=0.50 PerfScore 8.12
G_M27672_IG07:
- movsxd rdx, r13d
- lea rdx, bword ptr [rbx+2*rdx+0x10]
- mov rcx, qword ptr [rsi]
- mov qword ptr [rdx], rcx
+ movsxd rsi, r13d
+ lea rsi, bword ptr [rbx+2*rsi+0x10]
+ mov rdx, 0xD1FFAB1E
+ mov qword ptr [rsi], rdx
mov dword ptr [rdi+0x18], r14d
jmp G_M27672_IG40
- ;; size=23 bbWeight=0.50 PerfScore 3.62
+ ;; size=30 bbWeight=0.50 PerfScore 2.75
G_M27672_IG08:
cmp r12d, 4
jne G_M27672_IG12
mov r12, gword ptr [r15+0xB0]
mov rdi, rbx
mov rsi, r12
mov rdx, r14
mov ecx, 1
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Errors.UserStringBuilder:ErrAppendSym(Microsoft.CSharp.RuntimeBinder.Semantics.Symbol,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext,ubyte):this
call [rax]Microsoft.CSharp.RuntimeBinder.Errors.UserStringBuilder:ErrAppendSym(Microsoft.CSharp.RuntimeBinder.Semantics.Symbol,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext,ubyte):this
cmp gword ptr [r12+0x40], r15
je SHORT G_M27672_IG10
mov rdi, gword ptr [rbx]
mov rsi, 0xD1FFAB1E
mov rbx, gword ptr [rdi+0x08]
mov r15d, dword ptr [rdi+0x18]
lea r14d, [r15+0x07]
cmp dword ptr [rbx+0x08], r14d
jae SHORT G_M27672_IG09
mov edx, 7
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
jmp G_M27672_IG40
;; size=103 bbWeight=0.50 PerfScore 13.88
G_M27672_IG09:
movsxd rdx, r15d
lea rdx, bword ptr [rbx+2*rdx+0x10]
mov rax, qword ptr [rsi]
mov rcx, qword ptr [rsi+0x06]
mov qword ptr [rdx], rax
mov qword ptr [rdx+0x06], rcx
mov dword ptr [rdi+0x18], r14d
jmp G_M27672_IG40
;; size=31 bbWeight=0.50 PerfScore 5.12
G_M27672_IG10:
mov rdi, gword ptr [rbx]
mov rsi, 0xD1FFAB1E
mov rbx, gword ptr [rdi+0x08]
mov r13d, dword ptr [rdi+0x18]
lea r15d, [r13+0x04]
cmp dword ptr [rbx+0x08], r15d
jae SHORT G_M27672_IG11
mov edx, 4
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
jmp G_M27672_IG40
;; size=53 bbWeight=0.50 PerfScore 8.12
G_M27672_IG11:
- movsxd rdx, r13d
- lea rdx, bword ptr [rbx+2*rdx+0x10]
- mov rax, qword ptr [rsi]
- mov qword ptr [rdx], rax
+ movsxd rsi, r13d
+ lea rsi, bword ptr [rbx+2*rsi+0x10]
+ mov rdx, 0xD1FFAB1E
+ mov qword ptr [rsi], rdx
mov dword ptr [rdi+0x18], r15d
jmp G_M27672_IG40
- ;; size=23 bbWeight=0.50 PerfScore 3.62
+ ;; size=30 bbWeight=0.50 PerfScore 2.75
G_M27672_IG12:
mov rsi, gword ptr [r15+0x10]
mov rdi, rbx
mov rdx, r14
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Errors.UserStringBuilder:ErrAppendParentCore(Microsoft.CSharp.RuntimeBinder.Semantics.Symbol,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext):this
call [rax]Microsoft.CSharp.RuntimeBinder.Errors.UserStringBuilder:ErrAppendParentCore(Microsoft.CSharp.RuntimeBinder.Semantics.Symbol,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext):this
dec r12d
cmp r12d, 5
ja G_M27672_IG21
;; size=35 bbWeight=0.50 PerfScore 3.62
G_M27672_IG13:
mov edi, r12d
lea rsi, [reloc @RWD00]
mov esi, dword ptr [rsi+4*rdi]
lea rdx, G_M27672_IG02
add rsi, rdx
jmp rsi
;; size=25 bbWeight=0.43 PerfScore 2.57
G_M27672_IG14:
mov rdi, gword ptr [rbx]
mov rsi, 0xD1FFAB1E
mov r12, gword ptr [rdi+0x08]
mov eax, dword ptr [rdi+0x18]
lea ecx, [rax+0x08]
cmp dword ptr [r12+0x08], ecx
jae SHORT G_M27672_IG15
mov edx, 8
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
jmp SHORT G_M27672_IG18
;; size=49 bbWeight=0.50 PerfScore 8.12
G_M27672_IG15:
- movsxd rdx, eax
- lea rdx, bword ptr [r12+2*rdx+0x10]
- vmovdqu xmm0, xmmword ptr [rsi]
- vmovdqu xmmword ptr [rdx], xmm0
+ movsxd rsi, eax
+ lea rsi, bword ptr [r12+2*rsi+0x10]
+ vmovups xmm0, xmmword ptr [reloc @RWD32]
+ vmovups xmmword ptr [rsi], xmm0
mov dword ptr [rdi+0x18], ecx
jmp SHORT G_M27672_IG18
- ;; size=21 bbWeight=0.50 PerfScore 5.12
+ ;; size=25 bbWeight=0.50 PerfScore 4.62
G_M27672_IG16:
mov rdi, gword ptr [rbx]
mov rsi, 0xD1FFAB1E
mov r12, gword ptr [rdi+0x08]
mov eax, dword ptr [rdi+0x18]
lea ecx, [rax+0x08]
cmp dword ptr [r12+0x08], ecx
jae SHORT G_M27672_IG17
mov edx, 8
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
jmp SHORT G_M27672_IG18
;; size=49 bbWeight=0.50 PerfScore 8.12
G_M27672_IG17:
- movsxd rdx, eax
- lea rdx, bword ptr [r12+2*rdx+0x10]
- vmovdqu xmm0, xmmword ptr [rsi]
- vmovdqu xmmword ptr [rdx], xmm0
+ movsxd rsi, eax
+ lea rsi, bword ptr [r12+2*rsi+0x10]
+ vmovups xmm0, xmmword ptr [reloc @RWD48]
+ vmovups xmmword ptr [rsi], xmm0
mov dword ptr [rdi+0x18], ecx
- ;; size=19 bbWeight=0.50 PerfScore 4.12
+ ;; size=23 bbWeight=0.50 PerfScore 3.62
G_M27672_IG18:
mov rdi, gword ptr [rbx]
mov rsi, 0xD1FFAB1E
mov r12, gword ptr [rdi+0x08]
mov eax, dword ptr [rdi+0x18]
lea ecx, [rax+0x0A]
cmp dword ptr [r12+0x08], ecx
jae SHORT G_M27672_IG19
mov edx, 10
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
jmp SHORT G_M27672_IG20
;; size=49 bbWeight=0.50 PerfScore 8.12
G_M27672_IG19:
movsxd rdx, eax
lea rdx, bword ptr [r12+2*rdx+0x10]
vmovdqu xmm0, xmmword ptr [rsi]
vmovdqu xmm1, xmmword ptr [rsi+0x04]
vmovdqu xmmword ptr [rdx], xmm0
vmovdqu xmmword ptr [rdx+0x04], xmm1
mov dword ptr [rdi+0x18], ecx
;; size=29 bbWeight=0.50 PerfScore 7.12
G_M27672_IG20:
mov rsi, gword ptr [r15+0x80]
mov rdi, rbx
mov rdx, r14
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Errors.UserStringBuilder:ErrAppendType(Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext):this
call [rax]Microsoft.CSharp.RuntimeBinder.Errors.UserStringBuilder:ErrAppendType(Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext):this
jmp G_M27672_IG36
;; size=30 bbWeight=0.50 PerfScore 3.88
G_M27672_IG21:
cmp byte ptr [r15+0x96], 0
jne G_M27672_IG24
mov rdx, gword ptr [r15+0x08]
test rdx, rdx
je G_M27672_IG36
mov rsi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rsi]
cmp rdx, gword ptr [rsi+0x90]
je SHORT G_M27672_IG22
mov rsi, gword ptr [rdx+0x08]
mov rdi, gword ptr [rbx]
cmp byte ptr [rdi], dil
test rsi, rsi
je G_M27672_IG36
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
jmp G_M27672_IG36
;; size=92 bbWeight=0.50 PerfScore 14.62
G_M27672_IG22:
mov rdi, gword ptr [rbx]
mov rsi, 0xD1FFAB1E
mov r12, gword ptr [rdi+0x08]
mov eax, dword ptr [rdi+0x18]
lea ecx, [rax+0x04]
cmp dword ptr [r12+0x08], ecx
jae SHORT G_M27672_IG23
mov edx, 4
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
jmp G_M27672_IG36
;; size=52 bbWeight=0.50 PerfScore 8.12
G_M27672_IG23:
- movsxd rdx, eax
- lea rdx, bword ptr [r12+2*rdx+0x10]
- mov rax, qword ptr [rsi]
- mov qword ptr [rdx], rax
+ movsxd rsi, eax
+ lea rsi, bword ptr [r12+2*rsi+0x10]
+ mov rdx, 0xD1FFAB1E
+ mov qword ptr [rsi], rdx
mov dword ptr [rdi+0x18], ecx
jmp G_M27672_IG36
- ;; size=22 bbWeight=0.50 PerfScore 3.62
+ ;; size=29 bbWeight=0.50 PerfScore 2.75
G_M27672_IG24:
mov rdi, gword ptr [rbx]
mov rsi, 0xD1FFAB1E
mov r12, gword ptr [rdi+0x08]
mov eax, dword ptr [rdi+0x18]
lea ecx, [rax+0x09]
cmp dword ptr [r12+0x08], ecx
jae SHORT G_M27672_IG25
mov edx, 9
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
jmp SHORT G_M27672_IG26
;; size=49 bbWeight=0.50 PerfScore 8.12
G_M27672_IG25:
cdqe
lea rax, bword ptr [r12+2*rax+0x10]
vmovdqu xmm0, xmmword ptr [rsi]
vmovdqu xmm1, xmmword ptr [rsi+0x02]
vmovdqu xmmword ptr [rax], xmm0
vmovdqu xmmword ptr [rax+0x02], xmm1
mov dword ptr [rdi+0x18], ecx
;; size=28 bbWeight=0.50 PerfScore 7.12
G_M27672_IG26:
mov rdi, gword ptr [r15+0x08]
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.Operators:OperatorOfMethodName(Microsoft.CSharp.RuntimeBinder.Syntax.Name):System.String
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.Operators:OperatorOfMethodName(Microsoft.CSharp.RuntimeBinder.Syntax.Name):System.String
mov rsi, rax
mov rdi, gword ptr [rbx]
cmp byte ptr [rdi], dil
test rsi, rsi
je G_M27672_IG36
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
jmp G_M27672_IG36
;; size=58 bbWeight=0.50 PerfScore 9.62
G_M27672_IG27:
mov rdi, gword ptr [rbx]
mov r12d, dword ptr [rdi+0x18]
mov rax, gword ptr [rdi+0x08]
cmp dword ptr [rax+0x08], r12d
ja SHORT G_M27672_IG28
mov esi, 126
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(ushort):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(ushort):this
jmp SHORT G_M27672_IG29
;; size=36 bbWeight=0.50 PerfScore 7.75
G_M27672_IG28:
mov edx, r12d
mov word ptr [rax+2*rdx+0x10], 126
inc dword ptr [rdi+0x18]
;; size=13 bbWeight=0.50 PerfScore 2.12
G_M27672_IG29:
mov rdx, gword ptr [r15+0x10]
test rdx, rdx
je SHORT G_M27672_IG32
;; size=9 bbWeight=0.50 PerfScore 1.62
G_M27672_IG30:
mov rsi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol
cmp qword ptr [rdx], rsi
jne SHORT G_M27672_IG32
;; size=15 bbWeight=0.25 PerfScore 1.06
G_M27672_IG31:
jmp SHORT G_M27672_IG33
;; size=2 bbWeight=0.12 PerfScore 0.25
G_M27672_IG32:
xor rdx, rdx
;; size=2 bbWeight=0.25 PerfScore 0.06
G_M27672_IG33:
mov rdx, gword ptr [rdx+0x08]
mov rsi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rsi]
cmp rdx, gword ptr [rsi+0x90]
je SHORT G_M27672_IG34
mov rsi, gword ptr [rdx+0x08]
mov rdi, gword ptr [rbx]
cmp byte ptr [rdi], dil
test rsi, rsi
je SHORT G_M27672_IG36
mov edx, dword ptr [rsi+0x08]
add rsi, 12
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this
call [rax]System.Text.StringBuilder:Append(byref,int):this
jmp SHORT G_M27672_IG36
;; size=62 bbWeight=0.50 PerfScore 12.00
G_M27672_IG34:
mov rdi, gword ptr [rbx]
mov rsi, 0xD1FFAB1E
mov r12, gword ptr [rdi+0x08]
mov eax, dword ptr [rdi+0x18]
lea ecx, [rax+0x04]
cmp dword ptr [r12+0x08], ecx
jae SHORT G_M27672_IG35
mov edx, 4
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
jmp SHORT G_M27672_IG36
;; size=49 bbWeight=0.50 PerfScore 8.12
G_M27672_IG35:
movsxd rdx, eax
lea rdx, bword ptr [r12+2*rdx+0x10]
- mov rax, qword ptr [rsi]
- mov qword ptr [rdx], rax
+ mov rsi, 0xD1FFAB1E
+ mov qword ptr [rdx], rsi
mov dword ptr [rdi+0x18], ecx
- ;; size=17 bbWeight=0.50 PerfScore 2.62
+ ;; size=24 bbWeight=0.50 PerfScore 1.75
G_M27672_IG36:
mov rsi, gword ptr [r15+0xC0]
mov rdi, rbx
mov rdx, r14
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Errors.UserStringBuilder:ErrAppendTypeParameters(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext):this
call [rax]Microsoft.CSharp.RuntimeBinder.Errors.UserStringBuilder:ErrAppendTypeParameters(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext):this
test r13b, r13b
je G_M27672_IG40
mov rdi, gword ptr [rbx]
mov r13d, dword ptr [rdi+0x18]
mov eax, r13d
mov r12, gword ptr [rdi+0x08]
mov esi, dword ptr [r12+0x08]
cmp esi, eax
ja SHORT G_M27672_IG37
mov esi, 40
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(ushort):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(ushort):this
jmp SHORT G_M27672_IG38
;; size=76 bbWeight=0.50 PerfScore 11.00
G_M27672_IG37:
mov esi, eax
mov word ptr [r12+2*rsi+0x10], 40
inc r13d
mov dword ptr [rdi+0x18], r13d
;; size=17 bbWeight=0.50 PerfScore 1.25
G_M27672_IG38:
mov rdi, gword ptr [r15+0x88]
mov rsi, r14
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.TypeManager:SubstTypeArray(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext):Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.TypeManager:SubstTypeArray(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext):Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray
mov rsi, rax
movzx rdx, byte ptr [r15+0x97]
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Errors.UserStringBuilder:ErrAppendParamList(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,ubyte):this
call [rax]Microsoft.CSharp.RuntimeBinder.Errors.UserStringBuilder:ErrAppendParamList(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,ubyte):this
mov rdi, gword ptr [rbx]
mov r15d, dword ptr [rdi+0x18]
mov eax, r15d
mov rbx, gword ptr [rdi+0x08]
mov esi, dword ptr [rbx+0x08]
cmp esi, eax
ja SHORT G_M27672_IG39
mov esi, 41
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(ushort):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(ushort):this
jmp SHORT G_M27672_IG40
;; size=88 bbWeight=0.50 PerfScore 13.12
G_M27672_IG39:
mov esi, eax
mov word ptr [rbx+2*rsi+0x10], 41
inc r15d
mov dword ptr [rdi+0x18], r15d
;; size=16 bbWeight=0.50 PerfScore 1.25
G_M27672_IG40:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M27672_IG41:
mov rsi, gword ptr [r15+0x10]
mov rdi, rbx
mov rdx, r14
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Errors.UserStringBuilder:ErrAppendParentCore(Microsoft.CSharp.RuntimeBinder.Semantics.Symbol,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext):this
call [rax]Microsoft.CSharp.RuntimeBinder.Errors.UserStringBuilder:ErrAppendParentCore(Microsoft.CSharp.RuntimeBinder.Semantics.Symbol,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext):this
mov rdi, gword ptr [r15+0x78]
mov rdi, gword ptr [rdi+0x08]
mov r12, rdi
test r14, r14
je SHORT G_M27672_IG42
mov rdi, gword ptr [r14+0x08]
cmp dword ptr [rdi+0x08], 0
sete dil
movzx rdi, dil
mov rsi, gword ptr [r14+0x10]
cmp dword ptr [rsi+0x08], 0
sete sil
movzx rsi, sil
test edi, esi
je SHORT G_M27672_IG43
;; size=74 bbWeight=0.50 PerfScore 12.50
G_M27672_IG42:
jmp SHORT G_M27672_IG44
;; size=2 bbWeight=0.50 PerfScore 1.00
G_M27672_IG43:
mov rdi, r12
mov rsi, r14
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.TypeManager:SubstTypeCore(Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext):Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.TypeManager:SubstTypeCore(Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext):Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType
mov r12, rax
;; size=21 bbWeight=0.50 PerfScore 2.00
G_M27672_IG44:
mov rdi, 0xD1FFAB1E ; Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext
call CORINFO_HELP_NEWSFAST
mov r14, rax
test r12, r12
je SHORT G_M27672_IG45
mov rsi, gword ptr [r12+0x40]
jmp SHORT G_M27672_IG46
;; size=30 bbWeight=0.50 PerfScore 3.38
G_M27672_IG45:
xor rsi, rsi
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M27672_IG46:
mov rdi, r14
xor rdx, rdx
xor ecx, ecx
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext:.ctor(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,ubyte):this
call [rax]Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext:.ctor(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,ubyte):this
mov rsi, gword ptr [r15+0x78]
mov rsi, gword ptr [rsi+0x10]
movzx rcx, r13b
mov rdi, rbx
mov rdx, r14
mov rax, 0xD1FFAB1E ; code for Microsoft.CSharp.RuntimeBinder.Errors.UserStringBuilder:ErrAppendSym(Microsoft.CSharp.RuntimeBinder.Semantics.Symbol,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext,ubyte):this
;; size=47 bbWeight=0.50 PerfScore 4.50
G_M27672_IG47:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]Microsoft.CSharp.RuntimeBinder.Errors.UserStringBuilder:ErrAppendSym(Microsoft.CSharp.RuntimeBinder.Semantics.Symbol,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext,ubyte):this
;; size=17 bbWeight=0.50 PerfScore 2.62
RWD00 dd G_M27672_IG29 - G_M27672_IG02
dd G_M27672_IG27 - G_M27672_IG02
dd G_M27672_IG21 - G_M27672_IG02
dd G_M27672_IG21 - G_M27672_IG02
dd G_M27672_IG16 - G_M27672_IG02
dd G_M27672_IG14 - G_M27672_IG02
+RWD24 dd 00000000h, 00000000h
+RWD32 dq 006C0070006D0069h, 0074006900630069h
+RWD48 dq 006C007000780065h, 0074006900630069h
-; Total bytes of code 1700, prolog size 16, PerfScore 269.45, instruction count 409, allocated bytes for code 1700 (MethodHash=c63a93e7) for method Microsoft.CSharp.RuntimeBinder.Errors.UserStringBuilder:ErrAppendMethod(Microsoft.CSharp.RuntimeBinder.Semantics.MethodSymbol,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext,ubyte):this (FullOpts)
+; Total bytes of code 1743, prolog size 16, PerfScore 264.07, instruction count 409, allocated bytes for code 1743 (MethodHash=c63a93e7) for method Microsoft.CSharp.RuntimeBinder.Errors.UserStringBuilder:ErrAppendMethod(Microsoft.CSharp.RuntimeBinder.Semantics.MethodSymbol,Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext,ubyte):this (FullOpts)
; ============================================================ 14 (3.11 % of base) - System.Xml.Xsl.XPath.XPathCompileException:MarkOutError():System.String:this ; Assembly listing for method System.Xml.Xsl.XPath.XPathCompileException:MarkOutError():System.String:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 7 single block inlinees; 7 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 11, 7 ) ref -> rbx this class-hnd single-def <System.Xml.Xsl.XPath.XPathCompileException>
-; V01 loc0 [V01,T10] ( 3, 1.50) int -> r15
+; V01 loc0 [V01,T12] ( 3, 1.50) int -> r15
;* V02 loc1 [V02 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def <System.Text.StringBuilder>
;* V03 loc2 [V03 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op <System.ReadOnlySpan`1[ushort]>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
; V06 tmp2 [V06,T00] ( 15, 15 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Text.StringBuilder>
;* V07 tmp3 [V07 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
; V08 tmp4 [V08,T02] ( 3, 3 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.String>
;* V09 tmp5 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
;* V10 tmp6 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-; V11 tmp7 [V11,T05] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
-; V12 tmp8 [V12,T06] ( 2, 2 ) int -> rdi "Inlining Arg"
-; V13 tmp9 [V13,T07] ( 3, 1.50) ref -> r14 class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V14 tmp10 [V14,T11] ( 3, 1.50) int -> r12 "Inline stloc first use temp"
-; V15 tmp11 [V15,T03] ( 3, 3 ) byref -> rsi single-def "Inlining Arg"
+; V11 tmp7 [V11,T03] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
+; V12 tmp8 [V12,T08] ( 2, 2 ) int -> rdi "Inlining Arg"
+; V13 tmp9 [V13,T09] ( 3, 1.50) ref -> r14 class-hnd single-def "Inline stloc first use temp" <ushort[]>
+; V14 tmp10 [V14,T13] ( 3, 1.50) int -> r12 "Inline stloc first use temp"
+; V15 tmp11 [V15,T04] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
;* V16 tmp12 [V16 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
-; V17 tmp13 [V17,T08] ( 3, 1.50) ref -> r15 class-hnd single-def "Inline stloc first use temp" <ushort[]>
-; V18 tmp14 [V18,T12] ( 3, 1.50) int -> r14 "Inline stloc first use temp"
-; V19 tmp15 [V19,T04] ( 3, 3 ) byref -> rsi single-def "Inlining Arg"
+; V17 tmp13 [V17,T10] ( 3, 1.50) ref -> r15 class-hnd single-def "Inline stloc first use temp" <ushort[]>
+; V18 tmp14 [V18,T14] ( 3, 1.50) int -> r14 "Inline stloc first use temp"
+; V19 tmp15 [V19,T05] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
;* V20 tmp16 [V20 ] ( 0, 0 ) byref -> zero-ref "Inline stloc first use temp"
-; V21 tmp17 [V21,T22] ( 1, 0.50) byref -> rax "field V03._reference (fldOffset=0x0)" P-INDEP
-; V22 tmp18 [V22,T19] ( 2, 1 ) int -> rdx "field V03._length (fldOffset=0x8)" P-INDEP
+; V21 tmp17 [V21,T24] ( 1, 0.50) byref -> rax "field V03._reference (fldOffset=0x0)" P-INDEP
+; V22 tmp18 [V22,T21] ( 2, 1 ) int -> rdx "field V03._length (fldOffset=0x8)" P-INDEP
;* V23 tmp19 [V23 ] ( 0, 0 ) byref -> zero-ref "field V05._reference (fldOffset=0x0)" P-INDEP
;* V24 tmp20 [V24 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
-; V25 tmp21 [V25,T17] ( 2, 1 ) byref -> rsi "field V07._reference (fldOffset=0x0)" P-INDEP
-; V26 tmp22 [V26,T20] ( 2, 1 ) int -> rdx "field V07._length (fldOffset=0x8)" P-INDEP
-; V27 tmp23 [V27,T18] ( 2, 1 ) byref -> rsi single-def "field V09._reference (fldOffset=0x0)" P-INDEP
-; V28 tmp24 [V28,T21] ( 2, 1 ) int -> rdi "field V09._length (fldOffset=0x8)" P-INDEP
+; V25 tmp21 [V25,T19] ( 2, 1 ) byref -> rsi "field V07._reference (fldOffset=0x0)" P-INDEP
+; V26 tmp22 [V26,T22] ( 2, 1 ) int -> rdx "field V07._length (fldOffset=0x8)" P-INDEP
+; V27 tmp23 [V27,T20] ( 2, 1 ) byref -> rsi single-def "field V09._reference (fldOffset=0x0)" P-INDEP
+; V28 tmp24 [V28,T23] ( 2, 1 ) int -> rdi "field V09._length (fldOffset=0x8)" P-INDEP
;* V29 tmp25 [V29 ] ( 0, 0 ) byref -> zero-ref single-def "field V10._reference (fldOffset=0x0)" P-INDEP
;* V30 tmp26 [V30 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
-; V31 cse0 [V31,T13] ( 3, 1.50) int -> rax "CSE #03: moderate"
-; V32 cse1 [V32,T14] ( 3, 1.50) int -> r12 "CSE #04: moderate"
-; V33 cse2 [V33,T15] ( 3, 1.50) int -> r14 "CSE #02: moderate"
-; V34 cse3 [V34,T09] ( 3, 1.50) ref -> rsi "CSE #05: moderate"
-; V35 cse4 [V35,T16] ( 3, 1.50) int -> rdx "CSE #06: moderate"
+; V31 cse0 [V31,T15] ( 3, 1.50) int -> rax "CSE #03: moderate"
+; V32 cse1 [V32,T16] ( 3, 1.50) int -> r12 "CSE #04: moderate"
+; V33 cse2 [V33,T17] ( 3, 1.50) int -> r14 "CSE #02: moderate"
+; V34 cse3 [V34,T11] ( 3, 1.50) ref -> rsi "CSE #05: moderate"
+; V35 cse4 [V35,T18] ( 3, 1.50) int -> rdx "CSE #06: moderate"
+; V36 rat0 [V36,T06] ( 2, 2 ) byref -> rdx "fgMakeTemp is creating a new local variable"
+; V37 rat1 [V37,T07] ( 2, 2 ) byref -> rcx "fgMakeTemp is creating a new local variable"
;
; Lcl frame size = 8
G_M48231_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
;; size=19 bbWeight=1 PerfScore 7.75
G_M48231_IG02:
cmp gword ptr [rbx+0xA0], 0
je G_M48231_IG10
;; size=14 bbWeight=1 PerfScore 4.00
G_M48231_IG03:
mov rdi, gword ptr [rbx+0xA0]
lea rsi, bword ptr [rdi+0x0C]
mov edi, dword ptr [rdi+0x08]
mov edx, edi
mov rdi, rsi
mov esi, edx
mov edx, 32
mov rax, 0xD1FFAB1E ; code for System.MemoryExtensions:Trim(System.ReadOnlySpan`1[ushort],ushort):System.ReadOnlySpan`1[ushort]
call [rax]System.MemoryExtensions:Trim(System.ReadOnlySpan`1[ushort],ushort):System.ReadOnlySpan`1[ushort]
test edx, edx
je G_M48231_IG10
mov r15d, dword ptr [rbx+0xAC]
mov r14d, dword ptr [rbx+0xA8]
sub r15d, r14d
mov rdi, 0xD1FFAB1E ; System.Text.StringBuilder
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov dword ptr [r13+0x20], 0xD1FFAB1E
mov rdi, 0xD1FFAB1E ; ushort[]
mov esi, 16
call CORINFO_HELP_NEWARR_1_VC
lea rdi, bword ptr [r13+0x08]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
mov ecx, r14d
mov rsi, gword ptr [rbx+0xA0]
mov rdi, r13
xor edx, edx
xor r8d, r8d
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.XPath.XPathCompileException:AppendTrimmed(System.Text.StringBuilder,System.String,int,int,int)
call [rax]System.Xml.Xsl.XPath.XPathCompileException:AppendTrimmed(System.Text.StringBuilder,System.String,int,int,int)
test r15d, r15d
jle SHORT G_M48231_IG06
mov rsi, 0xD1FFAB1E
mov r14, gword ptr [r13+0x08]
mov r12d, dword ptr [r13+0x18]
lea eax, [r12+0x04]
cmp dword ptr [r14+0x08], eax
jae SHORT G_M48231_IG04
mov rdi, r13
mov edx, 4
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
jmp SHORT G_M48231_IG05
;; size=207 bbWeight=0.50 PerfScore 21.00
G_M48231_IG04:
movsxd rdx, r12d
lea rdx, bword ptr [r14+2*rdx+0x10]
- mov rdi, qword ptr [rsi]
- mov qword ptr [rdx], rdi
+ mov rsi, 0xD1FFAB1E
+ mov qword ptr [rdx], rsi
mov dword ptr [r13+0x18], eax
- ;; size=18 bbWeight=0.50 PerfScore 2.62
+ ;; size=25 bbWeight=0.50 PerfScore 1.75
G_M48231_IG05:
mov edx, dword ptr [rbx+0xA8]
mov rsi, gword ptr [rbx+0xA0]
mov rdi, r13
mov ecx, r15d
mov r8d, 2
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.XPath.XPathCompileException:AppendTrimmed(System.Text.StringBuilder,System.String,int,int,int)
call [rax]System.Xml.Xsl.XPath.XPathCompileException:AppendTrimmed(System.Text.StringBuilder,System.String,int,int,int)
;; size=37 bbWeight=0.50 PerfScore 4.00
G_M48231_IG06:
mov rsi, 0xD1FFAB1E
mov r15, gword ptr [r13+0x08]
mov r14d, dword ptr [r13+0x18]
lea r12d, [r14+0x04]
cmp dword ptr [r15+0x08], r12d
jae SHORT G_M48231_IG07
mov rdi, r13
mov edx, 4
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:AppendWithExpansion(byref,int):this
call [rax]System.Text.StringBuilder:AppendWithExpansion(byref,int):this
jmp SHORT G_M48231_IG08
;; size=50 bbWeight=0.50 PerfScore 7.25
G_M48231_IG07:
movsxd rcx, r14d
lea rcx, bword ptr [r15+2*rcx+0x10]
- mov rdx, qword ptr [rsi]
- mov qword ptr [rcx], rdx
+ mov rsi, 0xD1FFAB1E
+ mov qword ptr [rcx], rsi
mov dword ptr [r13+0x18], r12d
- ;; size=18 bbWeight=0.50 PerfScore 2.62
+ ;; size=25 bbWeight=0.50 PerfScore 1.75
G_M48231_IG08:
mov rsi, gword ptr [rbx+0xA0]
mov ecx, dword ptr [rsi+0x08]
mov edx, dword ptr [rbx+0xAC]
sub ecx, edx
mov rdi, r13
mov r8d, 1
mov rax, 0xD1FFAB1E ; code for System.Xml.Xsl.XPath.XPathCompileException:AppendTrimmed(System.Text.StringBuilder,System.String,int,int,int)
call [rax]System.Xml.Xsl.XPath.XPathCompileException:AppendTrimmed(System.Text.StringBuilder,System.String,int,int,int)
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:ToString():System.String:this
call [rax]System.Text.StringBuilder:ToString():System.String:this
nop
;; size=55 bbWeight=0.50 PerfScore 6.88
G_M48231_IG09:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M48231_IG10:
xor rax, rax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M48231_IG11:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-; Total bytes of code 450, prolog size 16, PerfScore 60.50, instruction count 112, allocated bytes for code 450 (MethodHash=0a164398) for method System.Xml.Xsl.XPath.XPathCompileException:MarkOutError():System.String:this (FullOpts)
+; Total bytes of code 464, prolog size 16, PerfScore 58.75, instruction count 112, allocated bytes for code 464 (MethodHash=0a164398) for method System.Xml.Xsl.XPath.XPathCompileException:MarkOutError():System.String:this (FullOpts)
; ============================================================ Note: some changes were skipped as they were too large to fit into a comment. Larger list of diffs: https://gist.github.com/MihuBot/d0b4321e75c4be8aa0e5d10d764c4301 |
Top method improvements-132 (-6.36 % of base) - System.Net.Security.TlsFrameHelper+TlsFrameInfo:ToString():System.String:this ; Assembly listing for method System.Net.Security.TlsFrameHelper+TlsFrameInfo:ToString():System.String:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 18 single block inlinees; 72 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 22, 12.50) byref -> rbx this single-def
; V01 loc0 [V01 ] (141, 71 ) struct (40) [rbp-0x38] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.DefaultInterpolatedStringHandler>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V03 tmp1 [V03 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V04 tmp2 [V04,T01] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V05 tmp3 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V06 tmp4 [V06,T19] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
; V07 tmp5 [V07,T37] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V08 tmp6 [V08,T56] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V09 tmp7 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V10 tmp8 [V10 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V11 tmp9 [V11 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V12 tmp10 [V12 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V13 tmp11 [V13,T02] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V14 tmp12 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V15 tmp13 [V15,T20] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
; V16 tmp14 [V16,T38] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V17 tmp15 [V17,T57] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V18 tmp16 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V19 tmp17 [V19 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V20 tmp18 [V20 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V21 tmp19 [V21 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V22 tmp20 [V22,T03] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V23 tmp21 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V24 tmp22 [V24,T21] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
; V25 tmp23 [V25,T39] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V26 tmp24 [V26,T58] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V27 tmp25 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V28 tmp26 [V28 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V29 tmp27 [V29 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V30 tmp28 [V30 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V31 tmp29 [V31,T04] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V32 tmp30 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V33 tmp31 [V33,T22] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
; V34 tmp32 [V34,T40] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V35 tmp33 [V35,T59] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V36 tmp34 [V36 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V37 tmp35 [V37 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V38 tmp36 [V38 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V39 tmp37 [V39 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V40 tmp38 [V40,T05] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V41 tmp39 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V42 tmp40 [V42,T23] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
; V43 tmp41 [V43,T41] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V44 tmp42 [V44,T60] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V45 tmp43 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V46 tmp44 [V46 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V47 tmp45 [V47 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V48 tmp46 [V48 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V49 tmp47 [V49,T06] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V50 tmp48 [V50 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V51 tmp49 [V51,T24] ( 2, 2 ) byref -> rbx single-def "Inlining Arg"
; V52 tmp50 [V52,T42] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V53 tmp51 [V53,T61] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V54 tmp52 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V55 tmp53 [V55 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V56 tmp54 [V56 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V57 tmp55 [V57 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V58 tmp56 [V58,T07] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V59 tmp57 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V60 tmp58 [V60,T25] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
; V61 tmp59 [V61,T43] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V62 tmp60 [V62,T62] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V63 tmp61 [V63 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V64 tmp62 [V64 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V65 tmp63 [V65 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V66 tmp64 [V66 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V67 tmp65 [V67,T08] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V68 tmp66 [V68 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V69 tmp67 [V69,T26] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
; V70 tmp68 [V70,T44] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V71 tmp69 [V71,T63] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V72 tmp70 [V72 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V73 tmp71 [V73 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V74 tmp72 [V74 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V75 tmp73 [V75 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V76 tmp74 [V76,T09] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V77 tmp75 [V77 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V78 tmp76 [V78,T27] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
; V79 tmp77 [V79,T45] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V80 tmp78 [V80,T64] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V81 tmp79 [V81 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V82 tmp80 [V82 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V83 tmp81 [V83 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V84 tmp82 [V84 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V85 tmp83 [V85,T10] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V86 tmp84 [V86 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V87 tmp85 [V87,T28] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
; V88 tmp86 [V88,T46] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V89 tmp87 [V89,T65] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V90 tmp88 [V90 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V91 tmp89 [V91 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V92 tmp90 [V92 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V93 tmp91 [V93 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V94 tmp92 [V94,T11] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V95 tmp93 [V95 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V96 tmp94 [V96,T29] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
; V97 tmp95 [V97,T47] ( 2, 2 ) int -> rdx "Inlining Arg"
;* V98 tmp96 [V98,T66] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V99 tmp97 [V99 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V100 tmp98 [V100 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V101 tmp99 [V101 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V102 tmp100 [V102 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V103 tmp101 [V103,T12] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V104 tmp102 [V104 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V105 tmp103 [V105,T30] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
; V106 tmp104 [V106,T48] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V107 tmp105 [V107,T67] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V108 tmp106 [V108 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V109 tmp107 [V109 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V110 tmp108 [V110 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V111 tmp109 [V111 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V112 tmp110 [V112,T13] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V113 tmp111 [V113 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V114 tmp112 [V114,T31] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
; V115 tmp113 [V115,T49] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V116 tmp114 [V116,T68] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V117 tmp115 [V117 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V118 tmp116 [V118 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V119 tmp117 [V119 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V120 tmp118 [V120 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V121 tmp119 [V121,T14] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V122 tmp120 [V122 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V123 tmp121 [V123,T32] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
; V124 tmp122 [V124,T50] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V125 tmp123 [V125,T69] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V126 tmp124 [V126 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V127 tmp125 [V127 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V128 tmp126 [V128 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V129 tmp127 [V129 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V130 tmp128 [V130,T15] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V131 tmp129 [V131 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V132 tmp130 [V132,T33] ( 2, 2 ) byref -> rsi single-def "Inlining Arg"
; V133 tmp131 [V133,T51] ( 2, 2 ) int -> rdx "Inlining Arg"
;* V134 tmp132 [V134,T70] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V135 tmp133 [V135 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V136 tmp134 [V136 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V137 tmp135 [V137 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V138 tmp136 [V138 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V139 tmp137 [V139,T16] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V140 tmp138 [V140 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V141 tmp139 [V141,T34] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
; V142 tmp140 [V142,T52] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V143 tmp141 [V143,T71] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V144 tmp142 [V144 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V145 tmp143 [V145 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V146 tmp144 [V146 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V147 tmp145 [V147 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V148 tmp146 [V148,T17] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V149 tmp147 [V149 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V150 tmp148 [V150,T35] ( 2, 2 ) byref -> r15 single-def "Inlining Arg"
; V151 tmp149 [V151,T53] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V152 tmp150 [V152,T72] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V153 tmp151 [V153 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V154 tmp152 [V154 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V155 tmp153 [V155 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V156 tmp154 [V156 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ushort]>
; V157 tmp155 [V157,T18] ( 4, 4 ) int -> rdi "Inlining Arg"
;* V158 tmp156 [V158 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
; V159 tmp157 [V159,T36] ( 2, 2 ) byref -> rbx single-def "Inlining Arg"
; V160 tmp158 [V160,T54] ( 2, 2 ) int -> rsi "Inlining Arg"
;* V161 tmp159 [V161,T73] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;* V162 tmp160 [V162 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
;* V163 tmp161 [V163 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V164 tmp162 [V164 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V165 tmp163 [V165 ] ( 0, 0 ) byref -> zero-ref "field V03._reference (fldOffset=0x0)" P-INDEP
;* V166 tmp164 [V166 ] ( 0, 0 ) int -> zero-ref "field V03._length (fldOffset=0x8)" P-INDEP
;* V167 tmp165 [V167 ] ( 0, 0 ) byref -> zero-ref single-def "field V05._reference (fldOffset=0x0)" P-INDEP
;* V168 tmp166 [V168 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
;* V169 tmp167 [V169 ] ( 0, 0 ) byref -> zero-ref single-def "field V09._reference (fldOffset=0x0)" P-INDEP
;* V170 tmp168 [V170 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP
;* V171 tmp169 [V171 ] ( 0, 0 ) byref -> zero-ref "field V12._reference (fldOffset=0x0)" P-INDEP
;* V172 tmp170 [V172 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
;* V173 tmp171 [V173 ] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP
;* V174 tmp172 [V174 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP
;* V175 tmp173 [V175 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP
;* V176 tmp174 [V176 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP
;* V177 tmp175 [V177 ] ( 0, 0 ) byref -> zero-ref "field V21._reference (fldOffset=0x0)" P-INDEP
;* V178 tmp176 [V178 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
;* V179 tmp177 [V179 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP
;* V180 tmp178 [V180 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP
;* V181 tmp179 [V181 ] ( 0, 0 ) byref -> zero-ref single-def "field V27._reference (fldOffset=0x0)" P-INDEP
;* V182 tmp180 [V182 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP
;* V183 tmp181 [V183 ] ( 0, 0 ) byref -> zero-ref "field V30._reference (fldOffset=0x0)" P-INDEP
;* V184 tmp182 [V184 ] ( 0, 0 ) int -> zero-ref "field V30._length (fldOffset=0x8)" P-INDEP
;* V185 tmp183 [V185 ] ( 0, 0 ) byref -> zero-ref single-def "field V32._reference (fldOffset=0x0)" P-INDEP
;* V186 tmp184 [V186 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP
;* V187 tmp185 [V187 ] ( 0, 0 ) byref -> zero-ref single-def "field V36._reference (fldOffset=0x0)" P-INDEP
;* V188 tmp186 [V188 ] ( 0, 0 ) int -> zero-ref "field V36._length (fldOffset=0x8)" P-INDEP
;* V189 tmp187 [V189 ] ( 0, 0 ) byref -> zero-ref "field V39._reference (fldOffset=0x0)" P-INDEP
;* V190 tmp188 [V190 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP
;* V191 tmp189 [V191 ] ( 0, 0 ) byref -> zero-ref single-def "field V41._reference (fldOffset=0x0)" P-INDEP
;* V192 tmp190 [V192 ] ( 0, 0 ) int -> zero-ref "field V41._length (fldOffset=0x8)" P-INDEP
;* V193 tmp191 [V193 ] ( 0, 0 ) byref -> zero-ref single-def "field V45._reference (fldOffset=0x0)" P-INDEP
;* V194 tmp192 [V194 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP
;* V195 tmp193 [V195 ] ( 0, 0 ) byref -> zero-ref "field V48._reference (fldOffset=0x0)" P-INDEP
;* V196 tmp194 [V196 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP
;* V197 tmp195 [V197 ] ( 0, 0 ) byref -> zero-ref single-def "field V50._reference (fldOffset=0x0)" P-INDEP
;* V198 tmp196 [V198 ] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP
;* V199 tmp197 [V199 ] ( 0, 0 ) byref -> zero-ref single-def "field V54._reference (fldOffset=0x0)" P-INDEP
;* V200 tmp198 [V200 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP
;* V201 tmp199 [V201 ] ( 0, 0 ) byref -> zero-ref "field V57._reference (fldOffset=0x0)" P-INDEP
;* V202 tmp200 [V202 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP
;* V203 tmp201 [V203 ] ( 0, 0 ) byref -> zero-ref single-def "field V59._reference (fldOffset=0x0)" P-INDEP
;* V204 tmp202 [V204 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
;* V205 tmp203 [V205 ] ( 0, 0 ) byref -> zero-ref single-def "field V63._reference (fldOffset=0x0)" P-INDEP
;* V206 tmp204 [V206 ] ( 0, 0 ) int -> zero-ref "field V63._length (fldOffset=0x8)" P-INDEP
;* V207 tmp205 [V207 ] ( 0, 0 ) byref -> zero-ref "field V66._reference (fldOffset=0x0)" P-INDEP
;* V208 tmp206 [V208 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP
;* V209 tmp207 [V209 ] ( 0, 0 ) byref -> zero-ref single-def "field V68._reference (fldOffset=0x0)" P-INDEP
;* V210 tmp208 [V210 ] ( 0, 0 ) int -> zero-ref "field V68._length (fldOffset=0x8)" P-INDEP
;* V211 tmp209 [V211 ] ( 0, 0 ) byref -> zero-ref single-def "field V72._reference (fldOffset=0x0)" P-INDEP
;* V212 tmp210 [V212 ] ( 0, 0 ) int -> zero-ref "field V72._length (fldOffset=0x8)" P-INDEP
;* V213 tmp211 [V213 ] ( 0, 0 ) byref -> zero-ref "field V75._reference (fldOffset=0x0)" P-INDEP
;* V214 tmp212 [V214 ] ( 0, 0 ) int -> zero-ref "field V75._length (fldOffset=0x8)" P-INDEP
;* V215 tmp213 [V215 ] ( 0, 0 ) byref -> zero-ref single-def "field V77._reference (fldOffset=0x0)" P-INDEP
;* V216 tmp214 [V216 ] ( 0, 0 ) int -> zero-ref "field V77._length (fldOffset=0x8)" P-INDEP
;* V217 tmp215 [V217 ] ( 0, 0 ) byref -> zero-ref single-def "field V81._reference (fldOffset=0x0)" P-INDEP
;* V218 tmp216 [V218 ] ( 0, 0 ) int -> zero-ref "field V81._length (fldOffset=0x8)" P-INDEP
;* V219 tmp217 [V219 ] ( 0, 0 ) byref -> zero-ref "field V84._reference (fldOffset=0x0)" P-INDEP
;* V220 tmp218 [V220 ] ( 0, 0 ) int -> zero-ref "field V84._length (fldOffset=0x8)" P-INDEP
;* V221 tmp219 [V221 ] ( 0, 0 ) byref -> zero-ref single-def "field V86._reference (fldOffset=0x0)" P-INDEP
;* V222 tmp220 [V222 ] ( 0, 0 ) int -> zero-ref "field V86._length (fldOffset=0x8)" P-INDEP
;* V223 tmp221 [V223 ] ( 0, 0 ) byref -> zero-ref single-def "field V90._reference (fldOffset=0x0)" P-INDEP
;* V224 tmp222 [V224 ] ( 0, 0 ) int -> zero-ref "field V90._length (fldOffset=0x8)" P-INDEP
;* V225 tmp223 [V225 ] ( 0, 0 ) byref -> zero-ref "field V93._reference (fldOffset=0x0)" P-INDEP
;* V226 tmp224 [V226 ] ( 0, 0 ) int -> zero-ref "field V93._length (fldOffset=0x8)" P-INDEP
;* V227 tmp225 [V227 ] ( 0, 0 ) byref -> zero-ref single-def "field V95._reference (fldOffset=0x0)" P-INDEP
;* V228 tmp226 [V228 ] ( 0, 0 ) int -> zero-ref "field V95._length (fldOffset=0x8)" P-INDEP
;* V229 tmp227 [V229 ] ( 0, 0 ) byref -> zero-ref single-def "field V99._reference (fldOffset=0x0)" P-INDEP
;* V230 tmp228 [V230 ] ( 0, 0 ) int -> zero-ref "field V99._length (fldOffset=0x8)" P-INDEP
;* V231 tmp229 [V231 ] ( 0, 0 ) byref -> zero-ref "field V102._reference (fldOffset=0x0)" P-INDEP
;* V232 tmp230 [V232 ] ( 0, 0 ) int -> zero-ref "field V102._length (fldOffset=0x8)" P-INDEP
;* V233 tmp231 [V233 ] ( 0, 0 ) byref -> zero-ref single-def "field V104._reference (fldOffset=0x0)" P-INDEP
;* V234 tmp232 [V234 ] ( 0, 0 ) int -> zero-ref "field V104._length (fldOffset=0x8)" P-INDEP
;* V235 tmp233 [V235 ] ( 0, 0 ) byref -> zero-ref single-def "field V108._reference (fldOffset=0x0)" P-INDEP
;* V236 tmp234 [V236 ] ( 0, 0 ) int -> zero-ref "field V108._length (fldOffset=0x8)" P-INDEP
;* V237 tmp235 [V237 ] ( 0, 0 ) byref -> zero-ref "field V111._reference (fldOffset=0x0)" P-INDEP
;* V238 tmp236 [V238 ] ( 0, 0 ) int -> zero-ref "field V111._length (fldOffset=0x8)" P-INDEP
;* V239 tmp237 [V239 ] ( 0, 0 ) byref -> zero-ref single-def "field V113._reference (fldOffset=0x0)" P-INDEP
;* V240 tmp238 [V240 ] ( 0, 0 ) int -> zero-ref "field V113._length (fldOffset=0x8)" P-INDEP
;* V241 tmp239 [V241 ] ( 0, 0 ) byref -> zero-ref single-def "field V117._reference (fldOffset=0x0)" P-INDEP
;* V242 tmp240 [V242 ] ( 0, 0 ) int -> zero-ref "field V117._length (fldOffset=0x8)" P-INDEP
;* V243 tmp241 [V243 ] ( 0, 0 ) byref -> zero-ref "field V120._reference (fldOffset=0x0)" P-INDEP
;* V244 tmp242 [V244 ] ( 0, 0 ) int -> zero-ref "field V120._length (fldOffset=0x8)" P-INDEP
;* V245 tmp243 [V245 ] ( 0, 0 ) byref -> zero-ref single-def "field V122._reference (fldOffset=0x0)" P-INDEP
;* V246 tmp244 [V246 ] ( 0, 0 ) int -> zero-ref "field V122._length (fldOffset=0x8)" P-INDEP
;* V247 tmp245 [V247 ] ( 0, 0 ) byref -> zero-ref single-def "field V126._reference (fldOffset=0x0)" P-INDEP
;* V248 tmp246 [V248 ] ( 0, 0 ) int -> zero-ref "field V126._length (fldOffset=0x8)" P-INDEP
;* V249 tmp247 [V249 ] ( 0, 0 ) byref -> zero-ref "field V129._reference (fldOffset=0x0)" P-INDEP
;* V250 tmp248 [V250 ] ( 0, 0 ) int -> zero-ref "field V129._length (fldOffset=0x8)" P-INDEP
;* V251 tmp249 [V251 ] ( 0, 0 ) byref -> zero-ref single-def "field V131._reference (fldOffset=0x0)" P-INDEP
;* V252 tmp250 [V252 ] ( 0, 0 ) int -> zero-ref "field V131._length (fldOffset=0x8)" P-INDEP
;* V253 tmp251 [V253 ] ( 0, 0 ) byref -> zero-ref single-def "field V135._reference (fldOffset=0x0)" P-INDEP
;* V254 tmp252 [V254 ] ( 0, 0 ) int -> zero-ref "field V135._length (fldOffset=0x8)" P-INDEP
;* V255 tmp253 [V255 ] ( 0, 0 ) byref -> zero-ref "field V138._reference (fldOffset=0x0)" P-INDEP
;* V256 tmp254 [V256 ] ( 0, 0 ) int -> zero-ref "field V138._length (fldOffset=0x8)" P-INDEP
;* V257 tmp255 [V257 ] ( 0, 0 ) byref -> zero-ref single-def "field V140._reference (fldOffset=0x0)" P-INDEP
;* V258 tmp256 [V258 ] ( 0, 0 ) int -> zero-ref "field V140._length (fldOffset=0x8)" P-INDEP
;* V259 tmp257 [V259 ] ( 0, 0 ) byref -> zero-ref single-def "field V144._reference (fldOffset=0x0)" P-INDEP
;* V260 tmp258 [V260 ] ( 0, 0 ) int -> zero-ref "field V144._length (fldOffset=0x8)" P-INDEP
;* V261 tmp259 [V261 ] ( 0, 0 ) byref -> zero-ref "field V147._reference (fldOffset=0x0)" P-INDEP
;* V262 tmp260 [V262 ] ( 0, 0 ) int -> zero-ref "field V147._length (fldOffset=0x8)" P-INDEP
;* V263 tmp261 [V263 ] ( 0, 0 ) byref -> zero-ref single-def "field V149._reference (fldOffset=0x0)" P-INDEP
;* V264 tmp262 [V264 ] ( 0, 0 ) int -> zero-ref "field V149._length (fldOffset=0x8)" P-INDEP
;* V265 tmp263 [V265 ] ( 0, 0 ) byref -> zero-ref single-def "field V153._reference (fldOffset=0x0)" P-INDEP
;* V266 tmp264 [V266 ] ( 0, 0 ) int -> zero-ref "field V153._length (fldOffset=0x8)" P-INDEP
;* V267 tmp265 [V267 ] ( 0, 0 ) byref -> zero-ref "field V156._reference (fldOffset=0x0)" P-INDEP
;* V268 tmp266 [V268 ] ( 0, 0 ) int -> zero-ref "field V156._length (fldOffset=0x8)" P-INDEP
;* V269 tmp267 [V269 ] ( 0, 0 ) byref -> zero-ref single-def "field V158._reference (fldOffset=0x0)" P-INDEP
;* V270 tmp268 [V270 ] ( 0, 0 ) int -> zero-ref "field V158._length (fldOffset=0x8)" P-INDEP
;* V271 tmp269 [V271 ] ( 0, 0 ) byref -> zero-ref single-def "field V162._reference (fldOffset=0x0)" P-INDEP
;* V272 tmp270 [V272 ] ( 0, 0 ) int -> zero-ref "field V162._length (fldOffset=0x8)" P-INDEP
; V273 cse0 [V273,T55] ( 3, 1.50) int -> rdi "CSE #13: conservative"
;
; Lcl frame size = 48
G_M10774_IG01:
push rbp
push r15
push rbx
sub rsp, 48
lea rbp, [rsp+0x40]
xor eax, eax
mov qword ptr [rbp-0x38], rax
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x30], ymm8
mov rbx, rdi
;; size=32 bbWeight=1 PerfScore 7.58
G_M10774_IG02:
cmp byte ptr [rbx+0x1C], 22
je G_M10774_IG09
;; size=10 bbWeight=1 PerfScore 4.00
G_M10774_IG03:
lea rdi, [rbp-0x38]
mov esi, 3
mov edx, 3
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
mov esi, dword ptr [rbx+0x20]
lea rdi, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
mov edi, dword ptr [rbp-0x28]
cmp edi, dword ptr [rbp-0x18]
ja G_M10774_IG41
mov rsi, bword ptr [rbp-0x20]
mov eax, edi
lea r15, bword ptr [rsi+2*rax]
mov esi, dword ptr [rbp-0x18]
sub esi, edi
jne SHORT G_M10774_IG04
lea rdi, [rbp-0x38]
mov rsi, 0xD1FFAB1E ; ':'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M10774_IG05
;; size=102 bbWeight=0.50 PerfScore 12.00
G_M10774_IG04:
- mov rsi, 0xD1FFAB1E
- movzx rdi, word ptr [rsi]
- mov word ptr [r15], di
+ mov word ptr [r15], 58
mov esi, dword ptr [rbp-0x28]
inc esi
mov dword ptr [rbp-0x28], esi
- ;; size=25 bbWeight=0.50 PerfScore 2.75
+ ;; size=14 bbWeight=0.50 PerfScore 1.62
G_M10774_IG05:
movzx rsi, byte ptr [rbx+0x1C]
lea rdi, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[ubyte](ubyte):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[ubyte](ubyte):this
mov edi, dword ptr [rbp-0x28]
cmp edi, dword ptr [rbp-0x18]
ja G_M10774_IG41
mov rsi, bword ptr [rbp-0x20]
mov eax, edi
lea r15, bword ptr [rsi+2*rax]
mov esi, dword ptr [rbp-0x18]
sub esi, edi
jne SHORT G_M10774_IG06
lea rdi, [rbp-0x38]
mov rsi, 0xD1FFAB1E ; '['
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M10774_IG07
;; size=78 bbWeight=0.50 PerfScore 9.88
G_M10774_IG06:
- mov rsi, 0xD1FFAB1E
- movzx rdi, word ptr [rsi]
- mov word ptr [r15], di
+ mov word ptr [r15], 91
mov esi, dword ptr [rbp-0x28]
inc esi
mov dword ptr [rbp-0x28], esi
- ;; size=25 bbWeight=0.50 PerfScore 2.75
+ ;; size=14 bbWeight=0.50 PerfScore 1.62
G_M10774_IG07:
mov esi, dword ptr [rbx+0x24]
lea rdi, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
mov edi, dword ptr [rbp-0x28]
cmp edi, dword ptr [rbp-0x18]
ja G_M10774_IG41
mov rsi, bword ptr [rbp-0x20]
mov eax, edi
lea rbx, bword ptr [rsi+2*rax]
mov esi, dword ptr [rbp-0x18]
sub esi, edi
jne SHORT G_M10774_IG08
lea rdi, [rbp-0x38]
mov rsi, 0xD1FFAB1E ; ']'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp G_M10774_IG39
;; size=79 bbWeight=0.50 PerfScore 9.88
G_M10774_IG08:
- mov rdi, 0xD1FFAB1E
- movzx rsi, word ptr [rdi]
- mov word ptr [rbx], si
+ mov word ptr [rbx], 93
jmp G_M10774_IG38
- ;; size=21 bbWeight=0.50 PerfScore 2.62
+ ;; size=10 bbWeight=0.50 PerfScore 1.50
G_M10774_IG09:
movzx rdi, byte ptr [rbx+0x18]
cmp edi, 1
je G_M10774_IG25
cmp edi, 2
je G_M10774_IG16
lea rdi, [rbp-0x38]
mov esi, 23
mov edx, 4
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
mov esi, dword ptr [rbx+0x20]
lea rdi, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
mov edi, dword ptr [rbp-0x28]
cmp edi, dword ptr [rbp-0x18]
ja G_M10774_IG41
mov rsi, bword ptr [rbp-0x20]
mov eax, edi
lea r15, bword ptr [rsi+2*rax]
mov esi, dword ptr [rbp-0x18]
sub esi, edi
jne SHORT G_M10774_IG10
lea rdi, [rbp-0x38]
mov rsi, 0xD1FFAB1E ; ':'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M10774_IG11
;; size=125 bbWeight=0.50 PerfScore 14.25
G_M10774_IG10:
- mov rsi, 0xD1FFAB1E
- movzx rdi, word ptr [rsi]
- mov word ptr [r15], di
+ mov word ptr [r15], 58
mov esi, dword ptr [rbp-0x28]
inc esi
mov dword ptr [rbp-0x28], esi
- ;; size=25 bbWeight=0.50 PerfScore 2.75
+ ;; size=14 bbWeight=0.50 PerfScore 1.62
G_M10774_IG11:
movzx rsi, byte ptr [rbx+0x18]
lea rdi, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[ubyte](ubyte):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[ubyte](ubyte):this
mov edi, dword ptr [rbp-0x28]
cmp edi, dword ptr [rbp-0x18]
ja G_M10774_IG41
mov rsi, bword ptr [rbp-0x20]
mov eax, edi
lea r15, bword ptr [rsi+2*rax]
mov esi, dword ptr [rbp-0x18]
sub esi, edi
jne SHORT G_M10774_IG12
lea rdi, [rbp-0x38]
mov rsi, 0xD1FFAB1E ; '['
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M10774_IG13
;; size=78 bbWeight=0.50 PerfScore 9.88
G_M10774_IG12:
- mov rsi, 0xD1FFAB1E
- movzx rdi, word ptr [rsi]
- mov word ptr [r15], di
+ mov word ptr [r15], 91
mov esi, dword ptr [rbp-0x28]
inc esi
mov dword ptr [rbp-0x28], esi
- ;; size=25 bbWeight=0.50 PerfScore 2.75
+ ;; size=14 bbWeight=0.50 PerfScore 1.62
G_M10774_IG13:
mov esi, dword ptr [rbx+0x24]
lea rdi, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
mov edi, dword ptr [rbp-0x28]
cmp edi, dword ptr [rbp-0x18]
ja G_M10774_IG41
mov rsi, bword ptr [rbp-0x20]
mov eax, edi
lea r15, bword ptr [rsi+2*rax]
mov esi, dword ptr [rbp-0x18]
sub esi, edi
cmp esi, 20
jae SHORT G_M10774_IG14
lea rdi, [rbp-0x38]
mov rsi, 0xD1FFAB1E ; '] SupportedVersion=''
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M10774_IG15
;; size=79 bbWeight=0.50 PerfScore 10.00
G_M10774_IG14:
mov rsi, 0xD1FFAB1E
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu xmm1, xmmword ptr [rsi+0x18]
vmovdqu ymmword ptr [r15], ymm0
vmovdqu xmmword ptr [r15+0x18], xmm1
mov esi, dword ptr [rbp-0x28]
add esi, 20
mov dword ptr [rbp-0x28], esi
;; size=39 bbWeight=0.50 PerfScore 7.75
G_M10774_IG15:
mov esi, dword ptr [rbx+0x10]
lea rdi, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
mov edi, dword ptr [rbp-0x28]
cmp edi, dword ptr [rbp-0x18]
ja G_M10774_IG41
mov rsi, bword ptr [rbp-0x20]
mov edx, edi
lea rsi, bword ptr [rsi+2*rdx]
mov edx, dword ptr [rbp-0x18]
sub edx, edi
je G_M10774_IG36
- mov rdi, 0xD1FFAB1E
- movzx rdx, word ptr [rdi]
- mov word ptr [rsi], dx
+ mov word ptr [rsi], 39
jmp G_M10774_IG38
- ;; size=73 bbWeight=0.50 PerfScore 9.50
+ ;; size=62 bbWeight=0.50 PerfScore 8.38
G_M10774_IG16:
lea rdi, [rbp-0x38]
mov esi, 47
mov edx, 5
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
mov esi, dword ptr [rbx+0x20]
lea rdi, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
mov edi, dword ptr [rbp-0x28]
cmp edi, dword ptr [rbp-0x18]
ja G_M10774_IG41
mov rsi, bword ptr [rbp-0x20]
mov eax, edi
lea r15, bword ptr [rsi+2*rax]
mov esi, dword ptr [rbp-0x18]
sub esi, edi
jne SHORT G_M10774_IG17
lea rdi, [rbp-0x38]
mov rsi, 0xD1FFAB1E ; ':'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M10774_IG18
;; size=102 bbWeight=0.50 PerfScore 12.00
G_M10774_IG17:
- mov rsi, 0xD1FFAB1E
- movzx rdi, word ptr [rsi]
- mov word ptr [r15], di
+ mov word ptr [r15], 58
mov esi, dword ptr [rbp-0x28]
inc esi
mov dword ptr [rbp-0x28], esi
- ;; size=25 bbWeight=0.50 PerfScore 2.75
+ ;; size=14 bbWeight=0.50 PerfScore 1.62
G_M10774_IG18:
movzx rsi, byte ptr [rbx+0x18]
lea rdi, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[ubyte](ubyte):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[ubyte](ubyte):this
mov edi, dword ptr [rbp-0x28]
cmp edi, dword ptr [rbp-0x18]
ja G_M10774_IG41
mov rsi, bword ptr [rbp-0x20]
mov eax, edi
lea r15, bword ptr [rsi+2*rax]
mov esi, dword ptr [rbp-0x18]
sub esi, edi
jne SHORT G_M10774_IG19
lea rdi, [rbp-0x38]
mov rsi, 0xD1FFAB1E ; '['
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M10774_IG20
;; size=78 bbWeight=0.50 PerfScore 9.88
G_M10774_IG19:
- mov rsi, 0xD1FFAB1E
- movzx rdi, word ptr [rsi]
- mov word ptr [r15], di
+ mov word ptr [r15], 91
mov esi, dword ptr [rbp-0x28]
inc esi
mov dword ptr [rbp-0x28], esi
- ;; size=25 bbWeight=0.50 PerfScore 2.75
+ ;; size=14 bbWeight=0.50 PerfScore 1.62
G_M10774_IG20:
mov esi, dword ptr [rbx+0x24]
lea rdi, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
mov edi, dword ptr [rbp-0x28]
cmp edi, dword ptr [rbp-0x18]
ja G_M10774_IG41
mov rsi, bword ptr [rbp-0x20]
mov eax, edi
lea r15, bword ptr [rsi+2*rax]
mov esi, dword ptr [rbp-0x18]
sub esi, edi
cmp esi, 20
jae SHORT G_M10774_IG21
lea rdi, [rbp-0x38]
mov rsi, 0xD1FFAB1E ; '] SupportedVersion=''
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M10774_IG22
;; size=79 bbWeight=0.50 PerfScore 10.00
G_M10774_IG21:
mov rsi, 0xD1FFAB1E
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu xmm1, xmmword ptr [rsi+0x18]
vmovdqu ymmword ptr [r15], ymm0
vmovdqu xmmword ptr [r15+0x18], xmm1
mov esi, dword ptr [rbp-0x28]
add esi, 20
mov dword ptr [rbp-0x28], esi
;; size=39 bbWeight=0.50 PerfScore 7.75
G_M10774_IG22:
mov esi, dword ptr [rbx+0x10]
lea rdi, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
mov edi, dword ptr [rbp-0x28]
cmp edi, dword ptr [rbp-0x18]
ja G_M10774_IG41
mov rsi, bword ptr [rbp-0x20]
mov eax, edi
lea r15, bword ptr [rsi+2*rax]
mov esi, dword ptr [rbp-0x18]
sub esi, edi
cmp esi, 24
jae SHORT G_M10774_IG23
lea rdi, [rbp-0x38]
mov rsi, 0xD1FFAB1E ; '' ApplicationProtocols=''
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M10774_IG24
;; size=79 bbWeight=0.50 PerfScore 10.00
G_M10774_IG23:
mov rsi, 0xD1FFAB1E
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu xmm1, xmmword ptr [rsi+0x20]
vmovdqu ymmword ptr [r15], ymm0
vmovdqu xmmword ptr [r15+0x20], xmm1
mov esi, dword ptr [rbp-0x28]
add esi, 24
mov dword ptr [rbp-0x28], esi
;; size=39 bbWeight=0.50 PerfScore 7.75
G_M10774_IG24:
mov esi, dword ptr [rbx+0x14]
lea rdi, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
mov edi, dword ptr [rbp-0x28]
cmp edi, dword ptr [rbp-0x18]
ja G_M10774_IG41
mov rsi, bword ptr [rbp-0x20]
mov edx, edi
lea rsi, bword ptr [rsi+2*rdx]
mov edx, dword ptr [rbp-0x18]
sub edx, edi
je G_M10774_IG36
- mov rdi, 0xD1FFAB1E
- movzx rdx, word ptr [rdi]
- mov word ptr [rsi], dx
+ mov word ptr [rsi], 39
jmp G_M10774_IG38
- ;; size=73 bbWeight=0.50 PerfScore 9.50
+ ;; size=62 bbWeight=0.50 PerfScore 8.38
G_M10774_IG25:
lea rdi, [rbp-0x38]
mov esi, 61
mov edx, 6
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this
mov esi, dword ptr [rbx+0x20]
lea rdi, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
mov edi, dword ptr [rbp-0x28]
cmp edi, dword ptr [rbp-0x18]
ja G_M10774_IG41
mov rsi, bword ptr [rbp-0x20]
mov eax, edi
lea r15, bword ptr [rsi+2*rax]
mov esi, dword ptr [rbp-0x18]
sub esi, edi
jne SHORT G_M10774_IG26
lea rdi, [rbp-0x38]
mov rsi, 0xD1FFAB1E ; ':'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M10774_IG27
;; size=102 bbWeight=0.50 PerfScore 12.00
G_M10774_IG26:
- mov rsi, 0xD1FFAB1E
- movzx rdi, word ptr [rsi]
- mov word ptr [r15], di
+ mov word ptr [r15], 58
mov esi, dword ptr [rbp-0x28]
inc esi
mov dword ptr [rbp-0x28], esi
- ;; size=25 bbWeight=0.50 PerfScore 2.75
+ ;; size=14 bbWeight=0.50 PerfScore 1.62
G_M10774_IG27:
movzx rsi, byte ptr [rbx+0x18]
lea rdi, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[ubyte](ubyte):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[ubyte](ubyte):this
mov edi, dword ptr [rbp-0x28]
cmp edi, dword ptr [rbp-0x18]
ja G_M10774_IG41
mov rsi, bword ptr [rbp-0x20]
mov eax, edi
lea r15, bword ptr [rsi+2*rax]
mov esi, dword ptr [rbp-0x18]
sub esi, edi
jne SHORT G_M10774_IG28
lea rdi, [rbp-0x38]
mov rsi, 0xD1FFAB1E ; '['
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M10774_IG29
;; size=78 bbWeight=0.50 PerfScore 9.88
G_M10774_IG28:
- mov rsi, 0xD1FFAB1E
- movzx rdi, word ptr [rsi]
- mov word ptr [r15], di
+ mov word ptr [r15], 91
mov esi, dword ptr [rbp-0x28]
inc esi
mov dword ptr [rbp-0x28], esi
- ;; size=25 bbWeight=0.50 PerfScore 2.75
+ ;; size=14 bbWeight=0.50 PerfScore 1.62
G_M10774_IG29:
mov esi, dword ptr [rbx+0x24]
lea rdi, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
mov edi, dword ptr [rbp-0x28]
cmp edi, dword ptr [rbp-0x18]
ja G_M10774_IG41
mov rsi, bword ptr [rbp-0x20]
mov eax, edi
lea r15, bword ptr [rsi+2*rax]
mov esi, dword ptr [rbp-0x18]
sub esi, edi
cmp esi, 14
jae SHORT G_M10774_IG30
lea rdi, [rbp-0x38]
mov rsi, 0xD1FFAB1E ; '] TargetName=''
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M10774_IG31
;; size=79 bbWeight=0.50 PerfScore 10.00
G_M10774_IG30:
mov rsi, 0xD1FFAB1E
vmovdqu xmm0, xmmword ptr [rsi]
vmovdqu xmm1, xmmword ptr [rsi+0x0C]
vmovdqu xmmword ptr [r15], xmm0
vmovdqu xmmword ptr [r15+0x0C], xmm1
mov esi, dword ptr [rbp-0x28]
add esi, 14
mov dword ptr [rbp-0x28], esi
;; size=39 bbWeight=0.50 PerfScore 7.25
G_M10774_IG31:
mov rsi, gword ptr [rbx]
lea rdi, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this
mov edi, dword ptr [rbp-0x28]
cmp edi, dword ptr [rbp-0x18]
ja G_M10774_IG41
mov rsi, bword ptr [rbp-0x20]
mov eax, edi
lea r15, bword ptr [rsi+2*rax]
mov esi, dword ptr [rbp-0x18]
sub esi, edi
cmp esi, 20
jae SHORT G_M10774_IG32
lea rdi, [rbp-0x38]
mov rsi, 0xD1FFAB1E ; '' SupportedVersion=''
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M10774_IG33
;; size=79 bbWeight=0.50 PerfScore 10.00
G_M10774_IG32:
mov rsi, 0xD1FFAB1E
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu xmm1, xmmword ptr [rsi+0x18]
vmovdqu ymmword ptr [r15], ymm0
vmovdqu xmmword ptr [r15+0x18], xmm1
mov esi, dword ptr [rbp-0x28]
add esi, 20
mov dword ptr [rbp-0x28], esi
;; size=39 bbWeight=0.50 PerfScore 7.75
G_M10774_IG33:
mov esi, dword ptr [rbx+0x10]
lea rdi, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
mov edi, dword ptr [rbp-0x28]
cmp edi, dword ptr [rbp-0x18]
ja G_M10774_IG41
mov rsi, bword ptr [rbp-0x20]
mov eax, edi
lea r15, bword ptr [rsi+2*rax]
mov esi, dword ptr [rbp-0x18]
sub esi, edi
cmp esi, 24
jae SHORT G_M10774_IG34
lea rdi, [rbp-0x38]
mov rsi, 0xD1FFAB1E ; '' ApplicationProtocols=''
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M10774_IG35
;; size=79 bbWeight=0.50 PerfScore 10.00
G_M10774_IG34:
mov rsi, 0xD1FFAB1E
vmovdqu ymm0, ymmword ptr [rsi]
vmovdqu xmm1, xmmword ptr [rsi+0x20]
vmovdqu ymmword ptr [r15], ymm0
vmovdqu xmmword ptr [r15+0x20], xmm1
mov esi, dword ptr [rbp-0x28]
add esi, 24
mov dword ptr [rbp-0x28], esi
;; size=39 bbWeight=0.50 PerfScore 7.75
G_M10774_IG35:
mov esi, dword ptr [rbx+0x14]
lea rdi, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this
mov edi, dword ptr [rbp-0x28]
cmp edi, dword ptr [rbp-0x18]
ja SHORT G_M10774_IG41
mov rsi, bword ptr [rbp-0x20]
mov eax, edi
lea rbx, bword ptr [rsi+2*rax]
mov esi, dword ptr [rbp-0x18]
sub esi, edi
jne SHORT G_M10774_IG37
;; size=44 bbWeight=0.50 PerfScore 6.88
G_M10774_IG36:
lea rdi, [rbp-0x38]
mov rsi, 0xD1FFAB1E ; '''
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this
jmp SHORT G_M10774_IG39
;; size=28 bbWeight=0.50 PerfScore 3.00
G_M10774_IG37:
- mov rdi, 0xD1FFAB1E
- movzx rax, word ptr [rdi]
- mov word ptr [rbx], ax
- ;; size=16 bbWeight=0.50 PerfScore 1.62
+ mov word ptr [rbx], 39
+ ;; size=5 bbWeight=0.50 PerfScore 0.50
G_M10774_IG38:
mov edi, dword ptr [rbp-0x28]
inc edi
mov dword ptr [rbp-0x28], edi
;; size=8 bbWeight=0.50 PerfScore 1.12
G_M10774_IG39:
lea rdi, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this
nop
;; size=17 bbWeight=1 PerfScore 4.00
G_M10774_IG40:
add rsp, 48
pop rbx
pop r15
pop rbp
ret
;; size=9 bbWeight=1 PerfScore 2.75
G_M10774_IG41:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 2074, prolog size 29, PerfScore 280.21, instruction count 483, allocated bytes for code 2074 (MethodHash=417ad5e9) for method System.Net.Security.TlsFrameHelper+TlsFrameInfo:ToString():System.String:this (FullOpts)
+; Total bytes of code 1942, prolog size 29, PerfScore 266.71, instruction count 459, allocated bytes for code 1942 (MethodHash=417ad5e9) for method System.Net.Security.TlsFrameHelper+TlsFrameInfo:ToString():System.String:this (FullOpts)
; ============================================================ Note: some changes were skipped as they were too large to fit into a comment. Larger list of diffs: https://gist.github.com/MihuBot/def46b0925df5b92dff6f8f1962b90c6 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 19 minutes 37 seconds.
dotnet/runtime#108576
Diffs
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: