forked from MihaZupan/runtime-utils
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[JitDiff X64] [EgorBo] JIT: Skip more covariance checks #579
Comments
Top method regressions97 (6.79 % of base) - System.Text.RegularExpressions.RegexNode:g__ReduceSingleLetterAndNestedAlternations|42_0():this ; Assembly listing for method System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ReduceSingleLetterAndNestedAlternations|42_0():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; 32 single block inlinees; 12 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T19] ( 5, 21 ) ref -> rbx this class-hnd single-def <System.Text.RegularExpressions.RegexNode>
+; V00 this [V00,T18] ( 5, 21 ) ref -> rbx this class-hnd single-def <System.Text.RegularExpressions.RegexNode>
; V01 loc0 [V01,T05] ( 6, 39 ) ubyte -> r15
; V02 loc1 [V02,T06] ( 6, 39 ) ubyte -> r14
; V03 loc2 [V03,T20] ( 4, 19 ) int -> r13
-; V04 loc3 [V04,T13] ( 4, 26 ) int -> rdx
-; V05 loc4 [V05,T55] ( 4, 2.75) int -> rdx
-; V06 loc5 [V06,T04] ( 16, 45 ) int -> [rbp-0x2C]
-; V07 loc6 [V07,T09] ( 11, 32 ) ref -> [rbp-0x60] class-hnd exact spill-single-def <System.Text.RegularExpressions.RegexNode>
-; V08 loc7 [V08,T22] ( 8, 16 ) ref -> [rbp-0x68] class-hnd exact spill-single-def <System.Text.RegularExpressions.RegexNode>
-; V09 loc8 [V09,T11] ( 14, 30.50) ref -> r12 class-hnd single-def <System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]>
-; V10 loc9 [V10,T17] ( 5, 24 ) ref -> [rbp-0x70] class-hnd spill-single-def <System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]>
-;* V11 loc10 [V11,T57] ( 0, 0 ) int -> zero-ref
-; V12 loc11 [V12,T44] ( 3, 6 ) ref -> [rbp-0x78] class-hnd exact spill-single-def <System.Text.RegularExpressions.RegexNode>
-; V13 loc12 [V13,T03] ( 3, 48 ) ubyte -> rsi
+; V04 loc3 [V04,T12] ( 4, 26 ) int -> r10
+; V05 loc4 [V05,T59] ( 4, 2.75) int -> rdx
+; V06 loc5 [V06,T04] ( 17, 47 ) int -> [rbp-0x2C]
+; V07 loc6 [V07,T09] ( 11, 32 ) ref -> [rbp-0x68] class-hnd exact spill-single-def <System.Text.RegularExpressions.RegexNode>
+; V08 loc7 [V08,T22] ( 8, 16 ) ref -> [rbp-0x70] class-hnd exact spill-single-def <System.Text.RegularExpressions.RegexNode>
+; V09 loc8 [V09,T19] ( 10, 22.50) ref -> r12 class-hnd single-def <System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]>
+; V10 loc9 [V10,T16] ( 5, 24 ) ref -> [rbp-0x78] class-hnd spill-single-def <System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]>
+;* V11 loc10 [V11,T61] ( 0, 0 ) int -> zero-ref
+; V12 loc11 [V12,T48] ( 3, 6 ) ref -> [rbp-0x80] class-hnd exact spill-single-def <System.Text.RegularExpressions.RegexNode>
+; V13 loc12 [V13,T03] ( 3, 48 ) ubyte -> r10
;* V14 loc13 [V14 ] ( 0, 0 ) ubyte -> zero-ref
-; V15 loc14 [V15,T23] ( 8, 16 ) ref -> [rbp-0x80] class-hnd <System.Text.RegularExpressions.RegexCharClass>
+; V15 loc14 [V15,T23] ( 8, 16 ) ref -> [rbp-0x88] class-hnd <System.Text.RegularExpressions.RegexCharClass>
;* V16 loc15 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact <System.Text.RegularExpressions.RegexCharClass>
;# V17 OutArgs [V17 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V18 tmp1 [V18,T10] ( 3, 32 ) int -> rdi
;* V19 tmp2 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexCharClass>
-; V20 tmp3 [V20,T48] ( 3, 6 ) int -> rdi
-;* V21 tmp4 [V21,T58] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
-; V22 tmp5 [V22,T14] ( 6, 24 ) ref -> rdi class-hnd exact "Inlining Arg" <System.String>
-; V23 tmp6 [V23,T49] ( 3, 6 ) ubyte -> r14 "Inline return value spill temp"
-; V24 tmp7 [V24,T15] ( 6, 24 ) ref -> rdi class-hnd exact "Inlining Arg" <System.String>
-; V25 tmp8 [V25,T31] ( 2, 8 ) ushort -> [rbp-0x30] spill-single-def "Inlining Arg"
+; V20 tmp3 [V20,T52] ( 3, 6 ) int -> rdi
+;* V21 tmp4 [V21,T62] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
+; V22 tmp5 [V22,T13] ( 6, 24 ) ref -> rdi class-hnd exact "Inlining Arg" <System.String>
+; V23 tmp6 [V23,T53] ( 3, 6 ) ubyte -> r14 "Inline return value spill temp"
+; V24 tmp7 [V24,T14] ( 6, 24 ) ref -> rdi class-hnd exact "Inlining Arg" <System.String>
+; V25 tmp8 [V25,T33] ( 2, 8 ) ushort -> [rbp-0x30] spill-single-def "Inlining Arg"
;* V26 tmp9 [V26 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ushort,ushort]>
;* V27 tmp10 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
-; V28 tmp11 [V28,T39] ( 2, 8 ) ref -> rdi class-hnd "dup spill" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
+; V28 tmp11 [V28,T41] ( 2, 8 ) ref -> rdi class-hnd "dup spill" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
; V29 tmp12 [V29,T21] ( 9, 18 ) ref -> rdi
-; V30 tmp13 [V30,T25] ( 4, 16 ) ref -> [rbp-0x88] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
+; V30 tmp13 [V30,T25] ( 4, 16 ) ref -> [rbp-0x90] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
;* V31 tmp14 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
-; V32 tmp15 [V32,T45] ( 3, 6 ) ref -> r8 class-hnd exact "Inline stloc first use temp" <System.ValueTuple`2[ushort,ushort][]>
-; V33 tmp16 [V33,T36] ( 4, 8 ) int -> r9 "Inline stloc first use temp"
+; V32 tmp15 [V32,T49] ( 3, 6 ) ref -> r8 class-hnd exact "Inline stloc first use temp" <System.ValueTuple`2[ushort,ushort][]>
+; V33 tmp16 [V33,T38] ( 4, 8 ) int -> r9 "Inline stloc first use temp"
;* V34 tmp17 [V34 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.ValueTuple`2[ushort,ushort]>
;* V35 tmp18 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V36 tmp19 [V36,T32] ( 2, 8 ) ushort -> [rbp-0x34] spill-single-def "Inlining Arg"
+; V36 tmp19 [V36,T34] ( 2, 8 ) ushort -> [rbp-0x34] spill-single-def "Inlining Arg"
;* V37 tmp20 [V37 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ushort,ushort]>
-; V38 tmp21 [V38,T12] ( 7, 28 ) ref -> rdi class-hnd "impAppendStmt" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
-; V39 tmp22 [V39,T40] ( 2, 8 ) ref -> rdi class-hnd "dup spill" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
-; V40 tmp23 [V40,T35] ( 4, 8 ) ref -> rdi
-; V41 tmp24 [V41,T27] ( 3, 12 ) ref -> [rbp-0x90] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
-; V42 tmp25 [V42,T46] ( 3, 6 ) ref -> [rbp-0x98] class-hnd exact spill-single-def "Inline stloc first use temp" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
-; V43 tmp26 [V43,T47] ( 3, 6 ) ref -> r8 class-hnd exact "Inline stloc first use temp" <System.ValueTuple`2[ushort,ushort][]>
-; V44 tmp27 [V44,T37] ( 4, 8 ) int -> r9 "Inline stloc first use temp"
+; V38 tmp21 [V38,T11] ( 7, 28 ) ref -> rdi class-hnd "impAppendStmt" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
+; V39 tmp22 [V39,T42] ( 2, 8 ) ref -> rdi class-hnd "dup spill" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
+; V40 tmp23 [V40,T37] ( 4, 8 ) ref -> rdi
+; V41 tmp24 [V41,T30] ( 3, 12 ) ref -> [rbp-0x98] class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
+; V42 tmp25 [V42,T50] ( 3, 6 ) ref -> [rbp-0xA0] class-hnd exact spill-single-def "Inline stloc first use temp" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
+; V43 tmp26 [V43,T51] ( 3, 6 ) ref -> r8 class-hnd exact "Inline stloc first use temp" <System.ValueTuple`2[ushort,ushort][]>
+; V44 tmp27 [V44,T39] ( 4, 8 ) int -> r9 "Inline stloc first use temp"
;* V45 tmp28 [V45 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" <System.ValueTuple`2[ushort,ushort]>
;* V46 tmp29 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-; V47 tmp30 [V47,T41] ( 2, 8 ) ref -> rax class-hnd exact "Inlining Arg" <System.String>
-;* V48 tmp31 [V48,T59] ( 0, 0 ) ushort -> zero-ref "field V26.Item1 (fldOffset=0x0)" P-INDEP
-; V49 tmp32 [V49,T33] ( 5, 10 ) ushort -> rdx "field V26.Item2 (fldOffset=0x2)" P-INDEP
+; V47 tmp30 [V47,T43] ( 2, 8 ) ref -> rax class-hnd exact "Inlining Arg" <System.String>
+;* V48 tmp31 [V48,T63] ( 0, 0 ) ushort -> zero-ref "field V26.Item1 (fldOffset=0x0)" P-INDEP
+; V49 tmp32 [V49,T35] ( 5, 10 ) ushort -> rdx "field V26.Item2 (fldOffset=0x2)" P-INDEP
;* V50 tmp33 [V50 ] ( 0, 0 ) ushort -> zero-ref "field V34.Item1 (fldOffset=0x0)" P-INDEP
;* V51 tmp34 [V51 ] ( 0, 0 ) ushort -> zero-ref "field V34.Item2 (fldOffset=0x2)" P-INDEP
-;* V52 tmp35 [V52,T60] ( 0, 0 ) ushort -> zero-ref "field V37.Item1 (fldOffset=0x0)" P-INDEP
-; V53 tmp36 [V53,T53] ( 2, 4 ) ushort -> rdx "field V37.Item2 (fldOffset=0x2)" P-INDEP
-; V54 tmp37 [V54,T54] ( 2, 4 ) ushort -> rdx "field V45.Item1 (fldOffset=0x0)" P-INDEP
-; V55 tmp38 [V55,T34] ( 5, 10 ) ushort -> rdx "field V45.Item2 (fldOffset=0x2)" P-INDEP
-; V56 tmp39 [V56,T18] ( 3, 24 ) ref -> rdi "arr expr"
-; V57 tmp40 [V57,T01] ( 3, 96 ) ref -> rdi "arr expr"
-; V58 tmp41 [V58,T28] ( 3, 12 ) ref -> rdi "arr expr"
-; V59 tmp42 [V59,T16] ( 6, 24 ) struct ( 8) [rbp-0x40] do-not-enreg[SF] "by-value struct argument" <System.ValueTuple`2[ushort,ushort]>
-; V60 tmp43 [V60,T29] ( 3, 12 ) byref -> rdi "BlockOp address local"
-; V61 tmp44 [V61,T42] ( 2, 8 ) ref -> rsi "argument with side effect"
-; V62 tmp45 [V62,T30] ( 3, 12 ) byref -> rdi "BlockOp address local"
-; V63 cse0 [V63,T02] ( 5, 48 ) int -> rdi "CSE #06: aggressive"
-; V64 cse1 [V64,T07] ( 4, 36 ) int -> [rbp-0x44] spill-single-def "CSE #03: moderate"
-; V65 cse2 [V65,T50] ( 3, 6 ) int -> rdi "CSE #23: conservative"
-; V66 cse3 [V66,T24] ( 8, 16 ) int -> rsi multi-def "CSE #07: moderate"
-; V67 rat0 [V67,T08] ( 11, 33.25) long -> [rbp-0x50] "Widened IV V05"
-; V68 rat1 [V68,T00] ( 7, 98 ) long -> [rbp-0x58] "Widened IV V11"
-; V69 rat2 [V69,T51] ( 3, 4.50) ref -> rsi "Spilling to split statement for tree"
-; V70 rat3 [V70,T43] ( 5, 7.50) ref -> r12 "replacement local"
-; V71 rat4 [V71,T56] ( 3, 2.50) long -> rdi "CSE for expectedClsNode"
-; V72 rat5 [V72,T38] ( 3, 8 ) ref -> rsi "Spilling to split statement for tree"
-; V73 rat6 [V73,T26] ( 4, 14 ) ref -> rax "replacement local"
-; V74 rat7 [V74,T52] ( 3, 4 ) long -> rdi "CSE for expectedClsNode"
+;* V52 tmp35 [V52,T64] ( 0, 0 ) ushort -> zero-ref "field V37.Item1 (fldOffset=0x0)" P-INDEP
+; V53 tmp36 [V53,T57] ( 2, 4 ) ushort -> rdx "field V37.Item2 (fldOffset=0x2)" P-INDEP
+; V54 tmp37 [V54,T58] ( 2, 4 ) ushort -> rdx "field V45.Item1 (fldOffset=0x0)" P-INDEP
+; V55 tmp38 [V55,T36] ( 5, 10 ) ushort -> rdx "field V45.Item2 (fldOffset=0x2)" P-INDEP
+; V56 tmp39 [V56,T17] ( 3, 24 ) ref -> rdi "arr expr"
+; V57 tmp40 [V57,T44] ( 2, 8 ) ref -> rdi "arr expr"
+; V58 tmp41 [V58,T01] ( 3, 96 ) ref -> rdi "arr expr"
+; V59 tmp42 [V59,T45] ( 2, 8 ) ref -> r8 "arr expr"
+; V60 tmp43 [V60,T15] ( 6, 24 ) struct ( 8) [rbp-0x40] do-not-enreg[SF] "by-value struct argument" <System.ValueTuple`2[ushort,ushort]>
+; V61 tmp44 [V61,T31] ( 3, 12 ) byref -> rdi "BlockOp address local"
+; V62 tmp45 [V62,T46] ( 2, 8 ) ref -> rsi "argument with side effect"
+; V63 tmp46 [V63,T32] ( 3, 12 ) byref -> rdi "BlockOp address local"
+; V64 cse0 [V64,T02] ( 5, 48 ) int -> rdi "CSE #08: aggressive"
+; V65 cse1 [V65,T07] ( 4, 36 ) int -> [rbp-0x44] spill-single-def "CSE #05: moderate"
+; V66 cse2 [V66,T28] ( 4, 12 ) int -> [rbp-0x48] spill-single-def "CSE #01: moderate"
+; V67 cse3 [V67,T27] ( 4, 12 ) ref -> [rbp-0xA8] spill-single-def "CSE #02: moderate"
+; V68 cse4 [V68,T54] ( 3, 6 ) int -> rdi "CSE #25: conservative"
+; V69 cse5 [V69,T24] ( 8, 16 ) int -> r11 multi-def "CSE #09: moderate"
+; V70 cse6 [V70,T29] ( 4, 12 ) int -> [rbp-0x4C] spill-single-def "CSE #03: moderate"
+; V71 rat0 [V71,T08] ( 11, 33.25) long -> [rbp-0x58] "Widened IV V05"
+; V72 rat1 [V72,T00] ( 7, 98 ) long -> [rbp-0x60] "Widened IV V11"
+; V73 rat2 [V73,T55] ( 3, 4.50) ref -> rsi "Spilling to split statement for tree"
+; V74 rat3 [V74,T47] ( 5, 7.50) ref -> r12 "replacement local"
+; V75 rat4 [V75,T60] ( 3, 2.50) long -> rdi "CSE for expectedClsNode"
+; V76 rat5 [V76,T40] ( 3, 8 ) ref -> rsi "Spilling to split statement for tree"
+; V77 rat6 [V77,T26] ( 4, 14 ) ref -> rax "replacement local"
+; V78 rat7 [V78,T56] ( 3, 4 ) long -> rdi "CSE for expectedClsNode"
;
-; Lcl frame size = 120
+; Lcl frame size = 136
G_M52860_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
- sub rsp, 120
- lea rbp, [rsp+0xA0]
+ sub rsp, 136
+ lea rbp, [rsp+0xB0]
mov rbx, rdi
- ;; size=25 bbWeight=1 PerfScore 7.00
+ ;; size=28 bbWeight=1 PerfScore 7.00
G_M52860_IG02:
xor r15d, r15d
xor r14d, r14d
xor r13d, r13d
mov rsi, gword ptr [rbx+0x08]
mov r12, rsi
test r12, r12
je SHORT G_M52860_IG05
;; size=21 bbWeight=1 PerfScore 4.25
G_M52860_IG03:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]
cmp qword ptr [r12], rdi
je SHORT G_M52860_IG05
;; size=16 bbWeight=0.50 PerfScore 2.12
G_M52860_IG04:
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
call [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
mov r12, rax
;; size=15 bbWeight=0.25 PerfScore 0.88
G_M52860_IG05:
xor edx, edx
xor eax, eax
xor ecx, ecx
cmp dword ptr [r12+0x10], 0
jle G_M52860_IG47
;; size=18 bbWeight=1 PerfScore 4.75
G_M52860_IG06:
- cmp eax, dword ptr [r12+0x10]
+ mov edx, dword ptr [r12+0x10]
+ mov dword ptr [rbp-0x48], edx
+ cmp eax, edx
jae G_M52860_IG53
- mov rdi, gword ptr [r12+0x08]
- cmp eax, dword ptr [rdi+0x08]
+ mov r8, gword ptr [r12+0x08]
+ mov gword ptr [rbp-0xA8], r8
+ mov rdi, r8
+ mov r9d, dword ptr [rdi+0x08]
+ mov dword ptr [rbp-0x4C], r9d
+ cmp eax, r9d
jae G_M52860_IG54
- mov r8, gword ptr [rdi+8*rax+0x10]
- mov gword ptr [rbp-0x60], r8
- mov qword ptr [rbp-0x50], rax
+ mov r10, gword ptr [rdi+8*rax+0x10]
+ mov rsi, r10
+ mov gword ptr [rbp-0x68], rsi
+ mov qword ptr [rbp-0x58], rax
cmp ecx, eax
jge SHORT G_M52860_IG08
- ;; size=42 bbWeight=4 PerfScore 61.00
+ ;; size=68 bbWeight=4 PerfScore 69.00
G_M52860_IG07:
- cmp ecx, dword ptr [r12+0x10]
+ cmp ecx, edx
jae G_M52860_IG53
- mov rdi, gword ptr [r12+0x08]
+ mov rdi, r8
+ movsxd r10, ecx
+ mov r11d, r9d
+ cmp r10, r11
+ jae G_M52860_IG54
mov dword ptr [rbp-0x2C], ecx
- movsxd rsi, ecx
- mov rdx, r8
- mov r9, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
- call [r9]CORINFO_HELP_ARRADDR_ST
+ movsxd r10, ecx
+ lea rdi, bword ptr [rdi+8*r10+0x10]
+ call CORINFO_HELP_ASSIGN_REF
inc dword ptr [r12+0x14]
mov ecx, dword ptr [rbp-0x2C]
- mov r8, gword ptr [rbp-0x60]
- ;; size=50 bbWeight=2 PerfScore 31.50
+ mov edx, dword ptr [rbp-0x48]
+ mov rsi, gword ptr [rbp-0x68]
+ mov r8, gword ptr [rbp-0xA8]
+ mov r9d, dword ptr [rbp-0x4C]
+ ;; size=68 bbWeight=2 PerfScore 29.00
G_M52860_IG08:
- movzx rdi, byte ptr [r8+0x2E]
+ movzx rdi, byte ptr [rsi+0x2E]
cmp edi, 24
je G_M52860_IG36
;; size=14 bbWeight=4 PerfScore 13.00
G_M52860_IG09:
- mov esi, edi
- cmp esi, 9
+ mov r10d, edi
+ cmp r10d, 9
je SHORT G_M52860_IG11
- cmp esi, 11
+ cmp r10d, 11
je SHORT G_M52860_IG11
cmp edi, 22
je G_M52860_IG44
- ;; size=21 bbWeight=16 PerfScore 64.00
+ ;; size=24 bbWeight=16 PerfScore 64.00
G_M52860_IG10:
xor r15d, r15d
xor r14d, r14d
jmp G_M52860_IG45
;; size=11 bbWeight=2 PerfScore 5.00
G_M52860_IG11:
- mov edx, dword ptr [r8+0x28]
- and edx, 65
+ mov r10d, dword ptr [rsi+0x28]
+ and r10d, 65
cmp edi, 11
je SHORT G_M52860_IG17
- ;; size=12 bbWeight=8 PerfScore 28.00
+ ;; size=13 bbWeight=8 PerfScore 28.00
G_M52860_IG12:
test r15d, r15d
jne SHORT G_M52860_IG14
;; size=5 bbWeight=16 PerfScore 20.00
G_M52860_IG13:
mov edi, 1
jmp SHORT G_M52860_IG15
;; size=7 bbWeight=8 PerfScore 18.00
G_M52860_IG14:
- cmp r13d, edx
+ cmp r13d, r10d
setne dil
movzx rdi, dil
;; size=11 bbWeight=8 PerfScore 12.00
G_M52860_IG15:
or edi, r14d
je G_M52860_IG22
mov r15d, 1
xor r14d, r14d
;; size=18 bbWeight=16 PerfScore 28.00
G_M52860_IG16:
- mov r13d, edx
+ mov r13d, r10d
jmp G_M52860_IG45
;; size=8 bbWeight=8 PerfScore 18.00
G_M52860_IG17:
test r15d, r15d
jne SHORT G_M52860_IG18
mov edi, 1
jmp SHORT G_M52860_IG19
;; size=12 bbWeight=2 PerfScore 7.00
G_M52860_IG18:
- cmp r13d, edx
+ cmp r13d, r10d
setne dil
movzx rdi, dil
;; size=11 bbWeight=2 PerfScore 3.00
G_M52860_IG19:
or edi, r14d
jne SHORT G_M52860_IG20
- mov rdi, gword ptr [r8+0x10]
+ mov rdi, gword ptr [rsi+0x10]
test rdi, rdi
je SHORT G_M52860_IG20
- mov esi, dword ptr [rdi+0x08]
- test esi, esi
+ mov r11d, dword ptr [rdi+0x08]
+ test r11d, r11d
je G_M52860_IG54
cmp word ptr [rdi+0x0C], 1
jne SHORT G_M52860_IG21
- ;; size=32 bbWeight=2 PerfScore 23.50
+ ;; size=34 bbWeight=2 PerfScore 23.50
G_M52860_IG20:
mov r15d, 1
- mov rdi, gword ptr [r8+0x10]
+ mov rdi, gword ptr [rsi+0x10]
test rdi, rdi
je G_M52860_IG34
- mov esi, dword ptr [rdi+0x08]
- test esi, esi
+ mov r11d, dword ptr [rdi+0x08]
+ test r11d, r11d
je G_M52860_IG54
cmp word ptr [rdi+0x0C], 1
je G_M52860_IG34
- cmp esi, 2
+ cmp r11d, 2
jbe G_M52860_IG54
- movzx r8, word ptr [rdi+0x10]
- movzx rdi, word ptr [rdi+0x0E]
- lea edi, [r8+rdi+0x03]
- cmp edi, esi
+ movzx rdx, word ptr [rdi+0x10]
+ movzx r8, word ptr [rdi+0x0E]
+ lea r9d, [rdx+r8+0x03]
+ cmp r9d, r11d
setge r14b
movzx r14, r14b
jmp G_M52860_IG35
- ;; size=79 bbWeight=2 PerfScore 41.00
+ ;; size=83 bbWeight=2 PerfScore 41.00
G_M52860_IG21:
- cmp esi, 2
+ cmp r11d, 2
jbe G_M52860_IG54
movzx r9, word ptr [rdi+0x10]
movzx rdi, word ptr [rdi+0x0E]
lea edi, [r9+rdi+0x03]
- cmp edi, esi
+ cmp edi, r11d
+ mov r9d, dword ptr [rbp-0x4C]
jl SHORT G_M52860_IG20
- ;; size=27 bbWeight=2 PerfScore 15.00
+ ;; size=33 bbWeight=2 PerfScore 17.00
G_M52860_IG22:
dec ecx
- cmp ecx, dword ptr [r12+0x10]
+ cmp ecx, edx
jae G_M52860_IG53
- mov rdi, gword ptr [r12+0x08]
- cmp ecx, dword ptr [rdi+0x08]
+ cmp ecx, r9d
jae G_M52860_IG54
mov dword ptr [rbp-0x2C], ecx
- mov esi, ecx
- mov rdx, gword ptr [rdi+8*rsi+0x10]
- mov gword ptr [rbp-0x68], rdx
+ mov edi, ecx
+ mov rdx, gword ptr [r8+8*rdi+0x10]
+ mov gword ptr [rbp-0x70], rdx
cmp byte ptr [rdx+0x2E], 9
je SHORT G_M52860_IG23
mov rdi, gword ptr [rdx+0x10]
xor esi, esi
- mov r9, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCharClass:ParseRecursive(System.String,int):System.Text.RegularExpressions.RegexCharClass
- call [r9]System.Text.RegularExpressions.RegexCharClass:ParseRecursive(System.String,int):System.Text.RegularExpressions.RegexCharClass
+ mov r8, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCharClass:ParseRecursive(System.String,int):System.Text.RegularExpressions.RegexCharClass
+ call [r8]System.Text.RegularExpressions.RegexCharClass:ParseRecursive(System.String,int):System.Text.RegularExpressions.RegexCharClass
jmp G_M52860_IG26
- ;; size=71 bbWeight=2 PerfScore 52.00
+ ;; size=63 bbWeight=2 PerfScore 37.00
G_M52860_IG23:
mov rdi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexCharClass
call CORINFO_HELP_NEWSFAST
- mov rcx, gword ptr [rbp-0x68]
+ mov rcx, gword ptr [rbp-0x70]
movzx rdx, word ptr [rcx+0x2C]
mov dword ptr [rbp-0x30], edx
- mov gword ptr [rbp-0x80], rax
+ mov gword ptr [rbp-0x88], rax
mov rdi, gword ptr [rax+0x08]
test rdi, rdi
jne SHORT G_M52860_IG24
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x88], rax
+ mov gword ptr [rbp-0x90], rax
mov rdi, 0xD1FFAB1E ; System.ValueTuple`2[ushort,ushort][]
mov esi, 6
call CORINFO_HELP_NEWARR_1_VC
- mov rdi, gword ptr [rbp-0x88]
+ mov rdi, gword ptr [rbp-0x90]
lea rdi, bword ptr [rdi+0x08]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0x80]
+ mov rax, gword ptr [rbp-0x88]
lea rdi, bword ptr [rax+0x08]
- mov rsi, gword ptr [rbp-0x88]
+ mov rsi, gword ptr [rbp-0x90]
call CORINFO_HELP_ASSIGN_REF
- mov rdi, gword ptr [rbp-0x88]
- ;; size=127 bbWeight=2 PerfScore 41.00
+ mov rdi, gword ptr [rbp-0x90]
+ ;; size=133 bbWeight=2 PerfScore 41.00
G_M52860_IG24:
mov edx, dword ptr [rbp-0x30]
inc dword ptr [rdi+0x14]
mov r8, gword ptr [rdi+0x08]
mov r9d, dword ptr [rdi+0x10]
cmp dword ptr [r8+0x08], r9d
ja SHORT G_M52860_IG25
mov word ptr [rbp-0x40], dx
mov word ptr [rbp-0x3E], dx
mov esi, dword ptr [rbp-0x40]
mov rdx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]:AddWithResize(System.ValueTuple`2[ushort,ushort]):this
call [rdx]System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]:AddWithResize(System.ValueTuple`2[ushort,ushort]):this
- mov rax, gword ptr [rbp-0x80]
+ mov rax, gword ptr [rbp-0x88]
jmp SHORT G_M52860_IG26
- ;; size=49 bbWeight=2 PerfScore 42.50
+ ;; size=52 bbWeight=2 PerfScore 42.50
G_M52860_IG25:
lea esi, [r9+0x01]
mov dword ptr [rdi+0x10], esi
mov edi, r9d
lea rdi, bword ptr [r8+4*rdi+0x10]
mov word ptr [rdi], dx
mov word ptr [rdi+0x02], dx
- mov rax, gword ptr [rbp-0x80]
- ;; size=26 bbWeight=2 PerfScore 11.50
+ mov rax, gword ptr [rbp-0x88]
+ ;; size=29 bbWeight=2 PerfScore 11.50
G_M52860_IG26:
- mov rdx, gword ptr [rbp-0x60]
+ mov rdx, gword ptr [rbp-0x68]
cmp byte ptr [rdx+0x2E], 9
je SHORT G_M52860_IG27
- mov gword ptr [rbp-0x80], rax
+ mov gword ptr [rbp-0x88], rax
mov rdi, gword ptr [rdx+0x10]
xor esi, esi
mov rdx, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCharClass:ParseRecursive(System.String,int):System.Text.RegularExpressions.RegexCharClass
call [rdx]System.Text.RegularExpressions.RegexCharClass:ParseRecursive(System.String,int):System.Text.RegularExpressions.RegexCharClass
mov rsi, rax
- mov rdi, gword ptr [rbp-0x80]
+ mov rdi, gword ptr [rbp-0x88]
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCharClass:AddCharClass(System.Text.RegularExpressions.RegexCharClass):this
cmp dword ptr [rdi], edi
call [rax]System.Text.RegularExpressions.RegexCharClass:AddCharClass(System.Text.RegularExpressions.RegexCharClass):this
- mov rax, gword ptr [rbp-0x80]
+ mov rax, gword ptr [rbp-0x88]
jmp G_M52860_IG32
- ;; size=62 bbWeight=2 PerfScore 44.00
+ ;; size=71 bbWeight=2 PerfScore 44.00
G_M52860_IG27:
movzx rdx, word ptr [rdx+0x2C]
mov dword ptr [rbp-0x34], edx
- mov gword ptr [rbp-0x80], rax
+ mov gword ptr [rbp-0x88], rax
mov rdi, gword ptr [rax+0x08]
test rdi, rdi
jne G_M52860_IG29
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]
call CORINFO_HELP_NEWSFAST
- mov gword ptr [rbp-0x90], rax
+ mov gword ptr [rbp-0x98], rax
mov rdi, 0xD1FFAB1E ; System.ValueTuple`2[ushort,ushort][]
mov esi, 6
call CORINFO_HELP_NEWARR_1_VC
- mov rcx, gword ptr [rbp-0x90]
+ mov rcx, gword ptr [rbp-0x98]
lea rdi, bword ptr [rcx+0x08]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
- mov rax, gword ptr [rbp-0x90]
- mov gword ptr [rbp-0x98], rax
- mov rax, gword ptr [rbp-0x80]
+ mov rax, gword ptr [rbp-0x98]
+ mov gword ptr [rbp-0xA0], rax
+ mov rax, gword ptr [rbp-0x88]
lea rdi, bword ptr [rax+0x08]
- mov rsi, gword ptr [rbp-0x98]
+ mov rsi, gword ptr [rbp-0xA0]
call CORINFO_HELP_ASSIGN_REF
- mov rdi, gword ptr [rbp-0x98]
- mov rax, gword ptr [rbp-0x80]
- ;; size=130 bbWeight=2 PerfScore 42.50
+ mov rdi, gword ptr [rbp-0xA0]
+ mov rax, gword ptr [rbp-0x88]
+ ;; size=139 bbWeight=2 PerfScore 42.50
G_M52860_IG28:
mov edx, dword ptr [rbp-0x34]
inc dword ptr [rdi+0x14]
mov r8, gword ptr [rdi+0x08]
mov r9d, dword ptr [rdi+0x10]
cmp dword ptr [r8+0x08], r9d
jbe SHORT G_M52860_IG30
jmp SHORT G_M52860_IG31
;; size=22 bbWeight=2 PerfScore 28.00
G_M52860_IG29:
- mov rax, gword ptr [rbp-0x80]
+ mov rax, gword ptr [rbp-0x88]
jmp SHORT G_M52860_IG28
align [0 bytes for IG40]
- ;; size=6 bbWeight=1 PerfScore 3.00
+ ;; size=9 bbWeight=1 PerfScore 3.00
G_M52860_IG30:
- mov gword ptr [rbp-0x80], rax
+ mov gword ptr [rbp-0x88], rax
mov word ptr [rbp-0x40], dx
mov word ptr [rbp-0x3E], dx
mov esi, dword ptr [rbp-0x40]
mov rdx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]:AddWithResize(System.ValueTuple`2[ushort,ushort]):this
call [rdx]System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]:AddWithResize(System.ValueTuple`2[ushort,ushort]):this
- mov rax, gword ptr [rbp-0x80]
+ mov rax, gword ptr [rbp-0x88]
jmp SHORT G_M52860_IG32
- ;; size=33 bbWeight=2 PerfScore 20.50
+ ;; size=39 bbWeight=2 PerfScore 20.50
G_M52860_IG31:
lea esi, [r9+0x01]
mov dword ptr [rdi+0x10], esi
mov edi, r9d
lea rdi, bword ptr [r8+4*rdi+0x10]
mov word ptr [rdi], dx
mov word ptr [rdi+0x02], dx
;; size=22 bbWeight=2 PerfScore 9.50
G_M52860_IG32:
- mov rcx, gword ptr [rbp-0x68]
+ mov rcx, gword ptr [rbp-0x70]
mov byte ptr [rcx+0x2E], 11
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCharClass:ToStringClass():System.String:this
call [rax]System.Text.RegularExpressions.RegexCharClass:ToStringClass():System.String:this
- mov rcx, gword ptr [rbp-0x68]
+ mov rcx, gword ptr [rbp-0x70]
lea rdi, bword ptr [rcx+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
- mov rsi, gword ptr [rbp-0x68]
+ mov rsi, gword ptr [rbp-0x70]
mov edi, dword ptr [rsi+0x28]
test dil, 1
je SHORT G_M52860_IG33
and edi, -2
mov dword ptr [rsi+0x28], edi
mov ecx, dword ptr [rbp-0x2C]
jmp G_M52860_IG45
;; size=66 bbWeight=2 PerfScore 33.50
G_M52860_IG33:
mov ecx, dword ptr [rbp-0x2C]
jmp G_M52860_IG45
;; size=8 bbWeight=1 PerfScore 3.00
G_M52860_IG34:
xor r14d, r14d
;; size=3 bbWeight=2 PerfScore 0.50
G_M52860_IG35:
test r14d, r14d
sete r14b
movzx r14, r14b
jmp G_M52860_IG16
;; size=16 bbWeight=2 PerfScore 7.00
G_M52860_IG36:
mov dword ptr [rbp-0x2C], ecx
- mov rsi, gword ptr [r8+0x08]
+ mov rsi, gword ptr [rsi+0x08]
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]
mov rdx, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rdx]CORINFO_HELP_ISINSTANCEOFCLASS
- mov gword ptr [rbp-0x70], rax
+ mov gword ptr [rbp-0x78], rax
test rax, rax
jne SHORT G_M52860_IG39
- mov rdi, gword ptr [rbp-0x60]
- mov rsi, gword ptr [rdi+0x08]
+ mov rsi, gword ptr [rbp-0x68]
+ mov rsi, gword ptr [rsi+0x08]
mov rax, rsi
test rax, rax
je SHORT G_M52860_IG38
;; size=54 bbWeight=2 PerfScore 26.50
G_M52860_IG37:
mov rdi, 0xD1FFAB1E ; System.Text.RegularExpressions.RegexNode
cmp qword ptr [rax], rdi
jne G_M52860_IG52
;; size=19 bbWeight=1 PerfScore 4.25
G_M52860_IG38:
- mov gword ptr [rbp-0x78], rax
+ mov gword ptr [rbp-0x80], rax
lea rdi, bword ptr [rax+0x18]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
- mov rax, qword ptr [rbp-0x50]
+ mov rax, qword ptr [rbp-0x58]
lea esi, [rax+0x01]
mov rdi, r12
- mov rdx, gword ptr [rbp-0x78]
+ mov rdx, gword ptr [rbp-0x80]
mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:Insert(int,System.__Canon):this
call [rcx]System.Collections.Generic.List`1[System.__Canon]:Insert(int,System.__Canon):this
mov ecx, dword ptr [rbp-0x2C]
jmp SHORT G_M52860_IG44
;; size=47 bbWeight=2 PerfScore 23.50
G_M52860_IG39:
xor ecx, ecx
mov edx, dword ptr [rax+0x10]
mov dword ptr [rbp-0x44], edx
test edx, edx
jle SHORT G_M52860_IG41
;; size=12 bbWeight=2 PerfScore 9.00
G_M52860_IG40:
cmp ecx, edx
jb SHORT G_M52860_IG42
jmp G_M52860_IG53
;; size=9 bbWeight=16 PerfScore 52.00
G_M52860_IG41:
jmp SHORT G_M52860_IG43
;; size=2 bbWeight=1 PerfScore 2.00
G_M52860_IG42:
mov rdi, gword ptr [rax+0x08]
cmp ecx, dword ptr [rdi+0x08]
jae G_M52860_IG54
- mov qword ptr [rbp-0x58], rcx
+ mov qword ptr [rbp-0x60], rcx
mov rdi, gword ptr [rdi+8*rcx+0x10]
lea rdi, bword ptr [rdi+0x18]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
- mov rsi, qword ptr [rbp-0x58]
+ mov rsi, qword ptr [rbp-0x60]
inc esi
mov edi, dword ptr [rbp-0x44]
cmp esi, edi
mov rcx, rsi
mov edx, edi
jl SHORT G_M52860_IG51
;; size=52 bbWeight=16 PerfScore 236.00
G_M52860_IG43:
- mov rax, qword ptr [rbp-0x50]
+ mov rax, qword ptr [rbp-0x58]
lea esi, [rax+0x01]
mov rdi, r12
- mov rdx, gword ptr [rbp-0x70]
+ mov rdx, gword ptr [rbp-0x78]
mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:InsertRange(int,System.Collections.Generic.IEnumerable`1[System.__Canon]):this
call [rcx]System.Collections.Generic.List`1[System.__Canon]:InsertRange(int,System.Collections.Generic.IEnumerable`1[System.__Canon]):this
mov ecx, dword ptr [rbp-0x2C]
;; size=29 bbWeight=2 PerfScore 14.00
G_M52860_IG44:
dec ecx
;; size=2 bbWeight=8 PerfScore 2.00
G_M52860_IG45:
- mov rax, qword ptr [rbp-0x50]
+ mov rax, qword ptr [rbp-0x58]
inc eax
mov rdx, rax
inc ecx
cmp edx, dword ptr [r12+0x10]
mov rax, rdx
jl G_M52860_IG06
;; size=25 bbWeight=4 PerfScore 24.00
G_M52860_IG46:
mov edx, eax
;; size=2 bbWeight=0.25 PerfScore 0.06
G_M52860_IG47:
cmp ecx, edx
jge SHORT G_M52860_IG49
;; size=4 bbWeight=1 PerfScore 1.25
G_M52860_IG48:
sub edx, ecx
mov rdi, r12
mov esi, ecx
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:RemoveRange(int,int):this
call [rax]System.Collections.Generic.List`1[System.__Canon]:RemoveRange(int,int):this
;; size=19 bbWeight=0.50 PerfScore 2.00
G_M52860_IG49:
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M52860_IG50:
- add rsp, 120
+ add rsp, 136
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=15 bbWeight=1 PerfScore 4.25
+ ;; size=18 bbWeight=1 PerfScore 4.25
G_M52860_IG51:
- mov rax, gword ptr [rbp-0x70]
+ mov rax, gword ptr [rbp-0x78]
jmp G_M52860_IG40
;; size=9 bbWeight=8 PerfScore 24.00
G_M52860_IG52:
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
call [rax]CORINFO_HELP_CHKCASTCLASS
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M52860_IG53:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M52860_IG54:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1429, prolog size 25, PerfScore 1170.56, instruction count 362, allocated bytes for code 1429 (MethodHash=f4b73183) for method System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ReduceSingleLetterAndNestedAlternations|42_0():this (FullOpts)
+; Total bytes of code 1526, prolog size 28, PerfScore 1163.06, instruction count 375, allocated bytes for code 1526 (MethodHash=f4b73183) for method System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ReduceSingleLetterAndNestedAlternations|42_0():this (FullOpts) Larger list of diffs: https://gist.github.com/MihuBot/5992eca0ba699cc84a8d8469e093b6b8 |
Top method improvements-90 (-2.88 % of base) - System.Xml.DtdParser:ScanAttlist6():int:this ; Assembly listing for method System.Xml.DtdParser:ScanAttlist6():int:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 74 single block inlinees; 8 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 57,109 ) ref -> rbx this class-hnd single-def <System.Xml.DtdParser>
; V01 loc0 [V01,T12] ( 4, 22 ) ushort -> r12
; V02 loc1 [V02,T34] ( 4, 8 ) ushort -> r12
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T18] ( 2, 16 ) int -> r15 "impAppendStmt"
; V05 tmp2 [V05,T105] ( 2, 2 ) int -> r14 "impAppendStmt"
; V06 tmp3 [V06,T106] ( 2, 2 ) int -> r12 "impAppendStmt"
; V07 tmp4 [V07,T43] ( 2, 8 ) int -> r15 "impAppendStmt"
; V08 tmp5 [V08,T107] ( 2, 2 ) int -> r14 "impAppendStmt"
; V09 tmp6 [V09,T44] ( 2, 8 ) int -> r15 "impAppendStmt"
; V10 tmp7 [V10,T56] ( 3, 3 ) ref -> r15 class-hnd exact "Inlining Arg" <System.String>
; V11 tmp8 [V11,T79] ( 4, 2 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.Uri>
; V12 tmp9 [V12,T82] ( 2, 2 ) ref -> r13 class-hnd "impAppendStmt" <System.Xml.IDtdParserAdapter>
; V13 tmp10 [V13,T59] ( 3, 3 ) int -> r12 "impAppendStmt"
;* V14 tmp11 [V14 ] ( 0, 0 ) ref -> zero-ref
;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref
;* V16 tmp13 [V16 ] ( 0, 0 ) ref -> zero-ref
;* V17 tmp14 [V17 ] ( 0, 0 ) int -> zero-ref
; V18 tmp15 [V18,T118] ( 3, 1.50) int -> [rbp-0x2C] spill-single-def
;* V19 tmp16 [V19 ] ( 0, 0 ) ref -> zero-ref
;* V20 tmp17 [V20 ] ( 0, 0 ) ref -> zero-ref
;* V21 tmp18 [V21 ] ( 0, 0 ) ref -> zero-ref
;* V22 tmp19 [V22 ] ( 0, 0 ) int -> zero-ref
;* V23 tmp20 [V23 ] ( 0, 0 ) int -> zero-ref
; V24 tmp21 [V24,T112] ( 3, 1.50) ref -> r14
; V25 tmp22 [V25,T29] ( 11, 11 ) ref -> [rbp-0x60] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlException>
; V26 tmp23 [V26,T108] ( 2, 2 ) int -> [rbp-0x30] spill-single-def "non-inline candidate call"
; V27 tmp24 [V27,T53] ( 4, 4 ) ref -> [rbp-0x68] class-hnd exact spill-single-def "dup spill" <System.String[]>
; V28 tmp25 [V28,T83] ( 2, 2 ) ref -> rax class-hnd exact "Inlining Arg" <System.String>
; V29 tmp26 [V29,T57] ( 3, 3 ) ref -> r14 class-hnd exact "Inlining Arg" <System.String>
; V30 tmp27 [V30,T80] ( 4, 2 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.Uri>
; V31 tmp28 [V31,T84] ( 2, 2 ) ref -> r13 class-hnd "impAppendStmt" <System.Xml.IDtdParserAdapter>
; V32 tmp29 [V32,T60] ( 3, 3 ) int -> r12 "impAppendStmt"
;* V33 tmp30 [V33 ] ( 0, 0 ) ref -> zero-ref
;* V34 tmp31 [V34 ] ( 0, 0 ) ref -> zero-ref
;* V35 tmp32 [V35 ] ( 0, 0 ) ref -> zero-ref
;* V36 tmp33 [V36 ] ( 0, 0 ) int -> zero-ref
; V37 tmp34 [V37,T119] ( 3, 1.50) int -> [rbp-0x34] spill-single-def
;* V38 tmp35 [V38 ] ( 0, 0 ) ref -> zero-ref
;* V39 tmp36 [V39 ] ( 0, 0 ) ref -> zero-ref
;* V40 tmp37 [V40 ] ( 0, 0 ) ref -> zero-ref
;* V41 tmp38 [V41 ] ( 0, 0 ) int -> zero-ref
;* V42 tmp39 [V42 ] ( 0, 0 ) int -> zero-ref
; V43 tmp40 [V43,T113] ( 3, 1.50) ref -> r15
; V44 tmp41 [V44,T30] ( 11, 11 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlException>
; V45 tmp42 [V45,T109] ( 2, 2 ) int -> [rbp-0x38] spill-single-def "non-inline candidate call"
; V46 tmp43 [V46,T54] ( 4, 4 ) ref -> [rbp-0x78] class-hnd exact spill-single-def "dup spill" <System.String[]>
; V47 tmp44 [V47,T85] ( 2, 2 ) ref -> rax class-hnd exact "Inlining Arg" <System.String>
; V48 tmp45 [V48,T58] ( 3, 3 ) ref -> r12 class-hnd exact "Inlining Arg" <System.String>
; V49 tmp46 [V49,T81] ( 4, 2 ) ref -> r13 class-hnd "Inline stloc first use temp" <System.Uri>
; V50 tmp47 [V50,T86] ( 2, 2 ) ref -> r15 class-hnd "impAppendStmt" <System.Xml.IDtdParserAdapter>
; V51 tmp48 [V51,T61] ( 3, 3 ) int -> r14 "impAppendStmt"
;* V52 tmp49 [V52 ] ( 0, 0 ) ref -> zero-ref
;* V53 tmp50 [V53 ] ( 0, 0 ) ref -> zero-ref
;* V54 tmp51 [V54 ] ( 0, 0 ) ref -> zero-ref
;* V55 tmp52 [V55 ] ( 0, 0 ) int -> zero-ref
; V56 tmp53 [V56,T120] ( 3, 1.50) int -> [rbp-0x3C] spill-single-def
;* V57 tmp54 [V57 ] ( 0, 0 ) ref -> zero-ref
;* V58 tmp55 [V58 ] ( 0, 0 ) ref -> zero-ref
;* V59 tmp56 [V59 ] ( 0, 0 ) ref -> zero-ref
;* V60 tmp57 [V60 ] ( 0, 0 ) int -> zero-ref
;* V61 tmp58 [V61 ] ( 0, 0 ) int -> zero-ref
; V62 tmp59 [V62,T114] ( 3, 1.50) ref -> r13
; V63 tmp60 [V63,T31] ( 11, 11 ) ref -> [rbp-0x80] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlException>
; V64 tmp61 [V64,T110] ( 2, 2 ) int -> [rbp-0x40] spill-single-def "non-inline candidate call"
; V65 tmp62 [V65,T55] ( 4, 4 ) ref -> [rbp-0x88] class-hnd exact spill-single-def "dup spill" <System.String[]>
; V66 tmp63 [V66,T87] ( 2, 2 ) ref -> rax class-hnd exact "Inlining Arg" <System.String>
; V67 tmp64 [V67,T22] ( 3, 12 ) ref -> r14 class-hnd exact "Inlining Arg" <System.String>
; V68 tmp65 [V68,T32] ( 4, 8 ) ref -> r13 class-hnd "Inline stloc first use temp" <System.Uri>
; V69 tmp66 [V69,T38] ( 2, 8 ) ref -> r15 class-hnd "impAppendStmt" <System.Xml.IDtdParserAdapter>
; V70 tmp67 [V70,T25] ( 3, 12 ) int -> r12 "impAppendStmt"
;* V71 tmp68 [V71 ] ( 0, 0 ) ref -> zero-ref
;* V72 tmp69 [V72 ] ( 0, 0 ) ref -> zero-ref
;* V73 tmp70 [V73 ] ( 0, 0 ) ref -> zero-ref
;* V74 tmp71 [V74 ] ( 0, 0 ) int -> zero-ref
; V75 tmp72 [V75,T51] ( 3, 6 ) int -> [rbp-0x44] spill-single-def
;* V76 tmp73 [V76 ] ( 0, 0 ) ref -> zero-ref
;* V77 tmp74 [V77 ] ( 0, 0 ) ref -> zero-ref
;* V78 tmp75 [V78 ] ( 0, 0 ) ref -> zero-ref
;* V79 tmp76 [V79 ] ( 0, 0 ) int -> zero-ref
;* V80 tmp77 [V80 ] ( 0, 0 ) int -> zero-ref
; V81 tmp78 [V81,T47] ( 3, 6 ) ref -> r13
; V82 tmp79 [V82,T04] ( 11, 44 ) ref -> [rbp-0x90] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlException>
; V83 tmp80 [V83,T45] ( 2, 8 ) int -> [rbp-0x48] spill-single-def "non-inline candidate call"
; V84 tmp81 [V84,T13] ( 4, 16 ) ref -> [rbp-0x98] class-hnd exact spill-single-def "dup spill" <System.String[]>
; V85 tmp82 [V85,T39] ( 2, 8 ) ref -> rax class-hnd exact "Inlining Arg" <System.String>
; V86 tmp83 [V86,T23] ( 3, 12 ) ref -> r14 class-hnd exact "Inlining Arg" <System.String>
; V87 tmp84 [V87,T33] ( 4, 8 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.Uri>
; V88 tmp85 [V88,T40] ( 2, 8 ) ref -> r13 class-hnd "impAppendStmt" <System.Xml.IDtdParserAdapter>
; V89 tmp86 [V89,T26] ( 3, 12 ) int -> r12 "impAppendStmt"
;* V90 tmp87 [V90 ] ( 0, 0 ) ref -> zero-ref
;* V91 tmp88 [V91 ] ( 0, 0 ) ref -> zero-ref
;* V92 tmp89 [V92 ] ( 0, 0 ) ref -> zero-ref
;* V93 tmp90 [V93 ] ( 0, 0 ) int -> zero-ref
; V94 tmp91 [V94,T52] ( 3, 6 ) int -> [rbp-0x4C] spill-single-def
;* V95 tmp92 [V95 ] ( 0, 0 ) ref -> zero-ref
;* V96 tmp93 [V96 ] ( 0, 0 ) ref -> zero-ref
;* V97 tmp94 [V97 ] ( 0, 0 ) ref -> zero-ref
;* V98 tmp95 [V98 ] ( 0, 0 ) int -> zero-ref
;* V99 tmp96 [V99 ] ( 0, 0 ) int -> zero-ref
; V100 tmp97 [V100,T48] ( 3, 6 ) ref -> r15
; V101 tmp98 [V101,T05] ( 11, 44 ) ref -> [rbp-0xA0] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlException>
; V102 tmp99 [V102,T46] ( 2, 8 ) int -> [rbp-0x50] spill-single-def "non-inline candidate call"
; V103 tmp100 [V103,T14] ( 4, 16 ) ref -> [rbp-0xA8] class-hnd exact spill-single-def "dup spill" <System.String[]>
; V104 tmp101 [V104,T41] ( 2, 8 ) ref -> rax class-hnd exact "Inlining Arg" <System.String>
; V105 tmp102 [V105,T19] ( 2, 16 ) int -> r15 "impAppendStmt"
; V106 tmp103 [V106,T35] ( 4, 8 ) int -> rax "Inline stloc first use temp"
; V107 tmp104 [V107,T15] ( 3, 16 ) int -> r15 "Inlining Arg"
;* V108 tmp105 [V108,T111] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V109 tmp106 [V109,T10] ( 3, 24 ) ref -> r14 class-hnd exact "Inlining Arg" <System.String>
; V110 tmp107 [V110,T21] ( 4, 12 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.Uri>
; V111 tmp108 [V111,T16] ( 2, 16 ) ref -> r13 class-hnd "impAppendStmt" <System.Xml.IDtdParserAdapter>
; V112 tmp109 [V112,T11] ( 3, 24 ) int -> r12 "impAppendStmt"
;* V113 tmp110 [V113 ] ( 0, 0 ) ref -> zero-ref
;* V114 tmp111 [V114 ] ( 0, 0 ) ref -> zero-ref
;* V115 tmp112 [V115 ] ( 0, 0 ) ref -> zero-ref
;* V116 tmp113 [V116 ] ( 0, 0 ) int -> zero-ref
; V117 tmp114 [V117,T27] ( 3, 12 ) int -> [rbp-0x54] spill-single-def
;* V118 tmp115 [V118 ] ( 0, 0 ) ref -> zero-ref
;* V119 tmp116 [V119 ] ( 0, 0 ) ref -> zero-ref
;* V120 tmp117 [V120 ] ( 0, 0 ) ref -> zero-ref
;* V121 tmp118 [V121 ] ( 0, 0 ) int -> zero-ref
;* V122 tmp119 [V122 ] ( 0, 0 ) int -> zero-ref
; V123 tmp120 [V123,T37] ( 3, 8 ) ref -> r15
; V124 tmp121 [V124,T01] ( 11, 88 ) ref -> [rbp-0xB0] class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlException>
; V125 tmp122 [V125,T20] ( 2, 16 ) int -> [rbp-0x58] spill-single-def "non-inline candidate call"
; V126 tmp123 [V126,T07] ( 4, 32 ) ref -> [rbp-0xB8] class-hnd exact spill-single-def "dup spill" <System.String[]>
; V127 tmp124 [V127,T17] ( 2, 16 ) ref -> rax class-hnd exact "Inlining Arg" <System.String>
; V128 tmp125 [V128,T02] ( 3, 48 ) ref -> rdi "arr expr"
; V129 tmp126 [V129,T03] ( 3, 48 ) int -> rax "index expr"
; V130 tmp127 [V130,T42] ( 2, 8 ) ref -> rdi "arr expr"
; V131 tmp128 [V131,T28] ( 3, 12 ) int -> rcx "index expr"
; V132 tmp129 [V132,T88] ( 2, 2 ) ref -> rdi "arr expr"
; V133 tmp130 [V133,T62] ( 3, 3 ) int -> rax "index expr"
; V134 tmp131 [V134,T89] ( 2, 2 ) ref -> rdi "arr expr"
; V135 tmp132 [V135,T63] ( 3, 3 ) int -> rax "index expr"
; V136 tmp133 [V136,T90] ( 2, 2 ) ref -> rdi "arr expr"
; V137 tmp134 [V137,T64] ( 3, 3 ) int -> rax "index expr"
; V138 tmp135 [V138,T91] ( 2, 2 ) ref -> r15 "arr expr"
; V139 tmp136 [V139,T65] ( 3, 3 ) int -> rdi "index expr"
; V140 tmp137 [V140,T92] ( 2, 2 ) ref -> rdi "arr expr"
; V141 tmp138 [V141,T66] ( 3, 3 ) int -> rax "index expr"
; V142 tmp139 [V142,T93] ( 2, 2 ) ref -> rdi "arr expr"
; V143 tmp140 [V143,T67] ( 3, 3 ) int -> rax "index expr"
; V144 tmp141 [V144,T94] ( 2, 2 ) ref -> rdi "arr expr"
; V145 tmp142 [V145,T68] ( 3, 3 ) int -> rax "index expr"
; V146 tmp143 [V146,T95] ( 2, 2 ) ref -> rdi "arr expr"
; V147 tmp144 [V147,T69] ( 3, 3 ) int -> rax "index expr"
; V148 tmp145 [V148,T96] ( 2, 2 ) ref -> rdi "arr expr"
; V149 tmp146 [V149,T70] ( 3, 3 ) int -> rax "index expr"
; V150 tmp147 [V150,T97] ( 2, 2 ) ref -> rdi "arr expr"
; V151 tmp148 [V151,T71] ( 3, 3 ) int -> rax "index expr"
; V152 tmp149 [V152,T98] ( 2, 2 ) ref -> rdi "arr expr"
; V153 tmp150 [V153,T72] ( 3, 3 ) int -> rax "index expr"
; V154 tmp151 [V154,T99] ( 2, 2 ) ref -> rdi "arr expr"
; V155 tmp152 [V155,T73] ( 3, 3 ) int -> rax "index expr"
; V156 tmp153 [V156,T100] ( 2, 2 ) ref -> rdi "arr expr"
; V157 tmp154 [V157,T74] ( 3, 3 ) int -> rax "index expr"
; V158 tmp155 [V158,T101] ( 2, 2 ) ref -> rdi "arr expr"
; V159 tmp156 [V159,T75] ( 3, 3 ) int -> rax "index expr"
; V160 tmp157 [V160,T102] ( 2, 2 ) ref -> rdi "arr expr"
; V161 tmp158 [V161,T76] ( 3, 3 ) int -> rax "index expr"
; V162 tmp159 [V162,T103] ( 2, 2 ) ref -> rdi "arr expr"
; V163 tmp160 [V163,T77] ( 3, 3 ) int -> rax "index expr"
; V164 tmp161 [V164,T104] ( 2, 2 ) ref -> rdi "arr expr"
; V165 tmp162 [V165,T78] ( 3, 3 ) int -> rax "index expr"
; V166 cse0 [V166,T36] ( 4, 8 ) int -> rax "CSE #05: conservative"
; V167 cse1 [V167,T06] ( 26, 34 ) int -> r14 "CSE #01: moderate"
; V168 cse2 [V168,T08] ( 20, 26.50) ref -> r15 "CSE #02: moderate"
; V169 cse3 [V169,T24] ( 3, 12 ) ref -> rdi "CSE #13: moderate"
; V170 cse4 [V170,T49] ( 3, 6 ) ref -> rdi "CSE #06: conservative"
; V171 cse5 [V171,T50] ( 3, 6 ) ref -> rdi "CSE #08: conservative"
; V172 cse6 [V172,T115] ( 3, 1.50) ref -> rdi "CSE #14: conservative"
; V173 cse7 [V173,T116] ( 3, 1.50) ref -> rdi "CSE #39: conservative"
; V174 cse8 [V174,T117] ( 3, 1.50) ref -> rdi "CSE #40: conservative"
; V175 cse9 [V175,T09] ( 20, 26.50) int -> r13 "CSE #03: moderate"
;
; Lcl frame size = 152
G_M15793_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 152
lea rbp, [rsp+0xC0]
mov rbx, rdi
;; size=28 bbWeight=8 PerfScore 56.00
G_M15793_IG02:
mov r15, gword ptr [rbx+0x38]
mov rdi, r15
mov r14d, dword ptr [rbx+0x74]
mov eax, r14d
mov r13d, dword ptr [rdi+0x08]
cmp eax, r13d
jae G_M15793_IG39
movzx r12, word ptr [rdi+2*rax+0x10]
cmp r12d, 34
je G_M15793_IG37
;; size=43 bbWeight=8 PerfScore 88.00
G_M15793_IG03:
cmp r12d, 35
jne G_M15793_IG28
;; size=10 bbWeight=4 PerfScore 5.00
G_M15793_IG04:
mov eax, dword ptr [rbx+0x70]
sub eax, r14d
cmp eax, 6
jl G_M15793_IG31
mov rdi, r15
lea ecx, [r14+0x01]
cmp ecx, r13d
jae G_M15793_IG39
movzx r12, word ptr [rdi+2*rcx+0x10]
cmp r12d, 70
jne G_M15793_IG11
;; size=47 bbWeight=2 PerfScore 17.50
G_M15793_IG05:
mov rdi, r15
lea eax, [r14+0x02]
cmp eax, r13d
jae G_M15793_IG39
cmp word ptr [rdi+2*rax+0x10], 73
jne SHORT G_M15793_IG06
mov rdi, r15
lea eax, [r14+0x03]
cmp eax, r13d
jae G_M15793_IG39
cmp word ptr [rdi+2*rax+0x10], 88
jne SHORT G_M15793_IG06
mov rdi, r15
lea eax, [r14+0x04]
cmp eax, r13d
jae G_M15793_IG39
cmp word ptr [rdi+2*rax+0x10], 69
jne SHORT G_M15793_IG06
lea edi, [r14+0x05]
cmp edi, r13d
jae G_M15793_IG39
cmp word ptr [r15+2*rdi+0x10], 68
je G_M15793_IG09
;; size=98 bbWeight=0.50 PerfScore 11.88
G_M15793_IG06:
mov rdi, 0xD1FFAB1E ; 'Xml_ExpectAttType'
mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String
call [rax]System.SR:GetResourceString(System.String):System.String
mov r12, rax
mov dword ptr [rbx+0x74], r14d
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
call [r11]System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
mov r13, rax
mov rdi, gword ptr [rbx+0x08]
mov r15, rdi
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:get_LineNo():int:this
call [r11]System.Xml.IDtdParserAdapter:get_LineNo():int:this
mov r14d, eax
mov eax, dword ptr [rbx+0x74]
mov dword ptr [rbp-0x40], eax
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
call [r11]System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
mov ecx, dword ptr [rbp-0x40]
sub ecx, eax
mov dword ptr [rbp-0x3C], ecx
test r13, r13
je SHORT G_M15793_IG07
mov rdi, r13
mov rcx, qword ptr [r13]
mov rcx, qword ptr [rcx+0x40]
call [rcx+0x08]System.Object:ToString():System.String:this
mov r13, rax
jmp SHORT G_M15793_IG08
;; size=127 bbWeight=0.50 PerfScore 18.62
G_M15793_IG07:
xor r13, r13
;; size=3 bbWeight=0.50 PerfScore 0.12
G_M15793_IG08:
mov rdi, 0xD1FFAB1E ; System.Xml.XmlException
call CORINFO_HELP_NEWSFAST
mov gword ptr [rbp-0x80], rax
mov rdi, 0xD1FFAB1E ; System.String[]
mov esi, 1
call CORINFO_HELP_NEWARR_1_OBJ
mov gword ptr [rbp-0x88], rax
- mov rdi, rax
- xor esi, esi
- mov rdx, 0xD1FFAB1E ; ''
- mov rcx, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
- call [rcx]CORINFO_HELP_ARRADDR_ST
+ mov rdi, 0xD1FFAB1E ; ''
+ mov gword ptr [rax+0x10], rdi
mov rdi, r12
- mov rsi, gword ptr [rbp-0x88]
+ mov rsi, rax
mov edx, r14d
mov ecx, dword ptr [rbp-0x3C]
- mov rax, 0xD1FFAB1E ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
- call [rax]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+ mov r8, 0xD1FFAB1E ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+ call [r8]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
mov rdi, 0xD1FFAB1E
mov rcx, gword ptr [rbp-0x80]
mov qword ptr [rcx+0x68], rdi
lea rdi, bword ptr [rcx+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
xor rdi, rdi
mov rax, gword ptr [rbp-0x80]
mov gword ptr [rax+0x20], rdi
mov dword ptr [rax+0x6C], 0xD1FFAB1E
lea rdi, bword ptr [rax+0x70]
mov rsi, r12
call CORINFO_HELP_ASSIGN_REF
mov r12, gword ptr [rbp-0x80]
lea rdi, bword ptr [r12+0x78]
mov rsi, gword ptr [rbp-0x88]
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r12+0x80]
mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
mov dword ptr [r12+0x90], r14d
mov r14d, dword ptr [rbp-0x3C]
mov dword ptr [r12+0x94], r14d
mov rdi, r15
mov rsi, r12
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:Throw(System.Exception):this
call [r11]System.Xml.IDtdParserAdapter:Throw(System.Exception):this
- ;; size=236 bbWeight=0.50 PerfScore 17.75
+ ;; size=220 bbWeight=0.50 PerfScore 16.00
G_M15793_IG09:
add dword ptr [rbx+0x74], 6
mov dword ptr [rbx+0x78], 19
mov eax, 22
;; size=16 bbWeight=0.50 PerfScore 2.12
G_M15793_IG10:
add rsp, 152
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0.50 PerfScore 2.12
G_M15793_IG11:
cmp r12d, 73
jne G_M15793_IG18
cmp eax, 8
jl G_M15793_IG31
;; size=19 bbWeight=2 PerfScore 5.00
G_M15793_IG12:
mov rdi, r15
lea eax, [r14+0x02]
cmp eax, r13d
jae G_M15793_IG39
cmp word ptr [rdi+2*rax+0x10], 77
jne G_M15793_IG13
mov rdi, r15
lea eax, [r14+0x03]
cmp eax, r13d
jae G_M15793_IG39
cmp word ptr [rdi+2*rax+0x10], 80
jne SHORT G_M15793_IG13
mov rdi, r15
lea eax, [r14+0x04]
cmp eax, r13d
jae G_M15793_IG39
cmp word ptr [rdi+2*rax+0x10], 76
jne SHORT G_M15793_IG13
mov rdi, r15
lea eax, [r14+0x05]
cmp eax, r13d
jae G_M15793_IG39
cmp word ptr [rdi+2*rax+0x10], 73
jne SHORT G_M15793_IG13
mov rdi, r15
lea eax, [r14+0x06]
cmp eax, r13d
jae G_M15793_IG39
cmp word ptr [rdi+2*rax+0x10], 69
jne SHORT G_M15793_IG13
mov rdi, r15
lea eax, [r14+0x07]
cmp eax, r13d
jae G_M15793_IG39
cmp word ptr [rdi+2*rax+0x10], 68
je G_M15793_IG16
;; size=152 bbWeight=0.50 PerfScore 18.00
G_M15793_IG13:
mov r12d, r14d
mov rdi, 0xD1FFAB1E ; 'Xml_ExpectAttType'
mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String
call [rax]System.SR:GetResourceString(System.String):System.String
mov r14, rax
mov dword ptr [rbx+0x74], r12d
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
call [r11]System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
mov r15, rax
mov rdi, gword ptr [rbx+0x08]
mov r13, rdi
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:get_LineNo():int:this
call [r11]System.Xml.IDtdParserAdapter:get_LineNo():int:this
mov r12d, eax
mov eax, dword ptr [rbx+0x74]
mov dword ptr [rbp-0x38], eax
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
call [r11]System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
mov ecx, dword ptr [rbp-0x38]
sub ecx, eax
mov dword ptr [rbp-0x34], ecx
test r15, r15
je SHORT G_M15793_IG14
mov rdi, r15
mov rcx, qword ptr [r15]
mov rcx, qword ptr [rcx+0x40]
call [rcx+0x08]System.Object:ToString():System.String:this
mov r15, rax
jmp SHORT G_M15793_IG15
;; size=129 bbWeight=0.50 PerfScore 18.75
G_M15793_IG14:
xor r15, r15
;; size=3 bbWeight=0.50 PerfScore 0.12
G_M15793_IG15:
mov rdi, 0xD1FFAB1E ; System.Xml.XmlException
call CORINFO_HELP_NEWSFAST
mov gword ptr [rbp-0x70], rax
mov rdi, 0xD1FFAB1E ; System.String[]
mov esi, 1
call CORINFO_HELP_NEWARR_1_OBJ
mov gword ptr [rbp-0x78], rax
- mov rdi, rax
- xor esi, esi
- mov rdx, 0xD1FFAB1E ; ''
- mov rcx, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
- call [rcx]CORINFO_HELP_ARRADDR_ST
+ mov rdi, 0xD1FFAB1E ; ''
+ mov gword ptr [rax+0x10], rdi
mov rdi, r14
- mov rsi, gword ptr [rbp-0x78]
+ mov rsi, rax
mov edx, r12d
mov ecx, dword ptr [rbp-0x34]
- mov rax, 0xD1FFAB1E ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
- call [rax]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+ mov r8, 0xD1FFAB1E ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+ call [r8]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
mov rdi, 0xD1FFAB1E
mov rcx, gword ptr [rbp-0x70]
mov qword ptr [rcx+0x68], rdi
lea rdi, bword ptr [rcx+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
xor rdi, rdi
mov rax, gword ptr [rbp-0x70]
mov gword ptr [rax+0x20], rdi
mov dword ptr [rax+0x6C], 0xD1FFAB1E
lea rdi, bword ptr [rax+0x70]
mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
mov r14, gword ptr [rbp-0x70]
lea rdi, bword ptr [r14+0x78]
mov rsi, gword ptr [rbp-0x78]
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r14+0x80]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
mov dword ptr [r14+0x90], r12d
mov r15d, dword ptr [rbp-0x34]
mov dword ptr [r14+0x94], r15d
mov rdi, r13
mov rsi, r14
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:Throw(System.Exception):this
call [r11]System.Xml.IDtdParserAdapter:Throw(System.Exception):this
- ;; size=223 bbWeight=0.50 PerfScore 17.75
+ ;; size=210 bbWeight=0.50 PerfScore 16.00
G_M15793_IG16:
add dword ptr [rbx+0x74], 8
mov dword ptr [rbx+0x78], 13
mov eax, 21
;; size=16 bbWeight=0.50 PerfScore 2.12
G_M15793_IG17:
add rsp, 152
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0.50 PerfScore 2.12
G_M15793_IG18:
cmp r12d, 82
je G_M15793_IG21
mov r15d, r14d
mov rdi, 0xD1FFAB1E ; 'Xml_ExpectAttType'
mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String
call [rax]System.SR:GetResourceString(System.String):System.String
mov r14, rax
mov dword ptr [rbx+0x74], r15d
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
call [r11]System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
mov r13, rax
mov rdi, gword ptr [rbx+0x08]
mov r15, rdi
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:get_LineNo():int:this
call [r11]System.Xml.IDtdParserAdapter:get_LineNo():int:this
mov r12d, eax
mov eax, dword ptr [rbx+0x74]
mov dword ptr [rbp-0x48], eax
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
call [r11]System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
mov ecx, dword ptr [rbp-0x48]
sub ecx, eax
mov dword ptr [rbp-0x44], ecx
test r13, r13
je SHORT G_M15793_IG19
mov rdi, r13
mov rcx, qword ptr [r13]
mov rcx, qword ptr [rcx+0x40]
call [rcx+0x08]System.Object:ToString():System.String:this
mov r13, rax
jmp SHORT G_M15793_IG20
;; size=140 bbWeight=2 PerfScore 77.50
G_M15793_IG19:
xor r13, r13
;; size=3 bbWeight=2 PerfScore 0.50
G_M15793_IG20:
mov rdi, 0xD1FFAB1E ; System.Xml.XmlException
call CORINFO_HELP_NEWSFAST
mov gword ptr [rbp-0x90], rax
mov rdi, 0xD1FFAB1E ; System.String[]
mov esi, 1
call CORINFO_HELP_NEWARR_1_OBJ
mov gword ptr [rbp-0x98], rax
- mov rdi, rax
- xor esi, esi
- mov rdx, 0xD1FFAB1E ; ''
- mov rcx, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
- call [rcx]CORINFO_HELP_ARRADDR_ST
+ mov rdi, 0xD1FFAB1E ; ''
+ mov gword ptr [rax+0x10], rdi
mov rdi, r14
- mov rsi, gword ptr [rbp-0x98]
+ mov rsi, rax
mov edx, r12d
mov ecx, dword ptr [rbp-0x44]
- mov rax, 0xD1FFAB1E ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
- call [rax]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+ mov r8, 0xD1FFAB1E ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+ call [r8]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
mov rdi, 0xD1FFAB1E
mov rcx, gword ptr [rbp-0x90]
mov qword ptr [rcx+0x68], rdi
lea rdi, bword ptr [rcx+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
xor rdi, rdi
mov rax, gword ptr [rbp-0x90]
mov gword ptr [rax+0x20], rdi
mov dword ptr [rax+0x6C], 0xD1FFAB1E
lea rdi, bword ptr [rax+0x70]
mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
mov r14, gword ptr [rbp-0x90]
lea rdi, bword ptr [r14+0x78]
mov rsi, gword ptr [rbp-0x98]
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r14+0x80]
mov rsi, r13
call CORINFO_HELP_ASSIGN_REF
mov dword ptr [r14+0x90], r12d
mov r13d, dword ptr [rbp-0x44]
mov dword ptr [r14+0x94], r13d
mov rdi, r15
mov rsi, r14
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:Throw(System.Exception):this
call [r11]System.Xml.IDtdParserAdapter:Throw(System.Exception):this
jmp G_M15793_IG31
- ;; size=249 bbWeight=2 PerfScore 75.00
+ ;; size=233 bbWeight=2 PerfScore 68.00
G_M15793_IG21:
cmp eax, 9
jl G_M15793_IG31
;; size=9 bbWeight=2 PerfScore 2.50
G_M15793_IG22:
mov rdi, r15
lea eax, [r14+0x02]
cmp eax, r13d
jae G_M15793_IG39
cmp word ptr [rdi+2*rax+0x10], 69
jne G_M15793_IG23
mov rdi, r15
lea eax, [r14+0x03]
cmp eax, r13d
jae G_M15793_IG39
cmp word ptr [rdi+2*rax+0x10], 81
jne G_M15793_IG23
mov rdi, r15
lea eax, [r14+0x04]
cmp eax, r13d
jae G_M15793_IG39
cmp word ptr [rdi+2*rax+0x10], 85
jne SHORT G_M15793_IG23
mov rdi, r15
lea eax, [r14+0x05]
cmp eax, r13d
jae G_M15793_IG39
cmp word ptr [rdi+2*rax+0x10], 73
jne SHORT G_M15793_IG23
mov rdi, r15
lea eax, [r14+0x06]
cmp eax, r13d
jae G_M15793_IG39
cmp word ptr [rdi+2*rax+0x10], 82
jne SHORT G_M15793_IG23
mov rdi, r15
lea eax, [r14+0x07]
cmp eax, r13d
jae G_M15793_IG39
cmp word ptr [rdi+2*rax+0x10], 69
jne SHORT G_M15793_IG23
mov rdi, r15
lea eax, [r14+0x08]
cmp eax, r13d
jae G_M15793_IG39
cmp word ptr [rdi+2*rax+0x10], 68
je G_M15793_IG26
;; size=180 bbWeight=0.50 PerfScore 21.00
G_M15793_IG23:
mov rdi, 0xD1FFAB1E ; 'Xml_ExpectAttType'
mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String
call [rax]System.SR:GetResourceString(System.String):System.String
mov r15, rax
mov dword ptr [rbx+0x74], r14d
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
call [r11]System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
mov r14, rax
mov rdi, gword ptr [rbx+0x08]
mov r13, rdi
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:get_LineNo():int:this
call [r11]System.Xml.IDtdParserAdapter:get_LineNo():int:this
mov r12d, eax
mov eax, dword ptr [rbx+0x74]
mov dword ptr [rbp-0x30], eax
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
call [r11]System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
mov ecx, dword ptr [rbp-0x30]
sub ecx, eax
mov dword ptr [rbp-0x2C], ecx
test r14, r14
je SHORT G_M15793_IG24
mov rdi, r14
mov rcx, qword ptr [r14]
mov rcx, qword ptr [rcx+0x40]
call [rcx+0x08]System.Object:ToString():System.String:this
mov r14, rax
jmp SHORT G_M15793_IG25
;; size=126 bbWeight=0.50 PerfScore 18.62
G_M15793_IG24:
xor r14, r14
;; size=3 bbWeight=0.50 PerfScore 0.12
G_M15793_IG25:
mov rdi, 0xD1FFAB1E ; System.Xml.XmlException
call CORINFO_HELP_NEWSFAST
mov gword ptr [rbp-0x60], rax
mov rdi, 0xD1FFAB1E ; System.String[]
mov esi, 1
call CORINFO_HELP_NEWARR_1_OBJ
mov gword ptr [rbp-0x68], rax
- mov rdi, rax
- xor esi, esi
- mov rdx, 0xD1FFAB1E ; ''
- mov rcx, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
- call [rcx]CORINFO_HELP_ARRADDR_ST
+ mov rdi, 0xD1FFAB1E ; ''
+ mov gword ptr [rax+0x10], rdi
mov rdi, r15
- mov rsi, gword ptr [rbp-0x68]
+ mov rsi, rax
mov edx, r12d
mov ecx, dword ptr [rbp-0x2C]
- mov rax, 0xD1FFAB1E ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
- call [rax]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+ mov r8, 0xD1FFAB1E ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+ call [r8]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
mov rdi, 0xD1FFAB1E
mov rcx, gword ptr [rbp-0x60]
mov qword ptr [rcx+0x68], rdi
lea rdi, bword ptr [rcx+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
xor rdi, rdi
mov rax, gword ptr [rbp-0x60]
mov gword ptr [rax+0x20], rdi
mov dword ptr [rax+0x6C], 0xD1FFAB1E
lea rdi, bword ptr [rax+0x70]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
mov r15, gword ptr [rbp-0x60]
lea rdi, bword ptr [r15+0x78]
mov rsi, gword ptr [rbp-0x68]
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r15+0x80]
mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
mov dword ptr [r15+0x90], r12d
mov r14d, dword ptr [rbp-0x2C]
mov dword ptr [r15+0x94], r14d
mov rdi, r13
mov rsi, r15
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:Throw(System.Exception):this
call [r11]System.Xml.IDtdParserAdapter:Throw(System.Exception):this
- ;; size=223 bbWeight=0.50 PerfScore 17.75
+ ;; size=210 bbWeight=0.50 PerfScore 16.00
G_M15793_IG26:
add dword ptr [rbx+0x74], 9
mov dword ptr [rbx+0x78], 13
mov eax, 20
;; size=16 bbWeight=0.50 PerfScore 2.12
G_M15793_IG27:
add rsp, 152
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0.50 PerfScore 2.12
G_M15793_IG28:
cmp r12d, 39
je G_M15793_IG37
mov r15d, r14d
mov rdi, 0xD1FFAB1E ; 'Xml_ExpectAttType'
mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String
call [rax]System.SR:GetResourceString(System.String):System.String
mov r14, rax
mov dword ptr [rbx+0x74], r15d
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
call [r11]System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
mov r15, rax
mov rdi, gword ptr [rbx+0x08]
mov r13, rdi
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:get_LineNo():int:this
call [r11]System.Xml.IDtdParserAdapter:get_LineNo():int:this
mov r12d, eax
mov eax, dword ptr [rbx+0x74]
mov dword ptr [rbp-0x50], eax
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
call [r11]System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
mov ecx, dword ptr [rbp-0x50]
sub ecx, eax
mov dword ptr [rbp-0x4C], ecx
test r15, r15
je SHORT G_M15793_IG29
mov rdi, r15
mov rcx, qword ptr [r15]
mov rcx, qword ptr [rcx+0x40]
call [rcx+0x08]System.Object:ToString():System.String:this
mov r15, rax
jmp SHORT G_M15793_IG30
;; size=139 bbWeight=2 PerfScore 77.50
G_M15793_IG29:
xor r15, r15
;; size=3 bbWeight=2 PerfScore 0.50
G_M15793_IG30:
mov rdi, 0xD1FFAB1E ; System.Xml.XmlException
call CORINFO_HELP_NEWSFAST
mov gword ptr [rbp-0xA0], rax
mov rdi, 0xD1FFAB1E ; System.String[]
mov esi, 1
call CORINFO_HELP_NEWARR_1_OBJ
mov gword ptr [rbp-0xA8], rax
- mov rdi, rax
- xor esi, esi
- mov rdx, 0xD1FFAB1E ; ''
- mov rcx, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
- call [rcx]CORINFO_HELP_ARRADDR_ST
+ mov rdi, 0xD1FFAB1E ; ''
+ mov gword ptr [rax+0x10], rdi
mov rdi, r14
- mov rsi, gword ptr [rbp-0xA8]
+ mov rsi, rax
mov edx, r12d
mov ecx, dword ptr [rbp-0x4C]
- mov rax, 0xD1FFAB1E ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
- call [rax]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+ mov r8, 0xD1FFAB1E ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+ call [r8]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
mov rdi, 0xD1FFAB1E
mov rcx, gword ptr [rbp-0xA0]
mov qword ptr [rcx+0x68], rdi
lea rdi, bword ptr [rcx+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
xor rdi, rdi
mov rax, gword ptr [rbp-0xA0]
mov gword ptr [rax+0x20], rdi
mov dword ptr [rax+0x6C], 0xD1FFAB1E
lea rdi, bword ptr [rax+0x70]
mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
mov r14, gword ptr [rbp-0xA0]
lea rdi, bword ptr [r14+0x78]
mov rsi, gword ptr [rbp-0xA8]
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r14+0x80]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
mov dword ptr [r14+0x90], r12d
mov r15d, dword ptr [rbp-0x4C]
mov dword ptr [r14+0x94], r15d
mov rdi, r13
mov rsi, r14
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:Throw(System.Exception):this
call [r11]System.Xml.IDtdParserAdapter:Throw(System.Exception):this
- ;; size=244 bbWeight=2 PerfScore 71.00
+ ;; size=228 bbWeight=2 PerfScore 64.00
G_M15793_IG31:
mov r15d, dword ptr [rbx+0x74]
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:get_EntityStackLength():int:this
call [r11]System.Xml.IDtdParserAdapter:get_EntityStackLength():int:this
test eax, eax
jne SHORT G_M15793_IG33
;; size=25 bbWeight=4 PerfScore 34.00
G_M15793_IG32:
cmp gword ptr [rbx+0x40], 0
je SHORT G_M15793_IG33
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:get_CurrentPosition():int:this
call [r11]System.Xml.IDtdParserAdapter:get_CurrentPosition():int:this
mov ecx, r15d
sub ecx, eax
test ecx, ecx
jle SHORT G_M15793_IG33
mov ecx, r15d
sub ecx, eax
mov rsi, gword ptr [rbx+0x38]
mov rdi, gword ptr [rbx+0x40]
mov edx, eax
mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(ushort[],int,int):System.Text.StringBuilder:this
cmp dword ptr [rdi], edi
call [rax]System.Text.StringBuilder:Append(ushort[],int,int):System.Text.StringBuilder:this
;; size=62 bbWeight=2 PerfScore 44.00
G_M15793_IG33:
mov rdi, gword ptr [rbx+0x08]
mov esi, dword ptr [rbx+0x74]
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:set_CurrentPosition(int):this
call [r11]System.Xml.IDtdParserAdapter:set_CurrentPosition(int):this
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:ReadData():int:this
call [r11]System.Xml.IDtdParserAdapter:ReadData():int:this
mov r15d, eax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Xml.DtdParser:LoadParsingBuffer():this
call [rax]System.Xml.DtdParser:LoadParsingBuffer():this
test r15d, r15d
jne G_M15793_IG02
mov r15d, dword ptr [rbx+0x74]
mov rdi, 0xD1FFAB1E ; 'Xml_IncompleteDtdContent'
mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String
call [rax]System.SR:GetResourceString(System.String):System.String
mov r14, rax
mov dword ptr [rbx+0x74], r15d
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
call [r11]System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
mov r15, rax
mov rdi, gword ptr [rbx+0x08]
mov r13, rdi
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:get_LineNo():int:this
call [r11]System.Xml.IDtdParserAdapter:get_LineNo():int:this
mov r12d, eax
mov eax, dword ptr [rbx+0x74]
mov dword ptr [rbp-0x58], eax
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
call [r11]System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
mov ecx, dword ptr [rbp-0x58]
sub ecx, eax
mov dword ptr [rbp-0x54], ecx
test r15, r15
je SHORT G_M15793_IG35
;; size=176 bbWeight=4 PerfScore 189.00
G_M15793_IG34:
mov rdi, r15
mov rcx, qword ptr [r15]
mov rcx, qword ptr [rcx+0x40]
call [rcx+0x08]System.Object:ToString():System.String:this
mov r15, rax
jmp SHORT G_M15793_IG36
;; size=18 bbWeight=2 PerfScore 19.00
G_M15793_IG35:
xor r15, r15
;; size=3 bbWeight=2 PerfScore 0.50
G_M15793_IG36:
mov rdi, 0xD1FFAB1E ; System.Xml.XmlException
call CORINFO_HELP_NEWSFAST
mov gword ptr [rbp-0xB0], rax
mov rdi, 0xD1FFAB1E ; System.String[]
mov esi, 1
call CORINFO_HELP_NEWARR_1_OBJ
mov gword ptr [rbp-0xB8], rax
- mov rdi, rax
- xor esi, esi
- mov rdx, 0xD1FFAB1E ; ''
- mov rcx, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
- call [rcx]CORINFO_HELP_ARRADDR_ST
+ mov rdi, 0xD1FFAB1E ; ''
+ mov gword ptr [rax+0x10], rdi
mov rdi, r14
- mov rsi, gword ptr [rbp-0xB8]
+ mov rsi, rax
mov edx, r12d
mov ecx, dword ptr [rbp-0x54]
- mov rax, 0xD1FFAB1E ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
- call [rax]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+ mov r8, 0xD1FFAB1E ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+ call [r8]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
mov rdi, 0xD1FFAB1E
mov rcx, gword ptr [rbp-0xB0]
mov qword ptr [rcx+0x68], rdi
lea rdi, bword ptr [rcx+0x10]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
xor rdi, rdi
mov rax, gword ptr [rbp-0xB0]
mov gword ptr [rax+0x20], rdi
mov dword ptr [rax+0x6C], 0xD1FFAB1E
lea rdi, bword ptr [rax+0x70]
mov rsi, r14
call CORINFO_HELP_ASSIGN_REF
mov r14, gword ptr [rbp-0xB0]
lea rdi, bword ptr [r14+0x78]
mov rsi, gword ptr [rbp-0xB8]
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r14+0x80]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
mov dword ptr [r14+0x90], r12d
mov r15d, dword ptr [rbp-0x54]
mov dword ptr [r14+0x94], r15d
mov rdi, r13
mov rsi, r14
mov r11, 0xD1FFAB1E ; code for System.Xml.IDtdParserAdapter:Throw(System.Exception):this
call [r11]System.Xml.IDtdParserAdapter:Throw(System.Exception):this
jmp G_M15793_IG02
- ;; size=249 bbWeight=4 PerfScore 150.00
+ ;; size=233 bbWeight=4 PerfScore 136.00
G_M15793_IG37:
mov rdi, rbx
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Xml.DtdParser:ScanLiteral(int):int:this
call [rax]System.Xml.DtdParser:ScanLiteral(int):int:this
mov dword ptr [rbx+0x78], 13
mov eax, 35
;; size=29 bbWeight=0.50 PerfScore 2.50
G_M15793_IG38:
add rsp, 152
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=18 bbWeight=0.50 PerfScore 2.12
G_M15793_IG39:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 3125, prolog size 25, PerfScore 1090.38, instruction count 690, allocated bytes for code 3125 (MethodHash=f65cc24e) for method System.Xml.DtdParser:ScanAttlist6():int:this (FullOpts)
+; Total bytes of code 3035, prolog size 25, PerfScore 1057.12, instruction count 672, allocated bytes for code 3035 (MethodHash=f65cc24e) for method System.Xml.DtdParser:ScanAttlist6():int: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/fbb5a6d28c85cb5d365022f9fd2adc1a |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Job completed in 19 minutes.
dotnet/runtime#107116
Diffs
Diffs
Artifacts:
The text was updated successfully, but these errors were encountered: