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] Expand "return condition" into "return condition ? true : false" #642
Comments
Top method regressions73 (3.15 % of base) - System.ServiceModel.Syndication.AtomPub10ServiceDocumentFormatter:ReadDocument(System.Xml.XmlReader):this ; Assembly listing for method System.ServiceModel.Syndication.AtomPub10ServiceDocumentFormatter:ReadDocument(System.Xml.XmlReader):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 34 single block inlinees; 12 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T06] ( 11, 29 ) ref -> r15 this class-hnd single-def <System.ServiceModel.Syndication.AtomPub10ServiceDocumentFormatter>
-; V01 arg1 [V01,T00] ( 34, 91.25) ref -> [rbp-0x60] class-hnd EH-live single-def <System.Xml.XmlReader>
+; V01 arg1 [V01,T00] ( 28, 80 ) ref -> [rbp-0x68] class-hnd EH-live single-def <System.Xml.XmlReader>
; V02 loc0 [V02,T01] ( 13, 40.50) ref -> r13 class-hnd single-def <System.ServiceModel.Syndication.ServiceDocument>
-; V03 loc1 [V03,T47] ( 2, 2 ) ubyte -> [rbp-0x2C] spill-single-def
-; V04 loc2 [V04,T38] ( 5, 9.50) ref -> r12 ld-addr-op class-hnd <System.ServiceModel.XmlBuffer>
-; V05 loc3 [V05,T17] ( 13, 17 ) ref -> [rbp-0x68] do-not-enreg[Z] ld-addr-op class-hnd EH-live <System.Xml.XmlDictionaryWriter>
-; V06 loc4 [V06,T07] ( 11, 26 ) ref -> [rbp-0x70] class-hnd exact <System.String>
-; V07 loc5 [V07,T11] ( 9, 23 ) ref -> [rbp-0x78] class-hnd exact <System.String>
-; V08 loc6 [V08,T39] ( 2, 8 ) ref -> [rbp-0x80] class-hnd exact spill-single-def <System.String>
+; V03 loc1 [V03,T48] ( 2, 2 ) ubyte -> [rbp-0x2C] spill-single-def
+; V04 loc2 [V04,T39] ( 5, 9.50) ref -> [rbp-0x70] ld-addr-op class-hnd <System.ServiceModel.XmlBuffer>
+; V05 loc3 [V05,T17] ( 13, 17 ) ref -> [rbp-0x78] do-not-enreg[Z] ld-addr-op class-hnd EH-live <System.Xml.XmlDictionaryWriter>
+; V06 loc4 [V06,T07] ( 11, 26 ) ref -> [rbp-0x80] class-hnd exact <System.String>
+; V07 loc5 [V07,T11] ( 9, 23 ) ref -> [rbp-0x88] class-hnd exact <System.String>
+; V08 loc6 [V08,T40] ( 2, 8 ) ref -> [rbp-0x90] class-hnd exact spill-single-def <System.String>
;* V09 loc7 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.FormatException>
;* V10 loc8 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.ArgumentException>
;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V12 tmp1 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "non-inline candidate call" <System.Collections.ObjectModel.Collection`1[System.ServiceModel.Syndication.Workspace]>
;* V13 tmp2 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd "non-inline candidate call" <System.Collections.Generic.Dictionary`2[System.Xml.XmlQualifiedName,System.String]>
-; V14 tmp3 [V14,T20] ( 2, 16 ) ref -> [rbp-0x88] class-hnd exact spill-single-def "non-inline candidate call" <System.String>
-; V15 tmp4 [V15,T05] ( 4, 32 ) ref -> [rbp-0x90] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlQualifiedName>
-; V16 tmp5 [V16,T09] ( 3, 24 ) ref -> [rbp-0x98] class-hnd exact spill-single-def "NewObj constructor temp" <System.Uri>
-; V17 tmp6 [V17,T53] ( 2, 0 ) ref -> rbx class-hnd single-def "impSpillSpecialSideEff" <System.ArgumentException>
-; V18 tmp7 [V18,T50] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
-; V19 tmp8 [V19,T54] ( 2, 0 ) ref -> rbx class-hnd single-def "impSpillSpecialSideEff" <System.FormatException>
-; V20 tmp9 [V20,T51] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
+; V14 tmp3 [V14,T20] ( 2, 16 ) ref -> [rbp-0x98] class-hnd exact spill-single-def "non-inline candidate call" <System.String>
+; V15 tmp4 [V15,T05] ( 4, 32 ) ref -> [rbp-0xA0] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlQualifiedName>
+; V16 tmp5 [V16,T09] ( 3, 24 ) ref -> [rbp-0xA8] class-hnd exact spill-single-def "NewObj constructor temp" <System.Uri>
+; V17 tmp6 [V17,T54] ( 2, 0 ) ref -> rbx class-hnd single-def "impSpillSpecialSideEff" <System.ArgumentException>
+; V18 tmp7 [V18,T51] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
+; V19 tmp8 [V19,T55] ( 2, 0 ) ref -> rbx class-hnd single-def "impSpillSpecialSideEff" <System.FormatException>
+; V20 tmp9 [V20,T52] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Xml.XmlException>
;* V21 tmp10 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V22 tmp11 [V22,T12] ( 4, 22 ) ref -> rax "spilling varStr"
;* V23 tmp12 [V23 ] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
; V24 tmp13 [V24,T03] ( 6, 32 ) ref -> rdi class-hnd exact "Inlining Arg" <System.String>
;* V25 tmp14 [V25 ] ( 0, 0 ) ref -> zero-ref "spilling varStr"
-; V26 tmp15 [V26,T44] ( 2, 4 ) ubyte -> rax "Inline return value spill temp"
+; V26 tmp15 [V26,T45] ( 2, 4 ) ubyte -> rax "Inline return value spill temp"
;* V27 tmp16 [V27 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
; V28 tmp17 [V28,T21] ( 2, 16 ) ref -> rax class-hnd exact "Inlining Arg" <System.String>
;* V29 tmp18 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V30 tmp19 [V30,T13] ( 4, 22 ) ref -> rax "spilling varStr"
;* V31 tmp20 [V31 ] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
; V32 tmp21 [V32,T04] ( 6, 32 ) ref -> rdi class-hnd exact "Inlining Arg" <System.String>
;* V33 tmp22 [V33 ] ( 0, 0 ) ref -> zero-ref "spilling varStr"
-; V34 tmp23 [V34,T45] ( 2, 4 ) ubyte -> rax "Inline return value spill temp"
+; V34 tmp23 [V34,T46] ( 2, 4 ) ubyte -> rax "Inline return value spill temp"
;* V35 tmp24 [V35 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
; V36 tmp25 [V36,T10] ( 3, 24 ) ref -> rax class-hnd exact "Inlining Arg" <System.String>
; V37 tmp26 [V37 ] ( 2, 8 ) struct ( 8) [rbp-0x38] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.UriCreationOptions>
-; V38 tmp27 [V38,T41] ( 2, 8 ) ubyte -> rdx "Inline return value spill temp"
+; V38 tmp27 [V38,T42] ( 2, 8 ) ubyte -> rdx "Inline return value spill temp"
;* V39 tmp28 [V39 ] ( 0, 0 ) ref -> zero-ref "spilling varStr"
;* V40 tmp29 [V40 ] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V41 tmp30 [V41 ] ( 0, 0 ) ref -> zero-ref "spilling varStr"
-; V42 tmp31 [V42,T36] ( 3, 11 ) int -> rdx "spilling unroll qmark"
-; V43 tmp32 [V43,T42] ( 2, 8 ) ubyte -> r10 "Inline return value spill temp"
+; V42 tmp31 [V42,T37] ( 3, 11 ) int -> rdx "spilling unroll qmark"
+; V43 tmp32 [V43,T43] ( 2, 8 ) ubyte -> r10 "Inline return value spill temp"
;* V44 tmp33 [V44 ] ( 0, 0 ) ref -> zero-ref "spilling varStr"
;* V45 tmp34 [V45 ] ( 0, 0 ) int -> zero-ref "spilling unroll qmark"
;* V46 tmp35 [V46 ] ( 0, 0 ) ref -> zero-ref "spilling varStr"
-; V47 tmp36 [V47,T37] ( 4, 10 ) ubyte -> r10 "Inline return value spill temp"
+; V47 tmp36 [V47,T38] ( 4, 10 ) ubyte -> r10 "Inline return value spill temp"
;* V48 tmp37 [V48 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt"
; V49 tmp38 [V49,T22] ( 2, 16 ) ref -> r8 class-hnd exact "Inlining Arg" <System.String>
-; V50 tmp39 [V50,T52] ( 3, 0 ) ref -> r15 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
+; V50 tmp39 [V50,T53] ( 3, 0 ) ref -> r15 class-hnd exact "NewObj constructor temp" <System.ArgumentNullException>
;* V51 tmp40 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" <System.Collections.Generic.Dictionary`2[System.Xml.XmlQualifiedName,System.String]>
-; V52 tmp41 [V52,T15] ( 3, 20 ) byref -> [rbp-0xA0] spill-single-def "Inlining Arg"
+; V52 tmp41 [V52,T15] ( 3, 20 ) byref -> [rbp-0xB0] spill-single-def "Inlining Arg"
; V53 tmp42 [V53,T23] ( 2, 16 ) ref -> rsi class-hnd "dup spill" <System.Collections.Generic.Dictionary`2[System.Xml.XmlQualifiedName,System.String]>
-; V54 tmp43 [V54,T16] ( 5, 18 ) ref -> [rbp-0xA8]
-; V55 tmp44 [V55,T18] ( 4, 16 ) ref -> [rbp-0xB0] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.Dictionary`2[System.Xml.XmlQualifiedName,System.String]>
+; V54 tmp43 [V54,T16] ( 5, 18 ) ref -> [rbp-0xB8]
+; V55 tmp44 [V55,T18] ( 4, 16 ) ref -> [rbp-0xC0] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.Dictionary`2[System.Xml.XmlQualifiedName,System.String]>
;* V56 tmp45 [V56 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Collections.Generic.Dictionary`2[System.Xml.XmlQualifiedName,System.String]>
; V57 tmp46 [V57,T24] ( 2, 16 ) ref -> rsi class-hnd exact "Inlining Arg" <System.String>
;* V58 tmp47 [V58 ] ( 0, 0 ) ref -> zero-ref
; V59 tmp48 [V59,T31] ( 4, 14 ) ref -> rsi
;* V60 tmp49 [V60 ] ( 0, 0 ) ref -> zero-ref
; V61 tmp50 [V61,T32] ( 4, 14 ) ref -> rsi
; V62 tmp51 [V62,T25] ( 2, 16 ) ref -> rdx class-hnd exact "Inlining Arg" <System.String>
; V63 tmp52 [V63,T26] ( 2, 16 ) ref -> rax class-hnd "dup spill" <System.Collections.ObjectModel.Collection`1[System.ServiceModel.Syndication.Workspace]>
-; V64 tmp53 [V64,T08] ( 7, 26 ) ref -> [rbp-0xB8]
-; V65 tmp54 [V65,T19] ( 4, 16 ) ref -> [rbp-0xC0] class-hnd exact spill-single-def "NewObj constructor temp" <System.ServiceModel.Syndication.NullNotAllowedCollection`1[System.ServiceModel.Syndication.Workspace]>
+; V64 tmp53 [V64,T08] ( 7, 26 ) ref -> [rbp-0xC8]
+; V65 tmp54 [V65,T19] ( 4, 16 ) ref -> [rbp-0xD0] class-hnd exact spill-single-def "NewObj constructor temp" <System.ServiceModel.Syndication.NullNotAllowedCollection`1[System.ServiceModel.Syndication.Workspace]>
;* V66 tmp55 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.ServiceModel.Syndication.NullNotAllowedCollection`1[System.ServiceModel.Syndication.Workspace]>
-; V67 tmp56 [V67,T33] ( 3, 12 ) ref -> [rbp-0xC8] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.ServiceModel.Syndication.Workspace]>
+; V67 tmp56 [V67,T34] ( 3, 12 ) ref -> [rbp-0xD8] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.ServiceModel.Syndication.Workspace]>
;* V68 tmp57 [V68 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V69 tmp58 [V69,T27] ( 2, 16 ) ref -> [rbp-0xD0] class-hnd spill-single-def "Inlining Arg" <System.ServiceModel.Syndication.Workspace>
-; V70 tmp59 [V70,T35] ( 2, 12 ) int -> [rbp-0x3C] spill-single-def "Inlining Arg"
-; V71 tmp60 [V71,T34] ( 3, 12 ) ref -> r12 class-hnd exact "NewObj constructor temp" <System.ServiceModel.XmlBuffer>
+; V69 tmp58 [V69,T27] ( 2, 16 ) ref -> [rbp-0xE0] class-hnd spill-single-def "Inlining Arg" <System.ServiceModel.Syndication.Workspace>
+; V70 tmp59 [V70,T36] ( 2, 12 ) int -> [rbp-0x3C] spill-single-def "Inlining Arg"
+; V71 tmp60 [V71,T35] ( 3, 12 ) ref -> [rbp-0xE8] class-hnd exact spill-single-def "NewObj constructor temp" <System.ServiceModel.XmlBuffer>
;* V72 tmp61 [V72 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.ServiceModel.XmlBuffer>
;* V73 tmp62 [V73 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Xml.XmlDictionaryWriter>
; V74 tmp63 [V74 ] ( 2, 8 ) ubyte -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V37._disablePathAndQueryCanonicalization (fldOffset=0x0)" P-DEP
-; V75 tmp64 [V75,T55] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V75 tmp64 [V75,T56] ( 2, 0 ) ref -> rsi "argument with side effect"
; V76 tmp65 [V76,T28] ( 2, 16 ) ref -> rdx "argument with side effect"
-; V77 tmp66 [V77,T40] ( 2, 8 ) ref -> rsi "argument with side effect"
+; V77 tmp66 [V77,T41] ( 2, 8 ) ref -> rsi "argument with side effect"
; V78 tmp67 [V78,T29] ( 2, 16 ) int -> rsi "argument with side effect"
-; V79 tmp68 [V79,T56] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V80 tmp69 [V80,T57] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V81 tmp70 [V81,T58] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V82 tmp71 [V82,T59] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V83 PSPSym [V83,T48] ( 1, 1 ) long -> [rbp-0xE0] do-not-enreg[V] "PSPSym"
-; V84 cse0 [V84,T02] ( 10, 34 ) long -> r12 "CSE #03: aggressive"
-; V85 cse1 [V85,T14] ( 5, 20 ) long -> [rbp-0x48] "CSE #06: moderate"
-; V86 cse2 [V86,T43] ( 2, 4.25) long -> [rbp-0x50] spill-single-def hoist "CSE #02: conservative"
-; V87 cse3 [V87,T30] ( 5, 14 ) long -> [rbp-0x58] multi-def "CSE #15: moderate"
-; V88 cse4 [V88,T46] ( 3, 3 ) long -> r14 "CSE #18: conservative"
-; V89 rat0 [V89,T49] ( 3, 3 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
+; V79 tmp68 [V79,T57] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V80 tmp69 [V80,T58] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V81 tmp70 [V81,T59] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V82 tmp71 [V82,T60] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V83 PSPSym [V83,T49] ( 1, 1 ) long -> [rbp-0xF0] do-not-enreg[V] "PSPSym"
+; V84 cse0 [V84,T02] ( 10, 34 ) long -> [rbp-0x48] spill-single-def "CSE #03: aggressive"
+; V85 cse1 [V85,T14] ( 5, 20 ) long -> [rbp-0x50] "CSE #06: moderate"
+; V86 cse2 [V86,T44] ( 2, 4.25) long -> [rbp-0x58] spill-single-def hoist "CSE #02: conservative"
+; V87 cse3 [V87,T30] ( 5, 14 ) long -> [rbp-0x60] multi-def "CSE #15: moderate"
+; V88 cse4 [V88,T47] ( 3, 3 ) long -> r14 "CSE #18: conservative"
+; V89 cse5 [V89,T33] ( 8, 13.25) long -> r12 "CSE #01: moderate"
+; V90 rat0 [V90,T50] ( 3, 3 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 184
+; Lcl frame size = 200
G_M28525_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 184
- lea rbp, [rsp+0xE0]
+ sub rsp, 200
+ lea rbp, [rsp+0xF0]
xor eax, eax
mov qword ptr [rbp-0x38], rax
- mov qword ptr [rbp-0xE0], rsp
- mov gword ptr [rbp-0x60], rsi
+ mov qword ptr [rbp-0xF0], rsp
+ mov gword ptr [rbp-0x68], rsi
mov r15, rdi
mov rbx, rsi
;; size=48 bbWeight=1 PerfScore 10.50
G_M28525_IG02:
mov rdi, r15
mov rax, qword ptr [r15]
mov r14, qword ptr [rax+0x48]
call [r14]System.ServiceModel.Syndication.ServiceDocumentFormatter:CreateDocumentInstance():System.ServiceModel.Syndication.ServiceDocument:this
mov r13, rax
;; size=16 bbWeight=1 PerfScore 7.50
G_M28525_IG03:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.ServiceModel.Syndication.SyndicationFeedFormatter:MoveToStartElement(System.Xml.XmlReader)
call [rax]System.ServiceModel.Syndication.SyndicationFeedFormatter:MoveToStartElement(System.Xml.XmlReader)
mov rdi, rbx
- mov rax, qword ptr [rbx]
- mov r12, qword ptr [rax+0x48]
- call [r12+0x30]System.Xml.XmlReader:get_IsEmptyElement():ubyte:this
+ mov r12, qword ptr [rbx]
+ mov rax, qword ptr [r12+0x48]
+ mov qword ptr [rbp-0x48], rax
+ call [rax+0x30]System.Xml.XmlReader:get_IsEmptyElement():ubyte:this
mov dword ptr [rbp-0x2C], eax
mov rdi, rbx
- mov rcx, qword ptr [rbx]
- mov rcx, qword ptr [rcx+0xA0]
+ mov rcx, qword ptr [r12+0xA0]
call [rcx+0x38]System.Xml.XmlReader:get_HasAttributes():ubyte:this
test eax, eax
je G_M28525_IG44
- ;; size=57 bbWeight=1 PerfScore 20.25
+ ;; size=58 bbWeight=1 PerfScore 19.25
G_M28525_IG04:
- mov rdi, qword ptr [rbx]
- mov rax, qword ptr [rdi+0x78]
- mov qword ptr [rbp-0x50], rax
+ mov rax, qword ptr [r12+0x78]
+ mov qword ptr [rbp-0x58], rax
jmp SHORT G_M28525_IG06
- ;; size=13 bbWeight=0.25 PerfScore 1.75
+ ;; size=11 bbWeight=0.25 PerfScore 1.25
G_M28525_IG05:
- mov rax, gword ptr [rbp-0x90]
+ mov rax, gword ptr [rbp-0xA0]
lea rdi, bword ptr [rax+0x10]
call CORINFO_HELP_ASSIGN_REF
mov rdi, rbx
- call [r12+0x18]System.Xml.XmlReader:get_Value():System.String:this
+ mov rax, qword ptr [rbp-0x48]
+ call [rax+0x18]System.Xml.XmlReader:get_Value():System.String:this
mov rdx, rax
- mov rdi, gword ptr [rbp-0xA8]
+ mov rdi, gword ptr [rbp-0xB8]
cmp byte ptr [rdi], dil
- mov rsi, gword ptr [rbp-0x90]
+ mov rsi, gword ptr [rbp-0xA0]
mov ecx, 2
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,ubyte):ubyte:this
call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,ubyte):ubyte:this
- mov rax, qword ptr [rbp-0x50]
- ;; size=65 bbWeight=4 PerfScore 62.00
+ mov rax, qword ptr [rbp-0x58]
+ ;; size=67 bbWeight=4 PerfScore 66.00
G_M28525_IG06:
mov rdi, rbx
call [rax+0x38]System.Xml.XmlReader:MoveToNextAttribute():ubyte:this
test eax, eax
je G_M28525_IG44
mov rdi, rbx
- mov rax, qword ptr [rbx]
- mov rax, qword ptr [rax+0x40]
- mov qword ptr [rbp-0x48], rax
+ mov rax, qword ptr [r12+0x40]
+ mov qword ptr [rbp-0x50], rax
call [rax+0x38]System.Xml.XmlReader:get_LocalName():System.String:this
test rax, rax
je SHORT G_M28525_IG11
- ;; size=36 bbWeight=4 PerfScore 56.00
+ ;; size=34 bbWeight=4 PerfScore 48.00
G_M28525_IG07:
cmp dword ptr [rax+0x08], 4
jne SHORT G_M28525_IG11
;; size=6 bbWeight=2 PerfScore 8.00
G_M28525_IG08:
mov rdi, 0xD1FFAB1E
cmp qword ptr [rax+0x0C], rdi
jne SHORT G_M28525_IG11
;; size=16 bbWeight=1 PerfScore 4.25
G_M28525_IG09:
mov rdi, rbx
- call [r12]System.Xml.XmlReader:get_NamespaceURI():System.String:this
+ mov rax, qword ptr [rbp-0x48]
+ call [rax]System.Xml.XmlReader:get_NamespaceURI():System.String:this
mov rdi, rax
mov rdx, 0xD1FFAB1E ; 'http://www.w3.org/XML/1998/namespace'
cmp rdi, rdx
je G_M28525_IG43
- ;; size=29 bbWeight=4 PerfScore 20.00
+ ;; size=31 bbWeight=4 PerfScore 24.00
G_M28525_IG10:
test rdi, rdi
je SHORT G_M28525_IG11
cmp dword ptr [rdi+0x08], 36
jne SHORT G_M28525_IG11
mov edx, dword ptr [rdi+0x08]
add edx, edx
mov rsi, 0xD1FFAB1E
add rdi, 12
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
jne G_M28525_IG43
;; size=50 bbWeight=2 PerfScore 25.00
G_M28525_IG11:
mov rdi, rbx
- mov rax, qword ptr [rbp-0x48]
+ mov rax, qword ptr [rbp-0x50]
call [rax+0x38]System.Xml.XmlReader:get_LocalName():System.String:this
test rax, rax
je SHORT G_M28525_IG16
;; size=15 bbWeight=4 PerfScore 22.00
G_M28525_IG12:
cmp dword ptr [rax+0x08], 4
jne SHORT G_M28525_IG16
;; size=6 bbWeight=2 PerfScore 8.00
G_M28525_IG13:
mov rdi, 0xD1FFAB1E
cmp qword ptr [rax+0x0C], rdi
jne SHORT G_M28525_IG16
;; size=16 bbWeight=1 PerfScore 4.25
G_M28525_IG14:
mov rdi, rbx
- call [r12]System.Xml.XmlReader:get_NamespaceURI():System.String:this
+ mov rax, qword ptr [rbp-0x48]
+ call [rax]System.Xml.XmlReader:get_NamespaceURI():System.String:this
mov rdi, rax
mov rdx, 0xD1FFAB1E ; 'http://www.w3.org/XML/1998/namespace'
cmp rdi, rdx
je G_M28525_IG42
- ;; size=29 bbWeight=4 PerfScore 20.00
+ ;; size=31 bbWeight=4 PerfScore 24.00
G_M28525_IG15:
test rdi, rdi
je SHORT G_M28525_IG16
cmp dword ptr [rdi+0x08], 36
jne SHORT G_M28525_IG16
mov edx, dword ptr [rdi+0x08]
add edx, edx
mov rsi, 0xD1FFAB1E
add rdi, 12
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
jne G_M28525_IG42
;; size=50 bbWeight=2 PerfScore 25.00
G_M28525_IG16:
mov rdi, rbx
- call [r12]System.Xml.XmlReader:get_NamespaceURI():System.String:this
- mov gword ptr [rbp-0x70], rax
+ mov rax, qword ptr [rbp-0x48]
+ call [rax]System.Xml.XmlReader:get_NamespaceURI():System.String:this
+ mov gword ptr [rbp-0x80], rax
mov rdi, rbx
- mov rcx, qword ptr [rbp-0x48]
+ mov rcx, qword ptr [rbp-0x50]
call [rcx+0x38]System.Xml.XmlReader:get_LocalName():System.String:this
test rax, rax
je SHORT G_M28525_IG19
- ;; size=26 bbWeight=4 PerfScore 39.00
+ ;; size=28 bbWeight=4 PerfScore 43.00
G_M28525_IG17:
cmp dword ptr [rax+0x08], 5
jne SHORT G_M28525_IG19
;; size=6 bbWeight=2 PerfScore 8.00
G_M28525_IG18:
mov rdx, 0xD1FFAB1E
xor rdx, qword ptr [rax+0x0C]
mov esi, dword ptr [rax+0x12]
xor esi, 0xD1FFAB1E
or rdx, rsi
je SHORT G_M28525_IG21
;; size=28 bbWeight=1 PerfScore 6.75
G_M28525_IG19:
- mov rcx, gword ptr [rbp-0x70]
+ mov rcx, gword ptr [rbp-0x80]
test rcx, rcx
je SHORT G_M28525_IG22
;; size=9 bbWeight=4 PerfScore 9.00
G_M28525_IG20:
cmp dword ptr [rcx+0x08], 29
jne SHORT G_M28525_IG22
- jmp SHORT G_M28525_IG32
- ;; size=8 bbWeight=1 PerfScore 6.00
+ jmp G_M28525_IG32
+ ;; size=11 bbWeight=1 PerfScore 6.00
G_M28525_IG21:
- mov rax, qword ptr [rbp-0x50]
+ mov rax, qword ptr [rbp-0x58]
jmp G_M28525_IG06
;; size=9 bbWeight=0.50 PerfScore 1.50
G_M28525_IG22:
xor edx, edx
;; size=2 bbWeight=1 PerfScore 0.25
G_M28525_IG23:
test edx, edx
jne SHORT G_M28525_IG31
mov r8, rax
- mov rax, qword ptr [rbp-0x50]
+ mov rax, qword ptr [rbp-0x58]
test r8, r8
je SHORT G_M28525_IG30
;; size=16 bbWeight=4 PerfScore 15.00
G_M28525_IG24:
cmp dword ptr [r8+0x08], 4
jne SHORT G_M28525_IG29
;; size=7 bbWeight=2 PerfScore 8.00
G_M28525_IG25:
mov rdx, 0xD1FFAB1E
- mov gword ptr [rbp-0x78], r8
+ mov gword ptr [rbp-0x88], r8
cmp qword ptr [r8+0x0C], rdx
jne SHORT G_M28525_IG28
- ;; size=20 bbWeight=1 PerfScore 5.25
+ ;; size=23 bbWeight=1 PerfScore 5.25
G_M28525_IG26:
mov rdx, 0xD1FFAB1E ; 'http://www.w3.org/2001/XMLSchema-instance'
cmp rcx, rdx
jne SHORT G_M28525_IG33
;; size=15 bbWeight=4 PerfScore 6.00
G_M28525_IG27:
mov r10d, 1
jmp G_M28525_IG35
;; size=11 bbWeight=2 PerfScore 4.50
G_M28525_IG28:
- mov gword ptr [rbp-0x70], rcx
+ mov gword ptr [rbp-0x80], rcx
jmp G_M28525_IG36
;; size=9 bbWeight=0.50 PerfScore 1.50
G_M28525_IG29:
- mov gword ptr [rbp-0x70], rcx
- mov gword ptr [rbp-0x78], r8
+ mov gword ptr [rbp-0x80], rcx
+ mov gword ptr [rbp-0x88], r8
jmp G_M28525_IG36
- ;; size=13 bbWeight=1 PerfScore 4.00
+ ;; size=16 bbWeight=1 PerfScore 4.00
G_M28525_IG30:
- mov gword ptr [rbp-0x70], rcx
- mov gword ptr [rbp-0x78], r8
+ mov gword ptr [rbp-0x80], rcx
+ mov gword ptr [rbp-0x88], r8
jmp G_M28525_IG36
- ;; size=13 bbWeight=2 PerfScore 8.00
+ ;; size=16 bbWeight=2 PerfScore 8.00
G_M28525_IG31:
- mov rax, qword ptr [rbp-0x50]
+ mov rax, qword ptr [rbp-0x58]
jmp G_M28525_IG06
;; size=9 bbWeight=2 PerfScore 6.00
G_M28525_IG32:
vmovups ymm0, ymmword ptr [rcx+0x0C]
vpxor ymm0, ymm0, ymmword ptr [reloc @RWD00]
vmovups ymm1, ymmword ptr [rcx+0x26]
vpxor ymm1, ymm1, ymmword ptr [reloc @RWD32]
vpor ymm0, ymm1, ymm0
vptest ymm0, ymm0
sete dl
movzx rdx, dl
jmp G_M28525_IG23
;; size=46 bbWeight=0.50 PerfScore 11.29
G_M28525_IG33:
test rcx, rcx
je SHORT G_M28525_IG34
cmp dword ptr [rcx+0x08], 41
jne SHORT G_M28525_IG34
mov edx, dword ptr [rcx+0x08]
add edx, edx
mov rsi, 0xD1FFAB1E
- mov gword ptr [rbp-0x70], rcx
+ mov gword ptr [rbp-0x80], rcx
lea rdi, bword ptr [rcx+0x0C]
mov r10, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [r10]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
mov r10d, eax
- mov rax, qword ptr [rbp-0x50]
- mov rcx, gword ptr [rbp-0x70]
+ mov rax, qword ptr [rbp-0x58]
+ mov rcx, gword ptr [rbp-0x80]
jmp SHORT G_M28525_IG35
;; size=60 bbWeight=2 PerfScore 33.50
G_M28525_IG34:
xor r10d, r10d
;; size=3 bbWeight=2 PerfScore 0.50
G_M28525_IG35:
test r10d, r10d
- mov gword ptr [rbp-0x70], rcx
+ mov gword ptr [rbp-0x80], rcx
jne G_M28525_IG06
;; size=13 bbWeight=4 PerfScore 9.00
G_M28525_IG36:
mov rdi, rbx
- call [r12+0x18]System.Xml.XmlReader:get_Value():System.String:this
- mov gword ptr [rbp-0x80], rax
+ mov rdx, qword ptr [rbp-0x48]
+ call [rdx+0x18]System.Xml.XmlReader:get_Value():System.String:this
+ mov gword ptr [rbp-0x90], rax
mov rdi, r15
mov rcx, qword ptr [r15]
mov rcx, qword ptr [rcx+0x40]
call [rcx+0x20]System.ServiceModel.Syndication.ServiceDocumentFormatter:get_Version():System.String:this
mov r8, rax
test r13, r13
je G_M28525_IG59
mov rdi, r13
- mov rsi, gword ptr [rbp-0x78]
- mov rdx, gword ptr [rbp-0x70]
- mov rcx, gword ptr [rbp-0x80]
+ mov rsi, gword ptr [rbp-0x88]
+ mov rdx, gword ptr [rbp-0x80]
+ mov rcx, gword ptr [rbp-0x90]
mov rax, qword ptr [r13]
mov rax, qword ptr [rax+0x40]
call [rax+0x38]System.ServiceModel.Syndication.ServiceDocument:TryParseAttribute(System.String,System.String,System.String,System.String):ubyte:this
test eax, eax
- mov rax, qword ptr [rbp-0x50]
+ mov rax, qword ptr [rbp-0x58]
jne G_M28525_IG06
lea rdx, bword ptr [r13+0x20]
- mov bword ptr [rbp-0xA0], rdx
+ mov bword ptr [rbp-0xB0], rdx
mov rsi, gword ptr [rdx]
test rsi, rsi
- mov gword ptr [rbp-0xA8], rsi
+ mov gword ptr [rbp-0xB8], rsi
jne SHORT G_M28525_IG38
- ;; size=101 bbWeight=4 PerfScore 125.00
+ ;; size=112 bbWeight=4 PerfScore 129.00
G_M28525_IG37:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.Dictionary`2[System.Xml.XmlQualifiedName,System.String]
call CORINFO_HELP_NEWSFAST
mov rsi, rax
- mov gword ptr [rbp-0xB0], rsi
+ mov gword ptr [rbp-0xC0], rsi
mov rdi, rsi
xor esi, esi
xor rdx, rdx
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:.ctor(int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this
call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:.ctor(int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this
- mov rdi, bword ptr [rbp-0xA0]
- mov rsi, gword ptr [rbp-0xB0]
+ mov rdi, bword ptr [rbp-0xB0]
+ mov rsi, gword ptr [rbp-0xC0]
call CORINFO_HELP_ASSIGN_REF
- mov rsi, gword ptr [rbp-0xB0]
- mov gword ptr [rbp-0xA8], rsi
+ mov rsi, gword ptr [rbp-0xC0]
+ mov gword ptr [rbp-0xB8], rsi
;; size=77 bbWeight=2 PerfScore 23.00
G_M28525_IG38:
mov rdi, rbx
- mov rcx, qword ptr [rbp-0x48]
+ mov rcx, qword ptr [rbp-0x50]
call [rcx+0x38]System.Xml.XmlReader:get_LocalName():System.String:this
- mov gword ptr [rbp-0x88], rax
+ mov gword ptr [rbp-0x98], rax
mov rdi, 0xD1FFAB1E ; System.Xml.XmlQualifiedName
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x90], rax
+ mov gword ptr [rbp-0xA0], rax
mov rdi, rbx
- call [r12]System.Xml.XmlReader:get_NamespaceURI():System.String:this
+ mov rcx, qword ptr [rbp-0x48]
+ call [rcx]System.Xml.XmlReader:get_NamespaceURI():System.String:this
mov rsi, rax
test rsi, rsi
jne SHORT G_M28525_IG40
- ;; size=54 bbWeight=4 PerfScore 49.00
+ ;; size=56 bbWeight=4 PerfScore 53.00
G_M28525_IG39:
mov rsi, 0xD1FFAB1E ; ''
;; size=10 bbWeight=2 PerfScore 0.50
G_M28525_IG40:
- mov rax, gword ptr [rbp-0x90]
+ mov rax, gword ptr [rbp-0xA0]
lea rdi, bword ptr [rax+0x08]
call CORINFO_HELP_ASSIGN_REF
- mov rsi, gword ptr [rbp-0x88]
+ mov rsi, gword ptr [rbp-0x98]
test rsi, rsi
jne G_M28525_IG05
;; size=32 bbWeight=4 PerfScore 19.00
G_M28525_IG41:
mov rsi, 0xD1FFAB1E ; ''
jmp G_M28525_IG05
;; size=15 bbWeight=2 PerfScore 4.50
G_M28525_IG42:
mov rdi, 0xD1FFAB1E ; System.Uri
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x98], rax
+ mov gword ptr [rbp-0xA8], rax
mov rdi, rbx
- call [r12+0x18]System.Xml.XmlReader:get_Value():System.String:this
+ mov rcx, qword ptr [rbp-0x48]
+ call [rcx+0x18]System.Xml.XmlReader:get_Value():System.String:this
test rax, rax
je G_M28525_IG60
mov byte ptr [rbp-0x38], 0
lea r8, [rbp-0x38]
- mov rdi, gword ptr [rbp-0x98]
+ mov rdi, gword ptr [rbp-0xA8]
mov rsi, rax
xor edx, edx
xor ecx, ecx
mov rax, 0xD1FFAB1E ; code for System.Uri:CreateThis(System.String,ubyte,int,byref):this
call [rax]System.Uri:CreateThis(System.String,ubyte,int,byref):this
lea rdi, bword ptr [r13+0x10]
- mov rsi, gword ptr [rbp-0x98]
+ mov rsi, gword ptr [rbp-0xA8]
call CORINFO_HELP_ASSIGN_REF
- mov rax, qword ptr [rbp-0x50]
+ mov rax, qword ptr [rbp-0x58]
jmp G_M28525_IG06
- ;; size=98 bbWeight=4 PerfScore 75.00
+ ;; size=100 bbWeight=4 PerfScore 79.00
G_M28525_IG43:
mov rdi, rbx
- call [r12+0x18]System.Xml.XmlReader:get_Value():System.String:this
+ mov rax, qword ptr [rbp-0x48]
+ call [rax+0x18]System.Xml.XmlReader:get_Value():System.String:this
lea rdi, bword ptr [r13+0x18]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
- mov rax, qword ptr [rbp-0x50]
+ mov rax, qword ptr [rbp-0x58]
jmp G_M28525_IG06
- ;; size=29 bbWeight=4 PerfScore 32.00
+ ;; size=31 bbWeight=4 PerfScore 36.00
G_M28525_IG44:
- xor r12, r12
+ xor rax, rax
+ mov gword ptr [rbp-0x70], rax
xor rdi, rdi
- mov gword ptr [rbp-0x68], rdi
+ mov gword ptr [rbp-0x78], rdi
mov rdi, rbx
- mov rax, qword ptr [rbx]
- mov rax, qword ptr [rax+0x90]
- call [rax+0x20]System.Xml.XmlReader:ReadStartElement():this
+ mov rcx, qword ptr [r12+0x90]
+ call [rcx+0x20]System.Xml.XmlReader:ReadStartElement():this
cmp dword ptr [rbp-0x2C], 0
jne G_M28525_IG58
- ;; size=35 bbWeight=1 PerfScore 11.75
+ ;; size=36 bbWeight=1 PerfScore 10.75
G_M28525_IG45:
mov rdi, rbx
- mov rax, qword ptr [rbx]
- mov rax, qword ptr [rax+0x98]
- mov qword ptr [rbp-0x58], rax
+ mov rax, qword ptr [r12+0x98]
+ mov qword ptr [rbp-0x60], rax
call [rax+0x18]System.Xml.XmlReader:IsStartElement():ubyte:this
test eax, eax
je G_M28525_IG53
mov rdi, rbx
mov rsi, 0xD1FFAB1E ; 'workspace'
mov rdx, 0xD1FFAB1E ; 'http://www.w3.org/2007/app'
- mov rax, qword ptr [rbp-0x58]
+ mov rax, qword ptr [rbp-0x60]
call [rax+0x28]System.Xml.XmlReader:IsStartElement(System.String,System.String):ubyte:this
test eax, eax
jne G_M28525_IG49
mov rdi, r15
mov rax, qword ptr [r15]
mov rax, qword ptr [rax+0x40]
call [rax+0x20]System.ServiceModel.Syndication.ServiceDocumentFormatter:get_Version():System.String:this
mov rdx, rax
mov rsi, r13
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.ServiceModel.Syndication.ServiceDocumentFormatter:TryParseElement(System.Xml.XmlReader,System.ServiceModel.Syndication.ServiceDocument,System.String):ubyte
call [rax]System.ServiceModel.Syndication.ServiceDocumentFormatter:TryParseElement(System.Xml.XmlReader,System.ServiceModel.Syndication.ServiceDocument,System.String):ubyte
test eax, eax
jne SHORT G_M28525_IG45
mov eax, dword ptr [r15+0x18]
mov dword ptr [rbp-0x3C], eax
- test r12, r12
- jne SHORT G_M28525_IG48
- ;; size=116 bbWeight=4 PerfScore 129.00
+ mov rcx, gword ptr [rbp-0x70]
+ test rcx, rcx
+ mov gword ptr [rbp-0x70], rcx
+ jne G_M28525_IG48
+ ;; size=126 bbWeight=4 PerfScore 129.00
G_M28525_IG46:
mov rdi, 0xD1FFAB1E ; System.ServiceModel.XmlBuffer
call CORINFO_HELP_NEWSFAST
- mov r12, rax
- mov rdi, r12
+ mov rcx, rax
+ mov gword ptr [rbp-0xE8], rcx
+ mov rdi, rcx
mov esi, dword ptr [rbp-0x3C]
mov rax, 0xD1FFAB1E ; code for System.ServiceModel.XmlBuffer:.ctor(int):this
call [rax]System.ServiceModel.XmlBuffer:.ctor(int):this
+ mov rcx, gword ptr [rbp-0xE8]
+ mov rax, rcx
mov rsi, 0xD1FFAB1E ; global ptr
test byte ptr [rsi], 1
je G_M28525_IG54
- ;; size=55 bbWeight=2 PerfScore 20.50
+ ;; size=72 bbWeight=2 PerfScore 25.00
G_M28525_IG47:
mov rsi, 0xD1FFAB1E ; data for System.Xml.XmlDictionaryReaderQuotas:s_maxQuota
mov rsi, gword ptr [rsi]
- mov rdi, r12
- mov rax, 0xD1FFAB1E ; code for System.ServiceModel.XmlBuffer:OpenSection(System.Xml.XmlDictionaryReaderQuotas):System.Xml.XmlDictionaryWriter:this
- call [rax]System.ServiceModel.XmlBuffer:OpenSection(System.Xml.XmlDictionaryReaderQuotas):System.Xml.XmlDictionaryWriter:this
- mov gword ptr [rbp-0x68], rax
- mov rdi, gword ptr [rbp-0x68]
+ mov gword ptr [rbp-0x70], rax
+ mov rdi, rax
+ mov rcx, 0xD1FFAB1E ; code for System.ServiceModel.XmlBuffer:OpenSection(System.Xml.XmlDictionaryReaderQuotas):System.Xml.XmlDictionaryWriter:this
+ call [rcx]System.ServiceModel.XmlBuffer:OpenSection(System.Xml.XmlDictionaryReaderQuotas):System.Xml.XmlDictionaryWriter:this
+ mov gword ptr [rbp-0x78], rax
+ mov rdi, gword ptr [rbp-0x78]
xor rsi, rsi
mov rdx, 0xD1FFAB1E ; 'extensionWrapper'
xor rcx, rcx
- mov rax, gword ptr [rbp-0x68]
+ mov rax, gword ptr [rbp-0x78]
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x48]
call [rax+0x08]System.Xml.XmlWriter:WriteStartElement(System.String,System.String,System.String):this
- ;; size=64 bbWeight=2 PerfScore 33.00
+ ;; size=68 bbWeight=2 PerfScore 35.00
G_M28525_IG48:
- mov rdi, gword ptr [rbp-0x68]
+ mov rdi, gword ptr [rbp-0x78]
mov rsi, rbx
xor edx, edx
- mov rax, gword ptr [rbp-0x68]
+ mov rax, gword ptr [rbp-0x78]
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x68]
call [rax+0x38]System.Xml.XmlWriter:WriteNode(System.Xml.XmlReader,ubyte):this
jmp G_M28525_IG45
;; size=28 bbWeight=4 PerfScore 46.00
G_M28525_IG49:
mov rax, gword ptr [r13+0x08]
test rax, rax
- mov gword ptr [rbp-0xB8], rax
+ mov gword ptr [rbp-0xC8], rax
jne G_M28525_IG52
;; size=20 bbWeight=4 PerfScore 17.00
G_M28525_IG50:
mov rdi, 0xD1FFAB1E ; System.ServiceModel.Syndication.NullNotAllowedCollection`1[System.ServiceModel.Syndication.Workspace]
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xC0], rax
+ mov gword ptr [rbp-0xD0], rax
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.ServiceModel.Syndication.Workspace]
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0xC8], rax
+ mov gword ptr [rbp-0xD8], rax
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M28525_IG55
;; size=63 bbWeight=2 PerfScore 17.50
G_M28525_IG51:
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.List`1[System.ServiceModel.Syndication.Workspace]:s_emptyArray
mov rsi, gword ptr [rdi]
lea rdi, bword ptr [rax+0x08]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0xC0]
+ mov rax, gword ptr [rbp-0xD0]
lea rdi, bword ptr [rax+0x08]
- mov rsi, gword ptr [rbp-0xC8]
+ mov rsi, gword ptr [rbp-0xD8]
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r13+0x08]
- mov rsi, gword ptr [rbp-0xC0]
+ mov rsi, gword ptr [rbp-0xD0]
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0xC0]
- mov gword ptr [rbp-0xB8], rax
+ mov rax, gword ptr [rbp-0xD0]
+ mov gword ptr [rbp-0xC8], rax
;; size=75 bbWeight=2 PerfScore 23.50
G_M28525_IG52:
mov rdi, r15
mov rsi, rbx
mov rdx, r13
mov rcx, 0xD1FFAB1E ; code for System.ServiceModel.Syndication.AtomPub10ServiceDocumentFormatter:ReadWorkspace(System.Xml.XmlReader,System.ServiceModel.Syndication.ServiceDocument):System.ServiceModel.Syndication.Workspace:this
call [rcx]System.ServiceModel.Syndication.AtomPub10ServiceDocumentFormatter:ReadWorkspace(System.Xml.XmlReader,System.ServiceModel.Syndication.ServiceDocument):System.ServiceModel.Syndication.Workspace:this
- mov gword ptr [rbp-0xD0], rax
- mov rcx, gword ptr [rbp-0xB8]
+ mov gword ptr [rbp-0xE0], rax
+ mov rcx, gword ptr [rbp-0xC8]
mov rdi, gword ptr [rcx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.ICollection`1[System.__Canon]:get_IsReadOnly():ubyte:this
call [r11]System.Collections.Generic.ICollection`1[System.__Canon]:get_IsReadOnly():ubyte:this
test eax, eax
jne G_M28525_IG56
- mov rax, gword ptr [rbp-0xB8]
+ mov rax, gword ptr [rbp-0xC8]
mov rdi, gword ptr [rax+0x08]
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.ICollection`1[System.__Canon]:get_Count():int:this
call [r11]System.Collections.Generic.ICollection`1[System.__Canon]:get_Count():int:this
mov esi, eax
- mov rdi, gword ptr [rbp-0xB8]
- mov rdx, gword ptr [rbp-0xD0]
+ mov rdi, gword ptr [rbp-0xC8]
+ mov rdx, gword ptr [rbp-0xE0]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x50]
call [rax+0x08]System.Collections.ObjectModel.Collection`1[System.__Canon]:InsertItem(int,System.__Canon):this
jmp G_M28525_IG45
;; size=115 bbWeight=4 PerfScore 120.00
G_M28525_IG53:
- mov rdi, r12
- mov rsi, gword ptr [rbp-0x68]
+ mov rdi, gword ptr [rbp-0x70]
+ mov rsi, gword ptr [rbp-0x78]
mov rdx, r13
mov rax, 0xD1FFAB1E ; code for System.ServiceModel.Syndication.ServiceDocumentFormatter:LoadElementExtensions(System.ServiceModel.XmlBuffer,System.Xml.XmlDictionaryWriter,System.ServiceModel.Syndication.ServiceDocument)
call [rax]System.ServiceModel.Syndication.ServiceDocumentFormatter:LoadElementExtensions(System.ServiceModel.XmlBuffer,System.Xml.XmlDictionaryWriter,System.ServiceModel.Syndication.ServiceDocument)
jmp SHORT G_M28525_IG57
- ;; size=24 bbWeight=0.50 PerfScore 3.38
+ ;; size=25 bbWeight=0.50 PerfScore 3.75
G_M28525_IG54:
+ mov gword ptr [rbp-0x70], rax
mov rdi, 0xD1FFAB1E ; System.Xml.XmlDictionaryReaderQuotas
call CORINFO_HELP_GET_GCSTATIC_BASE
+ mov rax, gword ptr [rbp-0x70]
jmp G_M28525_IG47
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=28 bbWeight=0 PerfScore 0.00
G_M28525_IG55:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.ServiceModel.Syndication.Workspace]
call CORINFO_HELP_GET_GCSTATIC_BASE
- mov rax, gword ptr [rbp-0xC8]
+ mov rax, gword ptr [rbp-0xD8]
jmp G_M28525_IG51
;; size=27 bbWeight=0 PerfScore 0.00
G_M28525_IG56:
mov edi, 8
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNotSupportedException(int)
call [rax]System.ThrowHelper:ThrowNotSupportedException(int)
int3
;; size=18 bbWeight=0 PerfScore 0.00
G_M28525_IG57:
- cmp gword ptr [rbp-0x68], 0
+ cmp gword ptr [rbp-0x78], 0
je SHORT G_M28525_IG58
- mov rdi, gword ptr [rbp-0x68]
- mov rax, gword ptr [rbp-0x68]
+ mov rdi, gword ptr [rbp-0x78]
+ mov rax, gword ptr [rbp-0x78]
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x58]
call [rax+0x20]System.Xml.XmlWriter:Close():this
;; size=25 bbWeight=0.50 PerfScore 6.00
G_M28525_IG58:
mov rdi, rbx
- mov rax, qword ptr [rbx]
- mov rax, qword ptr [rax+0x98]
+ mov rax, qword ptr [r12+0x98]
mov r12, rax
call [r12+0x10]System.Xml.XmlReader:ReadEndElement():this
jmp SHORT G_M28525_IG61
- ;; size=23 bbWeight=1 PerfScore 9.50
+ ;; size=21 bbWeight=1 PerfScore 7.50
G_M28525_IG59:
mov rdi, 0xD1FFAB1E ; System.ArgumentNullException
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov edi, 0x1613
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rsi, rax
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:.ctor(System.String):this
call [rax]System.ArgumentNullException:.ctor(System.String):this
mov rdi, r15
call CORINFO_HELP_THROW
int3
;; size=65 bbWeight=0 PerfScore 0.00
G_M28525_IG60:
mov edi, 501
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:Throw(System.String)
call [rax]System.ArgumentNullException:Throw(System.String)
int3
;; size=36 bbWeight=0 PerfScore 0.00
G_M28525_IG61:
mov rdi, r15
mov rsi, r13
call [r14+0x08]System.ServiceModel.Syndication.ServiceDocumentFormatter:SetDocument(System.ServiceModel.Syndication.ServiceDocument):this
nop
;; size=11 bbWeight=1 PerfScore 3.75
G_M28525_IG62:
vzeroupper
- add rsp, 184
+ add rsp, 200
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=21 bbWeight=1 PerfScore 5.25
G_M28525_IG63:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
- lea rbp, [rbp+0xE0]
+ lea rbp, [rbp+0xF0]
;; size=25 bbWeight=0 PerfScore 0.00
G_M28525_IG64:
- cmp gword ptr [rbp-0x68], 0
+ cmp gword ptr [rbp-0x78], 0
je SHORT G_M28525_IG65
- mov rdi, gword ptr [rbp-0x68]
- mov rax, gword ptr [rbp-0x68]
+ mov rdi, gword ptr [rbp-0x78]
+ mov rax, gword ptr [rbp-0x78]
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+0x58]
call [rax+0x20]System.Xml.XmlWriter:Close():this
;; size=25 bbWeight=0 PerfScore 0.00
G_M28525_IG65:
nop
;; size=1 bbWeight=0 PerfScore 0.00
G_M28525_IG66:
vzeroupper
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0 PerfScore 0.00
G_M28525_IG67:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
- lea rbp, [rbp+0xE0]
+ lea rbp, [rbp+0xF0]
;; size=25 bbWeight=0 PerfScore 0.00
G_M28525_IG68:
mov rbx, rsi
mov rdi, 0xD1FFAB1E ; System.Xml.XmlException
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_ErrorParsingDocument():System.String
call [rax]System.SR:get_ErrorParsingDocument():System.String
mov rsi, rax
- mov rdi, gword ptr [rbp-0x60]
+ mov rdi, gword ptr [rbp-0x68]
mov rax, 0xD1FFAB1E ; code for System.ServiceModel.Syndication.FeedUtils:AddLineInfo(System.Xml.XmlReader,System.String):System.String
call [rax]System.ServiceModel.Syndication.FeedUtils:AddLineInfo(System.Xml.XmlReader,System.String):System.String
mov rsi, rax
mov rdi, r15
mov rdx, rbx
mov rax, 0xD1FFAB1E ; code for System.Xml.XmlException:.ctor(System.String,System.Exception):this
call [rax]System.Xml.XmlException:.ctor(System.String,System.Exception):this
mov rdi, r15
call CORINFO_HELP_THROW
int3
;; size=82 bbWeight=0 PerfScore 0.00
G_M28525_IG69:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
- lea rbp, [rbp+0xE0]
+ lea rbp, [rbp+0xF0]
;; size=25 bbWeight=0 PerfScore 0.00
G_M28525_IG70:
mov rbx, rsi
mov rdi, 0xD1FFAB1E ; System.Xml.XmlException
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rax, 0xD1FFAB1E ; code for System.SR:get_ErrorParsingDocument():System.String
call [rax]System.SR:get_ErrorParsingDocument():System.String
mov rsi, rax
- mov rdi, gword ptr [rbp-0x60]
+ mov rdi, gword ptr [rbp-0x68]
mov rax, 0xD1FFAB1E ; code for System.ServiceModel.Syndication.FeedUtils:AddLineInfo(System.Xml.XmlReader,System.String):System.String
call [rax]System.ServiceModel.Syndication.FeedUtils:AddLineInfo(System.Xml.XmlReader,System.String):System.String
mov rsi, rax
mov rdi, r15
mov rdx, rbx
mov rax, 0xD1FFAB1E ; code for System.Xml.XmlException:.ctor(System.String,System.Exception):this
call [rax]System.Xml.XmlException:.ctor(System.String,System.Exception):this
mov rdi, r15
call CORINFO_HELP_THROW
int3
;; size=82 bbWeight=0 PerfScore 0.00
RWD00 dq 0070007400740068h, 0077002F002F003Ah, 0077002E00770077h, 0072006F002E0033h
RWD32 dq 00670072006F002Eh, 003000300032002Fh, 006D0078002F0030h, 002F0073006E006Ch
-; Total bytes of code 2315, prolog size 48, PerfScore 1251.67, instruction count 545, allocated bytes for code 2315 (MethodHash=e8ca9092) for method System.ServiceModel.Syndication.AtomPub10ServiceDocumentFormatter:ReadDocument(System.Xml.XmlReader):this (FullOpts)
+; Total bytes of code 2388, prolog size 48, PerfScore 1278.04, instruction count 557, allocated bytes for code 2388 (MethodHash=e8ca9092) for method System.ServiceModel.Syndication.AtomPub10ServiceDocumentFormatter:ReadDocument(System.Xml.XmlReader):this (FullOpts)
; ============================================================ 21 (52.50 % of base) - System.Xml.DocumentSchemaValidator:AncestorTypeHasWildcard(System.Xml.Schema.XmlSchemaObject):ubyte ; Assembly listing for method System.Xml.DocumentSchemaValidator:AncestorTypeHasWildcard(System.Xml.Schema.XmlSchemaObject):ubyte (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
-; rsp based frame
+; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 4, 4 ) ref -> rbx class-hnd single-def <System.Xml.Schema.XmlSchemaObject>
; V01 loc0 [V01,T01] ( 2, 1.50) ref -> rax class-hnd single-def <System.Xml.Schema.XmlSchemaComplexType>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M54549_IG01:
+ push rbp
push rbx
+ push rax
+ lea rbp, [rsp+0x10]
mov rbx, rdi
- ;; size=4 bbWeight=1 PerfScore 1.25
+ ;; size=11 bbWeight=1 PerfScore 3.75
G_M54549_IG02:
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Xml.DocumentSchemaValidator:GetComplexType(System.Xml.Schema.XmlSchemaObject):System.Xml.Schema.XmlSchemaComplexType
call [rax]System.Xml.DocumentSchemaValidator:GetComplexType(System.Xml.Schema.XmlSchemaObject):System.Xml.Schema.XmlSchemaComplexType
test rbx, rbx
- jne SHORT G_M54549_IG05
+ je SHORT G_M54549_IG06
;; size=20 bbWeight=1 PerfScore 4.75
G_M54549_IG03:
- xor eax, eax
- ;; size=2 bbWeight=0.50 PerfScore 0.12
+ test byte ptr [rax+0xD0], 1
+ je SHORT G_M54549_IG06
+ ;; size=9 bbWeight=0.50 PerfScore 2.00
G_M54549_IG04:
- pop rbx
- ret
- ;; size=2 bbWeight=0.50 PerfScore 0.75
+ mov eax, 1
+ ;; size=5 bbWeight=0.25 PerfScore 0.06
G_M54549_IG05:
- movzx rax, byte ptr [rax+0xD0]
- and eax, 1
- ;; size=10 bbWeight=0.50 PerfScore 1.12
-G_M54549_IG06:
+ add rsp, 8
pop rbx
+ pop rbp
ret
- ;; size=2 bbWeight=0.50 PerfScore 0.75
+ ;; size=7 bbWeight=0.25 PerfScore 0.56
+G_M54549_IG06:
+ xor eax, eax
+ ;; size=2 bbWeight=0.25 PerfScore 0.06
+G_M54549_IG07:
+ add rsp, 8
+ pop rbx
+ pop rbp
+ ret
+ ;; size=7 bbWeight=0.25 PerfScore 0.56
-; Total bytes of code 40, prolog size 1, PerfScore 8.75, instruction count 14, allocated bytes for code 40 (MethodHash=308c2aea) for method System.Xml.DocumentSchemaValidator:AncestorTypeHasWildcard(System.Xml.Schema.XmlSchemaObject):ubyte (FullOpts)
+; Total bytes of code 61, prolog size 8, PerfScore 11.75, instruction count 22, allocated bytes for code 61 (MethodHash=308c2aea) for method System.Xml.DocumentSchemaValidator:AncestorTypeHasWildcard(System.Xml.Schema.XmlSchemaObject):ubyte (FullOpts)
; ============================================================ 18 (40.00 % of base) - System.Configuration.SectionInformation:get_LocationAttributesAreDefault():ubyte:this ; Assembly listing for method System.Configuration.SectionInformation:get_LocationAttributesAreDefault():ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
-; rsp based frame
+; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 5, 4.50) ref -> rbx this class-hnd single-def <System.Configuration.SectionInformation>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V02 tmp1 [V02 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M64558_IG01:
+ push rbp
push rbx
+ push rax
+ lea rbp, [rsp+0x10]
mov rbx, rdi
- ;; size=4 bbWeight=1 PerfScore 1.25
+ ;; size=11 bbWeight=1 PerfScore 3.75
G_M64558_IG02:
cmp byte ptr [rbx], bl
lea rdi, bword ptr [rbx+0x68]
mov rax, 0xD1FFAB1E ; code for System.Configuration.OverrideModeSetting:get_IsDefaultForLocationTag():ubyte:this
call [rax]System.Configuration.OverrideModeSetting:get_IsDefaultForLocationTag():ubyte:this
test eax, eax
- jne SHORT G_M64558_IG05
+ je SHORT G_M64558_IG06
;; size=22 bbWeight=1 PerfScore 8.00
G_M64558_IG03:
- xor eax, eax
- ;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M64558_IG04:
- pop rbx
- ret
- ;; size=2 bbWeight=0.50 PerfScore 0.75
-G_M64558_IG05:
test dword ptr [rbx+0x60], 256
- setne al
- movzx rax, al
- ;; size=13 bbWeight=0.50 PerfScore 2.12
-G_M64558_IG06:
+ je SHORT G_M64558_IG06
+ ;; size=9 bbWeight=0.50 PerfScore 2.00
+G_M64558_IG04:
+ mov eax, 1
+ ;; size=5 bbWeight=0.25 PerfScore 0.06
+G_M64558_IG05:
+ add rsp, 8
pop rbx
+ pop rbp
ret
- ;; size=2 bbWeight=0.50 PerfScore 0.75
+ ;; size=7 bbWeight=0.25 PerfScore 0.56
+G_M64558_IG06:
+ xor eax, eax
+ ;; size=2 bbWeight=0.25 PerfScore 0.06
+G_M64558_IG07:
+ add rsp, 8
+ pop rbx
+ pop rbp
+ ret
+ ;; size=7 bbWeight=0.25 PerfScore 0.56
-; Total bytes of code 45, prolog size 1, PerfScore 13.00, instruction count 16, allocated bytes for code 45 (MethodHash=4f8303d1) for method System.Configuration.SectionInformation:get_LocationAttributesAreDefault():ubyte:this (FullOpts)
+; Total bytes of code 63, prolog size 8, PerfScore 15.00, instruction count 23, allocated bytes for code 63 (MethodHash=4f8303d1) for method System.Configuration.SectionInformation:get_LocationAttributesAreDefault():ubyte:this (FullOpts)
; ============================================================ Note: some changes were skipped as they were too large to fit into a comment. Larger list of diffs: https://gist.github.com/MihuBot/b5760d81245350fb8c4a285a16bebb29 |
Top method improvements-47 (-2.78 % of base) - System.Net.Http.HPack.HPackDecoder:DecodeInternal(System.ReadOnlySpan`1[ubyte],System.Net.Http.IHttpStreamHeadersHandler):this ; Assembly listing for method System.Net.Http.HPack.HPackDecoder:DecodeInternal(System.ReadOnlySpan`1[ubyte],System.Net.Http.IHttpStreamHeadersHandler):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 7 single block inlinees; 22 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T06] ( 46,229 ) ref -> r15 this class-hnd single-def <System.Net.Http.HPack.HPackDecoder>
+; V00 this [V00,T01] ( 49,185 ) ref -> r15 this class-hnd single-def <System.Net.Http.HPack.HPackDecoder>
;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ubyte]>
-; V02 arg2 [V02,T21] ( 14, 44 ) ref -> r13 class-hnd single-def <System.Net.Http.IHttpStreamHeadersHandler>
-; V03 loc0 [V03 ] ( 66,961 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op
+; V02 arg2 [V02,T20] ( 14, 26 ) ref -> r13 class-hnd single-def <System.Net.Http.IHttpStreamHeadersHandler>
+; V03 loc0 [V03 ] ( 66,529 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op
;* V04 loc1 [V04 ] ( 0, 0 ) ubyte -> zero-ref
;* V05 loc2 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.ReadOnlySpan`1[ubyte]>
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07,T62] ( 3, 0 ) ref -> rbx class-hnd exact "Single-def Box Helper" <System.Net.Http.HPack.HPackDecoder+State>
-; V08 tmp2 [V08,T63] ( 3, 0 ) ref -> r15 class-hnd exact "NewObj constructor temp" <System.NotImplementedException>
+; V07 tmp1 [V07,T61] ( 3, 0 ) ref -> rbx class-hnd exact "Single-def Box Helper" <System.Net.Http.HPack.HPackDecoder+State>
+; V08 tmp2 [V08,T62] ( 3, 0 ) ref -> r15 class-hnd exact "NewObj constructor temp" <System.NotImplementedException>
;* V09 tmp3 [V09 ] ( 0, 0 ) struct ( 8) zero-ref "location for address-of(RValue)" <System.ValueTuple`2[int,int]>
;* V10 tmp4 [V10 ] ( 0, 0 ) struct ( 8) zero-ref "location for address-of(RValue)" <System.ValueTuple`2[int,int]>
;* V11 tmp5 [V11 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V12 tmp6 [V12 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V13 tmp7 [V13 ] ( 3, 20 ) int -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V14 tmp8 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V15 tmp9 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V16 tmp10 [V16,T09] ( 3, 96 ) int -> rsi "Span.get_Item index"
-; V17 tmp11 [V17,T15] ( 2, 64 ) byref -> rdi "impAppendStmt"
+; V16 tmp10 [V16,T03] ( 3, 96 ) int -> rsi "Span.get_Item index"
+; V17 tmp11 [V17,T10] ( 2, 64 ) byref -> rdi "impAppendStmt"
;* V18 tmp12 [V18 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V19 tmp13 [V19 ] ( 3, 20 ) int -> [rbp-0x40] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V20 tmp14 [V20 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V21 tmp15 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V22 tmp16 [V22,T10] ( 3, 96 ) int -> rsi "Span.get_Item index"
-; V23 tmp17 [V23,T16] ( 2, 64 ) byref -> rdi "impAppendStmt"
+; V22 tmp16 [V22,T04] ( 3, 96 ) int -> rsi "Span.get_Item index"
+; V23 tmp17 [V23,T11] ( 2, 64 ) byref -> rdi "impAppendStmt"
;* V24 tmp18 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V25 tmp19 [V25,T28] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
-; V26 tmp20 [V26,T32] ( 3, 6 ) ubyte -> rsi "Inline stloc first use temp"
-; V27 tmp21 [V27,T33] ( 3, 6 ) int -> r12 ld-addr-op "Inline ldloca(s) first use temp"
+; V25 tmp19 [V25,T27] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
+; V26 tmp20 [V26,T29] ( 3, 6 ) ubyte -> rsi "Inline stloc first use temp"
+; V27 tmp21 [V27,T30] ( 3, 6 ) int -> r12 ld-addr-op "Inline ldloca(s) first use temp"
;* V28 tmp22 [V28 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V29 tmp23 [V29,T24] ( 4, 16 ) ubyte -> rax "Inlining Arg"
-; V30 tmp24 [V30,T26] ( 3, 12 ) byref -> rdx "Inlining Arg"
+; V29 tmp23 [V29,T23] ( 4, 16 ) ubyte -> r12 "Inlining Arg"
+; V30 tmp24 [V30,T25] ( 3, 12 ) byref -> rdx "Inlining Arg"
;* V31 tmp25 [V31 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V32 tmp26 [V32 ] ( 3, 20 ) int -> [rbp-0x48] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V33 tmp27 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V34 tmp28 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V35 tmp29 [V35,T11] ( 3, 96 ) int -> rsi "Span.get_Item index"
-; V36 tmp30 [V36,T17] ( 2, 64 ) byref -> rdi "impAppendStmt"
+; V35 tmp29 [V35,T05] ( 3, 96 ) int -> rsi "Span.get_Item index"
+; V36 tmp30 [V36,T12] ( 2, 64 ) byref -> rdi "impAppendStmt"
;* V37 tmp31 [V37 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V38 tmp32 [V38 ] ( 3, 20 ) int -> [rbp-0x50] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V39 tmp33 [V39 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V40 tmp34 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V41 tmp35 [V41,T12] ( 3, 96 ) int -> rsi "Span.get_Item index"
-; V42 tmp36 [V42,T18] ( 2, 64 ) byref -> rdi "impAppendStmt"
+; V41 tmp35 [V41,T06] ( 3, 96 ) int -> rsi "Span.get_Item index"
+; V42 tmp36 [V42,T13] ( 2, 64 ) byref -> rdi "impAppendStmt"
;* V43 tmp37 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V44 tmp38 [V44,T29] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
-; V45 tmp39 [V45,T34] ( 3, 6 ) ubyte -> rsi "Inline stloc first use temp"
-; V46 tmp40 [V46,T35] ( 3, 6 ) int -> r12 ld-addr-op "Inline ldloca(s) first use temp"
+; V44 tmp38 [V44,T28] ( 4, 8 ) int -> rsi "Inline stloc first use temp"
+; V45 tmp39 [V45,T31] ( 3, 6 ) ubyte -> rsi "Inline stloc first use temp"
+; V46 tmp40 [V46,T32] ( 3, 6 ) int -> r12 ld-addr-op "Inline ldloca(s) first use temp"
;* V47 tmp41 [V47 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V48 tmp42 [V48,T25] ( 4, 16 ) ubyte -> rax "Inlining Arg"
-; V49 tmp43 [V49,T27] ( 3, 12 ) byref -> rdx "Inlining Arg"
+; V48 tmp42 [V48,T24] ( 4, 16 ) ubyte -> r12 "Inlining Arg"
+; V49 tmp43 [V49,T26] ( 3, 12 ) byref -> rdx "Inlining Arg"
;* V50 tmp44 [V50 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V51 tmp45 [V51 ] ( 3, 80 ) int -> [rbp-0x58] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+; V51 tmp45 [V51 ] ( 3, 20 ) int -> [rbp-0x58] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V52 tmp46 [V52 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V53 tmp47 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V54 tmp48 [V54,T00] ( 3,384 ) int -> rsi "Span.get_Item index"
-; V55 tmp49 [V55,T04] ( 2,256 ) byref -> rdi "impAppendStmt"
+; V54 tmp48 [V54,T07] ( 3, 96 ) int -> rsi "Span.get_Item index"
+; V55 tmp49 [V55,T14] ( 2, 64 ) byref -> rdi "impAppendStmt"
;* V56 tmp50 [V56 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V57 tmp51 [V57 ] ( 3, 80 ) int -> [rbp-0x60] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
+; V57 tmp51 [V57 ] ( 3, 20 ) int -> [rbp-0x60] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V58 tmp52 [V58 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V59 tmp53 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V60 tmp54 [V60,T01] ( 3,384 ) int -> rsi "Span.get_Item index"
-; V61 tmp55 [V61,T05] ( 2,256 ) byref -> rdi "impAppendStmt"
+; V60 tmp54 [V60,T08] ( 3, 96 ) int -> rsi "Span.get_Item index"
+; V61 tmp55 [V61,T15] ( 2, 64 ) byref -> rdi "impAppendStmt"
;* V62 tmp56 [V62 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V63 tmp57 [V63 ] ( 3, 20 ) int -> [rbp-0x68] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;* V64 tmp58 [V64 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V65 tmp59 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-; V66 tmp60 [V66,T13] ( 3, 96 ) int -> rsi "Span.get_Item index"
-; V67 tmp61 [V67,T19] ( 2, 64 ) byref -> rdi "impAppendStmt"
+; V66 tmp60 [V66,T09] ( 3, 96 ) int -> rsi "Span.get_Item index"
+; V67 tmp61 [V67,T16] ( 2, 64 ) byref -> rdi "impAppendStmt"
;* V68 tmp62 [V68 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V69 tmp63 [V69 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V70 tmp64 [V70 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V71 tmp65 [V71 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V72 tmp66 [V72 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V73 tmp67 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
;* V74 tmp68 [V74 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
-; V75 tmp69 [V75,T36] ( 4, 4 ) ref -> r12 class-hnd single-def "Inlining Arg" <ubyte[]>
+; V75 tmp69 [V75,T33] ( 4, 4 ) ref -> r13 class-hnd single-def "Inlining Arg" <ubyte[]>
;* V76 tmp70 [V76 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V77 tmp71 [V77 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
;* V78 tmp72 [V78 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V79 tmp73 [V79 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V80 tmp74 [V80 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
-; V81 tmp75 [V81,T07] ( 22,183.50) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-; V82 tmp76 [V82,T02] ( 35,333.50) int -> rbx single-def "field V01._length (fldOffset=0x8)" P-INDEP
+; V81 tmp75 [V81,T02] ( 22,111.50) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+; V82 tmp76 [V82,T00] ( 35,213.50) int -> rbx single-def "field V01._length (fldOffset=0x8)" P-INDEP
;* V83 tmp77 [V83 ] ( 0, 0 ) byref -> zero-ref single-def "field V05._reference (fldOffset=0x0)" P-INDEP
;* V84 tmp78 [V84 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP
-; V85 tmp79 [V85,T61] ( 2, 1 ) int -> rsi "field V09.Item1 (fldOffset=0x0)" P-INDEP
+; V85 tmp79 [V85,T60] ( 2, 1 ) int -> rdx "field V09.Item1 (fldOffset=0x0)" P-INDEP
;* V86 tmp80 [V86 ] ( 0, 0 ) int -> zero-ref "field V09.Item2 (fldOffset=0x4)" P-INDEP
;* V87 tmp81 [V87 ] ( 0, 0 ) int -> zero-ref "field V10.Item1 (fldOffset=0x0)" P-INDEP
-; V88 tmp82 [V88,T43] ( 4, 2 ) int -> rax "field V10.Item2 (fldOffset=0x4)" P-INDEP
+; V88 tmp82 [V88,T40] ( 4, 2 ) int -> rdi "field V10.Item2 (fldOffset=0x4)" P-INDEP
;* V89 tmp83 [V89 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP
;* V90 tmp84 [V90 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP
;* V91 tmp85 [V91 ] ( 0, 0 ) byref -> zero-ref "field V12._reference (fldOffset=0x0)" P-INDEP
;* V92 tmp86 [V92 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP
-;* V93 tmp87 [V93,T44] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP
-;* V94 tmp88 [V94,T50] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
-; V95 tmp89 [V95,T23] ( 2, 18 ) byref -> r12 "field V18._reference (fldOffset=0x0)" P-INDEP
-; V96 tmp90 [V96,T22] ( 4, 36 ) int -> [rbp-0x6C] spill-single-def "field V18._length (fldOffset=0x8)" P-INDEP
-;* V97 tmp91 [V97,T45] ( 0, 0 ) byref -> zero-ref "field V21._reference (fldOffset=0x0)" P-INDEP
-;* V98 tmp92 [V98,T51] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
+;* V93 tmp87 [V93,T41] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP
+;* V94 tmp88 [V94,T48] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
+; V95 tmp89 [V95,T21] ( 2, 18 ) byref -> r12 "field V18._reference (fldOffset=0x0)" P-INDEP
+; V96 tmp90 [V96,T18] ( 4, 36 ) int -> [rbp-0x6C] spill-single-def "field V18._length (fldOffset=0x8)" P-INDEP
+;* V97 tmp91 [V97,T42] ( 0, 0 ) byref -> zero-ref "field V21._reference (fldOffset=0x0)" P-INDEP
+;* V98 tmp92 [V98,T49] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP
;* V99 tmp93 [V99 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP
;* V100 tmp94 [V100 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP
-;* V101 tmp95 [V101,T37] ( 0, 0 ) byref -> zero-ref "field V31._reference (fldOffset=0x0)" P-INDEP
-;* V102 tmp96 [V102,T40] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
-;* V103 tmp97 [V103,T46] ( 0, 0 ) byref -> zero-ref "field V34._reference (fldOffset=0x0)" P-INDEP
-;* V104 tmp98 [V104,T52] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
-;* V105 tmp99 [V105,T38] ( 0, 0 ) byref -> zero-ref "field V37._reference (fldOffset=0x0)" P-INDEP
-;* V106 tmp100 [V106,T41] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
-;* V107 tmp101 [V107,T47] ( 0, 0 ) byref -> zero-ref "field V40._reference (fldOffset=0x0)" P-INDEP
-;* V108 tmp102 [V108,T53] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP
+;* V101 tmp95 [V101,T34] ( 0, 0 ) byref -> zero-ref "field V31._reference (fldOffset=0x0)" P-INDEP
+;* V102 tmp96 [V102,T37] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP
+;* V103 tmp97 [V103,T43] ( 0, 0 ) byref -> zero-ref "field V34._reference (fldOffset=0x0)" P-INDEP
+;* V104 tmp98 [V104,T50] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP
+;* V105 tmp99 [V105,T35] ( 0, 0 ) byref -> zero-ref "field V37._reference (fldOffset=0x0)" P-INDEP
+;* V106 tmp100 [V106,T38] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP
+;* V107 tmp101 [V107,T44] ( 0, 0 ) byref -> zero-ref "field V40._reference (fldOffset=0x0)" P-INDEP
+;* V108 tmp102 [V108,T51] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP
;* V109 tmp103 [V109 ] ( 0, 0 ) byref -> zero-ref "field V43._reference (fldOffset=0x0)" P-INDEP
;* V110 tmp104 [V110 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP
-;* V111 tmp105 [V111,T39] ( 0, 0 ) byref -> zero-ref "field V50._reference (fldOffset=0x0)" P-INDEP
-;* V112 tmp106 [V112,T42] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP
-;* V113 tmp107 [V113,T48] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-INDEP
-;* V114 tmp108 [V114,T54] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
-; V115 tmp109 [V115,T14] ( 2, 72 ) byref -> r12 "field V56._reference (fldOffset=0x0)" P-INDEP
-; V116 tmp110 [V116,T08] ( 4,144 ) int -> [rbp-0x70] spill-single-def "field V56._length (fldOffset=0x8)" P-INDEP
-;* V117 tmp111 [V117,T30] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
-;* V118 tmp112 [V118,T31] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
+;* V111 tmp105 [V111,T36] ( 0, 0 ) byref -> zero-ref "field V50._reference (fldOffset=0x0)" P-INDEP
+;* V112 tmp106 [V112,T39] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP
+;* V113 tmp107 [V113,T45] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-INDEP
+;* V114 tmp108 [V114,T52] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP
+; V115 tmp109 [V115,T22] ( 2, 18 ) byref -> r12 "field V56._reference (fldOffset=0x0)" P-INDEP
+; V116 tmp110 [V116,T19] ( 4, 36 ) int -> [rbp-0x70] spill-single-def "field V56._length (fldOffset=0x8)" P-INDEP
+;* V117 tmp111 [V117,T46] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP
+;* V118 tmp112 [V118,T53] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP
;* V119 tmp113 [V119 ] ( 0, 0 ) byref -> zero-ref "field V62._reference (fldOffset=0x0)" P-INDEP
;* V120 tmp114 [V120 ] ( 0, 0 ) int -> zero-ref "field V62._length (fldOffset=0x8)" P-INDEP
-;* V121 tmp115 [V121,T49] ( 0, 0 ) byref -> zero-ref "field V65._reference (fldOffset=0x0)" P-INDEP
-;* V122 tmp116 [V122,T55] ( 0, 0 ) int -> zero-ref "field V65._length (fldOffset=0x8)" P-INDEP
-; V123 tmp117 [V123,T60] ( 2, 1 ) byref -> rsi single-def "field V73._reference (fldOffset=0x0)" P-INDEP
+;* V121 tmp115 [V121,T47] ( 0, 0 ) byref -> zero-ref "field V65._reference (fldOffset=0x0)" P-INDEP
+;* V122 tmp116 [V122,T54] ( 0, 0 ) int -> zero-ref "field V65._length (fldOffset=0x8)" P-INDEP
+; V123 tmp117 [V123,T59] ( 2, 1 ) byref -> rsi single-def "field V73._reference (fldOffset=0x0)" P-INDEP
;* V124 tmp118 [V124 ] ( 0, 0 ) int -> zero-ref "field V73._length (fldOffset=0x8)" P-INDEP
-; V125 tmp119 [V125,T56] ( 3, 1.50) byref -> rdi "field V76._reference (fldOffset=0x0)" P-INDEP
-; V126 tmp120 [V126,T58] ( 3, 1.50) int -> rdx "field V76._length (fldOffset=0x8)" P-INDEP
+; V125 tmp119 [V125,T55] ( 3, 1.50) byref -> rax "field V76._reference (fldOffset=0x0)" P-INDEP
+; V126 tmp120 [V126,T57] ( 3, 1.50) int -> rdx "field V76._length (fldOffset=0x8)" P-INDEP
;* V127 tmp121 [V127 ] ( 0, 0 ) byref -> zero-ref single-def "field V77._reference (fldOffset=0x0)" P-INDEP
;* V128 tmp122 [V128 ] ( 0, 0 ) int -> zero-ref "field V77._length (fldOffset=0x8)" P-INDEP
-; V129 tmp123 [V129,T64] ( 2, 0 ) ref -> rsi "argument with side effect"
-; V130 cse0 [V130,T59] ( 3, 1.50) long -> rsi "CSE #10: conservative"
-; V131 cse1 [V131,T57] ( 3, 1.50) ref -> r12 "CSE #11: conservative"
-; V132 cse2 [V132,T03] ( 15,342 ) byref -> [rbp-0x78] multi-def "CSE #02: aggressive"
-; V133 rat0 [V133,T20] ( 3, 46.55) int -> rsi "ReplaceWithLclVar is creating a new local variable"
+; V129 tmp123 [V129,T63] ( 2, 0 ) ref -> rsi "argument with side effect"
+; V130 cse0 [V130,T58] ( 3, 1.50) long -> rsi "CSE #10: conservative"
+; V131 cse1 [V131,T56] ( 3, 1.50) ref -> r13 "CSE #11: conservative"
+; V132 rat0 [V132,T17] ( 3, 46.55) int -> rsi "ReplaceWithLclVar is creating a new local variable"
;
-; Lcl frame size = 88
+; Lcl frame size = 72
G_M46554_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 88
- lea rbp, [rsp+0x80]
+ sub rsp, 72
+ lea rbp, [rsp+0x70]
mov r15, rdi
mov r14, rsi
mov ebx, edx
mov r13, rcx
- ;; size=33 bbWeight=1 PerfScore 7.75
+ ;; size=30 bbWeight=1 PerfScore 7.75
G_M46554_IG02:
xor esi, esi
mov dword ptr [rbp-0x30], esi
;; size=5 bbWeight=1 PerfScore 1.25
G_M46554_IG03:
movzx rsi, byte ptr [r15+0x4C]
cmp esi, 9
- ja G_M46554_IG47
+ ja G_M46554_IG46
;; size=14 bbWeight=8 PerfScore 26.00
G_M46554_IG04:
mov esi, esi
lea rdx, [reloc @RWD00]
mov edx, dword ptr [rdx+4*rsi]
lea rdi, G_M46554_IG02
add rdx, rdi
jmp rdx
;; size=24 bbWeight=7.27 PerfScore 43.64
G_M46554_IG05:
cmp dword ptr [rbp-0x30], ebx
jge SHORT G_M46554_IG07
;; size=5 bbWeight=2 PerfScore 6.00
G_M46554_IG06:
- lea r12, bword ptr [r15+0x50]
- mov rdi, r12
+ lea rdi, bword ptr [r15+0x50]
mov esi, dword ptr [rbp-0x30]
cmp esi, ebx
- jae G_M46554_IG50
+ jae G_M46554_IG49
movzx rsi, byte ptr [r14+rsi]
lea rdx, [rbp-0x68]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
call [rax]System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
test eax, eax
jne SHORT G_M46554_IG08
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
cmp dword ptr [rbp-0x30], ebx
jl SHORT G_M46554_IG06
- ;; size=56 bbWeight=16 PerfScore 244.00
+ ;; size=53 bbWeight=16 PerfScore 240.00
G_M46554_IG07:
xor edi, edi
mov dword ptr [rbp-0x68], edi
- jmp SHORT G_M46554_IG12
- ;; size=7 bbWeight=2 PerfScore 6.50
+ jmp G_M46554_IG40
+ ;; size=10 bbWeight=2 PerfScore 6.50
G_M46554_IG08:
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
mov rdi, r15
mov esi, dword ptr [rbp-0x68]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:SetDynamicHeaderTableSize(int):this
call [rax]System.Net.Http.HPack.HPackDecoder:SetDynamicHeaderTableSize(int):this
mov byte ptr [r15+0x4C], 0
- jmp SHORT G_M46554_IG12
- ;; size=33 bbWeight=2 PerfScore 19.50
+ jmp G_M46554_IG40
+ ;; size=36 bbWeight=2 PerfScore 19.50
G_M46554_IG09:
mov r12, r14
mov eax, ebx
mov dword ptr [rbp-0x70], eax
cmp dword ptr [rbp-0x30], eax
jge SHORT G_M46554_IG11
- ;; size=13 bbWeight=8 PerfScore 36.00
+ ;; size=13 bbWeight=2 PerfScore 9.00
G_M46554_IG10:
- lea rsi, bword ptr [r15+0x50]
- mov rcx, rsi
- mov rdi, rcx
+ lea rdi, bword ptr [r15+0x50]
mov esi, dword ptr [rbp-0x30]
cmp esi, eax
- jae G_M46554_IG50
+ jae G_M46554_IG49
movzx rsi, byte ptr [r12+rsi]
lea rdx, [rbp-0x60]
mov rcx, 0xD1FFAB1E ; code for System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
call [rcx]System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
test eax, eax
- jne SHORT G_M46554_IG15
+ jne SHORT G_M46554_IG12
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
mov edi, dword ptr [rbp-0x70]
cmp dword ptr [rbp-0x30], edi
mov eax, edi
jl SHORT G_M46554_IG10
- ;; size=64 bbWeight=64 PerfScore 1072.00
+ ;; size=58 bbWeight=16 PerfScore 260.00
G_M46554_IG11:
xor edi, edi
mov dword ptr [rbp-0x60], edi
- ;; size=5 bbWeight=8 PerfScore 10.00
+ jmp G_M46554_IG40
+ ;; size=10 bbWeight=2 PerfScore 6.50
G_M46554_IG12:
- cmp dword ptr [rbp-0x30], ebx
- jl G_M46554_IG03
- ;; size=9 bbWeight=8 PerfScore 24.00
-G_M46554_IG13:
- cmp byte ptr [r15+0x58], 0
- je G_M46554_IG46
- ;; size=11 bbWeight=1 PerfScore 4.00
-G_M46554_IG14:
- mov edx, dword ptr [r15+0x44]
- lea rsi, bword ptr [r15+0x18]
- mov rdi, r15
- mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:EnsureStringCapacity(byref,int):this
- call [rax]System.Net.Http.HPack.HPackDecoder:EnsureStringCapacity(byref,int):this
- mov r12, gword ptr [r15+0x18]
- lea rdi, bword ptr [r15+0x28]
- mov rsi, r12
- call CORINFO_HELP_ASSIGN_REF
- mov esi, dword ptr [r15+0x60]
- mov eax, dword ptr [r15+0x64]
- mov edx, eax
- add rdx, rsi
- mov edi, ebx
- cmp rdx, rdi
- jbe G_M46554_IG43
- jmp G_M46554_IG49
- ;; size=68 bbWeight=0.50 PerfScore 8.88
-G_M46554_IG15:
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
mov rdi, r15
mov esi, dword ptr [rbp-0x60]
mov edx, 8
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
call [rax]System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
mov rsi, r14
mov edx, ebx
lea rcx, [rbp-0x30]
mov rdi, r15
mov r8, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:ParseHeaderValue(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:ParseHeaderValue(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
- ;; size=63 bbWeight=8 PerfScore 110.00
-G_M46554_IG16:
+ jmp G_M46554_IG40
+ ;; size=63 bbWeight=2 PerfScore 27.50
+G_M46554_IG13:
cmp dword ptr [rbp-0x30], ebx
- jge G_M46554_IG12
+ jge G_M46554_IG40
mov esi, dword ptr [rbp-0x30]
lea edx, [rsi+0x01]
mov dword ptr [rbp-0x30], edx
cmp esi, ebx
- jae G_M46554_IG50
+ jae G_M46554_IG49
movzx rsi, byte ptr [r14+rsi]
test sil, 128
setne dl
mov byte ptr [r15+0x4E], dl
- lea rcx, bword ptr [r15+0x50]
- mov r12, rcx
- mov rdx, r12
+ lea rdx, bword ptr [r15+0x50]
and esi, -129
- movzx rax, sil
- cmp eax, 127
- jl G_M46554_IG20
- mov dword ptr [rdx], eax
+ movzx r12, sil
+ cmp r12d, 127
+ jl G_M46554_IG17
+ mov dword ptr [rdx], r12d
xor esi, esi
mov dword ptr [rdx+0x04], esi
mov byte ptr [r15+0x4C], 7
cmp dword ptr [rbp-0x30], ebx
- jge SHORT G_M46554_IG18
- ;; size=88 bbWeight=2 PerfScore 40.00
-G_M46554_IG17:
- mov rdi, r12
+ jge SHORT G_M46554_IG15
+ ;; size=84 bbWeight=2 PerfScore 39.00
+G_M46554_IG14:
+ lea rdi, bword ptr [r15+0x50]
mov esi, dword ptr [rbp-0x30]
cmp esi, ebx
- jae G_M46554_IG50
+ jae G_M46554_IG49
movzx rsi, byte ptr [r14+rsi]
lea rdx, [rbp-0x58]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
call [rax]System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
test eax, eax
- jne SHORT G_M46554_IG19
+ jne SHORT G_M46554_IG16
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
cmp dword ptr [rbp-0x30], ebx
- jl SHORT G_M46554_IG17
- ;; size=52 bbWeight=64 PerfScore 944.00
-G_M46554_IG18:
+ jl SHORT G_M46554_IG14
+ ;; size=53 bbWeight=16 PerfScore 240.00
+G_M46554_IG15:
xor edi, edi
mov dword ptr [rbp-0x58], edi
- jmp G_M46554_IG12
- ;; size=10 bbWeight=8 PerfScore 26.00
-G_M46554_IG19:
+ jmp G_M46554_IG40
+ ;; size=10 bbWeight=2 PerfScore 6.50
+G_M46554_IG16:
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
mov rdi, r15
mov esi, dword ptr [rbp-0x58]
mov edx, 8
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
call [rax]System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
mov rsi, r14
mov edx, ebx
lea rcx, [rbp-0x30]
mov rdi, r15
mov r8, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:ParseHeaderValue(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:ParseHeaderValue(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
- ;; size=63 bbWeight=8 PerfScore 110.00
-G_M46554_IG20:
- mov r12d, eax
+ jmp G_M46554_IG40
+ ;; size=63 bbWeight=2 PerfScore 27.50
+G_M46554_IG17:
mov rdi, r15
mov esi, r12d
mov edx, 8
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
call [rax]System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
test r12d, r12d
- je SHORT G_M46554_IG22
- ;; size=31 bbWeight=2 PerfScore 11.00
-G_M46554_IG21:
+ je SHORT G_M46554_IG19
+ ;; size=28 bbWeight=2 PerfScore 10.50
+G_M46554_IG18:
mov rsi, r14
mov edx, ebx
lea rcx, [rbp-0x30]
mov rdi, r15
mov r8, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:ParseHeaderValue(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:ParseHeaderValue(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
- ;; size=32 bbWeight=8 PerfScore 54.00
-G_M46554_IG22:
+ jmp G_M46554_IG40
+ ;; size=32 bbWeight=2 PerfScore 13.50
+G_M46554_IG19:
mov rdi, r15
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:OnString(ubyte):this
call [rax]System.Net.Http.HPack.HPackDecoder:OnString(ubyte):this
mov rsi, r14
mov edx, ebx
mov rdi, r15
mov rcx, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:ProcessHeaderValue(System.ReadOnlySpan`1[ubyte],System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:ProcessHeaderValue(System.ReadOnlySpan`1[ubyte],System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
+ jmp G_M46554_IG40
;; size=45 bbWeight=2 PerfScore 20.00
-G_M46554_IG23:
+G_M46554_IG20:
mov rsi, r14
mov edx, ebx
lea rcx, [rbp-0x30]
mov rdi, r15
mov r8, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:ParseHeaderName(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:ParseHeaderName(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
+ jmp G_M46554_IG40
;; size=32 bbWeight=2 PerfScore 13.50
-G_M46554_IG24:
+G_M46554_IG21:
cmp dword ptr [rbp-0x30], ebx
- jge SHORT G_M46554_IG26
+ jge SHORT G_M46554_IG23
;; size=5 bbWeight=2 PerfScore 6.00
-G_M46554_IG25:
- lea r12, bword ptr [r15+0x50]
- mov rdi, r12
+G_M46554_IG22:
+ lea rdi, bword ptr [r15+0x50]
mov esi, dword ptr [rbp-0x30]
cmp esi, ebx
- jae G_M46554_IG50
+ jae G_M46554_IG49
movzx rsi, byte ptr [r14+rsi]
lea rdx, [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
call [rax]System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
test eax, eax
- jne SHORT G_M46554_IG27
+ jne SHORT G_M46554_IG24
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
cmp dword ptr [rbp-0x30], ebx
- jl SHORT G_M46554_IG25
- ;; size=56 bbWeight=16 PerfScore 244.00
-G_M46554_IG26:
+ jl SHORT G_M46554_IG22
+ ;; size=53 bbWeight=16 PerfScore 240.00
+G_M46554_IG23:
xor edi, edi
mov dword ptr [rbp-0x50], edi
- jmp G_M46554_IG12
+ jmp G_M46554_IG40
;; size=10 bbWeight=2 PerfScore 6.50
-G_M46554_IG27:
+G_M46554_IG24:
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
mov rdi, r15
mov esi, dword ptr [rbp-0x50]
mov edx, 5
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
call [rax]System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
mov rsi, r14
mov edx, ebx
lea rcx, [rbp-0x30]
mov rdi, r15
mov r8, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:ParseHeaderName(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:ParseHeaderName(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
+ jmp G_M46554_IG40
;; size=63 bbWeight=2 PerfScore 27.50
-G_M46554_IG28:
+G_M46554_IG25:
mov rsi, r14
mov edx, ebx
lea rcx, [rbp-0x30]
mov rdi, r15
mov r8, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:ParseHeaderNameLength(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:ParseHeaderNameLength(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
+ jmp G_M46554_IG40
;; size=32 bbWeight=2 PerfScore 13.50
-G_M46554_IG29:
+G_M46554_IG26:
mov r12, r14
mov eax, ebx
mov dword ptr [rbp-0x6C], eax
cmp dword ptr [rbp-0x30], eax
- jge SHORT G_M46554_IG31
+ jge SHORT G_M46554_IG28
;; size=13 bbWeight=2 PerfScore 9.00
-G_M46554_IG30:
- lea rsi, bword ptr [r15+0x50]
- mov rcx, rsi
- mov bword ptr [rbp-0x78], rcx
- mov rdi, rcx
+G_M46554_IG27:
+ lea rdi, bword ptr [r15+0x50]
mov esi, dword ptr [rbp-0x30]
cmp esi, eax
- jae G_M46554_IG50
+ jae G_M46554_IG49
movzx rsi, byte ptr [r12+rsi]
lea rdx, [rbp-0x40]
- mov r8, 0xD1FFAB1E ; code for System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
- call [r8]System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
+ mov rcx, 0xD1FFAB1E ; code for System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
+ call [rcx]System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
test eax, eax
- jne SHORT G_M46554_IG32
+ jne SHORT G_M46554_IG29
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
mov edi, dword ptr [rbp-0x6C]
cmp dword ptr [rbp-0x30], edi
mov eax, edi
- jl SHORT G_M46554_IG30
- ;; size=69 bbWeight=16 PerfScore 284.00
-G_M46554_IG31:
+ jl SHORT G_M46554_IG27
+ ;; size=58 bbWeight=16 PerfScore 260.00
+G_M46554_IG28:
xor edi, edi
mov dword ptr [rbp-0x40], edi
- jmp G_M46554_IG12
+ jmp G_M46554_IG40
;; size=10 bbWeight=2 PerfScore 6.50
-G_M46554_IG32:
+G_M46554_IG29:
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
mov rdi, r15
mov esi, dword ptr [rbp-0x40]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:OnIndexedHeaderName(int):this
call [rax]System.Net.Http.HPack.HPackDecoder:OnIndexedHeaderName(int):this
cmp dword ptr [rbp-0x30], ebx
- jge G_M46554_IG12
- mov r12, bword ptr [rbp-0x78]
+ jge G_M46554_IG40
mov esi, dword ptr [rbp-0x30]
lea edx, [rsi+0x01]
mov dword ptr [rbp-0x30], edx
cmp esi, ebx
- jae G_M46554_IG50
+ jae G_M46554_IG49
movzx rsi, byte ptr [r14+rsi]
test sil, 128
setne dl
mov byte ptr [r15+0x4E], dl
- mov rdx, r12
+ lea rdx, bword ptr [r15+0x50]
and esi, -129
- movzx rax, sil
- cmp eax, 127
- jl G_M46554_IG36
- mov dword ptr [rdx], eax
+ movzx r12, sil
+ cmp r12d, 127
+ jl G_M46554_IG33
+ mov dword ptr [rdx], r12d
xor esi, esi
mov dword ptr [rdx+0x04], esi
mov byte ptr [r15+0x4C], 7
cmp dword ptr [rbp-0x30], ebx
- jge SHORT G_M46554_IG34
- ;; size=111 bbWeight=2 PerfScore 54.00
-G_M46554_IG33:
- mov rdi, r12
+ jge SHORT G_M46554_IG31
+ ;; size=110 bbWeight=2 PerfScore 52.50
+G_M46554_IG30:
+ lea rdi, bword ptr [r15+0x50]
mov esi, dword ptr [rbp-0x30]
cmp esi, ebx
- jae G_M46554_IG50
+ jae G_M46554_IG49
movzx rsi, byte ptr [r14+rsi]
lea rdx, [rbp-0x48]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
call [rax]System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
test eax, eax
- jne SHORT G_M46554_IG35
+ jne SHORT G_M46554_IG32
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
cmp dword ptr [rbp-0x30], ebx
- jl SHORT G_M46554_IG33
- ;; size=52 bbWeight=16 PerfScore 236.00
-G_M46554_IG34:
+ jl SHORT G_M46554_IG30
+ ;; size=53 bbWeight=16 PerfScore 240.00
+G_M46554_IG31:
xor edi, edi
mov dword ptr [rbp-0x48], edi
- jmp G_M46554_IG12
+ jmp G_M46554_IG40
;; size=10 bbWeight=2 PerfScore 6.50
-G_M46554_IG35:
+G_M46554_IG32:
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
mov rdi, r15
mov esi, dword ptr [rbp-0x48]
mov edx, 8
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
call [rax]System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
mov rsi, r14
mov edx, ebx
lea rcx, [rbp-0x30]
mov rdi, r15
mov r8, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:ParseHeaderValue(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:ParseHeaderValue(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
+ jmp G_M46554_IG40
;; size=63 bbWeight=2 PerfScore 27.50
-G_M46554_IG36:
- mov r12d, eax
+G_M46554_IG33:
mov rdi, r15
mov esi, r12d
mov edx, 8
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
call [rax]System.Net.Http.HPack.HPackDecoder:OnStringLength(int,ubyte):this
test r12d, r12d
- je SHORT G_M46554_IG37
+ je SHORT G_M46554_IG34
mov rsi, r14
mov edx, ebx
lea rcx, [rbp-0x30]
mov rdi, r15
mov r8, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:ParseHeaderValue(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:ParseHeaderValue(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
- ;; size=63 bbWeight=2 PerfScore 24.50
-G_M46554_IG37:
+ jmp G_M46554_IG40
+ ;; size=60 bbWeight=2 PerfScore 24.00
+G_M46554_IG34:
mov rdi, r15
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:OnString(ubyte):this
call [rax]System.Net.Http.HPack.HPackDecoder:OnString(ubyte):this
mov rsi, r14
mov edx, ebx
mov rdi, r15
mov rcx, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:ProcessHeaderValue(System.ReadOnlySpan`1[ubyte],System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:ProcessHeaderValue(System.ReadOnlySpan`1[ubyte],System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
- ;; size=45 bbWeight=2 PerfScore 20.00
-G_M46554_IG38:
+ jmp SHORT G_M46554_IG40
+ ;; size=42 bbWeight=2 PerfScore 20.00
+G_M46554_IG35:
cmp dword ptr [rbp-0x30], ebx
- jge SHORT G_M46554_IG40
+ jge SHORT G_M46554_IG37
;; size=5 bbWeight=2 PerfScore 6.00
-G_M46554_IG39:
- lea r12, bword ptr [r15+0x50]
- mov rdi, r12
+G_M46554_IG36:
+ lea rdi, bword ptr [r15+0x50]
mov esi, dword ptr [rbp-0x30]
cmp esi, ebx
- jae G_M46554_IG50
+ jae G_M46554_IG49
movzx rsi, byte ptr [r14+rsi]
lea rdx, [rbp-0x38]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
call [rax]System.Net.Http.HPack.IntegerDecoder:TryDecode(ubyte,byref):ubyte:this
test eax, eax
- jne SHORT G_M46554_IG41
+ jne SHORT G_M46554_IG38
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
cmp dword ptr [rbp-0x30], ebx
- jl SHORT G_M46554_IG39
- ;; size=56 bbWeight=16 PerfScore 244.00
-G_M46554_IG40:
+ jl SHORT G_M46554_IG36
+ ;; size=53 bbWeight=16 PerfScore 240.00
+G_M46554_IG37:
xor edi, edi
mov dword ptr [rbp-0x38], edi
- jmp G_M46554_IG12
- ;; size=10 bbWeight=2 PerfScore 6.50
-G_M46554_IG41:
+ jmp SHORT G_M46554_IG40
+ ;; size=7 bbWeight=2 PerfScore 6.50
+G_M46554_IG38:
mov edi, dword ptr [rbp-0x30]
inc edi
mov dword ptr [rbp-0x30], edi
mov rdi, r15
mov esi, dword ptr [rbp-0x38]
mov rdx, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:OnIndexedHeaderField(int,System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:OnIndexedHeaderField(int,System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
- ;; size=34 bbWeight=2 PerfScore 18.00
-G_M46554_IG42:
+ jmp SHORT G_M46554_IG40
+ ;; size=31 bbWeight=2 PerfScore 18.00
+G_M46554_IG39:
mov rsi, r14
mov edx, ebx
lea rcx, [rbp-0x30]
mov rdi, r15
mov r8, r13
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:Parse(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
call [rax]System.Net.Http.HPack.HPackDecoder:Parse(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this
- jmp G_M46554_IG12
- ;; size=32 bbWeight=2 PerfScore 13.50
-G_M46554_IG43:
+ ;; size=27 bbWeight=2 PerfScore 9.50
+G_M46554_IG40:
+ cmp dword ptr [rbp-0x30], ebx
+ jl G_M46554_IG03
+ ;; size=9 bbWeight=8 PerfScore 24.00
+G_M46554_IG41:
+ cmp byte ptr [r15+0x58], 0
+ je SHORT G_M46554_IG45
+ ;; size=7 bbWeight=1 PerfScore 4.00
+G_M46554_IG42:
+ mov edx, dword ptr [r15+0x44]
+ lea rsi, bword ptr [r15+0x18]
+ mov rdi, r15
+ mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackDecoder:EnsureStringCapacity(byref,int):this
+ call [rax]System.Net.Http.HPack.HPackDecoder:EnsureStringCapacity(byref,int):this
+ mov r13, gword ptr [r15+0x18]
+ lea rdi, bword ptr [r15+0x28]
+ mov rsi, r13
+ call CORINFO_HELP_ASSIGN_REF
+ mov edx, dword ptr [r15+0x60]
+ mov edi, dword ptr [r15+0x64]
+ mov esi, edx
+ mov edx, edi
+ add rdx, rsi
+ mov eax, ebx
+ cmp rdx, rax
+ ja G_M46554_IG48
add rsi, r14
- test r12, r12
- je SHORT G_M46554_IG44
- lea rdi, bword ptr [r12+0x10]
- mov edx, dword ptr [r12+0x08]
- jmp SHORT G_M46554_IG45
- ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M46554_IG44:
- xor rdi, rdi
+ test r13, r13
+ je SHORT G_M46554_IG43
+ lea rax, bword ptr [r13+0x10]
+ mov edx, dword ptr [r13+0x08]
+ jmp SHORT G_M46554_IG44
+ ;; size=83 bbWeight=0.50 PerfScore 11.00
+G_M46554_IG43:
+ xor rax, rax
xor edx, edx
;; size=4 bbWeight=0.50 PerfScore 0.25
-G_M46554_IG45:
- cmp eax, edx
- ja G_M46554_IG48
- mov edx, eax
+G_M46554_IG44:
+ cmp edi, edx
+ ja G_M46554_IG47
+ mov edx, edi
+ mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
call [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
vxorps xmm0, xmm0, xmm0
vmovdqu xmmword ptr [r15+0x58], xmm0
- ;; size=32 bbWeight=0.50 PerfScore 3.54
-G_M46554_IG46:
- add rsp, 88
+ ;; size=35 bbWeight=0.50 PerfScore 3.67
+G_M46554_IG45:
+ add rsp, 72
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-G_M46554_IG47:
+G_M46554_IG46:
mov rdi, 0xD1FFAB1E ; System.Net.Http.HPack.HPackDecoder+State
call CORINFO_HELP_NEWSFAST
mov rbx, rax
movzx rdi, byte ptr [r15+0x4C]
mov byte ptr [rbx+0x08], dil
mov rdi, 0xD1FFAB1E ; System.NotImplementedException
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Enum:ToString():System.String:this
call [rax]System.Enum:ToString():System.String:this
mov rsi, rax
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.NotImplementedException:.ctor(System.String):this
call [rax]System.NotImplementedException:.ctor(System.String):this
mov rdi, r15
call CORINFO_HELP_THROW
int3
;; size=87 bbWeight=0 PerfScore 0.00
-G_M46554_IG48:
+G_M46554_IG47:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
call [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M46554_IG49:
+G_M46554_IG48:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
-G_M46554_IG50:
+G_M46554_IG49:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-RWD00 dd G_M46554_IG42 - G_M46554_IG02
- dd G_M46554_IG38 - G_M46554_IG02
- dd G_M46554_IG29 - G_M46554_IG02
- dd G_M46554_IG28 - G_M46554_IG02
- dd G_M46554_IG24 - G_M46554_IG02
- dd G_M46554_IG23 - G_M46554_IG02
- dd G_M46554_IG16 - G_M46554_IG02
- dd G_M46554_IG09 - G_M46554_IG02
+RWD00 dd G_M46554_IG39 - G_M46554_IG02
+ dd G_M46554_IG35 - G_M46554_IG02
+ dd G_M46554_IG26 - G_M46554_IG02
+ dd G_M46554_IG25 - G_M46554_IG02
dd G_M46554_IG21 - G_M46554_IG02
+ dd G_M46554_IG20 - G_M46554_IG02
+ dd G_M46554_IG13 - G_M46554_IG02
+ dd G_M46554_IG09 - G_M46554_IG02
+ dd G_M46554_IG18 - G_M46554_IG02
dd G_M46554_IG05 - G_M46554_IG02
-; Total bytes of code 1692, prolog size 33, PerfScore 4102.55, instruction count 460, allocated bytes for code 1692 (MethodHash=10da4a25) for method System.Net.Http.HPack.HPackDecoder:DecodeInternal(System.ReadOnlySpan`1[ubyte],System.Net.Http.IHttpStreamHeadersHandler):this (FullOpts)
+; Total bytes of code 1645, prolog size 30, PerfScore 2290.80, instruction count 448, allocated bytes for code 1645 (MethodHash=10da4a25) for method System.Net.Http.HPack.HPackDecoder:DecodeInternal(System.ReadOnlySpan`1[ubyte],System.Net.Http.IHttpStreamHeadersHandler):this (FullOpts)
; ============================================================ -28 (-15.73 % of base) - System.Xml.Serialization.SourceInfo:op_Inequality(System.Xml.Serialization.SourceInfo,System.Xml.Serialization.SourceInfo):ubyte ; Assembly listing for method System.Xml.Serialization.SourceInfo:op_Inequality(System.Xml.Serialization.SourceInfo,System.Xml.Serialization.SourceInfo):ubyte (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T01] ( 5, 4 ) ref -> r15 class-hnd single-def <System.Xml.Serialization.SourceInfo>
; V01 arg1 [V01,T00] ( 6, 4 ) ref -> rbx class-hnd single-def <System.Xml.Serialization.SourceInfo>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 tmp1 [V03,T04] ( 4, 2 ) ubyte -> r14 "Inline return value spill temp"
+; V03 tmp1 [V03,T07] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" <System.Xml.Serialization.SourceInfo>
;* V05 tmp3 [V05 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V06 tmp4 [V06,T02] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.String>
; V07 tmp5 [V07,T03] ( 5, 5 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
-; V08 tmp6 [V08,T05] ( 4, 2 ) ubyte -> r14 "Inline return value spill temp"
-; V09 tmp7 [V09,T06] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
-; V10 cse0 [V10,T07] ( 3, 1.50) int -> rdx "CSE #01: moderate"
+; V08 tmp6 [V08,T04] ( 4, 2 ) ubyte -> rax "Inline return value spill temp"
+; V09 tmp7 [V09,T05] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
+; V10 cse0 [V10,T06] ( 3, 1.50) int -> rdx "CSE #01: moderate"
;
-; Lcl frame size = 8
+; Lcl frame size = 0
G_M8008_IG01:
push rbp
push r15
- push r14
push rbx
- push rax
- lea rbp, [rsp+0x20]
+ lea rbp, [rsp+0x10]
mov r15, rdi
mov rbx, rsi
- ;; size=18 bbWeight=1 PerfScore 6.00
+ ;; size=15 bbWeight=1 PerfScore 4.00
G_M8008_IG02:
test r15, r15
- jne SHORT G_M8008_IG05
+ jne SHORT G_M8008_IG06
;; size=5 bbWeight=1 PerfScore 1.25
G_M8008_IG03:
test rbx, rbx
- setne al
- movzx rax, al
- ;; size=9 bbWeight=0.50 PerfScore 0.75
+ jne SHORT G_M8008_IG13
+ ;; size=5 bbWeight=0.50 PerfScore 0.62
G_M8008_IG04:
- add rsp, 8
+ xor eax, eax
+ ;; size=2 bbWeight=0.25 PerfScore 0.06
+G_M8008_IG05:
pop rbx
- pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=0.50 PerfScore 1.62
-G_M8008_IG05:
+ ;; size=5 bbWeight=0.25 PerfScore 0.62
+G_M8008_IG06:
test rbx, rbx
- je SHORT G_M8008_IG10
+ je SHORT G_M8008_IG12
mov rdi, rbx
xor rsi, rsi
mov rax, 0xD1FFAB1E ; code for System.Xml.Serialization.SourceInfo:Equals(System.Object):ubyte:this
call [rax]System.Xml.Serialization.SourceInfo:Equals(System.Object):ubyte:this
test eax, eax
- je SHORT G_M8008_IG06
- xor r14d, r14d
- jmp SHORT G_M8008_IG11
- ;; size=31 bbWeight=0.50 PerfScore 4.25
-G_M8008_IG06:
+ jne SHORT G_M8008_IG13
mov rdi, gword ptr [r15+0x08]
mov rsi, gword ptr [rbx+0x08]
cmp rdi, rsi
je SHORT G_M8008_IG08
test rdi, rdi
je SHORT G_M8008_IG07
test rsi, rsi
je SHORT G_M8008_IG07
mov edx, dword ptr [rdi+0x08]
cmp edx, dword ptr [rsi+0x08]
jne SHORT G_M8008_IG07
add rdi, 12
add rsi, 12
add edx, edx
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
- mov r14d, eax
jmp SHORT G_M8008_IG09
- ;; size=58 bbWeight=0.50 PerfScore 10.00
+ ;; size=81 bbWeight=0.50 PerfScore 13.00
G_M8008_IG07:
- xor r14d, r14d
+ xor eax, eax
jmp SHORT G_M8008_IG09
- ;; size=5 bbWeight=0.50 PerfScore 1.12
+ ;; size=4 bbWeight=0.50 PerfScore 1.12
G_M8008_IG08:
- mov r14d, 1
- ;; size=6 bbWeight=0.50 PerfScore 0.12
+ mov eax, 1
+ ;; size=5 bbWeight=0.50 PerfScore 0.12
G_M8008_IG09:
- jmp SHORT G_M8008_IG11
- ;; size=2 bbWeight=0.50 PerfScore 1.00
+ test eax, eax
+ je SHORT G_M8008_IG13
+ ;; size=4 bbWeight=0.50 PerfScore 0.62
G_M8008_IG10:
- cmp gword ptr [r15+0x08], 0
- sete r14b
- movzx r14, r14b
- ;; size=13 bbWeight=0.50 PerfScore 2.12
+ xor eax, eax
+ ;; size=2 bbWeight=0.25 PerfScore 0.06
G_M8008_IG11:
- test r14d, r14d
- sete al
- movzx rax, al
- ;; size=9 bbWeight=0.50 PerfScore 0.75
-G_M8008_IG12:
- add rsp, 8
pop rbx
- pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=0.50 PerfScore 1.62
+ ;; size=5 bbWeight=0.25 PerfScore 0.62
+G_M8008_IG12:
+ cmp gword ptr [r15+0x08], 0
+ je SHORT G_M8008_IG10
+ ;; size=7 bbWeight=0.50 PerfScore 2.00
+G_M8008_IG13:
+ mov eax, 1
+ ;; size=5 bbWeight=0.25 PerfScore 0.06
+G_M8008_IG14:
+ pop rbx
+ pop r15
+ pop rbp
+ ret
+ ;; size=5 bbWeight=0.25 PerfScore 0.62
-; Total bytes of code 178, prolog size 12, PerfScore 30.62, instruction count 63, allocated bytes for code 178 (MethodHash=6a7fe0b7) for method System.Xml.Serialization.SourceInfo:op_Inequality(System.Xml.Serialization.SourceInfo,System.Xml.Serialization.SourceInfo):ubyte (FullOpts)
+; Total bytes of code 150, prolog size 9, PerfScore 24.81, instruction count 57, allocated bytes for code 150 (MethodHash=6a7fe0b7) for method System.Xml.Serialization.SourceInfo:op_Inequality(System.Xml.Serialization.SourceInfo,System.Xml.Serialization.SourceInfo):ubyte (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/661c25382226059d94407267bb82c17e |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 18 minutes 25 seconds.
dotnet/runtime#107499
Diffs
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: