8 (0.72 % of base) - System.IO.Packaging.PackageRelationshipSelector:Select(System.IO.Packaging.Package):System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]:this
; Assembly listing for method System.IO.Packaging.PackageRelationshipSelector:Select(System.IO.Packaging.Package):System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]:this (FullOpts)
; Emitting BLENDED_CODE for X86 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 18 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T04] ( 15, 9 ) ref -> rbx this class-hnd single-def <System.IO.Packaging.PackageRelationshipSelector>
; V01 arg1 [V01,T07] ( 12, 7.50) ref -> r15 class-hnd single-def <System.IO.Packaging.Package>
; V02 loc0 [V02,T00] ( 26, 48 ) ref -> r14 class-hnd exact single-def <System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]>
-; V03 loc1 [V03,T15] ( 3, 2.50) int -> r13 single-def
-; V04 loc2 [V04,T16] ( 4, 2 ) ref -> r15 class-hnd single-def <System.IO.Packaging.PackagePart>
+; V03 loc1 [V03,T13] ( 3, 2.50) int -> r13 single-def
+; V04 loc2 [V04,T14] ( 4, 2 ) ref -> r15 class-hnd single-def <System.IO.Packaging.PackagePart>
; V05 loc3 [V05,T01] ( 14, 19 ) ref -> [rbp-0x28] do-not-enreg[M] class-hnd EH-live <System.Collections.Generic.IEnumerator`1[System.IO.Packaging.PackageRelationship]>
; V06 loc4 [V06,T08] ( 3, 8 ) ref -> rax class-hnd <System.IO.Packaging.PackageRelationship>
; V07 loc5 [V07,T09] ( 3, 8 ) ref -> rax class-hnd <System.IO.Packaging.PackageRelationship>
;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V09 tmp1 [V09,T10] ( 3, 6 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]>
;* V10 tmp2 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Uri>
;* V11 tmp3 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Uri>
;* V12 tmp4 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.IO.Packaging.PackagePart>
-; V13 tmp5 [V13,T25] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
-; V14 tmp6 [V14,T19] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
-; V15 tmp7 [V15,T22] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.IO.Packaging.PackageRelationship[]>
-; V16 tmp8 [V16,T17] ( 4, 2 ) int -> r13 single-def "Inline stloc first use temp"
+; V13 tmp5 [V13,T23] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
+; V14 tmp6 [V14,T17] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
+; V15 tmp7 [V15,T20] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.IO.Packaging.PackageRelationship[]>
+; V16 tmp8 [V16,T15] ( 4, 2 ) int -> r13 single-def "Inline stloc first use temp"
; V17 tmp9 [V17,T11] ( 3, 3 ) ref -> rax class-hnd single-def "Inlining Arg" <System.IO.Packaging.PackageRelationship>
-; V18 tmp10 [V18,T20] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
-; V19 tmp11 [V19,T23] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.IO.Packaging.PackageRelationship[]>
-; V20 tmp12 [V20,T18] ( 4, 2 ) int -> rbx single-def "Inline stloc first use temp"
+; V18 tmp10 [V18,T18] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
+; V19 tmp11 [V19,T21] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.IO.Packaging.PackageRelationship[]>
+; V20 tmp12 [V20,T16] ( 4, 2 ) int -> rbx single-def "Inline stloc first use temp"
; V21 tmp13 [V21,T12] ( 3, 3 ) ref -> rax class-hnd single-def "Inlining Arg" <System.IO.Packaging.PackageRelationship>
; V22 tmp14 [V22,T05] ( 3, 10 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.IO.Packaging.PackageRelationship[]>
; V23 tmp15 [V23,T02] ( 4, 12 ) int -> rbx "Inline stloc first use temp"
; V24 tmp16 [V24,T06] ( 3, 10 ) ref -> rdi class-hnd "Inline stloc first use temp" <System.IO.Packaging.PackageRelationship[]>
; V25 tmp17 [V25,T03] ( 4, 12 ) int -> rbx "Inline stloc first use temp"
-; V26 tmp18 [V26,T13] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V27 tmp19 [V27,T14] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V28 tmp20 [V28,T21] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
-; V29 tmp21 [V29,T26] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
-; V30 PSPSym [V30,T24] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"
+; V26 tmp18 [V26,T19] ( 2, 2 ) ref -> rdi single-def "argument with side effect"
+; V27 tmp19 [V27,T24] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
+; V28 PSPSym [V28,T22] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym"
;
; Lcl frame size = 16
G_M14552_IG01:
push rbp
push r15
push r14
push r13
push rbx
sub rsp, 16
lea rbp, [rsp+0x30]
mov qword ptr [rbp-0x30], rsp
mov rbx, rdi
mov r15, rsi
;; size=27 bbWeight=1 PerfScore 7.25
G_M14552_IG02:
test r15, r15
je G_M14552_IG25
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M14552_IG24
;; size=46 bbWeight=1 PerfScore 7.00
G_M14552_IG03:
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]:s_emptyArray
mov rsi, gword ptr [rdi]
lea rdi, bword ptr [r14+0x08]
call CORINFO_HELP_ASSIGN_REF
mov r13d, dword ptr [rbx+0x18]
test r13d, r13d
jne G_M14552_IG08
;; size=35 bbWeight=1 PerfScore 7.00
G_M14552_IG04:
mov rdi, gword ptr [rbx+0x08]
mov rsi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rsi]
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ cmp dword ptr [rdi], edi
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
test eax, eax
jne G_M14552_IG06
mov rsi, gword ptr [rbx+0x08]
mov rdi, r15
mov rax, qword ptr [r15]
mov rax, qword ptr [rax+0x40]
call [rax+0x20]System.IO.Packaging.Package:PartExists(System.Uri):ubyte:this
test eax, eax
je G_M14552_IG15
mov rsi, gword ptr [rbx+0x08]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.Package:GetPart(System.Uri):System.IO.Packaging.PackagePart:this
call [rax]System.IO.Packaging.Package:GetPart(System.Uri):System.IO.Packaging.PackagePart:this
mov r15, rax
mov rsi, gword ptr [rbx+0x10]
cmp byte ptr [r15], r15b
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.PackagePart:GetRelationshipHelper(System.String):System.IO.Packaging.PackageRelationship:this
call [rax]System.IO.Packaging.PackagePart:GetRelationshipHelper(System.String):System.IO.Packaging.PackageRelationship:this
test rax, rax
je G_M14552_IG15
mov rsi, gword ptr [rbx+0x10]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.PackagePart:GetRelationship(System.String):System.IO.Packaging.PackageRelationship:this
call [rax]System.IO.Packaging.PackagePart:GetRelationship(System.String):System.IO.Packaging.PackageRelationship:this
inc dword ptr [r14+0x14]
mov rdi, gword ptr [r14+0x08]
mov ebx, dword ptr [r14+0x10]
cmp dword ptr [rdi+0x08], ebx
ja SHORT G_M14552_IG05
mov rdi, r14
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
call [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
jmp G_M14552_IG15
- ;; size=172 bbWeight=0.50 PerfScore 30.38
+ ;; size=176 bbWeight=0.50 PerfScore 30.00
G_M14552_IG05:
lea esi, [rbx+0x01]
mov dword ptr [r14+0x10], esi
movsxd rsi, ebx
mov rdx, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
jmp G_M14552_IG15
;; size=30 bbWeight=0.50 PerfScore 3.62
G_M14552_IG06:
mov rsi, gword ptr [rbx+0x10]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.Package:GetRelationshipHelper(System.String):System.IO.Packaging.PackageRelationship:this
call [rax]System.IO.Packaging.Package:GetRelationshipHelper(System.String):System.IO.Packaging.PackageRelationship:this
test rax, rax
je G_M14552_IG15
mov rsi, gword ptr [rbx+0x10]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.Package:GetRelationship(System.String):System.IO.Packaging.PackageRelationship:this
call [rax]System.IO.Packaging.Package:GetRelationship(System.String):System.IO.Packaging.PackageRelationship:this
inc dword ptr [r14+0x14]
mov rdi, gword ptr [r14+0x08]
mov r13d, dword ptr [r14+0x10]
cmp dword ptr [rdi+0x08], r13d
ja SHORT G_M14552_IG07
mov rdi, r14
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
call [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
jmp G_M14552_IG15
;; size=88 bbWeight=0.50 PerfScore 14.50
G_M14552_IG07:
lea esi, [r13+0x01]
mov dword ptr [r14+0x10], esi
movsxd rsi, r13d
mov rdx, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
jmp G_M14552_IG15
;; size=31 bbWeight=0.50 PerfScore 3.62
G_M14552_IG08:
cmp r13d, 1
jne G_M14552_IG15
mov rdi, gword ptr [rbx+0x08]
mov rsi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rsi]
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ cmp dword ptr [rdi], edi
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
test eax, eax
jne G_M14552_IG23
mov rsi, gword ptr [rbx+0x08]
mov rdi, r15
mov rax, qword ptr [r15]
mov rax, qword ptr [rax+0x40]
call [rax+0x20]System.IO.Packaging.Package:PartExists(System.Uri):ubyte:this
test eax, eax
je G_M14552_IG15
mov rsi, gword ptr [rbx+0x08]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.Package:GetPart(System.Uri):System.IO.Packaging.PackagePart:this
call [rax]System.IO.Packaging.Package:GetPart(System.Uri):System.IO.Packaging.PackagePart:this
mov rdi, rax
mov rsi, gword ptr [rbx+0x10]
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.PackagePart:GetRelationshipsByType(System.String):System.IO.Packaging.PackageRelationshipCollection:this
cmp dword ptr [rdi], edi
call [rax]System.IO.Packaging.PackagePart:GetRelationshipsByType(System.String):System.IO.Packaging.PackageRelationshipCollection:this
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.PackageRelationshipCollection:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.IO.Packaging.PackageRelationship]:this
cmp dword ptr [rdi], edi
call [rax]System.IO.Packaging.PackageRelationshipCollection:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.IO.Packaging.PackageRelationship]:this
mov gword ptr [rbp-0x28], rax
jmp G_M14552_IG17
- ;; size=136 bbWeight=0.50 PerfScore 23.88
+ ;; size=140 bbWeight=0.50 PerfScore 23.50
G_M14552_IG09:
mov rdi, gword ptr [rbp-0x28]
mov r11, 0xD1FFAB1E ; function address
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
je SHORT G_M14552_IG14
;; size=21 bbWeight=0.50 PerfScore 2.75
G_M14552_IG10:
mov rdi, gword ptr [rbp-0x28]
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IEnumerator`1[System.__Canon]:get_Current():System.__Canon:this
call [r11]System.Collections.Generic.IEnumerator`1[System.__Canon]:get_Current():System.__Canon:this
inc dword ptr [r14+0x14]
mov rdi, gword ptr [r14+0x08]
mov ebx, dword ptr [r14+0x10]
cmp dword ptr [rdi+0x08], ebx
ja SHORT G_M14552_IG12
;; size=34 bbWeight=4 PerfScore 61.00
G_M14552_IG11:
mov rdi, r14
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
call [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
jmp SHORT G_M14552_IG13
;; size=20 bbWeight=2 PerfScore 11.50
G_M14552_IG12:
lea esi, [rbx+0x01]
mov dword ptr [r14+0x10], esi
movsxd rsi, ebx
mov rdx, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
;; size=25 bbWeight=2 PerfScore 10.50
G_M14552_IG13:
mov rdi, gword ptr [rbp-0x28]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
jne SHORT G_M14552_IG10
;; size=21 bbWeight=4 PerfScore 22.00
G_M14552_IG14:
mov rdi, gword ptr [rbp-0x28]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=17 bbWeight=0.50 PerfScore 2.12
G_M14552_IG15:
mov rax, r14
;; size=3 bbWeight=1 PerfScore 0.25
G_M14552_IG16:
add rsp, 16
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
;; size=13 bbWeight=1 PerfScore 3.75
G_M14552_IG17:
mov rdi, gword ptr [rbp-0x28]
mov r11, 0xD1FFAB1E ; function address
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
je SHORT G_M14552_IG22
;; size=21 bbWeight=0.50 PerfScore 2.75
G_M14552_IG18:
mov rdi, gword ptr [rbp-0x28]
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IEnumerator`1[System.__Canon]:get_Current():System.__Canon:this
call [r11]System.Collections.Generic.IEnumerator`1[System.__Canon]:get_Current():System.__Canon:this
inc dword ptr [r14+0x14]
mov rdi, gword ptr [r14+0x08]
mov ebx, dword ptr [r14+0x10]
cmp dword ptr [rdi+0x08], ebx
ja SHORT G_M14552_IG20
;; size=34 bbWeight=4 PerfScore 61.00
G_M14552_IG19:
mov rdi, r14
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
call [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
jmp SHORT G_M14552_IG21
;; size=20 bbWeight=2 PerfScore 11.50
G_M14552_IG20:
lea esi, [rbx+0x01]
mov dword ptr [r14+0x10], esi
movsxd rsi, ebx
mov rdx, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
;; size=25 bbWeight=2 PerfScore 10.50
G_M14552_IG21:
mov rdi, gword ptr [rbp-0x28]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
jne SHORT G_M14552_IG18
;; size=21 bbWeight=4 PerfScore 22.00
G_M14552_IG22:
mov rdi, gword ptr [rbp-0x28]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
jmp G_M14552_IG15
;; size=22 bbWeight=0.50 PerfScore 3.12
G_M14552_IG23:
mov rsi, gword ptr [rbx+0x10]
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.Package:GetRelationshipsByType(System.String):System.IO.Packaging.PackageRelationshipCollection:this
call [rax]System.IO.Packaging.Package:GetRelationshipsByType(System.String):System.IO.Packaging.PackageRelationshipCollection:this
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.PackageRelationshipCollection:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.IO.Packaging.PackageRelationship]:this
cmp dword ptr [rdi], edi
call [rax]System.IO.Packaging.PackageRelationshipCollection:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.IO.Packaging.PackageRelationship]:this
mov gword ptr [rbp-0x28], rax
jmp G_M14552_IG09
;; size=45 bbWeight=0.50 PerfScore 7.50
G_M14552_IG24:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M14552_IG03
;; size=20 bbWeight=0 PerfScore 0.00
G_M14552_IG25:
mov rdi, 0xD1FFAB1E ; System.ArgumentNullException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov edi, 0x1867
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:.ctor(System.String):this
call [rax]System.ArgumentNullException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=65 bbWeight=0 PerfScore 0.00
G_M14552_IG26:
push rbp
push r15
push r14
push r13
push rbx
sub rsp, 16
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x30]
;; size=23 bbWeight=0 PerfScore 0.00
G_M14552_IG27:
cmp gword ptr [rbp-0x28], 0
je SHORT G_M14552_IG28
mov rdi, gword ptr [rbp-0x28]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=24 bbWeight=0 PerfScore 0.00
G_M14552_IG28:
nop
;; size=1 bbWeight=0 PerfScore 0.00
G_M14552_IG29:
add rsp, 16
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
;; size=13 bbWeight=0 PerfScore 0.00
G_M14552_IG30:
push rbp
push r15
push r14
push r13
push rbx
sub rsp, 16
mov rbp, qword ptr [rdi]
mov qword ptr [rsp], rbp
lea rbp, [rbp+0x30]
;; size=23 bbWeight=0 PerfScore 0.00
G_M14552_IG31:
cmp gword ptr [rbp-0x28], 0
je SHORT G_M14552_IG32
mov rdi, gword ptr [rbp-0x28]
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=24 bbWeight=0 PerfScore 0.00
G_M14552_IG32:
nop
;; size=1 bbWeight=0 PerfScore 0.00
G_M14552_IG33:
add rsp, 16
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
;; size=13 bbWeight=0 PerfScore 0.00
-; Total bytes of code 1114, prolog size 27, PerfScore 329.50, instruction count 275, allocated bytes for code 1114 (MethodHash=14f6c727) for method System.IO.Packaging.PackageRelationshipSelector:Select(System.IO.Packaging.Package):System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]:this (FullOpts)
+; Total bytes of code 1122, prolog size 27, PerfScore 328.75, instruction count 275, allocated bytes for code 1122 (MethodHash=14f6c727) for method System.IO.Packaging.PackageRelationshipSelector:Select(System.IO.Packaging.Package):System.Collections.Generic.List`1[System.IO.Packaging.PackageRelationship]:this (FullOpts)
4 (1.15 % of base) - System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this
; Assembly listing for method System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X86 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 6, 4 ) ref -> r15 this class-hnd single-def <System.Net.CredentialCacheKey>
; V01 arg1 [V01,T00] ( 6, 4.50) ref -> rbx class-hnd single-def <System.Net.CredentialCacheKey>
-; V02 loc0 [V02,T08] ( 3, 1.50) ubyte -> r14
+; V02 loc0 [V02,T07] ( 3, 1.50) ubyte -> r14
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T09] ( 3, 1.50) int -> r14
+; V04 tmp1 [V04,T08] ( 3, 1.50) int -> r14
; V05 tmp2 [V05,T02] ( 5, 5 ) ref -> r12 class-hnd exact single-def "dup spill" <System.Object[]>
; V06 tmp3 [V06,T03] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.Boolean>
;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
;* V08 tmp5 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Net.NetEventSource>
; V09 tmp6 [V09,T04] ( 3, 3 ) ref -> rbx class-hnd single-def "Inlining Arg" <System.FormattableString>
-; V10 tmp7 [V10,T10] ( 2, 1 ) ref -> r13 single-def
-; V11 tmp8 [V11,T11] ( 2, 1 ) ref -> r15 single-def
+; V10 tmp7 [V10,T09] ( 2, 1 ) ref -> r13 single-def
+; V11 tmp8 [V11,T10] ( 2, 1 ) ref -> r15 single-def
;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref single-def
;* V13 tmp10 [V13 ] ( 0, 0 ) ref -> zero-ref single-def
;* V14 tmp11 [V14 ] ( 0, 0 ) ref -> zero-ref single-def
;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref single-def
-; V16 tmp13 [V16,T06] ( 3, 1.50) ref -> rax
-; V17 tmp14 [V17,T12] ( 2, 1 ) ref -> rdi single-def
-;* V18 tmp15 [V18,T15] ( 0, 0 ) int -> zero-ref
-; V19 tmp16 [V19,T13] ( 2, 1 ) ref -> rdx single-def
-;* V20 tmp17 [V20,T14] ( 0, 0 ) ref -> zero-ref single-def
-; V21 tmp18 [V21,T05] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V22 cse0 [V22,T07] ( 3, 1.50) ref -> r13 "CSE #01: moderate"
+; V16 tmp13 [V16,T05] ( 3, 1.50) ref -> rax
+; V17 tmp14 [V17,T11] ( 2, 1 ) ref -> rdi single-def
+;* V18 tmp15 [V18,T14] ( 0, 0 ) int -> zero-ref
+; V19 tmp16 [V19,T12] ( 2, 1 ) ref -> rdx single-def
+;* V20 tmp17 [V20,T13] ( 0, 0 ) ref -> zero-ref single-def
+; V21 cse0 [V21,T06] ( 3, 1.50) ref -> r13 "CSE #01: moderate"
;
; Lcl frame size = 8
G_M30951_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov r15, rdi
mov rbx, rsi
;; size=22 bbWeight=1 PerfScore 8.00
G_M30951_IG02:
test rbx, rbx
je G_M30951_IG10
;; size=9 bbWeight=1 PerfScore 1.25
G_M30951_IG03:
mov rdi, gword ptr [r15+0x10]
mov rsi, gword ptr [rbx+0x10]
mov edx, 5
mov rax, 0xD1FFAB1E ; code for System.String:Equals(System.String,System.String,int):ubyte
call [rax]System.String:Equals(System.String,System.String,int):ubyte
test eax, eax
jne SHORT G_M30951_IG04
xor r14d, r14d
jmp SHORT G_M30951_IG05
;; size=34 bbWeight=0.50 PerfScore 5.50
G_M30951_IG04:
mov rdi, gword ptr [r15+0x08]
mov rsi, gword ptr [rbx+0x08]
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ cmp dword ptr [rdi], edi
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
mov r14d, eax
- ;; size=21 bbWeight=0.50 PerfScore 5.62
+ ;; size=25 bbWeight=0.50 PerfScore 5.25
G_M30951_IG05:
movzx r14, r14b
mov rdi, 0xD1FFAB1E ; const ptr
mov r13, gword ptr [rdi]
cmp byte ptr [r13+0x9D], 0
je G_M30951_IG08
mov rdi, 0xD1FFAB1E ; System.Object[]
mov esi, 3
call CORINFO_HELP_NEWARR_1_OBJ
mov r12, rax
lea rdi, bword ptr [r12+0x10]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r12+0x18]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Boolean
call CORINFO_HELP_NEWSFAST
mov byte ptr [rax+0x08], r14b
lea rdi, bword ptr [r12+0x20]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
mov rsi, r12
mov rdi, 0xD1FFAB1E ; 'Equals({0},{1}) returns {2}'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.FormattableStringFactory:Create(System.String,System.Object[]):System.FormattableString
call [rax]System.Runtime.CompilerServices.FormattableStringFactory:Create(System.String,System.Object[]):System.FormattableString
mov rbx, rax
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String
call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String
mov r15, rax
test rbx, rbx
je SHORT G_M30951_IG06
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:Format(System.FormattableString):System.String
call [rax]System.Net.NetEventSource:Format(System.FormattableString):System.String
jmp SHORT G_M30951_IG07
;; size=180 bbWeight=0.50 PerfScore 15.12
G_M30951_IG06:
mov rax, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
G_M30951_IG07:
mov rdi, r13
mov rdx, r15
mov esi, 1
mov rcx, 0xD1FFAB1E ; 'Equals'
mov r8, rax
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this
call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this
;; size=36 bbWeight=0.50 PerfScore 2.25
G_M30951_IG08:
mov eax, r14d
;; size=3 bbWeight=0.50 PerfScore 0.12
G_M30951_IG09:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M30951_IG10:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M30951_IG11:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-; Total bytes of code 347, prolog size 16, PerfScore 42.38, instruction count 89, allocated bytes for code 347 (MethodHash=bef78718) for method System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this (FullOpts)
+; Total bytes of code 351, prolog size 16, PerfScore 42.00, instruction count 89, allocated bytes for code 351 (MethodHash=bef78718) for method System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this (FullOpts)
4 (1.15 % of base) - System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this
; Assembly listing for method System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X86 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 1 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 6, 4 ) ref -> r15 this class-hnd single-def <System.Net.CredentialCacheKey>
; V01 arg1 [V01,T00] ( 6, 4.50) ref -> rbx class-hnd single-def <System.Net.CredentialCacheKey>
-; V02 loc0 [V02,T08] ( 3, 1.50) ubyte -> r14
+; V02 loc0 [V02,T07] ( 3, 1.50) ubyte -> r14
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T09] ( 3, 1.50) int -> r14
+; V04 tmp1 [V04,T08] ( 3, 1.50) int -> r14
; V05 tmp2 [V05,T02] ( 5, 5 ) ref -> r12 class-hnd exact single-def "dup spill" <System.Object[]>
; V06 tmp3 [V06,T03] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" <System.Boolean>
;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Net.NetEventSource>
;* V08 tmp5 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" <System.Net.NetEventSource>
; V09 tmp6 [V09,T04] ( 3, 3 ) ref -> rbx class-hnd single-def "Inlining Arg" <System.FormattableString>
-; V10 tmp7 [V10,T10] ( 2, 1 ) ref -> r13 single-def
-; V11 tmp8 [V11,T11] ( 2, 1 ) ref -> r15 single-def
+; V10 tmp7 [V10,T09] ( 2, 1 ) ref -> r13 single-def
+; V11 tmp8 [V11,T10] ( 2, 1 ) ref -> r15 single-def
;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref single-def
;* V13 tmp10 [V13 ] ( 0, 0 ) ref -> zero-ref single-def
;* V14 tmp11 [V14 ] ( 0, 0 ) ref -> zero-ref single-def
;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref single-def
-; V16 tmp13 [V16,T06] ( 3, 1.50) ref -> rax
-; V17 tmp14 [V17,T12] ( 2, 1 ) ref -> rdi single-def
-;* V18 tmp15 [V18,T15] ( 0, 0 ) int -> zero-ref
-; V19 tmp16 [V19,T13] ( 2, 1 ) ref -> rdx single-def
-;* V20 tmp17 [V20,T14] ( 0, 0 ) ref -> zero-ref single-def
-; V21 tmp18 [V21,T05] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V22 cse0 [V22,T07] ( 3, 1.50) ref -> r13 "CSE #01: moderate"
+; V16 tmp13 [V16,T05] ( 3, 1.50) ref -> rax
+; V17 tmp14 [V17,T11] ( 2, 1 ) ref -> rdi single-def
+;* V18 tmp15 [V18,T14] ( 0, 0 ) int -> zero-ref
+; V19 tmp16 [V19,T12] ( 2, 1 ) ref -> rdx single-def
+;* V20 tmp17 [V20,T13] ( 0, 0 ) ref -> zero-ref single-def
+; V21 cse0 [V21,T06] ( 3, 1.50) ref -> r13 "CSE #01: moderate"
;
; Lcl frame size = 8
G_M30951_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov r15, rdi
mov rbx, rsi
;; size=22 bbWeight=1 PerfScore 8.00
G_M30951_IG02:
test rbx, rbx
je G_M30951_IG10
;; size=9 bbWeight=1 PerfScore 1.25
G_M30951_IG03:
mov rdi, gword ptr [r15+0x10]
mov rsi, gword ptr [rbx+0x10]
mov edx, 5
mov rax, 0xD1FFAB1E ; code for System.String:Equals(System.String,System.String,int):ubyte
call [rax]System.String:Equals(System.String,System.String,int):ubyte
test eax, eax
jne SHORT G_M30951_IG04
xor r14d, r14d
jmp SHORT G_M30951_IG05
;; size=34 bbWeight=0.50 PerfScore 5.50
G_M30951_IG04:
mov rdi, gword ptr [r15+0x08]
mov rsi, gword ptr [rbx+0x08]
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ cmp dword ptr [rdi], edi
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
mov r14d, eax
- ;; size=21 bbWeight=0.50 PerfScore 5.62
+ ;; size=25 bbWeight=0.50 PerfScore 5.25
G_M30951_IG05:
movzx r14, r14b
mov rdi, 0xD1FFAB1E ; const ptr
mov r13, gword ptr [rdi]
cmp byte ptr [r13+0x9D], 0
je G_M30951_IG08
mov rdi, 0xD1FFAB1E ; System.Object[]
mov esi, 3
call CORINFO_HELP_NEWARR_1_OBJ
mov r12, rax
lea rdi, bword ptr [r12+0x10]
mov rsi, r15
call CORINFO_HELP_ASSIGN_REF
lea rdi, bword ptr [r12+0x18]
mov rsi, rbx
call CORINFO_HELP_ASSIGN_REF
mov rdi, 0xD1FFAB1E ; System.Boolean
call CORINFO_HELP_NEWSFAST
mov byte ptr [rax+0x08], r14b
lea rdi, bword ptr [r12+0x20]
mov rsi, rax
call CORINFO_HELP_ASSIGN_REF
mov rsi, r12
mov rdi, 0xD1FFAB1E ; 'Equals({0},{1}) returns {2}'
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.FormattableStringFactory:Create(System.String,System.Object[]):System.FormattableString
call [rax]System.Runtime.CompilerServices.FormattableStringFactory:Create(System.String,System.Object[]):System.FormattableString
mov rbx, rax
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String
call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String
mov r15, rax
test rbx, rbx
je SHORT G_M30951_IG06
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:Format(System.FormattableString):System.String
call [rax]System.Net.NetEventSource:Format(System.FormattableString):System.String
jmp SHORT G_M30951_IG07
;; size=180 bbWeight=0.50 PerfScore 15.12
G_M30951_IG06:
mov rax, 0xD1FFAB1E ; ''
;; size=10 bbWeight=0.50 PerfScore 0.12
G_M30951_IG07:
mov rdi, r13
mov rdx, r15
mov esi, 1
mov rcx, 0xD1FFAB1E ; 'Equals'
mov r8, rax
mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this
call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this
;; size=36 bbWeight=0.50 PerfScore 2.25
G_M30951_IG08:
mov eax, r14d
;; size=3 bbWeight=0.50 PerfScore 0.12
G_M30951_IG09:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M30951_IG10:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M30951_IG11:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-; Total bytes of code 347, prolog size 16, PerfScore 42.38, instruction count 89, allocated bytes for code 347 (MethodHash=bef78718) for method System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this (FullOpts)
+; Total bytes of code 351, prolog size 16, PerfScore 42.00, instruction count 89, allocated bytes for code 351 (MethodHash=bef78718) for method System.Net.CredentialCacheKey:Equals(System.Net.CredentialCacheKey):ubyte:this (FullOpts)
4 (2.55 % of base) - System.Xml.Schema.ChameleonKey:Equals(System.Object):ubyte:this
; Assembly listing for method System.Xml.Schema.ChameleonKey:Equals(System.Object):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X86 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 6, 4.50) ref -> rbx this class-hnd single-def <System.Xml.Schema.ChameleonKey>
; V01 arg1 [V01,T01] ( 6, 4.25) ref -> rsi class-hnd single-def <System.Object>
-; V02 loc0 [V02,T05] ( 4, 2 ) ref -> r15 class-hnd exact <System.Xml.Schema.ChameleonKey>
+; V02 loc0 [V02,T04] ( 4, 2 ) ref -> r15 class-hnd exact <System.Xml.Schema.ChameleonKey>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Xml.Schema.ChameleonKey>
-; V05 tmp2 [V05,T06] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
+; V05 tmp2 [V05,T05] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
; V06 tmp3 [V06,T02] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.String>
; V07 tmp4 [V07,T03] ( 5, 5 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
-; V08 tmp5 [V08,T07] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
-; V09 tmp6 [V09,T04] ( 3, 3 ) ref -> rdi single-def "argument with side effect"
-; V10 cse0 [V10,T08] ( 3, 1.50) int -> rdx "CSE #01: moderate"
+; V08 tmp5 [V08,T06] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
+; V09 cse0 [V09,T07] ( 3, 1.50) int -> rdx "CSE #01: moderate"
;
; Lcl frame size = 0
G_M47687_IG01:
push rbp
push r15
push rbx
lea rbp, [rsp+0x10]
mov rbx, rdi
;; size=12 bbWeight=1 PerfScore 3.75
G_M47687_IG02:
cmp rbx, rsi
je G_M47687_IG10
;; size=9 bbWeight=1 PerfScore 1.25
G_M47687_IG03:
test rsi, rsi
je SHORT G_M47687_IG08
;; size=5 bbWeight=0.50 PerfScore 0.62
G_M47687_IG04:
mov rdx, 0xD1FFAB1E ; System.Xml.Schema.ChameleonKey
cmp qword ptr [rsi], rdx
jne SHORT G_M47687_IG08
;; size=15 bbWeight=0.25 PerfScore 1.06
G_M47687_IG05:
mov r15, rsi
mov rdi, gword ptr [rbx+0x08]
mov rsi, gword ptr [r15+0x08]
cmp byte ptr [rdi], dil
cmp rdi, rsi
je SHORT G_M47687_IG06
test rsi, rsi
je SHORT G_M47687_IG08
mov edx, dword ptr [rdi+0x08]
cmp edx, dword ptr [rsi+0x08]
jne SHORT G_M47687_IG08
add rdi, 12
add edx, edx
add rsi, 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
je SHORT G_M47687_IG08
;; size=58 bbWeight=0.50 PerfScore 10.50
G_M47687_IG06:
mov rdi, gword ptr [rbx+0x10]
mov rsi, gword ptr [r15+0x10]
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ cmp dword ptr [rdi], edi
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
test eax, eax
je SHORT G_M47687_IG08
mov rax, gword ptr [rbx+0x18]
cmp rax, gword ptr [r15+0x18]
sete al
movzx rax, al
- ;; size=36 bbWeight=0.50 PerfScore 9.25
+ ;; size=40 bbWeight=0.50 PerfScore 8.88
G_M47687_IG07:
pop rbx
pop r15
pop rbp
ret
;; size=5 bbWeight=0.50 PerfScore 1.25
G_M47687_IG08:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M47687_IG09:
pop rbx
pop r15
pop rbp
ret
;; size=5 bbWeight=0.50 PerfScore 1.25
G_M47687_IG10:
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M47687_IG11:
pop rbx
pop r15
pop rbp
ret
;; size=5 bbWeight=0.50 PerfScore 1.25
-; Total bytes of code 157, prolog size 9, PerfScore 30.44, instruction count 55, allocated bytes for code 157 (MethodHash=423645b8) for method System.Xml.Schema.ChameleonKey:Equals(System.Object):ubyte:this (FullOpts)
+; Total bytes of code 161, prolog size 9, PerfScore 30.06, instruction count 55, allocated bytes for code 161 (MethodHash=423645b8) for method System.Xml.Schema.ChameleonKey:Equals(System.Object):ubyte:this (FullOpts)
4 (3.25 % of base) - System.Xml.Schema.Datatype_anyURI:Compare(System.Object,System.Object):int:this
; Assembly listing for method System.Xml.Schema.Datatype_anyURI:Compare(System.Object,System.Object):int:this (FullOpts)
; Emitting BLENDED_CODE for X86 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def <System.Xml.Schema.Datatype_anyURI>
-; V01 arg1 [V01,T03] ( 4, 3.25) ref -> rsi class-hnd single-def <System.Object>
-; V02 arg2 [V02,T04] ( 4, 3.25) ref -> rbx class-hnd single-def <System.Object>
+; V01 arg1 [V01,T02] ( 4, 3.25) ref -> rsi class-hnd single-def <System.Object>
+; V02 arg2 [V02,T03] ( 4, 3.25) ref -> rbx class-hnd single-def <System.Object>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T02] ( 3, 6 ) ref -> r15 single-def "argument with side effect"
+; V04 tmp1 [V04,T04] ( 2, 4 ) ref -> r15 single-def "argument with side effect"
; V05 tmp2 [V05,T05] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
; V06 rat0 [V06,T00] ( 5, 7.50) ref -> r15 "replacement local"
; V07 rat1 [V07,T06] ( 3, 2.50) long -> rdi "CSE for expectedClsNode"
; V08 rat2 [V08,T01] ( 5, 7.50) ref -> rsi "replacement local"
; V09 rat3 [V09,T07] ( 3, 2.50) long -> rdi "CSE for expectedClsNode"
;
; Lcl frame size = 0
G_M61907_IG01:
push rbp
push r15
push rbx
lea rbp, [rsp+0x10]
mov rbx, rdx
;; size=12 bbWeight=1 PerfScore 3.75
G_M61907_IG02:
mov r15, rsi
test r15, r15
je SHORT G_M61907_IG05
;; size=8 bbWeight=1 PerfScore 1.50
G_M61907_IG03:
mov rdi, 0xD1FFAB1E ; System.Uri
cmp qword ptr [r15], rdi
je SHORT G_M61907_IG05
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M61907_IG04:
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
call [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
mov r15, rax
;; size=15 bbWeight=0.25 PerfScore 0.88
G_M61907_IG05:
mov rsi, rbx
test rsi, rsi
je SHORT G_M61907_IG08
;; size=8 bbWeight=1 PerfScore 1.50
G_M61907_IG06:
mov rdi, 0xD1FFAB1E ; System.Uri
cmp qword ptr [rsi], rdi
je SHORT G_M61907_IG08
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M61907_IG07:
mov rsi, rbx
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
call [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
mov rsi, rax
;; size=18 bbWeight=0.25 PerfScore 0.94
G_M61907_IG08:
mov rdi, r15
- mov rax, qword ptr [r15]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ cmp dword ptr [rdi], edi
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
xor ecx, ecx
mov edx, -1
test eax, eax
mov eax, edx
cmovne eax, ecx
- ;; size=27 bbWeight=1 PerfScore 8.50
+ ;; size=31 bbWeight=1 PerfScore 7.75
G_M61907_IG09:
pop rbx
pop r15
pop rbp
ret
;; size=5 bbWeight=1 PerfScore 2.50
-; Total bytes of code 123, prolog size 9, PerfScore 23.81, instruction count 37, allocated bytes for code 123 (MethodHash=9b560e2c) for method System.Xml.Schema.Datatype_anyURI:Compare(System.Object,System.Object):int:this (FullOpts)
+; Total bytes of code 127, prolog size 9, PerfScore 23.06, instruction count 37, allocated bytes for code 127 (MethodHash=9b560e2c) for method System.Xml.Schema.Datatype_anyURI:Compare(System.Object,System.Object):int:this (FullOpts)
4 (0.48 % of base) - System.Xml.Schema.XmlSchemaSet:RemoveSchemaFromCaches(System.Xml.Schema.XmlSchema):this
; Assembly listing for method System.Xml.Schema.XmlSchemaSet:RemoveSchemaFromCaches(System.Xml.Schema.XmlSchema):this (FullOpts)
; Emitting BLENDED_CODE for X86 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 11 single block inlinees; 8 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T16] ( 5, 24 ) ref -> rbx this class-hnd single-def <System.Xml.Schema.XmlSchemaSet>
; V01 arg1 [V01,T33] ( 3, 3 ) ref -> r15 class-hnd single-def <System.Xml.Schema.XmlSchema>
; V02 loc0 [V02,T10] ( 10, 63 ) ref -> r14 class-hnd exact single-def <System.Collections.Generic.List`1[System.Xml.Schema.XmlSchema]>
;* V03 loc1 [V03,T37] ( 0, 0 ) int -> zero-ref
; V04 loc2 [V04,T00] ( 13,112 ) ref -> r13 class-hnd exact <System.Collections.ArrayList>
; V05 loc3 [V05,T13] ( 6, 44 ) ref -> [rbp-0x30] do-not-enreg[Z] class-hnd EH-live <System.Collections.IEnumerator>
; V06 loc4 [V06,T11] ( 4, 48 ) ref -> r12 class-hnd exact <System.Xml.Schema.ChameleonKey>
; V07 loc5 [V07,T28] ( 6, 10 ) ref -> rax class-hnd <System.IDisposable>
-; V08 loc6 [V08,T06] ( 5, 68 ) int -> r12
+; V08 loc6 [V08,T05] ( 5, 68 ) int -> r12
;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V10 tmp1 [V10,T32] ( 3, 6 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Xml.Schema.XmlSchema]>
; V11 tmp2 [V11,T17] ( 3, 24 ) ref -> r13 class-hnd exact "NewObj constructor temp" <System.Collections.ArrayList>
; V12 tmp3 [V12,T22] ( 2, 16 ) ref -> r12 class-hnd "impAppendStmt" <System.Collections.ICollection>
-; V13 tmp4 [V13,T03] ( 3, 96 ) ref -> rdi class-hnd "impAppendStmt" <System.Uri>
+; V13 tmp4 [V13,T07] ( 2, 64 ) ref -> rdi class-hnd "impAppendStmt" <System.Uri>
; V14 tmp5 [V14,T15] ( 2, 32 ) ref -> rsi class-hnd "impAppendStmt" <System.Xml.Schema.XmlSchema>
;* V15 tmp6 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Collections.Hashtable>
; V16 tmp7 [V16,T26] ( 3, 12 ) ref -> rdi class-hnd "impAppendStmt" <System.Collections.Hashtable>
;* V17 tmp8 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
;* V18 tmp9 [V18,T34] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V19 tmp10 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Uri>
;* V20 tmp11 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
; V21 tmp12 [V21,T27] ( 3, 12 ) ref -> rdi class-hnd "Inlining Arg" <System.Uri>
; V22 tmp13 [V22,T30] ( 2, 8 ) ref -> rax class-hnd exact "dup spill" <System.String>
; V23 tmp14 [V23,T29] ( 4, 8 ) ref -> rax
;* V24 tmp15 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
;* V25 tmp16 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.__Canon>
; V26 tmp17 [V26,T23] ( 2, 16 ) int -> rdi "Inline stloc first use temp"
; V27 tmp18 [V27,T18] ( 3, 24 ) ref -> rsi "arr expr"
;* V28 tmp19 [V28,T35] ( 0, 0 ) ref -> zero-ref "arr expr"
;* V29 tmp20 [V29,T36] ( 0, 0 ) ref -> zero-ref "arr expr"
; V30 tmp21 [V30,T31] ( 2, 8 ) ref -> rsi "argument with side effect"
; V31 tmp22 [V31,T19] ( 3, 24 ) ref -> rdi "argument with side effect"
-; V32 tmp23 [V32,T07] ( 3, 64 ) ref -> rax "argument with side effect"
-; V33 tmp24 [V33,T04] ( 3, 96 ) ref -> rsi "arr expr"
+; V32 tmp23 [V32,T06] ( 3, 64 ) ref -> rax "argument with side effect"
+; V33 tmp24 [V33,T03] ( 3, 96 ) ref -> rsi "arr expr"
; V34 tmp25 [V34,T08] ( 2, 64 ) ref -> rsi "argument with side effect"
; V35 tmp26 [V35,T12] ( 3, 48 ) ref -> rdi "arr expr"
; V36 tmp27 [V36,T09] ( 2, 64 ) ref -> rsi "argument with side effect"
-; V37 tmp28 [V37,T05] ( 3, 96 ) ref -> [rbp-0x38] spill-single-def "argument with side effect"
+; V37 tmp28 [V37,T04] ( 3, 96 ) ref -> [rbp-0x38] spill-single-def "argument with side effect"
; V38 PSPSym [V38,T38] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[V] "PSPSym"
; V39 cse0 [V39,T24] ( 4, 12 ) ref -> rsi "CSE #06: moderate"
; V40 cse1 [V40,T20] ( 3, 24 ) ref -> rsi "CSE #07: moderate"
; V41 cse2 [V41,T21] ( 3, 24 ) int -> rsi "CSE #08: moderate"
; V42 cse3 [V42,T25] ( 2, 8 ) ref -> rsi "CSE #02: moderate"
; V43 rat0 [V43,T02] ( 13, 97 ) long -> r15 "Widened IV V03"
; V44 rat1 [V44,T01] ( 4,112 ) ref -> r12 "replacement local"
; V45 rat2 [V45,T14] ( 3, 32 ) long -> rdi "CSE for expectedClsNode"
;
; Lcl frame size = 24
G_M28801_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
sub rsp, 24
lea rbp, [rsp+0x40]
mov qword ptr [rbp-0x40], rsp
mov rbx, rdi
mov r15, rsi
;; size=29 bbWeight=1 PerfScore 8.25
G_M28801_IG02:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Xml.Schema.XmlSchema]
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je G_M28801_IG25
;; size=37 bbWeight=1 PerfScore 5.75
G_M28801_IG03:
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.List`1[System.Xml.Schema.XmlSchema]:s_emptyArray
mov rsi, gword ptr [rdi]
lea rdi, bword ptr [r14+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, r14
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Xml.Schema.XmlSchema:GetExternalSchemasList(System.Collections.IList,System.Xml.Schema.XmlSchema)
call [rax]System.Xml.Schema.XmlSchema:GetExternalSchemasList(System.Collections.IList,System.Xml.Schema.XmlSchema)
xor r15d, r15d
cmp dword ptr [r14+0x10], 0
jle G_M28801_IG24
;; size=54 bbWeight=1 PerfScore 11.75
G_M28801_IG04:
cmp r15d, dword ptr [r14+0x10]
jae G_M28801_IG26
mov rsi, gword ptr [r14+0x08]
cmp r15d, dword ptr [rsi+0x08]
jae G_M28801_IG27
mov rsi, gword ptr [rsi+8*r15+0x10]
cmp gword ptr [rsi+0xA8], 0
je SHORT G_M28801_IG07
;; size=39 bbWeight=4 PerfScore 64.00
G_M28801_IG05:
mov rdi, gword ptr [rsi+0xA8]
mov rax, gword ptr [rdi+0x10]
test rax, rax
jne SHORT G_M28801_IG06
mov rax, gword ptr [rdi+0x08]
;; size=20 bbWeight=2 PerfScore 14.50
G_M28801_IG06:
cmp dword ptr [rax+0x08], 0
je SHORT G_M28801_IG07
mov rdi, gword ptr [rbx+0x30]
mov rsi, gword ptr [rsi+0xA8]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x50]
call [rax+0x38]System.Collections.Hashtable:Remove(System.Object):this
;; size=27 bbWeight=2 PerfScore 30.00
G_M28801_IG07:
mov rdi, 0xD1FFAB1E ; System.Collections.ArrayList
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov rdi, gword ptr [rbx+0x38]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x50]
call [rax+0x28]System.Collections.Hashtable:get_Keys():System.Collections.ICollection:this
mov r12, rax
mov rdi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rdi]
lea rdi, bword ptr [r13+0x08]
call CORINFO_HELP_ASSIGN_REF
mov rdi, r12
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this
call [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this
mov gword ptr [rbp-0x30], rax
;; size=77 bbWeight=4 PerfScore 76.00
G_M28801_IG08:
mov rdi, gword ptr [rbp-0x30]
mov r11, 0xD1FFAB1E ; function address
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
je G_M28801_IG19
;; size=25 bbWeight=4 PerfScore 22.00
G_M28801_IG09:
mov rdi, gword ptr [rbp-0x30]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:get_Current():System.Object:this
call [r11]System.Collections.IEnumerator:get_Current():System.Object:this
mov r12, rax
test r12, r12
je SHORT G_M28801_IG11
;; size=25 bbWeight=16 PerfScore 92.00
G_M28801_IG10:
mov rdi, 0xD1FFAB1E ; System.Xml.Schema.ChameleonKey
cmp qword ptr [r12], rdi
jne G_M28801_IG17
;; size=20 bbWeight=8 PerfScore 34.00
G_M28801_IG11:
mov rdi, gword ptr [r12+0x10]
cmp r15d, dword ptr [r14+0x10]
jae G_M28801_IG16
mov rsi, gword ptr [r14+0x08]
cmp r15d, dword ptr [rsi+0x08]
jae G_M28801_IG18
mov rsi, gword ptr [rsi+8*r15+0x10]
mov rsi, gword ptr [rsi+0xA8]
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ cmp dword ptr [rdi], edi
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
test eax, eax
je SHORT G_M28801_IG15
- ;; size=55 bbWeight=16 PerfScore 388.00
+ ;; size=59 bbWeight=16 PerfScore 376.00
G_M28801_IG12:
mov rsi, gword ptr [r12+0x18]
test rsi, rsi
je SHORT G_M28801_IG13
cmp r15d, dword ptr [r14+0x10]
jae SHORT G_M28801_IG16
mov rdi, gword ptr [r14+0x08]
cmp r15d, dword ptr [rdi+0x08]
jae G_M28801_IG18
cmp gword ptr [rdi+8*r15+0x10], rsi
jne SHORT G_M28801_IG15
;; size=37 bbWeight=8 PerfScore 138.00
G_M28801_IG13:
mov esi, dword ptr [r13+0x10]
mov rdi, gword ptr [r13+0x08]
cmp esi, dword ptr [rdi+0x08]
jne SHORT G_M28801_IG14
inc esi
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Collections.ArrayList:EnsureCapacity(int):this
call [rax]System.Collections.ArrayList:EnsureCapacity(int):this
;; size=30 bbWeight=8 PerfScore 94.00
G_M28801_IG14:
movsxd rsi, dword ptr [r13+0x10]
mov rdi, gword ptr [r13+0x08]
mov rdx, r12
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
inc dword ptr [r13+0x14]
mov edi, dword ptr [r13+0x10]
inc edi
mov dword ptr [r13+0x10], edi
;; size=37 bbWeight=8 PerfScore 126.00
G_M28801_IG15:
mov rdi, gword ptr [rbp-0x30]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
jne G_M28801_IG09
jmp SHORT G_M28801_IG19
;; size=27 bbWeight=16 PerfScore 120.00
G_M28801_IG16:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M28801_IG17:
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
call [rax]CORINFO_HELP_CHKCASTCLASS
int3
;; size=16 bbWeight=0 PerfScore 0.00
G_M28801_IG18:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
G_M28801_IG19:
mov rsi, gword ptr [rbp-0x30]
mov rdi, 0xD1FFAB1E ; System.IDisposable
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE
call [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE
test rax, rax
je SHORT G_M28801_IG21
;; size=31 bbWeight=4 PerfScore 23.00
G_M28801_IG20:
mov rdi, rax
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=16 bbWeight=2 PerfScore 7.00
G_M28801_IG21:
xor r12d, r12d
cmp dword ptr [r13+0x10], 0
jle SHORT G_M28801_IG23
;; size=10 bbWeight=4 PerfScore 17.00
G_M28801_IG22:
mov rax, gword ptr [rbx+0x38]
mov gword ptr [rbp-0x38], rax
mov rdi, r13
mov esi, r12d
mov rcx, 0xD1FFAB1E ; code for System.Collections.ArrayList:get_Item(int):System.Object:this
call [rcx]System.Collections.ArrayList:get_Item(int):System.Object:this
mov rsi, rax
mov rdi, gword ptr [rbp-0x38]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax+0x50]
call [rax+0x38]System.Collections.Hashtable:Remove(System.Object):this
inc r12d
cmp r12d, dword ptr [r13+0x10]
jl SHORT G_M28801_IG22
;; size=52 bbWeight=16 PerfScore 308.00
G_M28801_IG23:
inc r15d
cmp r15d, dword ptr [r14+0x10]
jl G_M28801_IG04
;; size=13 bbWeight=4 PerfScore 17.00
G_M28801_IG24:
add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M28801_IG25:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Xml.Schema.XmlSchema]
call CORINFO_HELP_GET_GCSTATIC_BASE
jmp G_M28801_IG03
;; size=20 bbWeight=0 PerfScore 0.00
G_M28801_IG26:
mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
int3
;; size=13 bbWeight=0 PerfScore 0.00
G_M28801_IG27:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
G_M28801_IG28:
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+0x40]
;; size=22 bbWeight=0 PerfScore 0.00
G_M28801_IG29:
mov rsi, gword ptr [rbp-0x30]
mov rdi, 0xD1FFAB1E ; System.IDisposable
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE
call [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE
test rax, rax
je SHORT G_M28801_IG30
mov rdi, rax
mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this
call [r11]System.IDisposable:Dispose():this
;; size=47 bbWeight=0 PerfScore 0.00
G_M28801_IG30:
nop
;; size=1 bbWeight=0 PerfScore 0.00
G_M28801_IG31:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0 PerfScore 0.00
-; Total bytes of code 835, prolog size 29, PerfScore 1600.50, instruction count 206, allocated bytes for code 835 (MethodHash=d65d8f7e) for method System.Xml.Schema.XmlSchemaSet:RemoveSchemaFromCaches(System.Xml.Schema.XmlSchema):this (FullOpts)
+; Total bytes of code 839, prolog size 29, PerfScore 1588.50, instruction count 206, allocated bytes for code 839 (MethodHash=d65d8f7e) for method System.Xml.Schema.XmlSchemaSet:RemoveSchemaFromCaches(System.Xml.Schema.XmlSchema):this (FullOpts)
4 (2.42 % of base) - System.Xml.XmlTextReaderImpl:UriEqual(System.Uri,System.String,System.String,System.Xml.XmlResolver):ubyte
; Assembly listing for method System.Xml.XmlTextReaderImpl:UriEqual(System.Uri,System.String,System.String,System.Xml.XmlResolver):ubyte (FullOpts)
; Emitting BLENDED_CODE for X86 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T03] ( 6, 4 ) ref -> r14 class-hnd <System.Uri>
+; V00 arg0 [V00,T03] ( 5, 3.50) ref -> r14 class-hnd <System.Uri>
; V01 arg1 [V01,T01] ( 7, 4.50) ref -> rsi class-hnd single-def <System.String>
; V02 arg2 [V02,T02] ( 7, 4.50) ref -> r15 class-hnd single-def <System.String>
; V03 arg3 [V03,T00] ( 7, 5 ) ref -> rbx class-hnd single-def <System.Xml.XmlResolver>
;* V04 loc0 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd <System.Uri>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T04] ( 4, 2 ) ubyte -> rax "Inline return value spill temp"
; V07 tmp2 [V07,T05] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
; V08 tmp3 [V08,T06] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
; V09 cse0 [V09,T07] ( 3, 1.50) int -> rdx "CSE #01: moderate"
;
; Lcl frame size = 8
G_M21065_IG01:
push rbp
push r15
push r14
push rbx
push rax
lea rbp, [rsp+0x20]
mov r14, rdi
mov r15, rdx
mov rbx, rcx
;; size=21 bbWeight=1 PerfScore 6.25
G_M21065_IG02:
test rbx, rbx
je SHORT G_M21065_IG06
;; size=5 bbWeight=1 PerfScore 1.25
G_M21065_IG03:
test r14, r14
jne SHORT G_M21065_IG04
mov rdi, rbx
mov rdx, rsi
xor rsi, rsi
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x40]
call [rax+0x30]System.Xml.XmlResolver:ResolveUri(System.Uri,System.String):System.Uri:this
mov r14, rax
;; size=26 bbWeight=0.50 PerfScore 4.62
G_M21065_IG04:
mov rdi, rbx
mov rdx, r15
xor rsi, rsi
mov rax, qword ptr [rbx]
mov rax, qword ptr [rax+0x40]
call [rax+0x30]System.Xml.XmlResolver:ResolveUri(System.Uri,System.String):System.Uri:this
mov rsi, rax
mov rdi, r14
- mov rax, qword ptr [r14]
- mov rax, qword ptr [rax+0x40]
- ;; size=31 bbWeight=0.50 PerfScore 6.12
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ cmp dword ptr [rdi], edi
+ ;; size=36 bbWeight=0.50 PerfScore 5.75
G_M21065_IG05:
add rsp, 8
pop rbx
pop r14
pop r15
pop rbp
- tail.jmp [rax+0x10]System.Object:Equals(System.Object):ubyte:this
- ;; size=14 bbWeight=0.50 PerfScore 2.12
+ tail.jmp [rax]System.Uri:Equals(System.Uri):ubyte:this
+ ;; size=13 bbWeight=0.50 PerfScore 2.12
G_M21065_IG06:
cmp rsi, r15
je SHORT G_M21065_IG08
test rsi, rsi
je SHORT G_M21065_IG07
test r15, r15
je SHORT G_M21065_IG07
mov edx, dword ptr [rsi+0x08]
cmp edx, dword ptr [r15+0x08]
jne SHORT G_M21065_IG07
lea rdi, bword ptr [rsi+0x0C]
lea rsi, bword ptr [r15+0x0C]
add edx, edx
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
jmp SHORT G_M21065_IG09
;; size=48 bbWeight=0.50 PerfScore 8.12
G_M21065_IG07:
xor eax, eax
jmp SHORT G_M21065_IG09
;; size=4 bbWeight=0.50 PerfScore 1.12
G_M21065_IG08:
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M21065_IG09:
add rsp, 8
pop rbx
pop r14
pop r15
pop rbp
ret
;; size=11 bbWeight=0.50 PerfScore 1.62
-; Total bytes of code 165, prolog size 12, PerfScore 31.38, instruction count 60, allocated bytes for code 165 (MethodHash=a2a4adb6) for method System.Xml.XmlTextReaderImpl:UriEqual(System.Uri,System.String,System.String,System.Xml.XmlResolver):ubyte (FullOpts)
+; Total bytes of code 169, prolog size 12, PerfScore 31.00, instruction count 60, allocated bytes for code 169 (MethodHash=a2a4adb6) for method System.Xml.XmlTextReaderImpl:UriEqual(System.Uri,System.String,System.String,System.Xml.XmlResolver):ubyte (FullOpts)
2 (0.35 % of base) - System.IO.Packaging.PackUriHelper:ResolvePartUri(System.Uri,System.Uri):System.Uri
; Assembly listing for method System.IO.Packaging.PackUriHelper:ResolvePartUri(System.Uri,System.Uri):System.Uri (FullOpts)
; Emitting BLENDED_CODE for X86 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 8, 6.50) ref -> rbx class-hnd single-def <System.Uri>
+; V00 arg0 [V00,T00] ( 7, 6 ) ref -> rbx class-hnd single-def <System.Uri>
; V01 arg1 [V01,T01] ( 6, 5 ) ref -> r15 class-hnd single-def <System.Uri>
; V02 loc0 [V02,T08] ( 3, 2 ) ref -> rbx class-hnd <System.Uri>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T11] ( 2, 2 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.Uri>
; V05 tmp2 [V05,T05] ( 3, 3 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" <System.Uri>
; V06 tmp3 [V06,T06] ( 3, 3 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Uri>
; V07 tmp4 [V07,T02] ( 3, 6 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Uri>
; V08 tmp5 [V08,T07] ( 3, 3 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.Uri>
; V09 tmp6 [V09,T14] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
; V10 tmp7 [V10,T15] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" <System.ArgumentNullException>
; V11 tmp8 [V11,T09] ( 3, 2 ) ref -> rax class-hnd single-def "Inline stloc first use temp" <System.ArgumentException>
; V12 tmp9 [V12,T10] ( 3, 2 ) ref -> rax class-hnd single-def "Inline stloc first use temp" <System.ArgumentException>
; V13 tmp10 [V13,T13] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
; V14 tmp11 [V14,T04] ( 3, 5 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.Uri>
; V15 tmp12 [V15,T03] ( 3, 6 ) ref -> rax class-hnd exact single-def "Inlining Arg" <System.String>
; V16 tmp13 [V16 ] ( 2, 2 ) struct ( 8) [rbp-0x28] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" <System.UriCreationOptions>
; V17 tmp14 [V17 ] ( 2, 2 ) ubyte -> [rbp-0x28] do-not-enreg[X] addr-exposed "field V16._disablePathAndQueryCanonicalization (fldOffset=0x0)" P-DEP
; V18 tmp15 [V18,T12] ( 2, 2 ) ref -> rdx single-def "argument with side effect"
; V19 tmp16 [V19,T16] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
; V20 tmp17 [V20,T17] ( 2, 0 ) ref -> rsi single-def "argument with side effect"
;
; Lcl frame size = 16
G_M24892_IG01:
push rbp
push r15
push r14
push r13
push rbx
sub rsp, 16
lea rbp, [rsp+0x30]
xor eax, eax
mov qword ptr [rbp-0x28], rax
mov rbx, rdi
mov r15, rsi
;; size=29 bbWeight=1 PerfScore 7.50
G_M24892_IG02:
test rbx, rbx
je G_M24892_IG11
test r15, r15
je G_M24892_IG10
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.PackUriHelper:GetExceptionIfAbsoluteUri(System.Uri):System.ArgumentException
call [rax]System.IO.Packaging.PackUriHelper:GetExceptionIfAbsoluteUri(System.Uri):System.ArgumentException
test rax, rax
jne G_M24892_IG09
mov rdi, r15
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.PackUriHelper:GetExceptionIfAbsoluteUri(System.Uri):System.ArgumentException
call [rax]System.IO.Packaging.PackUriHelper:GetExceptionIfAbsoluteUri(System.Uri):System.ArgumentException
test rax, rax
jne G_M24892_IG08
mov rdi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rdi]
cmp rbx, rsi
je G_M24892_IG04
;; size=88 bbWeight=1 PerfScore 15.50
G_M24892_IG03:
mov rdi, rbx
- mov rax, qword ptr [rbx]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
test eax, eax
jne SHORT G_M24892_IG04
mov rdi, 0xD1FFAB1E ; const ptr
mov r14, gword ptr [rdi]
mov rdi, 0xD1FFAB1E ; System.Uri
call CORINFO_HELP_NEWSFAST
mov r13, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.IO.Packaging.PackUriHelper:ValidatePartUri(System.Uri):System.IO.Packaging.PackUriHelper+ValidatedPartUri
call [rax]System.IO.Packaging.PackUriHelper:ValidatePartUri(System.Uri):System.IO.Packaging.PackUriHelper+ValidatedPartUri
mov rdx, rax
mov rsi, r14
mov rdi, r13
mov rax, 0xD1FFAB1E ; code for System.Uri:.ctor(System.Uri,System.Uri):this
call [rax]System.Uri:.ctor(System.Uri,System.Uri):this
mov rdi, 0xD1FFAB1E ; System.Uri
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rdi, rbx
mov rsi, r13
mov rdx, r15
mov rax, 0xD1FFAB1E ; code for System.Uri:.ctor(System.Uri,System.Uri):this
call [rax]System.Uri:.ctor(System.Uri,System.Uri):this
jmp SHORT G_M24892_IG05
- ;; size=125 bbWeight=0.50 PerfScore 13.62
+ ;; size=127 bbWeight=0.50 PerfScore 11.75
G_M24892_IG04:
mov rdi, 0xD1FFAB1E ; System.Uri
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rsi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rsi]
mov rdi, rbx
mov rdx, r15
mov rax, 0xD1FFAB1E ; code for System.Uri:.ctor(System.Uri,System.Uri):this
call [rax]System.Uri:.ctor(System.Uri,System.Uri):this
;; size=49 bbWeight=0.50 PerfScore 3.75
G_M24892_IG05:
mov rdi, 0xD1FFAB1E ; System.Uri
call CORINFO_HELP_NEWSFAST
mov r15, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.Uri:get_AbsolutePath():System.String:this
cmp dword ptr [rdi], edi
call [rax]System.Uri:get_AbsolutePath():System.String:this
test rax, rax
je SHORT G_M24892_IG07
mov byte ptr [rbp-0x28], 0
lea r8, [rbp-0x28]
mov rdi, r15
mov rsi, rax
xor edx, edx
mov ecx, 2
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
mov rax, r15
;; size=76 bbWeight=1 PerfScore 15.25
G_M24892_IG06:
add rsp, 16
pop rbx
pop r13
pop r14
pop r15
pop rbp
ret
;; size=13 bbWeight=1 PerfScore 3.75
G_M24892_IG07:
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_M24892_IG08:
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=9 bbWeight=0 PerfScore 0.00
G_M24892_IG09:
mov rdi, rax
call CORINFO_HELP_THROW
int3
;; size=9 bbWeight=0 PerfScore 0.00
G_M24892_IG10:
mov rdi, 0xD1FFAB1E ; System.ArgumentNullException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov edi, 0x178B
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:.ctor(System.String):this
call [rax]System.ArgumentNullException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=65 bbWeight=0 PerfScore 0.00
G_M24892_IG11:
mov rdi, 0xD1FFAB1E ; System.ArgumentNullException
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov edi, 0x1C8E
mov rsi, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
mov rsi, rax
mov rdi, rbx
mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:.ctor(System.String):this
call [rax]System.ArgumentNullException:.ctor(System.String):this
mov rdi, rbx
call CORINFO_HELP_THROW
int3
;; size=65 bbWeight=0 PerfScore 0.00
-; Total bytes of code 564, prolog size 23, PerfScore 59.38, instruction count 130, allocated bytes for code 564 (MethodHash=257b9ec3) for method System.IO.Packaging.PackUriHelper:ResolvePartUri(System.Uri,System.Uri):System.Uri (FullOpts)
+; Total bytes of code 566, prolog size 23, PerfScore 57.50, instruction count 129, allocated bytes for code 566 (MethodHash=257b9ec3) for method System.IO.Packaging.PackUriHelper:ResolvePartUri(System.Uri,System.Uri):System.Uri (FullOpts)
2 (0.73 % of base) - System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey:Equals(System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey):ubyte:this
; Assembly listing for method System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey:Equals(System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X86 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 12 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 8, 5.50) byref -> rbx this single-def
; V01 arg1 [V01,T09] ( 6, 3.50) struct (40) [rbp+0x10] do-not-enreg[SF] single-def <System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T01] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.String>
;* V04 tmp2 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V05 tmp3 [V05,T10] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
; V06 tmp4 [V06,T02] ( 5, 5 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
; V07 tmp5 [V07,T14] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
; V08 tmp6 [V08,T11] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
-; V09 tmp7 [V09,T03] ( 5, 5 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Uri>
+; V09 tmp7 [V09,T07] ( 4, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Uri>
; V10 tmp8 [V10,T08] ( 4, 4 ) ref -> rsi class-hnd single-def "Inlining Arg" <System.Uri>
-; V11 tmp9 [V11,T04] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.String>
+; V11 tmp9 [V11,T03] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.String>
;* V12 tmp10 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V13 tmp11 [V13,T12] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
-; V14 tmp12 [V14,T05] ( 5, 5 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
+; V14 tmp12 [V14,T04] ( 5, 5 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
; V15 tmp13 [V15,T15] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
-; V16 tmp14 [V16,T06] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.String>
+; V16 tmp14 [V16,T05] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.String>
;* V17 tmp15 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V18 tmp16 [V18,T13] ( 4, 2 ) ubyte -> rax "Inline return value spill temp"
-; V19 tmp17 [V19,T07] ( 5, 5 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
+; V19 tmp17 [V19,T06] ( 5, 5 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <System.String>
; V20 tmp18 [V20,T16] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
; V21 cse0 [V21,T17] ( 3, 1.50) int -> rdx "CSE #01: moderate"
; V22 cse1 [V22,T18] ( 3, 1.50) int -> rdx "CSE #02: moderate"
; V23 cse2 [V23,T19] ( 3, 1.50) int -> rdx "CSE #03: moderate"
;
; Lcl frame size = 8
G_M11847_IG01:
push rbp
push rbx
push rax
lea rbp, [rsp+0x10]
mov rbx, rdi
;; size=11 bbWeight=1 PerfScore 3.75
G_M11847_IG02:
movzx rdx, byte ptr [rbx+0x24]
cmp dl, byte ptr [rbp+0x34]
jne G_M11847_IG06
;; size=13 bbWeight=1 PerfScore 5.00
G_M11847_IG03:
mov rdi, gword ptr [rbx]
mov rsi, gword ptr [rbp+0x10]
cmp rdi, rsi
je SHORT G_M11847_IG04
test rdi, rdi
je G_M11847_IG06
test rsi, rsi
je G_M11847_IG06
mov edx, dword ptr [rdi+0x08]
cmp edx, dword ptr [rsi+0x08]
jne G_M11847_IG06
add rdi, 12
add edx, edx
add rsi, 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
je SHORT G_M11847_IG06
;; size=68 bbWeight=0.50 PerfScore 9.00
G_M11847_IG04:
mov edi, dword ptr [rbx+0x20]
cmp edi, dword ptr [rbp+0x30]
jne SHORT G_M11847_IG06
mov rdi, gword ptr [rbx+0x10]
mov rsi, gword ptr [rbp+0x20]
cmp rdi, rsi
je SHORT G_M11847_IG05
test rdi, rdi
je SHORT G_M11847_IG06
test rsi, rsi
je SHORT G_M11847_IG06
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
test eax, eax
je SHORT G_M11847_IG06
- ;; size=45 bbWeight=0.50 PerfScore 10.00
+ ;; size=47 bbWeight=0.50 PerfScore 8.12
G_M11847_IG05:
mov rdi, gword ptr [rbx+0x08]
mov rsi, gword ptr [rbp+0x18]
cmp rdi, rsi
je SHORT G_M11847_IG08
test rdi, rdi
je SHORT G_M11847_IG06
test rsi, rsi
je SHORT G_M11847_IG06
mov edx, dword ptr [rdi+0x08]
cmp edx, dword ptr [rsi+0x08]
jne SHORT G_M11847_IG06
add rdi, 12
add edx, edx
add rsi, 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 SHORT G_M11847_IG08
;; size=57 bbWeight=0.50 PerfScore 9.00
G_M11847_IG06:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M11847_IG07:
add rsp, 8
pop rbx
pop rbp
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
G_M11847_IG08:
mov rdi, gword ptr [rbx+0x18]
mov rsi, gword ptr [rbp+0x28]
cmp rdi, rsi
je SHORT G_M11847_IG10
test rdi, rdi
je SHORT G_M11847_IG09
test rsi, rsi
je SHORT G_M11847_IG09
mov edx, dword ptr [rdi+0x08]
cmp edx, dword ptr [rsi+0x08]
jne SHORT G_M11847_IG09
add rdi, 12
add edx, edx
add rsi, 12
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
jmp SHORT G_M11847_IG11
;; size=55 bbWeight=0.50 PerfScore 9.38
G_M11847_IG09:
xor eax, eax
jmp SHORT G_M11847_IG11
;; size=4 bbWeight=0.50 PerfScore 1.12
G_M11847_IG10:
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M11847_IG11:
add rsp, 8
pop rbx
pop rbp
ret
;; size=7 bbWeight=0.50 PerfScore 1.12
-; Total bytes of code 274, prolog size 8, PerfScore 49.75, instruction count 89, allocated bytes for code 274 (MethodHash=fa6bd1b8) for method System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey:Equals(System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey):ubyte:this (FullOpts)
+; Total bytes of code 276, prolog size 8, PerfScore 47.88, instruction count 88, allocated bytes for code 276 (MethodHash=fa6bd1b8) for method System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey:Equals(System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey):ubyte:this (FullOpts)
2 (0.58 % of base) - System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey:Equals(System.Object):ubyte:this
; Assembly listing for method System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey:Equals(System.Object):ubyte:this (FullOpts)
; Emitting BLENDED_CODE for X86 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 12 single block inlinees; 5 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 8, 5 ) byref -> rbx this single-def
; V01 arg1 [V01,T00] ( 10, 6.25) ref -> rsi class-hnd single-def <System.Object>
;* V02 loc0 [V02 ] ( 0, 0 ) struct (40) zero-ref do-not-enreg[SF] <System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04,T17] ( 0, 0 ) ref -> zero-ref class-hnd "spilling qmarkNull" <System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey>
; V05 tmp2 [V05,T18] ( 3, 1.50) ubyte -> rax "Inline return value spill temp"
; V06 tmp3 [V06,T02] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.String>
;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V08 tmp5 [V08,T10] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
; V10 tmp7 [V10,T14] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
; V11 tmp8 [V11,T11] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
-; V12 tmp9 [V12,T03] ( 5, 5 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Uri>
+; V12 tmp9 [V12,T05] ( 4, 4 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Uri>
;* V13 tmp10 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" <System.Uri>
-; V14 tmp11 [V14,T04] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.String>
+; V14 tmp11 [V14,T03] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.String>
;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V16 tmp13 [V16,T12] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;* V17 tmp14 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
; V18 tmp15 [V18,T15] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
-; V19 tmp16 [V19,T05] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.String>
+; V19 tmp16 [V19,T04] ( 5, 5 ) ref -> rdi class-hnd exact single-def "Inlining Arg" <System.String>
;* V20 tmp17 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
; V21 tmp18 [V21,T13] ( 4, 2 ) ubyte -> rax "Inline return value spill temp"
;* V22 tmp19 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inlining Arg" <System.String>
; V23 tmp20 [V23,T16] ( 2, 2 ) byref -> rdi single-def "impAppendStmt"
; V24 tmp21 [V24,T06] ( 5, 2.50) ref -> rdx single-def "V02.[000..008)"
; V25 tmp22 [V25,T07] ( 5, 2.50) ref -> r15 single-def "V02.[008..016)"
; V26 tmp23 [V26,T09] ( 4, 2 ) ref -> r14 single-def "V02.[016..024)"
; V27 tmp24 [V27,T08] ( 5, 2.50) ref -> r13 single-def "V02.[024..032)"
; V28 tmp25 [V28,T22] ( 2, 1 ) int -> r12 "V02.[032..036)"
; V29 tmp26 [V29,T23] ( 2, 1 ) ubyte -> rsi "V02.[036..037)"
; V30 cse0 [V30,T24] ( 2, 0.50) long -> rdi "CSE #02: moderate"
; V31 cse1 [V31,T25] ( 2, 0.50) long -> rdx "CSE #01: moderate"
; V32 cse2 [V32,T19] ( 3, 1.50) int -> rax "CSE #03: moderate"
; V33 cse3 [V33,T20] ( 3, 1.50) int -> rdx "CSE #04: moderate"
; V34 cse4 [V34,T21] ( 3, 1.50) int -> rdx "CSE #05: moderate"
;
; Lcl frame size = 8
G_M50630_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
;; size=19 bbWeight=1 PerfScore 7.75
G_M50630_IG02:
test rsi, rsi
je G_M50630_IG12
;; size=9 bbWeight=1 PerfScore 1.25
G_M50630_IG03:
mov rdx, qword ptr [rsi]
mov rdi, 0xD1FFAB1E ; System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey
cmp rdx, rdi
jne G_M50630_IG12
;; size=22 bbWeight=0.25 PerfScore 0.88
G_M50630_IG04:
mov rdx, gword ptr [rsi+0x08]
mov r15, gword ptr [rsi+0x10]
mov r14, gword ptr [rsi+0x18]
mov r13, gword ptr [rsi+0x20]
mov r12d, dword ptr [rsi+0x28]
movzx rsi, byte ptr [rsi+0x2C]
cmp byte ptr [rbx+0x24], sil
jne G_M50630_IG07
mov rdi, gword ptr [rbx]
cmp rdi, rdx
je SHORT G_M50630_IG05
test rdi, rdi
je G_M50630_IG07
test rdx, rdx
je G_M50630_IG07
mov eax, dword ptr [rdi+0x08]
cmp eax, dword ptr [rdx+0x08]
jne G_M50630_IG07
add rdi, 12
lea rsi, bword ptr [rdx+0x0C]
add eax, eax
mov edx, eax
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
je SHORT G_M50630_IG07
;; size=101 bbWeight=0.50 PerfScore 16.75
G_M50630_IG05:
cmp dword ptr [rbx+0x20], r12d
jne SHORT G_M50630_IG07
mov rdi, gword ptr [rbx+0x10]
cmp rdi, r14
je SHORT G_M50630_IG06
test rdi, rdi
je SHORT G_M50630_IG07
test r14, r14
je SHORT G_M50630_IG07
mov rsi, r14
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
test eax, eax
je SHORT G_M50630_IG07
- ;; size=42 bbWeight=0.50 PerfScore 9.12
+ ;; size=44 bbWeight=0.50 PerfScore 7.25
G_M50630_IG06:
mov rdi, gword ptr [rbx+0x08]
cmp rdi, r15
je SHORT G_M50630_IG08
test rdi, rdi
je SHORT G_M50630_IG07
test r15, r15
je SHORT G_M50630_IG07
mov edx, dword ptr [rdi+0x08]
cmp edx, dword ptr [r15+0x08]
jne SHORT G_M50630_IG07
add rdi, 12
lea rsi, bword ptr [r15+0x0C]
add edx, edx
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 SHORT G_M50630_IG08
;; size=54 bbWeight=0.50 PerfScore 8.62
G_M50630_IG07:
xor eax, eax
jmp SHORT G_M50630_IG11
;; size=4 bbWeight=0.50 PerfScore 1.12
G_M50630_IG08:
mov rdi, gword ptr [rbx+0x18]
cmp rdi, r13
je SHORT G_M50630_IG10
test rdi, rdi
je SHORT G_M50630_IG09
test r13, r13
je SHORT G_M50630_IG09
mov edx, dword ptr [rdi+0x08]
cmp edx, dword ptr [r13+0x08]
jne SHORT G_M50630_IG09
add rdi, 12
lea rsi, bword ptr [r13+0x0C]
add edx, edx
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
jmp SHORT G_M50630_IG11
;; size=52 bbWeight=0.50 PerfScore 9.00
G_M50630_IG09:
xor eax, eax
jmp SHORT G_M50630_IG11
;; size=4 bbWeight=0.50 PerfScore 1.12
G_M50630_IG10:
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M50630_IG11:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
G_M50630_IG12:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M50630_IG13:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=0.50 PerfScore 2.12
-; Total bytes of code 344, prolog size 16, PerfScore 60.12, instruction count 111, allocated bytes for code 344 (MethodHash=aba03a39) for method System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey:Equals(System.Object):ubyte:this (FullOpts)
+; Total bytes of code 346, prolog size 16, PerfScore 58.25, instruction count 110, allocated bytes for code 346 (MethodHash=aba03a39) for method System.Net.Http.HttpConnectionPoolManager+HttpConnectionKey:Equals(System.Object):ubyte:this (FullOpts)
2 (1.56 % of base) - System.ServiceModel.Syndication.FeedUtils:GetBaseUriToWrite(System.Uri,System.Uri):System.Uri
; Assembly listing for method System.ServiceModel.Syndication.FeedUtils:GetBaseUriToWrite(System.Uri,System.Uri):System.Uri (FullOpts)
; Emitting BLENDED_CODE for X86 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 10, 6.50) ref -> rbx class-hnd single-def <System.Uri>
-; V01 arg1 [V01,T01] ( 10, 6.50) ref -> r15 class-hnd single-def <System.Uri>
+; V00 arg0 [V00,T01] ( 9, 6 ) ref -> r15 class-hnd single-def <System.Uri>
+; V01 arg1 [V01,T00] ( 10, 6.50) ref -> rbx class-hnd single-def <System.Uri>
; V02 loc0 [V02,T02] ( 4, 2.50) ref -> rax class-hnd <System.Uri>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T03] ( 2, 1 ) ubyte -> rax "Inline return value spill temp"
;* V05 tmp2 [V05,T04] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V06 tmp3 [V06,T05] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;
; Lcl frame size = 0
G_M1506_IG01:
push rbp
push r15
push rbx
lea rbp, [rsp+0x10]
- mov rbx, rdi
- mov r15, rsi
+ mov r15, rdi
+ mov rbx, rsi
;; size=15 bbWeight=1 PerfScore 4.00
G_M1506_IG02:
- cmp rbx, r15
+ cmp r15, rbx
je SHORT G_M1506_IG06
;; size=5 bbWeight=1 PerfScore 1.25
G_M1506_IG03:
- test rbx, rbx
- je SHORT G_M1506_IG04
test r15, r15
je SHORT G_M1506_IG04
- mov rdi, rbx
- mov rsi, r15
- mov rax, qword ptr [rbx]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+ test rbx, rbx
+ je SHORT G_M1506_IG04
+ mov rdi, r15
+ mov rsi, rbx
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
test eax, eax
jne SHORT G_M1506_IG06
- ;; size=30 bbWeight=0.50 PerfScore 5.62
+ ;; size=32 bbWeight=0.50 PerfScore 3.75
G_M1506_IG04:
- test r15, r15
- je SHORT G_M1506_IG06
test rbx, rbx
- je SHORT G_M1506_IG05
- cmp gword ptr [rbx+0x18], 0
+ je SHORT G_M1506_IG06
+ test r15, r15
je SHORT G_M1506_IG05
cmp gword ptr [r15+0x18], 0
je SHORT G_M1506_IG05
- mov rdi, rbx
- mov rsi, r15
+ cmp gword ptr [rbx+0x18], 0
+ je SHORT G_M1506_IG05
+ mov rdi, r15
+ mov rsi, rbx
mov rax, 0xD1FFAB1E ; code for System.Uri:IsBaseOf(System.Uri):ubyte:this
call [rax]System.Uri:IsBaseOf(System.Uri):ubyte:this
test eax, eax
je SHORT G_M1506_IG05
- mov rdi, rbx
- mov rsi, r15
+ mov rdi, r15
+ mov rsi, rbx
mov rax, 0xD1FFAB1E ; code for System.Uri:MakeRelativeUri(System.Uri):System.Uri:this
call [rax]System.Uri:MakeRelativeUri(System.Uri):System.Uri:this
jmp SHORT G_M1506_IG07
;; size=66 bbWeight=0.50 PerfScore 10.62
G_M1506_IG05:
- mov rax, r15
+ mov rax, rbx
jmp SHORT G_M1506_IG07
;; size=5 bbWeight=0.50 PerfScore 1.12
G_M1506_IG06:
xor rax, rax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M1506_IG07:
pop rbx
pop r15
pop rbp
ret
;; size=5 bbWeight=1 PerfScore 2.50
-; Total bytes of code 128, prolog size 9, PerfScore 25.25, instruction count 45, allocated bytes for code 128 (MethodHash=c307fa1d) for method System.ServiceModel.Syndication.FeedUtils:GetBaseUriToWrite(System.Uri,System.Uri):System.Uri (FullOpts)
+; Total bytes of code 130, prolog size 9, PerfScore 23.38, instruction count 44, allocated bytes for code 130 (MethodHash=c307fa1d) for method System.ServiceModel.Syndication.FeedUtils:GetBaseUriToWrite(System.Uri,System.Uri):System.Uri (FullOpts)
2 (4.76 % of base) - System.Uri:op_Equality(System.Uri,System.Uri):ubyte
; Assembly listing for method System.Uri:op_Equality(System.Uri,System.Uri):ubyte (FullOpts)
; Emitting BLENDED_CODE for X86 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 6, 4.50) ref -> rdi class-hnd single-def <System.Uri>
+; V00 arg0 [V00,T00] ( 5, 4 ) ref -> rdi class-hnd single-def <System.Uri>
; V01 arg1 [V01,T01] ( 5, 4 ) ref -> rsi class-hnd single-def <System.Uri>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 0
G_M40005_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M40005_IG02:
cmp rdi, rsi
je SHORT G_M40005_IG07
;; size=5 bbWeight=1 PerfScore 1.25
G_M40005_IG03:
test rdi, rdi
je SHORT G_M40005_IG05
test rsi, rsi
je SHORT G_M40005_IG05
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x40]
- ;; size=17 bbWeight=0.50 PerfScore 3.25
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ ;; size=20 bbWeight=0.50 PerfScore 1.38
G_M40005_IG04:
pop rbp
- tail.jmp [rax+0x10]System.Object:Equals(System.Object):ubyte:this
- ;; size=5 bbWeight=0.50 PerfScore 1.25
+ tail.jmp [rax]System.Uri:Equals(System.Uri):ubyte:this
+ ;; size=4 bbWeight=0.50 PerfScore 1.25
G_M40005_IG05:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M40005_IG06:
pop rbp
ret
;; size=2 bbWeight=0.50 PerfScore 0.75
G_M40005_IG07:
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M40005_IG08:
pop rbp
ret
;; size=2 bbWeight=0.50 PerfScore 0.75
-; Total bytes of code 42, prolog size 4, PerfScore 8.75, instruction count 18, allocated bytes for code 42 (MethodHash=f9b863ba) for method System.Uri:op_Equality(System.Uri,System.Uri):ubyte (FullOpts)
+; Total bytes of code 44, prolog size 4, PerfScore 6.88, instruction count 17, allocated bytes for code 44 (MethodHash=f9b863ba) for method System.Uri:op_Equality(System.Uri,System.Uri):ubyte (FullOpts)
2 (4.00 % of base) - System.Uri:op_Inequality(System.Uri,System.Uri):ubyte
; Assembly listing for method System.Uri:op_Inequality(System.Uri,System.Uri):ubyte (FullOpts)
; Emitting BLENDED_CODE for X86 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 6, 4.50) ref -> rdi class-hnd single-def <System.Uri>
+; V00 arg0 [V00,T00] ( 5, 4 ) ref -> rdi class-hnd single-def <System.Uri>
; V01 arg1 [V01,T01] ( 5, 4 ) ref -> rsi class-hnd single-def <System.Uri>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 0
G_M37314_IG01:
push rbp
mov rbp, rsp
;; size=4 bbWeight=1 PerfScore 1.25
G_M37314_IG02:
cmp rdi, rsi
je SHORT G_M37314_IG07
;; size=5 bbWeight=1 PerfScore 1.25
G_M37314_IG03:
test rdi, rdi
je SHORT G_M37314_IG05
test rsi, rsi
je SHORT G_M37314_IG05
- mov rax, qword ptr [rdi]
- mov rax, qword ptr [rax+0x40]
- call [rax+0x10]System.Object:Equals(System.Object):ubyte:this
+ mov rax, 0xD1FFAB1E ; code for System.Uri:Equals(System.Uri):ubyte:this
+ call [rax]System.Uri:Equals(System.Uri):ubyte:this
test eax, eax
sete al
movzx rax, al
- ;; size=28 bbWeight=0.50 PerfScore 5.50
+ ;; size=30 bbWeight=0.50 PerfScore 3.62
G_M37314_IG04:
pop rbp
ret
;; size=2 bbWeight=0.50 PerfScore 0.75
G_M37314_IG05:
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M37314_IG06:
pop rbp
ret
;; size=2 bbWeight=0.50 PerfScore 0.75
G_M37314_IG07:
xor eax, eax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M37314_IG08:
pop rbp
ret
;; size=2 bbWeight=0.50 PerfScore 0.75
-; Total bytes of code 50, prolog size 4, PerfScore 10.50, instruction count 22, allocated bytes for code 50 (MethodHash=637e6e3d) for method System.Uri:op_Inequality(System.Uri,System.Uri):ubyte (FullOpts)
+; Total bytes of code 52, prolog size 4, PerfScore 8.62, instruction count 21, allocated bytes for code 52 (MethodHash=637e6e3d) for method System.Uri:op_Inequality(System.Uri,System.Uri):ubyte (FullOpts)