111 (264.29 % of base) - System.Resources.Extensions.BinaryFormat.SerializationInfoExtensions:UpdateValue(System.Runtime.Serialization.SerializationInfo,System.String,System.Object,System.Type)
; Assembly listing for method System.Resources.Extensions.BinaryFormat.SerializationInfoExtensions:UpdateValue(System.Runtime.Serialization.SerializationInfo,System.String,System.Object,System.Type) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
-; rsp based frame
-; fully interruptible
+; rbp based frame
+; partially interruptible
; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 3, 3 ) ref -> rdi class-hnd single-def <System.Runtime.Serialization.SerializationInfo>
-; V01 arg1 [V01,T02] ( 3, 3 ) ref -> r8 class-hnd single-def <System.String>
-; V02 arg2 [V02,T03] ( 3, 3 ) ref -> rax class-hnd single-def <System.Object>
-; V03 arg3 [V03,T04] ( 3, 3 ) ref -> r9 class-hnd single-def <System.Type>
+; V00 arg0 [V00,T00] ( 6, 4.50) ref -> rbx class-hnd single-def <System.Runtime.Serialization.SerializationInfo>
+; V01 arg1 [V01,T01] ( 4, 3.50) ref -> r15 class-hnd single-def <System.String>
+; V02 arg2 [V02,T02] ( 4, 3 ) ref -> r14 class-hnd single-def <System.Object>
+; V03 arg3 [V03,T03] ( 4, 3 ) ref -> r13 class-hnd single-def <System.Type>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 rat0 [V05,T00] ( 3, 6 ) ref -> r10 "delegate invoke call"
+; V05 tmp1 [V05,T04] ( 4, 3 ) int -> r12 "Inline stloc first use temp"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
-G_M13005_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- mov r8, rsi
- ; gcrRegs +[r8]
- mov rax, rdx
- ; gcrRegs +[rax]
- mov r9, rcx
- ; gcrRegs +[r9]
- ;; size=9 bbWeight=1 PerfScore 0.75
-G_M13005_IG02: ; bbWeight=1, gcrefRegs=0381 {rax rdi r8 r9}, byrefRegs=0000 {}, byref
+G_M13005_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+ push rbp
+ push r15
+ push r14
+ push r13
+ push r12
+ push rbx
+ push rax
+ lea rbp, [rsp+0x30]
+ mov rbx, rdi
+ ; gcrRegs +[rbx]
+ mov r15, rsi
+ ; gcrRegs +[r15]
+ mov r14, rdx
+ ; gcrRegs +[r14]
+ mov r13, rcx
+ ; gcrRegs +[r13]
+ ;; size=28 bbWeight=1 PerfScore 8.50
+G_M13005_IG02: ; bbWeight=1, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref, isz
+ mov rdi, rbx
; gcrRegs +[rdi]
- mov rsi, 0xD1FFAB1E ; const ptr
- mov r10, gword ptr [rsi]
- ; gcrRegs +[r10]
- mov rsi, rdi
+ mov rsi, r15
; gcrRegs +[rsi]
- mov rdx, r8
+ mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationInfo:FindElement(System.String):int:this
+ call [rax]System.Runtime.Serialization.SerializationInfo:FindElement(System.String):int:this
+ ; gcrRegs -[rsi rdi]
+ mov r12d, eax
+ test r12d, r12d
+ jl SHORT G_M13005_IG05
+ ;; size=26 bbWeight=1 PerfScore 5.25
+G_M13005_IG03: ; bbWeight=0.50, gcrefRegs=6008 {rbx r13 r14}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[r15]
+ mov rdi, gword ptr [rbx+0x10]
+ ; gcrRegs +[rdi]
+ movsxd rsi, r12d
+ mov rdx, r14
; gcrRegs +[rdx]
- mov rcx, rax
+ mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
+ call [rax]CORINFO_HELP_ARRADDR_ST
+ ; gcrRegs -[rdx rdi r14]
+ mov rdi, gword ptr [rbx+0x18]
+ ; gcrRegs +[rdi]
+ movsxd rsi, r12d
+ mov rdx, r13
+ ; gcrRegs +[rdx]
+ mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
+ call [rax]CORINFO_HELP_ARRADDR_ST
+ ; gcrRegs -[rdx rbx rdi r13]
+ nop
+ ;; size=45 bbWeight=0.50 PerfScore 5.88
+G_M13005_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ 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_M13005_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs +[rbx r13-r15]
+ mov rdi, rbx
+ ; gcrRegs +[rdi]
+ mov rsi, r15
+ ; gcrRegs +[rsi]
+ mov rdx, r14
+ ; gcrRegs +[rdx]
+ mov rcx, r13
; gcrRegs +[rcx]
- mov r8, r9
- mov rdi, gword ptr [r10+0x08]
- ;; size=29 bbWeight=1 PerfScore 5.25
-G_M13005_IG03: ; bbWeight=1, epilog, nogc, extend
- tail.jmp [r10+0x18]System.Action`4[System.__Canon,System.__Canon,System.__Canon,System.__Canon]:Invoke(System.__Canon,System.__Canon,System.__Canon,System.__Canon):this
- ;; size=4 bbWeight=1 PerfScore 2.00
+ mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationInfo:AddValueInternal(System.String,System.Object,System.Type):this
+ ;; size=22 bbWeight=0.50 PerfScore 0.62
+G_M13005_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
+ pop rbx
+ pop r12
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ tail.jmp [rax]System.Runtime.Serialization.SerializationInfo:AddValueInternal(System.String,System.Object,System.Type):this
+ ;; size=17 bbWeight=0.50 PerfScore 2.62
-; Total bytes of code 42, prolog size 9, PerfScore 8.00, instruction count 11, allocated bytes for code 42 (MethodHash=8b40cd32) for method System.Resources.Extensions.BinaryFormat.SerializationInfoExtensions:UpdateValue(System.Runtime.Serialization.SerializationInfo,System.String,System.Object,System.Type) (FullOpts)
+; Total bytes of code 153, prolog size 16, PerfScore 25.00, instruction count 51, allocated bytes for code 153 (MethodHash=8b40cd32) for method System.Resources.Extensions.BinaryFormat.SerializationInfoExtensions:UpdateValue(System.Runtime.Serialization.SerializationInfo,System.String,System.Object,System.Type) (FullOpts)
; ============================================================
111 (264.29 % of base) - System.Runtime.Serialization.SerializationInfoExtensions:UpdateValue(System.Runtime.Serialization.SerializationInfo,System.String,System.Object,System.Type)
; Assembly listing for method System.Runtime.Serialization.SerializationInfoExtensions:UpdateValue(System.Runtime.Serialization.SerializationInfo,System.String,System.Object,System.Type) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
-; rsp based frame
-; fully interruptible
+; rbp based frame
+; partially interruptible
; No PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 3, 3 ) ref -> rdi class-hnd single-def <System.Runtime.Serialization.SerializationInfo>
-; V01 arg1 [V01,T02] ( 3, 3 ) ref -> r8 class-hnd single-def <System.String>
-; V02 arg2 [V02,T03] ( 3, 3 ) ref -> rax class-hnd single-def <System.Object>
-; V03 arg3 [V03,T04] ( 3, 3 ) ref -> r9 class-hnd single-def <System.Type>
+; V00 arg0 [V00,T00] ( 6, 4.50) ref -> rbx class-hnd single-def <System.Runtime.Serialization.SerializationInfo>
+; V01 arg1 [V01,T01] ( 4, 3.50) ref -> r15 class-hnd single-def <System.String>
+; V02 arg2 [V02,T02] ( 4, 3 ) ref -> r14 class-hnd single-def <System.Object>
+; V03 arg3 [V03,T03] ( 4, 3 ) ref -> r13 class-hnd single-def <System.Type>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 rat0 [V05,T00] ( 3, 6 ) ref -> r10 "delegate invoke call"
+; V05 tmp1 [V05,T04] ( 4, 3 ) int -> r12 "Inline stloc first use temp"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
-G_M23470_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- mov r8, rsi
- ; gcrRegs +[r8]
- mov rax, rdx
- ; gcrRegs +[rax]
- mov r9, rcx
- ; gcrRegs +[r9]
- ;; size=9 bbWeight=1 PerfScore 0.75
-G_M23470_IG02: ; bbWeight=1, gcrefRegs=0381 {rax rdi r8 r9}, byrefRegs=0000 {}, byref
+G_M23470_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
+ push rbp
+ push r15
+ push r14
+ push r13
+ push r12
+ push rbx
+ push rax
+ lea rbp, [rsp+0x30]
+ mov rbx, rdi
+ ; gcrRegs +[rbx]
+ mov r15, rsi
+ ; gcrRegs +[r15]
+ mov r14, rdx
+ ; gcrRegs +[r14]
+ mov r13, rcx
+ ; gcrRegs +[r13]
+ ;; size=28 bbWeight=1 PerfScore 8.50
+G_M23470_IG02: ; bbWeight=1, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref, isz
+ mov rdi, rbx
; gcrRegs +[rdi]
- mov rsi, 0xD1FFAB1E ; const ptr
- mov r10, gword ptr [rsi]
- ; gcrRegs +[r10]
- mov rsi, rdi
+ mov rsi, r15
; gcrRegs +[rsi]
- mov rdx, r8
+ mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationInfo:FindElement(System.String):int:this
+ call [rax]System.Runtime.Serialization.SerializationInfo:FindElement(System.String):int:this
+ ; gcrRegs -[rsi rdi]
+ mov r12d, eax
+ test r12d, r12d
+ jl SHORT G_M23470_IG05
+ ;; size=26 bbWeight=1 PerfScore 5.25
+G_M23470_IG03: ; bbWeight=0.50, gcrefRegs=6008 {rbx r13 r14}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[r15]
+ mov rdi, gword ptr [rbx+0x10]
+ ; gcrRegs +[rdi]
+ movsxd rsi, r12d
+ mov rdx, r14
; gcrRegs +[rdx]
- mov rcx, rax
+ mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
+ call [rax]CORINFO_HELP_ARRADDR_ST
+ ; gcrRegs -[rdx rdi r14]
+ mov rdi, gword ptr [rbx+0x18]
+ ; gcrRegs +[rdi]
+ movsxd rsi, r12d
+ mov rdx, r13
+ ; gcrRegs +[rdx]
+ mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
+ call [rax]CORINFO_HELP_ARRADDR_ST
+ ; gcrRegs -[rdx rbx rdi r13]
+ nop
+ ;; size=45 bbWeight=0.50 PerfScore 5.88
+G_M23470_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ 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_M23470_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs +[rbx r13-r15]
+ mov rdi, rbx
+ ; gcrRegs +[rdi]
+ mov rsi, r15
+ ; gcrRegs +[rsi]
+ mov rdx, r14
+ ; gcrRegs +[rdx]
+ mov rcx, r13
; gcrRegs +[rcx]
- mov r8, r9
- mov rdi, gword ptr [r10+0x08]
- ;; size=29 bbWeight=1 PerfScore 5.25
-G_M23470_IG03: ; bbWeight=1, epilog, nogc, extend
- tail.jmp [r10+0x18]System.Action`4[System.__Canon,System.__Canon,System.__Canon,System.__Canon]:Invoke(System.__Canon,System.__Canon,System.__Canon,System.__Canon):this
- ;; size=4 bbWeight=1 PerfScore 2.00
+ mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationInfo:AddValueInternal(System.String,System.Object,System.Type):this
+ ;; size=22 bbWeight=0.50 PerfScore 0.62
+G_M23470_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
+ pop rbx
+ pop r12
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ tail.jmp [rax]System.Runtime.Serialization.SerializationInfo:AddValueInternal(System.String,System.Object,System.Type):this
+ ;; size=17 bbWeight=0.50 PerfScore 2.62
-; Total bytes of code 42, prolog size 9, PerfScore 8.00, instruction count 11, allocated bytes for code 42 (MethodHash=36f5a451) for method System.Runtime.Serialization.SerializationInfoExtensions:UpdateValue(System.Runtime.Serialization.SerializationInfo,System.String,System.Object,System.Type) (FullOpts)
+; Total bytes of code 153, prolog size 16, PerfScore 25.00, instruction count 51, allocated bytes for code 153 (MethodHash=36f5a451) for method System.Runtime.Serialization.SerializationInfoExtensions:UpdateValue(System.Runtime.Serialization.SerializationInfo,System.String,System.Object,System.Type) (FullOpts)
; ============================================================
89 (86.41 % of base) - System.Resources.Extensions.BinaryFormat.Deserializer.SerializationInfoValueUpdater:UpdateValue(System.Collections.Generic.IDictionary`2[System.Formats.Nrbf.SerializationRecordId,System.Object]):this
; Assembly listing for method System.Resources.Extensions.BinaryFormat.Deserializer.SerializationInfoValueUpdater:UpdateValue(System.Collections.Generic.IDictionary`2[System.Formats.Nrbf.SerializationRecordId,System.Object]):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; 2 single block inlinees; 0 inlinees without PGO data
+; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 5, 5 ) ref -> rbx this class-hnd single-def <System.Resources.Extensions.BinaryFormat.Deserializer.SerializationInfoValueUpdater>
; V01 arg1 [V01,T02] ( 3, 3 ) ref -> rdi class-hnd single-def <System.Collections.Generic.IDictionary`2[System.Formats.Nrbf.SerializationRecordId,System.Object]>
-; V02 loc0 [V02,T06] ( 3, 3 ) ref -> r15 class-hnd single-def <System.__Canon>
+; V02 loc0 [V02,T05] ( 4, 3 ) ref -> r15 class-hnd single-def <System.__Canon>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Formats.Nrbf.SerializationRecordId>
-;* V05 tmp2 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Runtime.Serialization.SerializationInfo>
-;* V06 tmp3 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.String>
-;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.RuntimeType>
-;* V08 tmp5 [V08 ] ( 0, 0 ) int -> zero-ref "field V04._id (fldOffset=0x0)" P-INDEP
-; V09 tmp6 [V09,T03] ( 2, 4 ) ref -> r8 single-def "argument with side effect"
-; V10 tmp7 [V10,T04] ( 2, 4 ) ref -> r14 single-def "argument with side effect"
-; V11 tmp8 [V11,T05] ( 2, 4 ) ref -> rbx single-def "argument with side effect"
-; V12 rat0 [V12,T01] ( 3, 6 ) ref -> rax "delegate invoke call"
+; V05 tmp2 [V05,T01] ( 5, 7 ) ref -> r14 class-hnd exact single-def "Inlining Arg" <System.Runtime.Serialization.SerializationInfo>
+; V06 tmp3 [V06,T03] ( 3, 5 ) ref -> rbx class-hnd exact single-def "Inlining Arg" <System.String>
+; V07 tmp4 [V07,T04] ( 3, 4 ) ref -> r13 class-hnd exact single-def "Inlining Arg" <System.RuntimeType>
+; V08 tmp5 [V08,T06] ( 4, 3 ) int -> r12 single-def "Inline stloc first use temp"
+;* V09 tmp6 [V09 ] ( 0, 0 ) int -> zero-ref "field V04._id (fldOffset=0x0)" P-INDEP
;
; Lcl frame size = 8
-G_M5755_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+G_M5755_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
push rbp
push r15
push r14
+ push r13
+ push r12
push rbx
push rax
- lea rbp, [rsp+0x20]
+ lea rbp, [rsp+0x30]
mov rbx, rdi
; gcrRegs +[rbx]
mov rdi, rsi
; gcrRegs +[rdi]
- ;; size=18 bbWeight=1 PerfScore 6.00
-G_M5755_IG02: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
+ ;; size=22 bbWeight=1 PerfScore 8.00
+G_M5755_IG02: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
mov esi, dword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IDictionary`2[System.Formats.Nrbf.SerializationRecordId,System.__Canon]:get_Item(System.Formats.Nrbf.SerializationRecordId):System.__Canon:this
call [r11]System.Collections.Generic.IDictionary`2[System.Formats.Nrbf.SerializationRecordId,System.__Canon]:get_Item(System.Formats.Nrbf.SerializationRecordId):System.__Canon:this
; gcrRegs -[rdi] +[rax]
mov r15, rax
; gcrRegs +[r15]
mov r14, gword ptr [rbx+0x10]
; gcrRegs +[r14]
mov rbx, gword ptr [rbx+0x18]
mov rdi, r15
; gcrRegs +[rdi]
mov rax, 0xD1FFAB1E ; code for System.Object:GetType():System.Type:this
; gcrRegs -[rax]
call [rax]System.Object:GetType():System.Type:this
; gcrRegs -[rdi] +[rax]
- mov r8, rax
- ; gcrRegs +[r8]
- mov rsi, r14
- ; gcrRegs +[rsi]
- mov rdx, rbx
- ; gcrRegs +[rdx]
- mov rcx, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rcx]
- mov rcx, r15
- ; gcrRegs +[rcx]
- mov rdi, gword ptr [rax+0x08]
+ mov r13, rax
+ ; gcrRegs +[r13]
+ mov rdi, r14
; gcrRegs +[rdi]
- ;; size=71 bbWeight=1 PerfScore 18.25
-G_M5755_IG03: ; bbWeight=1, epilog, nogc, extend
+ mov rsi, rbx
+ ; gcrRegs +[rsi]
+ mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationInfo:FindElement(System.String):int:this
+ ; gcrRegs -[rax]
+ call [rax]System.Runtime.Serialization.SerializationInfo:FindElement(System.String):int:this
+ ; gcrRegs -[rsi rdi]
+ mov r12d, eax
+ test r12d, r12d
+ jl SHORT G_M5755_IG05
+ ;; size=71 bbWeight=1 PerfScore 18.50
+G_M5755_IG03: ; bbWeight=0.50, gcrefRegs=E000 {r13 r14 r15}, byrefRegs=0000 {}, byref
+ ; gcrRegs -[rbx]
+ mov rdi, gword ptr [r14+0x10]
+ ; gcrRegs +[rdi]
+ movsxd rsi, r12d
+ mov rdx, r15
+ ; gcrRegs +[rdx]
+ mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
+ call [rax]CORINFO_HELP_ARRADDR_ST
+ ; gcrRegs -[rdx rdi r15]
+ mov rdi, gword ptr [r14+0x18]
+ ; gcrRegs +[rdi]
+ movsxd rsi, r12d
+ mov rdx, r13
+ ; gcrRegs +[rdx]
+ mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
+ call [rax]CORINFO_HELP_ARRADDR_ST
+ ; gcrRegs -[rdx rdi r13-r14]
+ nop
+ ;; size=45 bbWeight=0.50 PerfScore 5.88
+G_M5755_IG04: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
+ pop r12
+ pop r13
pop r14
pop r15
pop rbp
- tail.jmp [rax+0x18]System.Action`4[System.__Canon,System.__Canon,System.__Canon,System.__Canon]:Invoke(System.__Canon,System.__Canon,System.__Canon,System.__Canon):this
- ;; size=14 bbWeight=1 PerfScore 4.25
+ ret
+ ;; size=15 bbWeight=0.50 PerfScore 2.12
+G_M5755_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, gcvars, byref
+ ; gcrRegs +[rbx r13-r15]
+ mov rdi, r14
+ ; gcrRegs +[rdi]
+ mov rsi, rbx
+ ; gcrRegs +[rsi]
+ mov rdx, r15
+ ; gcrRegs +[rdx]
+ mov rcx, r13
+ ; gcrRegs +[rcx]
+ mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationInfo:AddValueInternal(System.String,System.Object,System.Type):this
+ ;; size=22 bbWeight=0.50 PerfScore 0.62
+G_M5755_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
+ pop rbx
+ pop r12
+ pop r13
+ pop r14
+ pop r15
+ pop rbp
+ tail.jmp [rax]System.Runtime.Serialization.SerializationInfo:AddValueInternal(System.String,System.Object,System.Type):this
+ ;; size=17 bbWeight=0.50 PerfScore 2.62
-; Total bytes of code 103, prolog size 12, PerfScore 28.50, instruction count 30, allocated bytes for code 103 (MethodHash=ba42e984) for method System.Resources.Extensions.BinaryFormat.Deserializer.SerializationInfoValueUpdater:UpdateValue(System.Collections.Generic.IDictionary`2[System.Formats.Nrbf.SerializationRecordId,System.Object]):this (FullOpts)
+; Total bytes of code 192, prolog size 16, PerfScore 37.75, instruction count 59, allocated bytes for code 192 (MethodHash=ba42e984) for method System.Resources.Extensions.BinaryFormat.Deserializer.SerializationInfoValueUpdater:UpdateValue(System.Collections.Generic.IDictionary`2[System.Formats.Nrbf.SerializationRecordId,System.Object]):this (FullOpts)
; ============================================================
78 (89.66 % of base) - Microsoft.Extensions.Http.Logging.LogHelper:LogRequestFailed(Microsoft.Extensions.Logging.ILogger,System.TimeSpan,System.Net.Http.HttpRequestException)
; Assembly listing for method Microsoft.Extensions.Http.Logging.LogHelper:LogRequestFailed(Microsoft.Extensions.Logging.ILogger,System.TimeSpan,System.Net.Http.HttpRequestException) (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; 0 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 3, 3 ) ref -> rdi class-hnd single-def <Microsoft.Extensions.Logging.ILogger>
+; V00 arg0 [V00,T00] ( 4, 3.50) ref -> rbx class-hnd single-def <Microsoft.Extensions.Logging.ILogger>
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.TimeSpan>
-; V02 arg2 [V02,T02] ( 3, 3 ) ref -> rdx class-hnd single-def <System.Net.Http.HttpRequestException>
+; V02 arg2 [V02,T02] ( 3, 2.50) ref -> r15 class-hnd single-def <System.Net.Http.HttpRequestException>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T05] ( 4, 2.50) double -> mm0 "Inline return value spill temp"
+; V04 tmp1 [V04,T06] ( 4, 2 ) double -> [rbp-0x20] "Inline return value spill temp"
; V05 tmp2 [V05,T04] ( 4, 3 ) double -> mm0 "Inline stloc first use temp"
-; V06 tmp3 [V06,T03] ( 2, 2 ) long -> rsi single-def "field V01._ticks (fldOffset=0x0)" P-INDEP
-; V07 cse0 [V07,T07] ( 3, 1.50) double -> mm1 "CSE #02: moderate"
-; V08 cse1 [V08,T06] ( 3, 2.50) double -> mm1 "CSE #01: aggressive"
-; V09 rat0 [V09,T00] ( 3, 6 ) ref -> rax "delegate invoke call"
+; V06 tmp3 [V06,T01] ( 3, 5 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass10_0`1[double]>
+; V07 tmp4 [V07,T03] ( 2, 2 ) long -> rsi single-def "field V01._ticks (fldOffset=0x0)" P-INDEP
+; V08 cse0 [V08,T07] ( 3, 1.50) double -> mm1 "CSE #02: moderate"
+; V09 cse1 [V09,T05] ( 3, 2.50) double -> mm1 "CSE #01: aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M17470_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=1 PerfScore 1.25
-G_M17470_IG02: ; bbWeight=1, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rdx rdi]
+ push r15
+ push r14
+ push rbx
+ push rax
+ lea rbp, [rsp+0x20]
+ mov rbx, rdi
+ ; gcrRegs +[rbx]
+ mov r15, rdx
+ ; gcrRegs +[r15]
+ ;; size=18 bbWeight=1 PerfScore 6.00
+G_M17470_IG02: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
vxorps xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, rsi
vdivsd xmm0, xmm0, qword ptr [reloc @RWD00]
vmovsd xmm1, qword ptr [reloc @RWD08]
vucomisd xmm0, xmm1
ja SHORT G_M17470_IG05
;; size=31 bbWeight=1 PerfScore 26.33
-G_M17470_IG03: ; bbWeight=0.50, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
+G_M17470_IG03: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
vmovsd xmm1, qword ptr [reloc @RWD16]
vucomisd xmm1, xmm0
ja SHORT G_M17470_IG04
+ vmovsd qword ptr [rbp-0x20], xmm0
jmp SHORT G_M17470_IG06
- ;; size=16 bbWeight=0.50 PerfScore 4.00
-G_M17470_IG04: ; bbWeight=0.50, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
+ ;; size=21 bbWeight=0.50 PerfScore 4.50
+G_M17470_IG04: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
vmovaps xmm0, xmm1
+ vmovsd qword ptr [rbp-0x20], xmm0
jmp SHORT G_M17470_IG06
- ;; size=6 bbWeight=0.50 PerfScore 1.12
-G_M17470_IG05: ; bbWeight=0.50, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref
- vmovaps xmm0, xmm1
- ;; size=4 bbWeight=0.50 PerfScore 0.12
-G_M17470_IG06: ; bbWeight=1, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
+G_M17470_IG05: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+ vmovsd qword ptr [rbp-0x20], xmm1
+ ;; size=5 bbWeight=0.50 PerfScore 0.50
+G_M17470_IG06: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rsi]
- ; gcrRegs +[rax]
- mov rsi, rdi
+ mov rsi, gword ptr [rsi]
; gcrRegs +[rsi]
- mov rdi, gword ptr [rax+0x08]
- call [rax+0x18]System.Action`3[System.__Canon,double,System.__Canon]:Invoke(System.__Canon,double,System.__Canon):this
- ; gcrRegs -[rax rdx rsi rdi]
+ mov r14, gword ptr [rsi+0x18]
+ ; gcrRegs +[r14]
+ mov esi, dword ptr [r14+0x10]
+ ; gcrRegs -[rsi]
+ mov rdi, rbx
+ ; gcrRegs +[rdi]
+ mov r11, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
+ call [r11]Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
+ ; gcrRegs -[rdi]
+ test eax, eax
+ je SHORT G_M17470_IG08
+ ;; size=41 bbWeight=1 PerfScore 11.00
+G_M17470_IG07: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+ mov rdi, r14
+ ; gcrRegs +[rdi]
+ mov rsi, rbx
+ ; gcrRegs +[rsi]
+ vmovsd xmm0, qword ptr [rbp-0x20]
+ mov rdx, r15
+ ; gcrRegs +[rdx]
+ mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass10_0`1[double]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,double,System.Exception):this
+ call [rax]Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass10_0`1[double]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,double,System.Exception):this
+ ; gcrRegs -[rdx rbx rsi rdi r14-r15]
+ ;; size=26 bbWeight=0.50 PerfScore 3.50
+G_M17470_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
- ;; size=24 bbWeight=1 PerfScore 7.75
-G_M17470_IG07: ; bbWeight=1, epilog, nogc, extend
+ ;; size=1 bbWeight=1 PerfScore 0.25
+G_M17470_IG09: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 8
+ pop rbx
+ pop r14
+ pop r15
pop rbp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=11 bbWeight=1 PerfScore 3.25
RWD00 dq 40C3880000000000h ; 10000
RWD08 dq 430A36E2EB1C4328h ; 9.22337204e+14
RWD16 dq C30A36E2EB1C4328h ; -9.22337204e+14
-; Total bytes of code 87, prolog size 4, PerfScore 42.08, instruction count 23, allocated bytes for code 87 (MethodHash=bb4cbbc1) for method Microsoft.Extensions.Http.Logging.LogHelper:LogRequestFailed(Microsoft.Extensions.Logging.ILogger,System.TimeSpan,System.Net.Http.HttpRequestException) (FullOpts)
+; Total bytes of code 165, prolog size 12, PerfScore 56.96, instruction count 45, allocated bytes for code 165 (MethodHash=bb4cbbc1) for method Microsoft.Extensions.Http.Logging.LogHelper:LogRequestFailed(Microsoft.Extensions.Logging.ILogger,System.TimeSpan,System.Net.Http.HttpRequestException) (FullOpts)
; ============================================================
78 (89.66 % of base) - Microsoft.Extensions.Http.Logging.LogHelper:LogRequestPipelineFailed(Microsoft.Extensions.Logging.ILogger,System.TimeSpan,System.Net.Http.HttpRequestException)
; Assembly listing for method Microsoft.Extensions.Http.Logging.LogHelper:LogRequestPipelineFailed(Microsoft.Extensions.Logging.ILogger,System.TimeSpan,System.Net.Http.HttpRequestException) (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; 0 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T01] ( 3, 3 ) ref -> rdi class-hnd single-def <Microsoft.Extensions.Logging.ILogger>
+; V00 arg0 [V00,T00] ( 4, 3.50) ref -> rbx class-hnd single-def <Microsoft.Extensions.Logging.ILogger>
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.TimeSpan>
-; V02 arg2 [V02,T02] ( 3, 3 ) ref -> rdx class-hnd single-def <System.Net.Http.HttpRequestException>
+; V02 arg2 [V02,T02] ( 3, 2.50) ref -> r15 class-hnd single-def <System.Net.Http.HttpRequestException>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 tmp1 [V04,T05] ( 4, 2.50) double -> mm0 "Inline return value spill temp"
+; V04 tmp1 [V04,T06] ( 4, 2 ) double -> [rbp-0x20] "Inline return value spill temp"
; V05 tmp2 [V05,T04] ( 4, 3 ) double -> mm0 "Inline stloc first use temp"
-; V06 tmp3 [V06,T03] ( 2, 2 ) long -> rsi single-def "field V01._ticks (fldOffset=0x0)" P-INDEP
-; V07 cse0 [V07,T07] ( 3, 1.50) double -> mm1 "CSE #02: moderate"
-; V08 cse1 [V08,T06] ( 3, 2.50) double -> mm1 "CSE #01: aggressive"
-; V09 rat0 [V09,T00] ( 3, 6 ) ref -> rax "delegate invoke call"
+; V06 tmp3 [V06,T01] ( 3, 5 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass10_0`1[double]>
+; V07 tmp4 [V07,T03] ( 2, 2 ) long -> rsi single-def "field V01._ticks (fldOffset=0x0)" P-INDEP
+; V08 cse0 [V08,T07] ( 3, 1.50) double -> mm1 "CSE #02: moderate"
+; V09 cse1 [V09,T05] ( 3, 2.50) double -> mm1 "CSE #01: aggressive"
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M19484_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
- mov rbp, rsp
- ;; size=4 bbWeight=1 PerfScore 1.25
-G_M19484_IG02: ; bbWeight=1, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs +[rdx rdi]
+ push r15
+ push r14
+ push rbx
+ push rax
+ lea rbp, [rsp+0x20]
+ mov rbx, rdi
+ ; gcrRegs +[rbx]
+ mov r15, rdx
+ ; gcrRegs +[r15]
+ ;; size=18 bbWeight=1 PerfScore 6.00
+G_M19484_IG02: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
vxorps xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, rsi
vdivsd xmm0, xmm0, qword ptr [reloc @RWD00]
vmovsd xmm1, qword ptr [reloc @RWD08]
vucomisd xmm0, xmm1
ja SHORT G_M19484_IG05
;; size=31 bbWeight=1 PerfScore 26.33
-G_M19484_IG03: ; bbWeight=0.50, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
+G_M19484_IG03: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
vmovsd xmm1, qword ptr [reloc @RWD16]
vucomisd xmm1, xmm0
ja SHORT G_M19484_IG04
+ vmovsd qword ptr [rbp-0x20], xmm0
jmp SHORT G_M19484_IG06
- ;; size=16 bbWeight=0.50 PerfScore 4.00
-G_M19484_IG04: ; bbWeight=0.50, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
+ ;; size=21 bbWeight=0.50 PerfScore 4.50
+G_M19484_IG04: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
vmovaps xmm0, xmm1
+ vmovsd qword ptr [rbp-0x20], xmm0
jmp SHORT G_M19484_IG06
- ;; size=6 bbWeight=0.50 PerfScore 1.12
-G_M19484_IG05: ; bbWeight=0.50, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref
- vmovaps xmm0, xmm1
- ;; size=4 bbWeight=0.50 PerfScore 0.12
-G_M19484_IG06: ; bbWeight=1, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
+G_M19484_IG05: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+ vmovsd qword ptr [rbp-0x20], xmm1
+ ;; size=5 bbWeight=0.50 PerfScore 0.50
+G_M19484_IG06: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rsi]
- ; gcrRegs +[rax]
- mov rsi, rdi
+ mov rsi, gword ptr [rsi]
; gcrRegs +[rsi]
- mov rdi, gword ptr [rax+0x08]
- call [rax+0x18]System.Action`3[System.__Canon,double,System.__Canon]:Invoke(System.__Canon,double,System.__Canon):this
- ; gcrRegs -[rax rdx rsi rdi]
+ mov r14, gword ptr [rsi+0x18]
+ ; gcrRegs +[r14]
+ mov esi, dword ptr [r14+0x10]
+ ; gcrRegs -[rsi]
+ mov rdi, rbx
+ ; gcrRegs +[rdi]
+ mov r11, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
+ call [r11]Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
+ ; gcrRegs -[rdi]
+ test eax, eax
+ je SHORT G_M19484_IG08
+ ;; size=41 bbWeight=1 PerfScore 11.00
+G_M19484_IG07: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
+ mov rdi, r14
+ ; gcrRegs +[rdi]
+ mov rsi, rbx
+ ; gcrRegs +[rsi]
+ vmovsd xmm0, qword ptr [rbp-0x20]
+ mov rdx, r15
+ ; gcrRegs +[rdx]
+ mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass10_0`1[double]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,double,System.Exception):this
+ call [rax]Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass10_0`1[double]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,double,System.Exception):this
+ ; gcrRegs -[rdx rbx rsi rdi r14-r15]
+ ;; size=26 bbWeight=0.50 PerfScore 3.50
+G_M19484_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
- ;; size=24 bbWeight=1 PerfScore 7.75
-G_M19484_IG07: ; bbWeight=1, epilog, nogc, extend
+ ;; size=1 bbWeight=1 PerfScore 0.25
+G_M19484_IG09: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 8
+ pop rbx
+ pop r14
+ pop r15
pop rbp
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=11 bbWeight=1 PerfScore 3.25
RWD00 dq 40C3880000000000h ; 10000
RWD08 dq 430A36E2EB1C4328h ; 9.22337204e+14
RWD16 dq C30A36E2EB1C4328h ; -9.22337204e+14
-; Total bytes of code 87, prolog size 4, PerfScore 42.08, instruction count 23, allocated bytes for code 87 (MethodHash=0d4fb3e3) for method Microsoft.Extensions.Http.Logging.LogHelper:LogRequestPipelineFailed(Microsoft.Extensions.Logging.ILogger,System.TimeSpan,System.Net.Http.HttpRequestException) (FullOpts)
+; Total bytes of code 165, prolog size 12, PerfScore 56.96, instruction count 45, allocated bytes for code 165 (MethodHash=0d4fb3e3) for method Microsoft.Extensions.Http.Logging.LogHelper:LogRequestPipelineFailed(Microsoft.Extensions.Logging.ILogger,System.TimeSpan,System.Net.Http.HttpRequestException) (FullOpts)
; ============================================================
66 (44.90 % of base) - Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:CleanupCycleEnd(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],System.TimeSpan,int,int)
; Assembly listing for method Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:CleanupCycleEnd(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],System.TimeSpan,int,int) (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; 0 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 3, 3 ) ref -> rdi class-hnd single-def <System.Lazy`1[Microsoft.Extensions.Logging.ILogger]>
;* V01 arg1 [V01 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.TimeSpan>
; V02 arg2 [V02,T01] ( 3, 2.50) int -> rbx single-def
; V03 arg3 [V03,T02] ( 3, 2.50) int -> r15 single-def
-; V04 loc0 [V04 ] ( 2, 1.50) ref -> [rbp-0x20] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <Microsoft.Extensions.Logging.ILogger>
+; V04 loc0 [V04 ] ( 2, 1.50) ref -> [rbp-0x28] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <Microsoft.Extensions.Logging.ILogger>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V06 tmp1 [V06,T05] ( 2, 2 ) ref -> rsi class-hnd single-def "impAppendStmt" <Microsoft.Extensions.Logging.ILogger>
-; V07 tmp2 [V07,T06] ( 4, 2 ) double -> mm0 "Inline return value spill temp"
+; V06 tmp1 [V06,T04] ( 3, 3 ) ref -> r13 class-hnd single-def "impAppendStmt" <Microsoft.Extensions.Logging.ILogger>
+; V07 tmp2 [V07,T06] ( 4, 2 ) double -> [rbp-0x30] "Inline return value spill temp"
; V08 tmp3 [V08,T07] ( 4, 2 ) double -> mm0 single-def "Inline stloc first use temp"
-; V09 tmp4 [V09,T03] ( 2, 1.50) long -> r14 single-def "field V01._ticks (fldOffset=0x0)" P-INDEP
-; V10 cse0 [V10,T08] ( 3, 1.50) double -> mm1 "CSE #01: moderate"
-; V11 cse1 [V11,T09] ( 3, 1.50) double -> mm1 "CSE #02: moderate"
-; V12 rat0 [V12,T04] ( 3, 3 ) ref -> rax "delegate invoke call"
+; V09 tmp4 [V09,T05] ( 3, 3 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass14_0`3[double,int,int]>
+; V10 tmp5 [V10,T03] ( 2, 1.50) long -> r14 single-def "field V01._ticks (fldOffset=0x0)" P-INDEP
+; V11 cse0 [V11,T08] ( 3, 1.50) double -> mm1 "CSE #01: moderate"
+; V12 cse1 [V12,T09] ( 3, 1.50) double -> mm1 "CSE #02: moderate"
;
-; Lcl frame size = 8
+; Lcl frame size = 16
G_M28485_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
push r15
push r14
+ push r13
push rbx
- push rax
- lea rbp, [rsp+0x20]
+ sub rsp, 16
+ lea rbp, [rsp+0x30]
xor eax, eax
- mov qword ptr [rbp-0x20], rax
+ mov qword ptr [rbp-0x28], rax
mov r14, rsi
mov ebx, edx
mov r15d, ecx
- ;; size=26 bbWeight=1 PerfScore 7.50
-G_M28485_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
+ ;; size=31 bbWeight=1 PerfScore 7.75
+G_M28485_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
; gcrRegs +[rdi]
- lea rsi, [rbp-0x20]
+ lea rsi, [rbp-0x28]
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:TryGetLogger(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],byref):ubyte
call [rax]Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:TryGetLogger(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],byref):ubyte
; gcrRegs -[rdi]
test eax, eax
- je SHORT G_M28485_IG07
- ;; size=20 bbWeight=1 PerfScore 5.00
+ je G_M28485_IG07
+ ;; size=24 bbWeight=1 PerfScore 5.00
G_M28485_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rsi, gword ptr [rbp-0x20]
- ; gcrRegs +[rsi]
+ mov r13, gword ptr [rbp-0x28]
+ ; gcrRegs +[r13]
vxorps xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, r14
vdivsd xmm0, xmm0, qword ptr [reloc @RWD00]
vmovsd xmm1, qword ptr [reloc @RWD08]
vucomisd xmm0, xmm1
ja SHORT G_M28485_IG05
vmovsd xmm1, qword ptr [reloc @RWD16]
vucomisd xmm1, xmm0
ja SHORT G_M28485_IG04
+ vmovsd qword ptr [rbp-0x30], xmm0
jmp SHORT G_M28485_IG06
- ;; size=51 bbWeight=0.50 PerfScore 17.67
-G_M28485_IG04: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref, isz
+ ;; size=56 bbWeight=0.50 PerfScore 18.17
+G_M28485_IG04: ; bbWeight=0.50, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref, isz
vmovaps xmm0, xmm1
+ vmovsd qword ptr [rbp-0x30], xmm0
jmp SHORT G_M28485_IG06
- ;; size=6 bbWeight=0.50 PerfScore 1.12
-G_M28485_IG05: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
- vmovaps xmm0, xmm1
- ;; size=4 bbWeight=0.50 PerfScore 0.12
-G_M28485_IG06: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
- mov rdx, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rdx]
- ; gcrRegs +[rax]
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
+G_M28485_IG05: ; bbWeight=0.50, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref
+ vmovsd qword ptr [rbp-0x30], xmm1
+ ;; size=5 bbWeight=0.50 PerfScore 0.50
+G_M28485_IG06: ; bbWeight=0.50, gcrefRegs=2000 {r13}, byrefRegs=0000 {}, byref, isz
+ mov rsi, 0xD1FFAB1E ; const ptr
+ mov rsi, gword ptr [rsi]
+ ; gcrRegs +[rsi]
+ mov r14, gword ptr [rsi+0x18]
+ ; gcrRegs +[r14]
+ mov esi, dword ptr [r14+0x10]
+ ; gcrRegs -[rsi]
+ mov rdi, r13
+ ; gcrRegs +[rdi]
+ mov r11, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
+ call [r11]Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
+ ; gcrRegs -[rdi]
+ test eax, eax
+ je SHORT G_M28485_IG07
+ mov rdi, r14
+ ; gcrRegs +[rdi]
+ mov rsi, r13
+ ; gcrRegs +[rsi]
+ vmovsd xmm0, qword ptr [rbp-0x30]
mov edx, ebx
mov ecx, r15d
xor r8, r8
; gcrRegs +[r8]
- mov rdi, gword ptr [rax+0x08]
- ; gcrRegs +[rdi]
- call [rax+0x18]System.Action`5[System.__Canon,double,int,int,System.__Canon]:Invoke(System.__Canon,double,int,int,System.__Canon):this
- ; gcrRegs -[rax rsi rdi r8]
- ;; size=28 bbWeight=0.50 PerfScore 4.00
+ mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass14_0`3[double,int,int]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,double,int,int,System.Exception):this
+ call [rax]Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass14_0`3[double,int,int]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,double,int,int,System.Exception):this
+ ; gcrRegs -[rsi rdi r8 r13-r14]
+ ;; size=72 bbWeight=0.50 PerfScore 9.25
G_M28485_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M28485_IG08: ; bbWeight=1, epilog, nogc, extend
- add rsp, 8
+ add rsp, 16
pop rbx
+ pop r13
pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=1 PerfScore 3.25
+ ;; size=13 bbWeight=1 PerfScore 3.75
RWD00 dq 40C3880000000000h ; 10000
RWD08 dq 430A36E2EB1C4328h ; 9.22337204e+14
RWD16 dq C30A36E2EB1C4328h ; -9.22337204e+14
-; Total bytes of code 147, prolog size 18, PerfScore 38.92, instruction count 44, allocated bytes for code 147 (MethodHash=1f1a90ba) for method Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:CleanupCycleEnd(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],System.TimeSpan,int,int) (FullOpts)
+; Total bytes of code 213, prolog size 23, PerfScore 46.29, instruction count 58, allocated bytes for code 213 (MethodHash=1f1a90ba) for method Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:CleanupCycleEnd(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],System.TimeSpan,int,int) (FullOpts)
; ============================================================
63 (44.68 % of base) - Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:HandlerExpired(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],System.String,System.TimeSpan)
; Assembly listing for method Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:HandlerExpired(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],System.String,System.TimeSpan) (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; 0 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 3, 3 ) ref -> rdi class-hnd single-def <System.Lazy`1[Microsoft.Extensions.Logging.ILogger]>
; V01 arg1 [V01,T01] ( 3, 2.50) ref -> rbx class-hnd single-def <System.String>
;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.TimeSpan>
-; V03 loc0 [V03 ] ( 2, 1.50) ref -> [rbp-0x18] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <Microsoft.Extensions.Logging.ILogger>
+; V03 loc0 [V03 ] ( 2, 1.50) ref -> [rbp-0x20] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <Microsoft.Extensions.Logging.ILogger>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T04] ( 2, 2 ) ref -> rsi class-hnd single-def "impAppendStmt" <Microsoft.Extensions.Logging.ILogger>
-; V06 tmp2 [V06,T05] ( 4, 2 ) double -> mm0 "Inline return value spill temp"
+; V05 tmp1 [V05,T03] ( 3, 3 ) ref -> r14 class-hnd single-def "impAppendStmt" <Microsoft.Extensions.Logging.ILogger>
+; V06 tmp2 [V06,T05] ( 4, 2 ) double -> [rbp-0x28] "Inline return value spill temp"
; V07 tmp3 [V07,T06] ( 4, 2 ) double -> mm0 single-def "Inline stloc first use temp"
-; V08 tmp4 [V08,T02] ( 2, 1.50) long -> r15 single-def "field V02._ticks (fldOffset=0x0)" P-INDEP
-; V09 cse0 [V09,T07] ( 3, 1.50) double -> mm1 "CSE #01: moderate"
-; V10 cse1 [V10,T08] ( 3, 1.50) double -> mm1 "CSE #02: moderate"
-; V11 rat0 [V11,T03] ( 3, 3 ) ref -> rax "delegate invoke call"
+; V08 tmp4 [V08,T04] ( 3, 3 ) ref -> r15 class-hnd single-def "Inlining Arg" <Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[double,System.__Canon]>
+; V09 tmp5 [V09,T02] ( 2, 1.50) long -> r15 single-def "field V02._ticks (fldOffset=0x0)" P-INDEP
+; V10 cse0 [V10,T07] ( 3, 1.50) double -> mm1 "CSE #01: moderate"
+; V11 cse1 [V11,T08] ( 3, 1.50) double -> mm1 "CSE #02: moderate"
;
-; Lcl frame size = 16
+; Lcl frame size = 24
G_M8583_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
push r15
+ push r14
push rbx
- sub rsp, 16
- lea rbp, [rsp+0x20]
+ sub rsp, 24
+ lea rbp, [rsp+0x30]
xor eax, eax
- mov qword ptr [rbp-0x18], rax
+ mov qword ptr [rbp-0x20], rax
mov rbx, rsi
; gcrRegs +[rbx]
mov r15, rdx
- ;; size=25 bbWeight=1 PerfScore 5.50
-G_M8583_IG02: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref, isz
+ ;; size=27 bbWeight=1 PerfScore 6.50
+G_M8583_IG02: ; bbWeight=1, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000 {}, byref
; gcrRegs +[rdi]
- lea rsi, [rbp-0x18]
+ lea rsi, [rbp-0x20]
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:TryGetLogger(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],byref):ubyte
call [rax]Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:TryGetLogger(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],byref):ubyte
; gcrRegs -[rdi]
test eax, eax
- je SHORT G_M8583_IG07
- ;; size=20 bbWeight=1 PerfScore 5.00
+ je G_M8583_IG07
+ ;; size=24 bbWeight=1 PerfScore 5.00
G_M8583_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov rsi, gword ptr [rbp-0x18]
- ; gcrRegs +[rsi]
+ mov r14, gword ptr [rbp-0x20]
+ ; gcrRegs +[r14]
vxorps xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, r15
vdivsd xmm0, xmm0, qword ptr [reloc @RWD00]
vmovsd xmm1, qword ptr [reloc @RWD08]
vucomisd xmm0, xmm1
ja SHORT G_M8583_IG05
vmovsd xmm1, qword ptr [reloc @RWD16]
vucomisd xmm1, xmm0
ja SHORT G_M8583_IG04
+ vmovsd qword ptr [rbp-0x28], xmm0
jmp SHORT G_M8583_IG06
- ;; size=51 bbWeight=0.50 PerfScore 17.67
-G_M8583_IG04: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
+ ;; size=56 bbWeight=0.50 PerfScore 18.17
+G_M8583_IG04: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
vmovaps xmm0, xmm1
+ vmovsd qword ptr [rbp-0x28], xmm0
jmp SHORT G_M8583_IG06
- ;; size=6 bbWeight=0.50 PerfScore 1.12
-G_M8583_IG05: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- vmovaps xmm0, xmm1
- ;; size=4 bbWeight=0.50 PerfScore 0.12
-G_M8583_IG06: ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
- mov rdx, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rdx]
- ; gcrRegs +[rax]
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
+G_M8583_IG05: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref
+ vmovsd qword ptr [rbp-0x28], xmm1
+ ;; size=5 bbWeight=0.50 PerfScore 0.50
+G_M8583_IG06: ; bbWeight=0.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
+ mov rsi, 0xD1FFAB1E ; const ptr
+ mov rsi, gword ptr [rsi]
+ ; gcrRegs +[rsi]
+ mov r15, gword ptr [rsi+0x18]
+ ; gcrRegs +[r15]
+ mov esi, dword ptr [r15+0x10]
+ ; gcrRegs -[rsi]
+ mov rdi, r14
+ ; gcrRegs +[rdi]
+ mov r11, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
+ call [r11]Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
+ ; gcrRegs -[rdi]
+ test eax, eax
+ je SHORT G_M8583_IG07
+ mov rdi, r15
+ ; gcrRegs +[rdi]
+ mov rsi, r14
+ ; gcrRegs +[rsi]
+ vmovsd xmm0, qword ptr [rbp-0x28]
mov rdx, rbx
; gcrRegs +[rdx]
xor rcx, rcx
; gcrRegs +[rcx]
- mov rdi, gword ptr [rax+0x08]
- ; gcrRegs +[rdi]
- call [rax+0x18]System.Action`4[System.__Canon,double,System.__Canon,System.__Canon]:Invoke(System.__Canon,double,System.__Canon,System.__Canon):this
- ; gcrRegs -[rax rcx rdx rbx rsi rdi]
- ;; size=25 bbWeight=0.50 PerfScore 3.88
+ mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[double,System.__Canon]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,double,System.__Canon,System.Exception):this
+ call [rax]Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[double,System.__Canon]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,double,System.__Canon,System.Exception):this
+ ; gcrRegs -[rcx rdx rbx rsi rdi r14-r15]
+ ;; size=69 bbWeight=0.50 PerfScore 9.12
G_M8583_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M8583_IG08: ; bbWeight=1, epilog, nogc, extend
- add rsp, 16
+ add rsp, 24
pop rbx
+ pop r14
pop r15
pop rbp
ret
- ;; size=9 bbWeight=1 PerfScore 2.75
+ ;; size=11 bbWeight=1 PerfScore 3.25
RWD00 dq 40C3880000000000h ; 10000
RWD08 dq 430A36E2EB1C4328h ; 9.22337204e+14
RWD16 dq C30A36E2EB1C4328h ; -9.22337204e+14
-; Total bytes of code 141, prolog size 19, PerfScore 36.29, instruction count 40, allocated bytes for code 141 (MethodHash=1edcde78) for method Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:HandlerExpired(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],System.String,System.TimeSpan) (FullOpts)
+; Total bytes of code 204, prolog size 21, PerfScore 44.42, instruction count 54, allocated bytes for code 204 (MethodHash=1edcde78) for method Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:HandlerExpired(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],System.String,System.TimeSpan) (FullOpts)
; ============================================================
62 (14.19 % of base) - Microsoft.Extensions.Http.Logging.LogHelper:LogRequestEnd(Microsoft.Extensions.Logging.ILogger,System.Net.Http.HttpResponseMessage,System.TimeSpan,System.Func`2[System.String,ubyte])
; Assembly listing for method Microsoft.Extensions.Http.Logging.LogHelper:LogRequestEnd(Microsoft.Extensions.Logging.ILogger,System.Net.Http.HttpResponseMessage,System.TimeSpan,System.Func`2[System.String,ubyte]) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 6, 5 ) ref -> rbx class-hnd single-def <Microsoft.Extensions.Logging.ILogger>
+; V00 arg0 [V00,T00] ( 7, 5.50) ref -> rbx class-hnd single-def <Microsoft.Extensions.Logging.ILogger>
; V01 arg1 [V01,T02] ( 5, 4 ) ref -> r15 class-hnd single-def <System.Net.Http.HttpResponseMessage>
;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.TimeSpan>
; V03 arg3 [V03,T05] ( 3, 2.50) ref -> r14 class-hnd single-def <System.Func`2[System.String,ubyte]>
; V04 OutArgs [V04 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T17] ( 4, 5 ) double -> mm0 "impAppendStmt"
+; V05 tmp1 [V05,T18] ( 4, 4 ) double -> [rbp-0x30] "impAppendStmt"
;* V06 tmp2 [V06 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <Microsoft.Extensions.Logging.EventId>
-; V07 tmp3 [V07,T09] ( 2, 2 ) ref -> r13 class-hnd exact single-def "impAppendStmt" <System.Net.Http.Headers.HttpResponseHeaders>
+; V07 tmp3 [V07,T10] ( 2, 2 ) ref -> r13 class-hnd exact single-def "impAppendStmt" <System.Net.Http.Headers.HttpResponseHeaders>
; V08 tmp4 [V08,T07] ( 3, 3 ) ref -> rax class-hnd single-def "dup spill" <System.Net.Http.HttpContent>
;* V09 tmp5 [V09 ] ( 0, 0 ) ref -> zero-ref single-def
;* V10 tmp6 [V10 ] ( 0, 0 ) int -> zero-ref single-def
;* V11 tmp7 [V11 ] ( 0, 0 ) struct (16) zero-ref <Microsoft.Extensions.Logging.EventId>
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref single-def
;* V13 tmp9 [V13 ] ( 0, 0 ) ref -> zero-ref single-def
;* V14 tmp10 [V14 ] ( 0, 0 ) ref -> zero-ref single-def
;* V15 tmp11 [V15 ] ( 0, 0 ) ref -> zero-ref single-def
;* V16 tmp12 [V16 ] ( 0, 0 ) int -> zero-ref single-def
;* V17 tmp13 [V17 ] ( 0, 0 ) struct (16) zero-ref <Microsoft.Extensions.Logging.EventId>
;* V18 tmp14 [V18 ] ( 0, 0 ) int -> zero-ref single-def
;* V19 tmp15 [V19 ] ( 0, 0 ) ref -> zero-ref single-def
-; V20 tmp16 [V20,T13] ( 3, 1.50) ref -> r15
+; V20 tmp16 [V20,T14] ( 3, 1.50) ref -> r15
; V21 tmp17 [V21,T01] ( 6, 6 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <Microsoft.Extensions.Http.Logging.HttpHeadersLogValue>
-; V22 tmp18 [V22,T10] ( 2, 2 ) ref -> r15 class-hnd single-def "dup spill" <System.Func`3[Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception,System.String]>
+; V22 tmp18 [V22,T11] ( 2, 2 ) ref -> r15 class-hnd single-def "dup spill" <System.Func`3[Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception,System.String]>
;* V23 tmp19 [V23 ] ( 0, 0 ) ref -> zero-ref single-def
;* V24 tmp20 [V24 ] ( 0, 0 ) int -> zero-ref single-def
;* V25 tmp21 [V25 ] ( 0, 0 ) struct (16) zero-ref <Microsoft.Extensions.Logging.EventId>
;* V26 tmp22 [V26 ] ( 0, 0 ) ref -> zero-ref single-def
;* V27 tmp23 [V27 ] ( 0, 0 ) ref -> zero-ref single-def
-; V28 tmp24 [V28,T08] ( 4, 2 ) ref -> r15
-; V29 tmp25 [V29,T12] ( 2, 2 ) long -> rax "VirtualCall through function pointer"
-; V30 tmp26 [V30,T04] ( 5, 5 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Func`3[Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception,System.String]>
-; V31 tmp27 [V31,T18] ( 4, 3 ) double -> mm0 single-def "Inline stloc first use temp"
-; V32 tmp28 [V32,T11] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <Microsoft.Extensions.Http.Logging.LogHelper+<>c>
-; V33 tmp29 [V33,T06] ( 2, 2 ) long -> rdx single-def "field V02._ticks (fldOffset=0x0)" P-INDEP
-;* V34 tmp30 [V34,T15] ( 0, 0 ) ref -> zero-ref single-def "field V06.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V35 tmp31 [V35,T16] ( 0, 0 ) int -> zero-ref single-def "field V06.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
-;* V36 tmp32 [V36 ] ( 0, 0 ) ref -> zero-ref single-def "field V11.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V37 tmp33 [V37 ] ( 0, 0 ) int -> zero-ref single-def "field V11.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
-;* V38 tmp34 [V38 ] ( 0, 0 ) ref -> zero-ref single-def "field V17.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V39 tmp35 [V39 ] ( 0, 0 ) int -> zero-ref single-def "field V17.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
-;* V40 tmp36 [V40 ] ( 0, 0 ) ref -> zero-ref single-def "field V25.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V41 tmp37 [V41 ] ( 0, 0 ) int -> zero-ref single-def "field V25.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
-;* V42 tmp38 [V42,T14] ( 0, 0 ) ref -> zero-ref single-def "BlockOp address local"
-; V43 cse0 [V43,T19] ( 3, 1.50) double -> mm1 "CSE #02: moderate"
-; V44 rat0 [V44,T03] ( 3, 6 ) ref -> rax "delegate invoke call"
+; V28 tmp24 [V28,T09] ( 4, 2 ) ref -> r15
+; V29 tmp25 [V29,T13] ( 2, 2 ) long -> rax "VirtualCall through function pointer"
+; V30 tmp26 [V30,T03] ( 5, 5 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Func`3[Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception,System.String]>
+; V31 tmp27 [V31,T19] ( 4, 3 ) double -> mm0 single-def "Inline stloc first use temp"
+; V32 tmp28 [V32,T04] ( 3, 5 ) ref -> r13 class-hnd single-def "Inlining Arg" <Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[double,int]>
+; V33 tmp29 [V33,T08] ( 2, 3 ) int -> r12 "Inlining Arg"
+; V34 tmp30 [V34,T12] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <Microsoft.Extensions.Http.Logging.LogHelper+<>c>
+; V35 tmp31 [V35,T06] ( 2, 2 ) long -> rdx single-def "field V02._ticks (fldOffset=0x0)" P-INDEP
+;* V36 tmp32 [V36,T16] ( 0, 0 ) ref -> zero-ref single-def "field V06.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V37 tmp33 [V37,T17] ( 0, 0 ) int -> zero-ref single-def "field V06.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
+;* V38 tmp34 [V38 ] ( 0, 0 ) ref -> zero-ref single-def "field V11.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V39 tmp35 [V39 ] ( 0, 0 ) int -> zero-ref single-def "field V11.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
+;* V40 tmp36 [V40 ] ( 0, 0 ) ref -> zero-ref single-def "field V17.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V41 tmp37 [V41 ] ( 0, 0 ) int -> zero-ref single-def "field V17.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
+;* V42 tmp38 [V42 ] ( 0, 0 ) ref -> zero-ref single-def "field V25.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V43 tmp39 [V43 ] ( 0, 0 ) int -> zero-ref single-def "field V25.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
+;* V44 tmp40 [V44,T15] ( 0, 0 ) ref -> zero-ref single-def "BlockOp address local"
+; V45 cse0 [V45,T20] ( 3, 1.50) double -> mm1 "CSE #02: moderate"
;
-; Lcl frame size = 8
+; Lcl frame size = 24
G_M32508_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
push r15
push r14
push r13
push r12
push rbx
- push rax
- lea rbp, [rsp+0x30]
+ sub rsp, 24
+ lea rbp, [rsp+0x40]
mov rbx, rdi
; gcrRegs +[rbx]
mov r15, rsi
; gcrRegs +[r15]
mov r14, rcx
; gcrRegs +[r14]
- ;; size=25 bbWeight=1 PerfScore 8.25
+ ;; size=28 bbWeight=1 PerfScore 7.50
G_M32508_IG02: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
vxorps xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, rdx
vdivsd xmm0, xmm0, qword ptr [reloc @RWD00]
vucomisd xmm0, qword ptr [reloc @RWD08]
ja SHORT G_M32508_IG05
;; size=27 bbWeight=1 PerfScore 25.33
G_M32508_IG03: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
vmovsd xmm1, qword ptr [reloc @RWD16]
vucomisd xmm1, xmm0
ja SHORT G_M32508_IG04
+ vmovsd qword ptr [rbp-0x30], xmm0
jmp SHORT G_M32508_IG06
- ;; size=16 bbWeight=0.50 PerfScore 4.00
+ ;; size=21 bbWeight=0.50 PerfScore 4.50
G_M32508_IG04: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
vmovaps xmm0, xmm1
+ vmovsd qword ptr [rbp-0x30], xmm0
jmp SHORT G_M32508_IG06
- ;; size=6 bbWeight=0.50 PerfScore 1.12
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
G_M32508_IG05: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
vmovsd xmm0, qword ptr [reloc @RWD08]
- ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M32508_IG06: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
- mov edx, dword ptr [r15+0x38]
+ vmovsd qword ptr [rbp-0x30], xmm0
+ ;; size=13 bbWeight=0.50 PerfScore 2.00
+G_M32508_IG06: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rsi]
- ; gcrRegs +[rax]
+ mov rsi, gword ptr [rsi]
+ ; gcrRegs +[rsi]
+ mov r13, gword ptr [rsi+0x18]
+ ; gcrRegs +[r13]
+ mov r12d, dword ptr [r15+0x38]
+ mov esi, dword ptr [r13+0x10]
+ ; gcrRegs -[rsi]
+ mov rdi, rbx
+ ; gcrRegs +[rdi]
+ mov r11, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
+ call [r11]Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
+ ; gcrRegs -[rdi]
+ test eax, eax
+ je SHORT G_M32508_IG08
+ ;; size=45 bbWeight=1 PerfScore 13.00
+G_M32508_IG07: ; bbWeight=0.50, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref
+ mov rdi, r13
+ ; gcrRegs +[rdi]
mov rsi, rbx
; gcrRegs +[rsi]
+ vmovsd xmm0, qword ptr [rbp-0x30]
+ mov edx, r12d
xor rcx, rcx
; gcrRegs +[rcx]
- mov rdi, gword ptr [rax+0x08]
- ; gcrRegs +[rdi]
- call [rax+0x18]System.Action`4[System.__Canon,double,int,System.__Canon]:Invoke(System.__Canon,double,int,System.__Canon):this
- ; gcrRegs -[rax rcx rsi rdi]
+ mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[double,int]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,double,int,System.Exception):this
+ call [rax]Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[double,int]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,double,int,System.Exception):this
+ ; gcrRegs -[rcx rsi rdi r13]
+ ;; size=28 bbWeight=0.50 PerfScore 3.62
+G_M32508_IG08: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
mov rdi, rbx
; gcrRegs +[rdi]
mov r11, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
xor esi, esi
call [r11]Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
; gcrRegs -[rdi]
test eax, eax
- je G_M32508_IG11
- ;; size=55 bbWeight=1 PerfScore 14.75
-G_M32508_IG07: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+ je G_M32508_IG13
+ ;; size=26 bbWeight=1 PerfScore 5.00
+G_M32508_IG09: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, r15
; gcrRegs +[rdi]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpResponseMessage:get_Headers():System.Net.Http.Headers.HttpResponseHeaders:this
call [rax]System.Net.Http.HttpResponseMessage:get_Headers():System.Net.Http.Headers.HttpResponseHeaders:this
; gcrRegs -[rdi] +[rax]
mov r13, rax
; gcrRegs +[r13]
mov rdi, r15
; gcrRegs +[rdi]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpResponseMessage:get_Content():System.Net.Http.HttpContent:this
; gcrRegs -[rax]
call [rax]System.Net.Http.HttpResponseMessage:get_Content():System.Net.Http.HttpContent:this
; gcrRegs -[rdi r15] +[rax]
test rax, rax
- je SHORT G_M32508_IG08
+ je SHORT G_M32508_IG10
mov rdi, rax
; gcrRegs +[rdi]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpContent:get_Headers():System.Net.Http.Headers.HttpContentHeaders:this
; gcrRegs -[rax]
call [rax]System.Net.Http.HttpContent:get_Headers():System.Net.Http.Headers.HttpContentHeaders:this
; gcrRegs -[rdi] +[rax]
mov r15, rax
; gcrRegs +[r15]
- jmp SHORT G_M32508_IG09
+ jmp SHORT G_M32508_IG11
;; size=58 bbWeight=0.50 PerfScore 7.12
-G_M32508_IG08: ; bbWeight=0.50, gcrefRegs=6008 {rbx r13 r14}, byrefRegs=0000 {}, byref
+G_M32508_IG10: ; bbWeight=0.50, gcrefRegs=6008 {rbx r13 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rax r15]
xor r15, r15
; gcrRegs +[r15]
;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M32508_IG09: ; bbWeight=0.50, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M32508_IG11: ; bbWeight=0.50, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, 0xD1FFAB1E ; Microsoft.Extensions.Http.Logging.HttpHeadersLogValue
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
mov r12, rax
; gcrRegs +[r12]
mov dword ptr [r12+0x30], 1
lea rdi, bword ptr [r12+0x08]
; byrRegs +[rdi]
mov rsi, r14
; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rsi r14]
; byrRegs -[rdi]
lea rdi, bword ptr [r12+0x20]
; byrRegs +[rdi]
mov rsi, r13
; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rsi r13]
; byrRegs -[rdi]
lea rdi, bword ptr [r12+0x28]
; byrRegs +[rdi]
mov rsi, r15
; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rsi r15]
; byrRegs -[rdi]
mov rdi, 0xD1FFAB1E ; data for Microsoft.Extensions.Http.Logging.LogHelper+<>c:<>9__13_0
mov r15, gword ptr [rdi]
; gcrRegs +[r15]
test r15, r15
- jne SHORT G_M32508_IG10
+ jne SHORT G_M32508_IG12
mov rdi, 0xD1FFAB1E ; System.Func`3[Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception,System.String]
call CORINFO_HELP_NEWSFAST
; gcrRegs -[r15] +[rax]
mov r15, rax
; gcrRegs +[r15]
mov rdi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rdi]
; gcrRegs +[rsi]
lea rdi, bword ptr [r15+0x08]
; byrRegs +[rdi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rsi]
; byrRegs -[rdi]
mov rdi, 0xD1FFAB1E ; code for Microsoft.Extensions.Http.Logging.LogHelper+<>c:<LogRequestEnd>b__13_0(Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception):System.String:this
mov qword ptr [r15+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for Microsoft.Extensions.Http.Logging.LogHelper+<>c:<>9__13_0
mov rsi, r15
; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rsi]
;; size=156 bbWeight=0.50 PerfScore 9.62
-G_M32508_IG10: ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
+G_M32508_IG12: ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
mov rdi, rbx
; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E ; Microsoft.Extensions.Logging.ILogger
mov rdx, 0xD1FFAB1E ; token handle
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR
call [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR
; gcrRegs -[rdi]
mov gword ptr [rsp], r15
mov rdx, 0xD1FFAB1E ; 'ResponseHeader'
; gcrRegs +[rdx]
mov ecx, 103
mov rdi, rbx
; gcrRegs +[rdi]
mov r8, r12
; gcrRegs +[r8]
xor esi, esi
xor r9, r9
; gcrRegs +[r9]
call rax
; gcrRegs -[rdx rbx rdi r8-r9 r12 r15]
;; size=67 bbWeight=0.50 PerfScore 4.75
-G_M32508_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M32508_IG13: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M32508_IG12: ; bbWeight=1, epilog, nogc, extend
- add rsp, 8
+G_M32508_IG14: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
RWD00 dq 40C3880000000000h ; 10000
RWD08 dq 430A36E2EB1C4328h ; 9.22337204e+14
RWD16 dq C30A36E2EB1C4328h ; -9.22337204e+14
-; Total bytes of code 437, prolog size 16, PerfScore 81.08, instruction count 102, allocated bytes for code 437 (MethodHash=0e728103) for method Microsoft.Extensions.Http.Logging.LogHelper:LogRequestEnd(Microsoft.Extensions.Logging.ILogger,System.Net.Http.HttpResponseMessage,System.TimeSpan,System.Func`2[System.String,ubyte]) (FullOpts)
+; Total bytes of code 499, prolog size 19, PerfScore 88.71, instruction count 115, allocated bytes for code 499 (MethodHash=0e728103) for method Microsoft.Extensions.Http.Logging.LogHelper:LogRequestEnd(Microsoft.Extensions.Logging.ILogger,System.Net.Http.HttpResponseMessage,System.TimeSpan,System.Func`2[System.String,ubyte]) (FullOpts)
; ============================================================
62 (14.19 % of base) - Microsoft.Extensions.Http.Logging.LogHelper:LogRequestPipelineEnd(Microsoft.Extensions.Logging.ILogger,System.Net.Http.HttpResponseMessage,System.TimeSpan,System.Func`2[System.String,ubyte])
; Assembly listing for method Microsoft.Extensions.Http.Logging.LogHelper:LogRequestPipelineEnd(Microsoft.Extensions.Logging.ILogger,System.Net.Http.HttpResponseMessage,System.TimeSpan,System.Func`2[System.String,ubyte]) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 3 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 3 single block inlinees; 3 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 6, 5 ) ref -> rbx class-hnd single-def <Microsoft.Extensions.Logging.ILogger>
+; V00 arg0 [V00,T00] ( 7, 5.50) ref -> rbx class-hnd single-def <Microsoft.Extensions.Logging.ILogger>
; V01 arg1 [V01,T02] ( 5, 4 ) ref -> r15 class-hnd single-def <System.Net.Http.HttpResponseMessage>
;* V02 arg2 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op single-def <System.TimeSpan>
; V03 arg3 [V03,T05] ( 3, 2.50) ref -> r14 class-hnd single-def <System.Func`2[System.String,ubyte]>
; V04 OutArgs [V04 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05,T17] ( 4, 5 ) double -> mm0 "impAppendStmt"
+; V05 tmp1 [V05,T18] ( 4, 4 ) double -> [rbp-0x30] "impAppendStmt"
;* V06 tmp2 [V06 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <Microsoft.Extensions.Logging.EventId>
-; V07 tmp3 [V07,T09] ( 2, 2 ) ref -> r13 class-hnd exact single-def "impAppendStmt" <System.Net.Http.Headers.HttpResponseHeaders>
+; V07 tmp3 [V07,T10] ( 2, 2 ) ref -> r13 class-hnd exact single-def "impAppendStmt" <System.Net.Http.Headers.HttpResponseHeaders>
; V08 tmp4 [V08,T07] ( 3, 3 ) ref -> rax class-hnd single-def "dup spill" <System.Net.Http.HttpContent>
;* V09 tmp5 [V09 ] ( 0, 0 ) ref -> zero-ref single-def
;* V10 tmp6 [V10 ] ( 0, 0 ) int -> zero-ref single-def
;* V11 tmp7 [V11 ] ( 0, 0 ) struct (16) zero-ref <Microsoft.Extensions.Logging.EventId>
;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref single-def
;* V13 tmp9 [V13 ] ( 0, 0 ) ref -> zero-ref single-def
;* V14 tmp10 [V14 ] ( 0, 0 ) ref -> zero-ref single-def
;* V15 tmp11 [V15 ] ( 0, 0 ) ref -> zero-ref single-def
;* V16 tmp12 [V16 ] ( 0, 0 ) int -> zero-ref single-def
;* V17 tmp13 [V17 ] ( 0, 0 ) struct (16) zero-ref <Microsoft.Extensions.Logging.EventId>
;* V18 tmp14 [V18 ] ( 0, 0 ) int -> zero-ref single-def
;* V19 tmp15 [V19 ] ( 0, 0 ) ref -> zero-ref single-def
-; V20 tmp16 [V20,T13] ( 3, 1.50) ref -> r15
+; V20 tmp16 [V20,T14] ( 3, 1.50) ref -> r15
; V21 tmp17 [V21,T01] ( 6, 6 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <Microsoft.Extensions.Http.Logging.HttpHeadersLogValue>
-; V22 tmp18 [V22,T10] ( 2, 2 ) ref -> r15 class-hnd single-def "dup spill" <System.Func`3[Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception,System.String]>
+; V22 tmp18 [V22,T11] ( 2, 2 ) ref -> r15 class-hnd single-def "dup spill" <System.Func`3[Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception,System.String]>
;* V23 tmp19 [V23 ] ( 0, 0 ) ref -> zero-ref single-def
;* V24 tmp20 [V24 ] ( 0, 0 ) int -> zero-ref single-def
;* V25 tmp21 [V25 ] ( 0, 0 ) struct (16) zero-ref <Microsoft.Extensions.Logging.EventId>
;* V26 tmp22 [V26 ] ( 0, 0 ) ref -> zero-ref single-def
;* V27 tmp23 [V27 ] ( 0, 0 ) ref -> zero-ref single-def
-; V28 tmp24 [V28,T08] ( 4, 2 ) ref -> r15
-; V29 tmp25 [V29,T12] ( 2, 2 ) long -> rax "VirtualCall through function pointer"
-; V30 tmp26 [V30,T04] ( 5, 5 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Func`3[Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception,System.String]>
-; V31 tmp27 [V31,T18] ( 4, 3 ) double -> mm0 single-def "Inline stloc first use temp"
-; V32 tmp28 [V32,T11] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <Microsoft.Extensions.Http.Logging.LogHelper+<>c>
-; V33 tmp29 [V33,T06] ( 2, 2 ) long -> rdx single-def "field V02._ticks (fldOffset=0x0)" P-INDEP
-;* V34 tmp30 [V34,T15] ( 0, 0 ) ref -> zero-ref single-def "field V06.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V35 tmp31 [V35,T16] ( 0, 0 ) int -> zero-ref single-def "field V06.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
-;* V36 tmp32 [V36 ] ( 0, 0 ) ref -> zero-ref single-def "field V11.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V37 tmp33 [V37 ] ( 0, 0 ) int -> zero-ref single-def "field V11.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
-;* V38 tmp34 [V38 ] ( 0, 0 ) ref -> zero-ref single-def "field V17.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V39 tmp35 [V39 ] ( 0, 0 ) int -> zero-ref single-def "field V17.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
-;* V40 tmp36 [V40 ] ( 0, 0 ) ref -> zero-ref single-def "field V25.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V41 tmp37 [V41 ] ( 0, 0 ) int -> zero-ref single-def "field V25.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
-;* V42 tmp38 [V42,T14] ( 0, 0 ) ref -> zero-ref single-def "BlockOp address local"
-; V43 cse0 [V43,T19] ( 3, 1.50) double -> mm1 "CSE #02: moderate"
-; V44 rat0 [V44,T03] ( 3, 6 ) ref -> rax "delegate invoke call"
+; V28 tmp24 [V28,T09] ( 4, 2 ) ref -> r15
+; V29 tmp25 [V29,T13] ( 2, 2 ) long -> rax "VirtualCall through function pointer"
+; V30 tmp26 [V30,T03] ( 5, 5 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Func`3[Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception,System.String]>
+; V31 tmp27 [V31,T19] ( 4, 3 ) double -> mm0 single-def "Inline stloc first use temp"
+; V32 tmp28 [V32,T04] ( 3, 5 ) ref -> r13 class-hnd single-def "Inlining Arg" <Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[double,int]>
+; V33 tmp29 [V33,T08] ( 2, 3 ) int -> r12 "Inlining Arg"
+; V34 tmp30 [V34,T12] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <Microsoft.Extensions.Http.Logging.LogHelper+<>c>
+; V35 tmp31 [V35,T06] ( 2, 2 ) long -> rdx single-def "field V02._ticks (fldOffset=0x0)" P-INDEP
+;* V36 tmp32 [V36,T16] ( 0, 0 ) ref -> zero-ref single-def "field V06.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V37 tmp33 [V37,T17] ( 0, 0 ) int -> zero-ref single-def "field V06.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
+;* V38 tmp34 [V38 ] ( 0, 0 ) ref -> zero-ref single-def "field V11.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V39 tmp35 [V39 ] ( 0, 0 ) int -> zero-ref single-def "field V11.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
+;* V40 tmp36 [V40 ] ( 0, 0 ) ref -> zero-ref single-def "field V17.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V41 tmp37 [V41 ] ( 0, 0 ) int -> zero-ref single-def "field V17.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
+;* V42 tmp38 [V42 ] ( 0, 0 ) ref -> zero-ref single-def "field V25.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V43 tmp39 [V43 ] ( 0, 0 ) int -> zero-ref single-def "field V25.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
+;* V44 tmp40 [V44,T15] ( 0, 0 ) ref -> zero-ref single-def "BlockOp address local"
+; V45 cse0 [V45,T20] ( 3, 1.50) double -> mm1 "CSE #02: moderate"
;
-; Lcl frame size = 8
+; Lcl frame size = 24
G_M33118_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
push r15
push r14
push r13
push r12
push rbx
- push rax
- lea rbp, [rsp+0x30]
+ sub rsp, 24
+ lea rbp, [rsp+0x40]
mov rbx, rdi
; gcrRegs +[rbx]
mov r15, rsi
; gcrRegs +[r15]
mov r14, rcx
; gcrRegs +[r14]
- ;; size=25 bbWeight=1 PerfScore 8.25
+ ;; size=28 bbWeight=1 PerfScore 7.50
G_M33118_IG02: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
vxorps xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, rdx
vdivsd xmm0, xmm0, qword ptr [reloc @RWD00]
vucomisd xmm0, qword ptr [reloc @RWD08]
ja SHORT G_M33118_IG05
;; size=27 bbWeight=1 PerfScore 25.33
G_M33118_IG03: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
vmovsd xmm1, qword ptr [reloc @RWD16]
vucomisd xmm1, xmm0
ja SHORT G_M33118_IG04
+ vmovsd qword ptr [rbp-0x30], xmm0
jmp SHORT G_M33118_IG06
- ;; size=16 bbWeight=0.50 PerfScore 4.00
+ ;; size=21 bbWeight=0.50 PerfScore 4.50
G_M33118_IG04: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
vmovaps xmm0, xmm1
+ vmovsd qword ptr [rbp-0x30], xmm0
jmp SHORT G_M33118_IG06
- ;; size=6 bbWeight=0.50 PerfScore 1.12
+ ;; size=11 bbWeight=0.50 PerfScore 1.62
G_M33118_IG05: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
vmovsd xmm0, qword ptr [reloc @RWD08]
- ;; size=8 bbWeight=0.50 PerfScore 1.50
-G_M33118_IG06: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
- mov edx, dword ptr [r15+0x38]
+ vmovsd qword ptr [rbp-0x30], xmm0
+ ;; size=13 bbWeight=0.50 PerfScore 2.00
+G_M33118_IG06: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rsi]
- ; gcrRegs +[rax]
+ mov rsi, gword ptr [rsi]
+ ; gcrRegs +[rsi]
+ mov r13, gword ptr [rsi+0x18]
+ ; gcrRegs +[r13]
+ mov r12d, dword ptr [r15+0x38]
+ mov esi, dword ptr [r13+0x10]
+ ; gcrRegs -[rsi]
+ mov rdi, rbx
+ ; gcrRegs +[rdi]
+ mov r11, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
+ call [r11]Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
+ ; gcrRegs -[rdi]
+ test eax, eax
+ je SHORT G_M33118_IG08
+ ;; size=45 bbWeight=1 PerfScore 13.00
+G_M33118_IG07: ; bbWeight=0.50, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref
+ mov rdi, r13
+ ; gcrRegs +[rdi]
mov rsi, rbx
; gcrRegs +[rsi]
+ vmovsd xmm0, qword ptr [rbp-0x30]
+ mov edx, r12d
xor rcx, rcx
; gcrRegs +[rcx]
- mov rdi, gword ptr [rax+0x08]
- ; gcrRegs +[rdi]
- call [rax+0x18]System.Action`4[System.__Canon,double,int,System.__Canon]:Invoke(System.__Canon,double,int,System.__Canon):this
- ; gcrRegs -[rax rcx rsi rdi]
+ mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[double,int]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,double,int,System.Exception):this
+ call [rax]Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[double,int]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,double,int,System.Exception):this
+ ; gcrRegs -[rcx rsi rdi r13]
+ ;; size=28 bbWeight=0.50 PerfScore 3.62
+G_M33118_IG08: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
mov rdi, rbx
; gcrRegs +[rdi]
mov r11, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
xor esi, esi
call [r11]Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
; gcrRegs -[rdi]
test eax, eax
- je G_M33118_IG11
- ;; size=55 bbWeight=1 PerfScore 14.75
-G_M33118_IG07: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+ je G_M33118_IG13
+ ;; size=26 bbWeight=1 PerfScore 5.00
+G_M33118_IG09: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, r15
; gcrRegs +[rdi]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpResponseMessage:get_Headers():System.Net.Http.Headers.HttpResponseHeaders:this
call [rax]System.Net.Http.HttpResponseMessage:get_Headers():System.Net.Http.Headers.HttpResponseHeaders:this
; gcrRegs -[rdi] +[rax]
mov r13, rax
; gcrRegs +[r13]
mov rdi, r15
; gcrRegs +[rdi]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpResponseMessage:get_Content():System.Net.Http.HttpContent:this
; gcrRegs -[rax]
call [rax]System.Net.Http.HttpResponseMessage:get_Content():System.Net.Http.HttpContent:this
; gcrRegs -[rdi r15] +[rax]
test rax, rax
- je SHORT G_M33118_IG08
+ je SHORT G_M33118_IG10
mov rdi, rax
; gcrRegs +[rdi]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpContent:get_Headers():System.Net.Http.Headers.HttpContentHeaders:this
; gcrRegs -[rax]
call [rax]System.Net.Http.HttpContent:get_Headers():System.Net.Http.Headers.HttpContentHeaders:this
; gcrRegs -[rdi] +[rax]
mov r15, rax
; gcrRegs +[r15]
- jmp SHORT G_M33118_IG09
+ jmp SHORT G_M33118_IG11
;; size=58 bbWeight=0.50 PerfScore 7.12
-G_M33118_IG08: ; bbWeight=0.50, gcrefRegs=6008 {rbx r13 r14}, byrefRegs=0000 {}, byref
+G_M33118_IG10: ; bbWeight=0.50, gcrefRegs=6008 {rbx r13 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rax r15]
xor r15, r15
; gcrRegs +[r15]
;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M33118_IG09: ; bbWeight=0.50, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M33118_IG11: ; bbWeight=0.50, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, 0xD1FFAB1E ; Microsoft.Extensions.Http.Logging.HttpHeadersLogValue
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
mov r12, rax
; gcrRegs +[r12]
mov dword ptr [r12+0x30], 1
lea rdi, bword ptr [r12+0x08]
; byrRegs +[rdi]
mov rsi, r14
; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rsi r14]
; byrRegs -[rdi]
lea rdi, bword ptr [r12+0x20]
; byrRegs +[rdi]
mov rsi, r13
; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rsi r13]
; byrRegs -[rdi]
lea rdi, bword ptr [r12+0x28]
; byrRegs +[rdi]
mov rsi, r15
; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rsi r15]
; byrRegs -[rdi]
mov rdi, 0xD1FFAB1E ; data for Microsoft.Extensions.Http.Logging.LogHelper+<>c:<>9__17_0
mov r15, gword ptr [rdi]
; gcrRegs +[r15]
test r15, r15
- jne SHORT G_M33118_IG10
+ jne SHORT G_M33118_IG12
mov rdi, 0xD1FFAB1E ; System.Func`3[Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception,System.String]
call CORINFO_HELP_NEWSFAST
; gcrRegs -[r15] +[rax]
mov r15, rax
; gcrRegs +[r15]
mov rdi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rdi]
; gcrRegs +[rsi]
lea rdi, bword ptr [r15+0x08]
; byrRegs +[rdi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rsi]
; byrRegs -[rdi]
mov rdi, 0xD1FFAB1E ; code for Microsoft.Extensions.Http.Logging.LogHelper+<>c:<LogRequestPipelineEnd>b__17_0(Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception):System.String:this
mov qword ptr [r15+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for Microsoft.Extensions.Http.Logging.LogHelper+<>c:<>9__17_0
mov rsi, r15
; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rsi]
;; size=156 bbWeight=0.50 PerfScore 9.62
-G_M33118_IG10: ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
+G_M33118_IG12: ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
mov rdi, rbx
; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E ; Microsoft.Extensions.Logging.ILogger
mov rdx, 0xD1FFAB1E ; token handle
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR
call [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR
; gcrRegs -[rdi]
mov gword ptr [rsp], r15
mov rdx, 0xD1FFAB1E ; 'RequestPipelineResponseHeader'
; gcrRegs +[rdx]
mov ecx, 103
mov rdi, rbx
; gcrRegs +[rdi]
mov r8, r12
; gcrRegs +[r8]
xor esi, esi
xor r9, r9
; gcrRegs +[r9]
call rax
; gcrRegs -[rdx rbx rdi r8-r9 r12 r15]
;; size=67 bbWeight=0.50 PerfScore 4.75
-G_M33118_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M33118_IG13: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M33118_IG12: ; bbWeight=1, epilog, nogc, extend
- add rsp, 8
+G_M33118_IG14: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
RWD00 dq 40C3880000000000h ; 10000
RWD08 dq 430A36E2EB1C4328h ; 9.22337204e+14
RWD16 dq C30A36E2EB1C4328h ; -9.22337204e+14
-; Total bytes of code 437, prolog size 16, PerfScore 81.08, instruction count 102, allocated bytes for code 437 (MethodHash=86e07ea1) for method Microsoft.Extensions.Http.Logging.LogHelper:LogRequestPipelineEnd(Microsoft.Extensions.Logging.ILogger,System.Net.Http.HttpResponseMessage,System.TimeSpan,System.Func`2[System.String,ubyte]) (FullOpts)
+; Total bytes of code 499, prolog size 19, PerfScore 88.71, instruction count 115, allocated bytes for code 499 (MethodHash=86e07ea1) for method Microsoft.Extensions.Http.Logging.LogHelper:LogRequestPipelineEnd(Microsoft.Extensions.Logging.ILogger,System.Net.Http.HttpResponseMessage,System.TimeSpan,System.Func`2[System.String,ubyte]) (FullOpts)
; ============================================================
54 (48.21 % of base) - System.Reflection.TypeLoading.RoModule:GetUniqueArrayType(System.Reflection.TypeLoading.RoType):System.Reflection.TypeLoading.RoArrayType:this
; Assembly listing for method System.Reflection.TypeLoading.RoModule:GetUniqueArrayType(System.Reflection.TypeLoading.RoType):System.Reflection.TypeLoading.RoArrayType:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp based frame
; fully interruptible
; No PGO data
+; 0 inlinees with PGO data; 9 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 3, 2.50) ref -> r15 this class-hnd single-def <System.Reflection.TypeLoading.RoModule>
-; V01 arg1 [V01,T00] ( 5, 4 ) ref -> rbx class-hnd single-def <System.Reflection.TypeLoading.RoType>
+; V00 this [V00,T02] ( 3, 2.50) ref -> r15 this class-hnd single-def <System.Reflection.TypeLoading.RoModule>
+; V01 arg1 [V01,T01] ( 5, 4 ) ref -> rbx class-hnd single-def <System.Reflection.TypeLoading.RoType>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 rat0 [V03,T02] ( 3, 3 ) ref -> rax "delegate invoke call"
+; V03 tmp1 [V03,T00] ( 7, 7 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.RoArrayType>
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M23311_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- push rbp
push r15
push rbx
- lea rbp, [rsp+0x10]
+ push rax
mov r15, rdi
; gcrRegs +[r15]
mov rbx, rsi
; gcrRegs +[rbx]
- ;; size=15 bbWeight=1 PerfScore 4.00
+ ;; size=10 bbWeight=1 PerfScore 3.50
G_M23311_IG02: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov rsi, rbx
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; System.Reflection.RoModifiedType
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
test rax, rax
je SHORT G_M23311_IG05
;; size=30 bbWeight=1 PerfScore 5.00
G_M23311_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax r15]
- mov rsi, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rsi]
+ mov rdi, 0xD1FFAB1E ; System.Reflection.TypeLoading.RoArrayType
+ call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
+ ; gcr arg pop 0
+ mov r15, rax
+ ; gcrRegs +[r15]
+ mov rdi, 0xD1FFAB1E ; const ptr
+ mov rsi, gword ptr [rdi]
+ ; gcrRegs +[rsi]
+ lea rdi, bword ptr [r15+0x38]
+ ; byrRegs +[rdi]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rax rsi]
+ ; byrRegs -[rdi]
+ mov dword ptr [r15+0x50], -1
+ lea rdi, bword ptr [r15+0x60]
+ ; byrRegs +[rdi]
mov rsi, rbx
; gcrRegs +[rsi]
- mov rdi, gword ptr [rax+0x08]
- ; gcrRegs +[rdi]
- ;; size=20 bbWeight=0.50 PerfScore 2.25
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rbx rsi]
+ ; byrRegs -[rdi]
+ mov byte ptr [r15+0x6C], 0
+ mov dword ptr [r15+0x68], 1
+ mov rax, r15
+ ; gcrRegs +[rax]
+ ;; size=76 bbWeight=0.50 PerfScore 5.12
G_M23311_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
pop rbx
pop r15
- pop rbp
- tail.jmp [rax+0x18]System.Func`2[System.__Canon,System.__Canon]:Invoke(System.__Canon):System.__Canon:this
- ;; size=8 bbWeight=0.50 PerfScore 1.75
+ ret
+ ;; size=8 bbWeight=0.50 PerfScore 1.12
G_M23311_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax rsi rdi] +[r15]
+ ; gcrRegs -[rax] +[rbx]
mov rdi, gword ptr [r15+0x18]
; gcrRegs +[rdi]
mov rdx, 0xD1FFAB1E ; const ptr
mov rdx, gword ptr [rdx]
; gcrRegs +[rdx]
mov rsi, rbx
; gcrRegs +[rsi]
mov rax, 0xD1FFAB1E ; code for System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:GetOrAdd(System.__Canon,System.Func`2[System.__Canon,System.__Canon]):System.__Canon:this
cmp dword ptr [rdi], edi
;; size=32 bbWeight=0.50 PerfScore 3.88
G_M23311_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
pop rbx
pop r15
- pop rbp
tail.jmp [rax]System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:GetOrAdd(System.__Canon,System.Func`2[System.__Canon,System.__Canon]):System.__Canon:this
- ;; size=7 bbWeight=0.50 PerfScore 1.75
+ ;; size=10 bbWeight=0.50 PerfScore 1.62
-; Total bytes of code 112, prolog size 15, PerfScore 18.62, instruction count 30, allocated bytes for code 112 (MethodHash=7ce8a4f0) for method System.Reflection.TypeLoading.RoModule:GetUniqueArrayType(System.Reflection.TypeLoading.RoType):System.Reflection.TypeLoading.RoArrayType:this (FullOpts)
+; Total bytes of code 166, prolog size 10, PerfScore 20.25, instruction count 39, allocated bytes for code 166 (MethodHash=7ce8a4f0) for method System.Reflection.TypeLoading.RoModule:GetUniqueArrayType(System.Reflection.TypeLoading.RoType):System.Reflection.TypeLoading.RoArrayType:this (FullOpts)
; ============================================================
48 (12.94 % of base) - Microsoft.Extensions.Http.Logging.LogHelper:LogRequestPipelineStart(Microsoft.Extensions.Logging.ILogger,System.Net.Http.HttpRequestMessage,System.String,System.Func`2[System.String,ubyte])
; Assembly listing for method Microsoft.Extensions.Http.Logging.LogHelper:LogRequestPipelineStart(Microsoft.Extensions.Logging.ILogger,System.Net.Http.HttpRequestMessage,System.String,System.Func`2[System.String,ubyte]) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
-; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data
+; 0 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T00] ( 6, 5 ) ref -> rbx class-hnd single-def <Microsoft.Extensions.Logging.ILogger>
+; V00 arg0 [V00,T00] ( 7, 5.50) ref -> rbx class-hnd single-def <Microsoft.Extensions.Logging.ILogger>
; V01 arg1 [V01,T02] ( 5, 4 ) ref -> r15 class-hnd single-def <System.Net.Http.HttpRequestMessage>
-; V02 arg2 [V02,T05] ( 3, 3 ) ref -> r8 class-hnd single-def <System.String>
-; V03 arg3 [V03,T06] ( 3, 2.50) ref -> r14 class-hnd single-def <System.Func`2[System.String,ubyte]>
+; V02 arg2 [V02,T05] ( 3, 2.50) ref -> r14 class-hnd single-def <System.String>
+; V03 arg3 [V03,T06] ( 3, 2.50) ref -> r13 class-hnd single-def <System.Func`2[System.String,ubyte]>
; V04 OutArgs [V04 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V05 tmp1 [V05 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <Microsoft.Extensions.Logging.EventId>
-; V06 tmp2 [V06,T09] ( 2, 2 ) ref -> r13 class-hnd exact single-def "impAppendStmt" <System.Net.Http.Headers.HttpRequestHeaders>
+; V06 tmp2 [V06,T10] ( 2, 2 ) ref -> r14 class-hnd exact single-def "impAppendStmt" <System.Net.Http.Headers.HttpRequestHeaders>
; V07 tmp3 [V07,T07] ( 3, 3 ) ref -> rdi class-hnd single-def "dup spill" <System.Net.Http.HttpContent>
;* V08 tmp4 [V08 ] ( 0, 0 ) ref -> zero-ref single-def
;* V09 tmp5 [V09 ] ( 0, 0 ) int -> zero-ref single-def
;* V10 tmp6 [V10 ] ( 0, 0 ) struct (16) zero-ref <Microsoft.Extensions.Logging.EventId>
;* V11 tmp7 [V11 ] ( 0, 0 ) int -> zero-ref single-def
;* V12 tmp8 [V12 ] ( 0, 0 ) ref -> zero-ref single-def
;* V13 tmp9 [V13 ] ( 0, 0 ) ref -> zero-ref single-def
;* V14 tmp10 [V14 ] ( 0, 0 ) ref -> zero-ref single-def
;* V15 tmp11 [V15 ] ( 0, 0 ) int -> zero-ref single-def
;* V16 tmp12 [V16 ] ( 0, 0 ) struct (16) zero-ref <Microsoft.Extensions.Logging.EventId>
;* V17 tmp13 [V17 ] ( 0, 0 ) int -> zero-ref single-def
;* V18 tmp14 [V18 ] ( 0, 0 ) ref -> zero-ref single-def
-; V19 tmp15 [V19,T13] ( 3, 1.50) ref -> r15
+; V19 tmp15 [V19,T14] ( 3, 1.50) ref -> r15
; V20 tmp16 [V20,T01] ( 6, 6 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <Microsoft.Extensions.Http.Logging.HttpHeadersLogValue>
-; V21 tmp17 [V21,T10] ( 2, 2 ) ref -> r15 class-hnd single-def "dup spill" <System.Func`3[Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception,System.String]>
+; V21 tmp17 [V21,T11] ( 2, 2 ) ref -> r15 class-hnd single-def "dup spill" <System.Func`3[Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception,System.String]>
;* V22 tmp18 [V22 ] ( 0, 0 ) ref -> zero-ref single-def
;* V23 tmp19 [V23 ] ( 0, 0 ) int -> zero-ref single-def
;* V24 tmp20 [V24 ] ( 0, 0 ) struct (16) zero-ref <Microsoft.Extensions.Logging.EventId>
;* V25 tmp21 [V25 ] ( 0, 0 ) ref -> zero-ref single-def
;* V26 tmp22 [V26 ] ( 0, 0 ) ref -> zero-ref single-def
-; V27 tmp23 [V27,T08] ( 4, 2 ) ref -> r15
-; V28 tmp24 [V28,T12] ( 2, 2 ) long -> rax "VirtualCall through function pointer"
-; V29 tmp25 [V29,T04] ( 5, 5 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Func`3[Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception,System.String]>
-; V30 tmp26 [V30,T11] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <Microsoft.Extensions.Http.Logging.LogHelper+<>c>
-;* V31 tmp27 [V31,T15] ( 0, 0 ) ref -> zero-ref single-def "field V05.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V32 tmp28 [V32,T16] ( 0, 0 ) int -> zero-ref single-def "field V05.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
-;* V33 tmp29 [V33 ] ( 0, 0 ) ref -> zero-ref single-def "field V10.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V34 tmp30 [V34 ] ( 0, 0 ) int -> zero-ref single-def "field V10.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
-;* V35 tmp31 [V35 ] ( 0, 0 ) ref -> zero-ref single-def "field V16.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V36 tmp32 [V36 ] ( 0, 0 ) int -> zero-ref single-def "field V16.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
-;* V37 tmp33 [V37 ] ( 0, 0 ) ref -> zero-ref single-def "field V24.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V38 tmp34 [V38 ] ( 0, 0 ) int -> zero-ref single-def "field V24.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
-;* V39 tmp35 [V39,T14] ( 0, 0 ) ref -> zero-ref single-def "BlockOp address local"
-; V40 rat0 [V40,T03] ( 3, 6 ) ref -> rax "delegate invoke call"
+; V27 tmp23 [V27,T09] ( 4, 2 ) ref -> r15
+; V28 tmp24 [V28,T13] ( 2, 2 ) long -> rax "VirtualCall through function pointer"
+; V29 tmp25 [V29,T03] ( 5, 5 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Func`3[Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception,System.String]>
+; V30 tmp26 [V30,T04] ( 3, 5 ) ref -> r12 class-hnd single-def "Inlining Arg" <Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[System.__Canon,System.__Canon]>
+; V31 tmp27 [V31,T08] ( 2, 3 ) ref -> [rbp-0x30] class-hnd spill-single-def "Inlining Arg" <System.Net.Http.HttpMethod>
+; V32 tmp28 [V32,T12] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <Microsoft.Extensions.Http.Logging.LogHelper+<>c>
+;* V33 tmp29 [V33,T16] ( 0, 0 ) ref -> zero-ref single-def "field V05.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V34 tmp30 [V34,T17] ( 0, 0 ) int -> zero-ref single-def "field V05.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
+;* V35 tmp31 [V35 ] ( 0, 0 ) ref -> zero-ref single-def "field V10.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V36 tmp32 [V36 ] ( 0, 0 ) int -> zero-ref single-def "field V10.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
+;* V37 tmp33 [V37 ] ( 0, 0 ) ref -> zero-ref single-def "field V16.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V38 tmp34 [V38 ] ( 0, 0 ) int -> zero-ref single-def "field V16.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
+;* V39 tmp35 [V39 ] ( 0, 0 ) ref -> zero-ref single-def "field V24.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V40 tmp36 [V40 ] ( 0, 0 ) int -> zero-ref single-def "field V24.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
+;* V41 tmp37 [V41,T15] ( 0, 0 ) ref -> zero-ref single-def "BlockOp address local"
;
-; Lcl frame size = 8
+; Lcl frame size = 24
G_M51151_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
push r15
push r14
push r13
push r12
push rbx
- push rax
- lea rbp, [rsp+0x30]
+ sub rsp, 24
+ lea rbp, [rsp+0x40]
mov rbx, rdi
; gcrRegs +[rbx]
mov r15, rsi
; gcrRegs +[r15]
- mov r8, rdx
- ; gcrRegs +[r8]
- mov r14, rcx
+ mov r14, rdx
; gcrRegs +[r14]
- ;; size=28 bbWeight=1 PerfScore 8.50
-G_M51151_IG02: ; bbWeight=1, gcrefRegs=C108 {rbx r8 r14 r15}, byrefRegs=0000 {}, byref
- mov rdx, gword ptr [r15+0x08]
- ; gcrRegs +[rdx]
+ mov r13, rcx
+ ; gcrRegs +[r13]
+ ;; size=31 bbWeight=1 PerfScore 7.75
+G_M51151_IG02: ; bbWeight=1, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rsi]
+ mov rsi, gword ptr [rsi]
+ ; gcrRegs +[rsi]
+ mov r12, gword ptr [rsi+0x18]
+ ; gcrRegs +[r12]
+ mov rax, gword ptr [r15+0x08]
; gcrRegs +[rax]
+ mov gword ptr [rbp-0x30], rax
+ ; GC ptr vars +{V31}
+ mov esi, dword ptr [r12+0x10]
+ ; gcrRegs -[rsi]
+ mov rdi, rbx
+ ; gcrRegs +[rdi]
+ mov r11, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
+ call [r11]Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
+ ; gcrRegs -[rax rdi]
+ test eax, eax
+ je SHORT G_M51151_IG04
+ ;; size=50 bbWeight=1 PerfScore 14.00
+G_M51151_IG03: ; bbWeight=0.50, gcrefRegs=F008 {rbx r12 r13 r14 r15}, byrefRegs=0000 {}, byref
+ mov rdi, r12
+ ; gcrRegs +[rdi]
mov rsi, rbx
; gcrRegs +[rsi]
- mov rcx, r8
+ mov rdx, gword ptr [rbp-0x30]
+ ; gcrRegs +[rdx]
+ mov rcx, r14
; gcrRegs +[rcx]
xor r8, r8
- mov rdi, gword ptr [rax+0x08]
- ; gcrRegs +[rdi]
- call [rax+0x18]System.Action`4[System.__Canon,System.__Canon,System.__Canon,System.__Canon]:Invoke(System.__Canon,System.__Canon,System.__Canon,System.__Canon):this
- ; gcrRegs -[rax rcx rdx rsi rdi r8]
+ ; gcrRegs +[r8]
+ mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[System.__Canon,System.__Canon]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,System.__Canon,System.__Canon,System.Exception):this
+ ; GC ptr vars -{V31}
+ call [rax]Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[System.__Canon,System.__Canon]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,System.__Canon,System.__Canon,System.Exception):this
+ ; gcrRegs -[rcx rdx rsi rdi r8 r12 r14]
+ ;; size=28 bbWeight=0.50 PerfScore 2.62
+G_M51151_IG04: ; bbWeight=1, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref
mov rdi, rbx
; gcrRegs +[rdi]
mov r11, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
xor esi, esi
call [r11]Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
; gcrRegs -[rdi]
test eax, eax
- je G_M51151_IG07
- ;; size=59 bbWeight=1 PerfScore 15.00
-G_M51151_IG03: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
+ je G_M51151_IG09
+ ;; size=26 bbWeight=1 PerfScore 5.00
+G_M51151_IG05: ; bbWeight=0.50, gcrefRegs=A008 {rbx r13 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, r15
; gcrRegs +[rdi]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpRequestMessage:get_Headers():System.Net.Http.Headers.HttpRequestHeaders:this
call [rax]System.Net.Http.HttpRequestMessage:get_Headers():System.Net.Http.Headers.HttpRequestHeaders:this
; gcrRegs -[rdi] +[rax]
- mov r13, rax
- ; gcrRegs +[r13]
+ mov r14, rax
+ ; gcrRegs +[r14]
mov rdi, gword ptr [r15+0x28]
; gcrRegs +[rdi]
test rdi, rdi
- je SHORT G_M51151_IG04
+ je SHORT G_M51151_IG06
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpContent:get_Headers():System.Net.Http.Headers.HttpContentHeaders:this
; gcrRegs -[rax]
call [rax]System.Net.Http.HttpContent:get_Headers():System.Net.Http.Headers.HttpContentHeaders:this
; gcrRegs -[rdi r15] +[rax]
mov r15, rax
; gcrRegs +[r15]
- jmp SHORT G_M51151_IG05
+ jmp SHORT G_M51151_IG07
;; size=44 bbWeight=0.50 PerfScore 6.25
-G_M51151_IG04: ; bbWeight=0.50, gcrefRegs=6008 {rbx r13 r14}, byrefRegs=0000 {}, byref
+G_M51151_IG06: ; bbWeight=0.50, gcrefRegs=6008 {rbx r13 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rax r15]
xor r15, r15
; gcrRegs +[r15]
;; size=3 bbWeight=0.50 PerfScore 0.12
-G_M51151_IG05: ; bbWeight=0.50, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref, isz
+G_M51151_IG07: ; bbWeight=0.50, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, 0xD1FFAB1E ; Microsoft.Extensions.Http.Logging.HttpHeadersLogValue
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
mov r12, rax
; gcrRegs +[r12]
xor edi, edi
mov dword ptr [r12+0x30], edi
lea rdi, bword ptr [r12+0x08]
; byrRegs +[rdi]
- mov rsi, r14
- ; gcrRegs +[rsi]
- call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rax rsi r14]
- ; byrRegs -[rdi]
- lea rdi, bword ptr [r12+0x20]
- ; byrRegs +[rdi]
mov rsi, r13
; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[rsi r13]
+ ; gcrRegs -[rax rsi r13]
+ ; byrRegs -[rdi]
+ lea rdi, bword ptr [r12+0x20]
+ ; byrRegs +[rdi]
+ mov rsi, r14
+ ; gcrRegs +[rsi]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rsi r14]
; byrRegs -[rdi]
lea rdi, bword ptr [r12+0x28]
; byrRegs +[rdi]
mov rsi, r15
; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rsi r15]
; byrRegs -[rdi]
mov rdi, 0xD1FFAB1E ; data for Microsoft.Extensions.Http.Logging.LogHelper+<>c:<>9__16_0
mov r15, gword ptr [rdi]
; gcrRegs +[r15]
test r15, r15
- jne SHORT G_M51151_IG06
+ jne SHORT G_M51151_IG08
mov rdi, 0xD1FFAB1E ; System.Func`3[Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception,System.String]
call CORINFO_HELP_NEWSFAST
; gcrRegs -[r15] +[rax]
mov r15, rax
; gcrRegs +[r15]
mov rdi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rdi]
; gcrRegs +[rsi]
lea rdi, bword ptr [r15+0x08]
; byrRegs +[rdi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rsi]
; byrRegs -[rdi]
mov rdi, 0xD1FFAB1E ; code for Microsoft.Extensions.Http.Logging.LogHelper+<>c:<LogRequestPipelineStart>b__16_0(Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception):System.String:this
mov qword ptr [r15+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for Microsoft.Extensions.Http.Logging.LogHelper+<>c:<>9__16_0
mov rsi, r15
; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rsi]
;; size=154 bbWeight=0.50 PerfScore 9.75
-G_M51151_IG06: ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
+G_M51151_IG08: ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
mov rdi, rbx
; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E ; Microsoft.Extensions.Logging.ILogger
mov rdx, 0xD1FFAB1E ; token handle
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR
call [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR
; gcrRegs -[rdi]
mov gword ptr [rsp], r15
mov rdx, 0xD1FFAB1E ; 'RequestPipelineRequestHeader'
; gcrRegs +[rdx]
mov ecx, 102
mov rdi, rbx
; gcrRegs +[rdi]
mov r8, r12
; gcrRegs +[r8]
xor esi, esi
xor r9, r9
; gcrRegs +[r9]
call rax
; gcrRegs -[rdx rbx rdi r8-r9 r12 r15]
;; size=67 bbWeight=0.50 PerfScore 4.75
-G_M51151_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M51151_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
-G_M51151_IG08: ; bbWeight=1, epilog, nogc, extend
- add rsp, 8
+G_M51151_IG10: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 24
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 371, prolog size 16, PerfScore 48.88, instruction count 90, allocated bytes for code 371 (MethodHash=12663830) for method Microsoft.Extensions.Http.Logging.LogHelper:LogRequestPipelineStart(Microsoft.Extensions.Logging.ILogger,System.Net.Http.HttpRequestMessage,System.String,System.Func`2[System.String,ubyte]) (FullOpts)
+; Total bytes of code 419, prolog size 19, PerfScore 54.75, instruction count 100, allocated bytes for code 419 (MethodHash=12663830) for method Microsoft.Extensions.Http.Logging.LogHelper:LogRequestPipelineStart(Microsoft.Extensions.Logging.ILogger,System.Net.Http.HttpRequestMessage,System.String,System.Func`2[System.String,ubyte]) (FullOpts)
; ============================================================
47 (65.28 % of base) - Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:CleanupCycleStart(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],int)
; Assembly listing for method Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:CleanupCycleStart(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],int) (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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 3, 3 ) ref -> rdi class-hnd single-def <System.Lazy`1[Microsoft.Extensions.Logging.ILogger]>
; V01 arg1 [V01,T01] ( 3, 2.50) int -> rbx single-def
-; V02 loc0 [V02 ] ( 2, 1.50) ref -> [rbp-0x10] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <Microsoft.Extensions.Logging.ILogger>
+; V02 loc0 [V02 ] ( 2, 1.50) ref -> [rbp-0x20] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <Microsoft.Extensions.Logging.ILogger>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 rat0 [V04,T02] ( 3, 3 ) ref -> rax "delegate invoke call"
+; V04 tmp1 [V04,T02] ( 3, 3 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.Extensions.Logging.ILogger>
+; V05 tmp2 [V05,T03] ( 3, 3 ) ref -> r15 class-hnd single-def "Inlining Arg" <Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass10_0`1[int]>
;
; Lcl frame size = 8
G_M12171_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
+ push r15
+ push r14
push rbx
push rax
- lea rbp, [rsp+0x10]
+ lea rbp, [rsp+0x20]
xor eax, eax
- mov qword ptr [rbp-0x10], rax
+ mov qword ptr [rbp-0x20], rax
mov ebx, esi
- ;; size=16 bbWeight=1 PerfScore 5.00
+ ;; size=20 bbWeight=1 PerfScore 7.00
G_M12171_IG02: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rdi]
- lea rsi, [rbp-0x10]
+ lea rsi, [rbp-0x20]
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:TryGetLogger(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],byref):ubyte
call [rax]Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:TryGetLogger(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],byref):ubyte
; gcrRegs -[rdi]
test eax, eax
je SHORT G_M12171_IG04
;; size=20 bbWeight=1 PerfScore 5.00
-G_M12171_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M12171_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rsi]
- ; gcrRegs +[rax]
- mov rsi, gword ptr [rbp-0x10]
+ mov rsi, gword ptr [rsi]
+ ; gcrRegs +[rsi]
+ mov r15, gword ptr [rsi+0x18]
+ ; gcrRegs +[r15]
+ mov r14, gword ptr [rbp-0x20]
+ ; gcrRegs +[r14]
+ mov esi, dword ptr [r15+0x10]
+ ; gcrRegs -[rsi]
+ mov rdi, r14
+ ; gcrRegs +[rdi]
+ mov r11, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
+ call [r11]Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
+ ; gcrRegs -[rdi]
+ test eax, eax
+ je SHORT G_M12171_IG04
+ mov rdi, r15
+ ; gcrRegs +[rdi]
+ mov rsi, r14
; gcrRegs +[rsi]
mov edx, ebx
xor rcx, rcx
; gcrRegs +[rcx]
- mov rdi, gword ptr [rax+0x08]
- ; gcrRegs +[rdi]
- call [rax+0x18]System.Action`3[System.__Canon,int,System.__Canon]:Invoke(System.__Canon,int,System.__Canon):this
- ; gcrRegs -[rax rcx rsi rdi]
- ;; size=28 bbWeight=0.50 PerfScore 4.38
+ mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass10_0`1[int]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,int,System.Exception):this
+ call [rax]Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass10_0`1[int]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,int,System.Exception):this
+ ; gcrRegs -[rcx rsi rdi r14-r15]
+ ;; size=67 bbWeight=0.50 PerfScore 8.12
G_M12171_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M12171_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
pop rbx
+ pop r14
+ pop r15
pop rbp
ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=11 bbWeight=1 PerfScore 3.25
-; Total bytes of code 72, prolog size 14, PerfScore 16.88, instruction count 24, allocated bytes for code 72 (MethodHash=3865d074) for method Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:CleanupCycleStart(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],int) (FullOpts)
+; Total bytes of code 119, prolog size 18, PerfScore 23.62, instruction count 37, allocated bytes for code 119 (MethodHash=3865d074) for method Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:CleanupCycleStart(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],int) (FullOpts)
; ============================================================
47 (55.29 % of base) - Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:CleanupItemFailed(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],System.String,System.Exception)
; Assembly listing for method Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:CleanupItemFailed(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],System.String,System.Exception) (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; 0 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 3, 3 ) ref -> rdi class-hnd single-def <System.Lazy`1[Microsoft.Extensions.Logging.ILogger]>
; V01 arg1 [V01,T01] ( 3, 2.50) ref -> rbx class-hnd single-def <System.String>
; V02 arg2 [V02,T02] ( 3, 2.50) ref -> r15 class-hnd single-def <System.Exception>
-; V03 loc0 [V03 ] ( 2, 1.50) ref -> [rbp-0x18] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <Microsoft.Extensions.Logging.ILogger>
+; V03 loc0 [V03 ] ( 2, 1.50) ref -> [rbp-0x28] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd <Microsoft.Extensions.Logging.ILogger>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 rat0 [V05,T03] ( 3, 3 ) ref -> rax "delegate invoke call"
+; V05 tmp1 [V05,T03] ( 3, 3 ) ref -> r13 class-hnd single-def "Inlining Arg" <Microsoft.Extensions.Logging.ILogger>
+; V06 tmp2 [V06,T04] ( 3, 3 ) ref -> r14 class-hnd single-def "Inlining Arg" <Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass10_0`1[System.__Canon]>
;
; Lcl frame size = 16
G_M63088_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
push r15
+ push r14
+ push r13
push rbx
sub rsp, 16
- lea rbp, [rsp+0x20]
+ lea rbp, [rsp+0x30]
xor eax, eax
- mov qword ptr [rbp-0x18], rax
+ mov qword ptr [rbp-0x28], rax
mov rbx, rsi
; gcrRegs +[rbx]
mov r15, rdx
; gcrRegs +[r15]
- ;; size=25 bbWeight=1 PerfScore 5.50
+ ;; size=29 bbWeight=1 PerfScore 7.50
G_M63088_IG02: ; bbWeight=1, gcrefRegs=8088 {rbx rdi r15}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rdi]
- lea rsi, [rbp-0x18]
+ lea rsi, [rbp-0x28]
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:TryGetLogger(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],byref):ubyte
call [rax]Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:TryGetLogger(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],byref):ubyte
; gcrRegs -[rdi]
test eax, eax
je SHORT G_M63088_IG04
;; size=20 bbWeight=1 PerfScore 5.00
-G_M63088_IG03: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref
+G_M63088_IG03: ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov rsi, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rsi]
- ; gcrRegs +[rax]
- mov rsi, gword ptr [rbp-0x18]
+ mov rsi, gword ptr [rsi]
+ ; gcrRegs +[rsi]
+ mov r14, gword ptr [rsi+0x18]
+ ; gcrRegs +[r14]
+ mov r13, gword ptr [rbp-0x28]
+ ; gcrRegs +[r13]
+ mov esi, dword ptr [r14+0x10]
+ ; gcrRegs -[rsi]
+ mov rdi, r13
+ ; gcrRegs +[rdi]
+ mov r11, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
+ call [r11]Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
+ ; gcrRegs -[rdi]
+ test eax, eax
+ je SHORT G_M63088_IG04
+ mov rdi, r14
+ ; gcrRegs +[rdi]
+ mov rsi, r13
; gcrRegs +[rsi]
mov rdx, rbx
; gcrRegs +[rdx]
mov rcx, r15
; gcrRegs +[rcx]
- mov rdi, gword ptr [rax+0x08]
- ; gcrRegs +[rdi]
- call [rax+0x18]System.Action`3[System.__Canon,System.__Canon,System.__Canon]:Invoke(System.__Canon,System.__Canon,System.__Canon):this
- ; gcrRegs -[rax rcx rdx rbx rsi rdi r15]
- ;; size=30 bbWeight=0.50 PerfScore 4.38
+ mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass10_0`1[System.__Canon]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,System.__Canon,System.Exception):this
+ call [rax]Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass10_0`1[System.__Canon]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,System.__Canon,System.Exception):this
+ ; gcrRegs -[rcx rdx rbx rsi rdi r13-r15]
+ ;; size=69 bbWeight=0.50 PerfScore 8.12
G_M63088_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M63088_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 16
pop rbx
+ pop r13
+ pop r14
pop r15
pop rbp
ret
- ;; size=9 bbWeight=1 PerfScore 2.75
+ ;; size=13 bbWeight=1 PerfScore 3.75
-; Total bytes of code 85, prolog size 19, PerfScore 17.88, instruction count 27, allocated bytes for code 85 (MethodHash=4f32098f) for method Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:CleanupItemFailed(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],System.String,System.Exception) (FullOpts)
+; Total bytes of code 132, prolog size 23, PerfScore 24.62, instruction count 40, allocated bytes for code 132 (MethodHash=4f32098f) for method Microsoft.Extensions.Http.DefaultHttpClientFactory+Log:CleanupItemFailed(System.Lazy`1[Microsoft.Extensions.Logging.ILogger],System.String,System.Exception) (FullOpts)
; ============================================================
41 (36.61 % of base) - System.Reflection.TypeLoading.RoModule:GetUniqueByRefType(System.Reflection.TypeLoading.RoType):System.Reflection.TypeLoading.RoByRefType:this
; Assembly listing for method System.Reflection.TypeLoading.RoModule:GetUniqueByRefType(System.Reflection.TypeLoading.RoType):System.Reflection.TypeLoading.RoByRefType:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
-; rbp based frame
+; rsp based frame
; fully interruptible
; No PGO data
+; 0 inlinees with PGO data; 9 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 this [V00,T01] ( 3, 2.50) ref -> r15 this class-hnd single-def <System.Reflection.TypeLoading.RoModule>
+; V00 this [V00,T02] ( 3, 2.50) ref -> r15 this class-hnd single-def <System.Reflection.TypeLoading.RoModule>
; V01 arg1 [V01,T00] ( 5, 4 ) ref -> rbx class-hnd single-def <System.Reflection.TypeLoading.RoType>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V03 rat0 [V03,T02] ( 3, 3 ) ref -> rax "delegate invoke call"
+; V03 tmp1 [V03,T01] ( 5, 5 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Reflection.TypeLoading.RoByRefType>
;
-; Lcl frame size = 0
+; Lcl frame size = 8
G_M45263_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- push rbp
push r15
push rbx
- lea rbp, [rsp+0x10]
+ push rax
mov r15, rdi
; gcrRegs +[r15]
mov rbx, rsi
; gcrRegs +[rbx]
- ;; size=15 bbWeight=1 PerfScore 4.00
+ ;; size=10 bbWeight=1 PerfScore 3.50
G_M45263_IG02: ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
mov rsi, rbx
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; System.Reflection.RoModifiedType
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[rsi] +[rax]
; gcr arg pop 0
test rax, rax
je SHORT G_M45263_IG05
;; size=30 bbWeight=1 PerfScore 5.00
G_M45263_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax r15]
- mov rsi, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rsi]
+ mov rdi, 0xD1FFAB1E ; System.Reflection.TypeLoading.RoByRefType
+ call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
+ ; gcr arg pop 0
+ mov r15, rax
+ ; gcrRegs +[r15]
+ mov rdi, 0xD1FFAB1E ; const ptr
+ mov rsi, gword ptr [rdi]
+ ; gcrRegs +[rsi]
+ lea rdi, bword ptr [r15+0x38]
+ ; byrRegs +[rdi]
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rax rsi]
+ ; byrRegs -[rdi]
+ mov dword ptr [r15+0x50], -1
+ lea rdi, bword ptr [r15+0x60]
+ ; byrRegs +[rdi]
mov rsi, rbx
; gcrRegs +[rsi]
- mov rdi, gword ptr [rax+0x08]
- ; gcrRegs +[rdi]
- ;; size=20 bbWeight=0.50 PerfScore 2.25
+ call CORINFO_HELP_ASSIGN_REF
+ ; gcrRegs -[rbx rsi]
+ ; byrRegs -[rdi]
+ mov rax, r15
+ ; gcrRegs +[rax]
+ ;; size=63 bbWeight=0.50 PerfScore 4.12
G_M45263_IG04: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
pop rbx
pop r15
- pop rbp
- tail.jmp [rax+0x18]System.Func`2[System.__Canon,System.__Canon]:Invoke(System.__Canon):System.__Canon:this
- ;; size=8 bbWeight=0.50 PerfScore 1.75
+ ret
+ ;; size=8 bbWeight=0.50 PerfScore 1.12
G_M45263_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax rsi rdi] +[r15]
+ ; gcrRegs -[rax] +[rbx]
mov rdi, gword ptr [r15+0x28]
; gcrRegs +[rdi]
mov rdx, 0xD1FFAB1E ; const ptr
mov rdx, gword ptr [rdx]
; gcrRegs +[rdx]
mov rsi, rbx
; gcrRegs +[rsi]
mov rax, 0xD1FFAB1E ; code for System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:GetOrAdd(System.__Canon,System.Func`2[System.__Canon,System.__Canon]):System.__Canon:this
cmp dword ptr [rdi], edi
;; size=32 bbWeight=0.50 PerfScore 3.88
G_M45263_IG06: ; bbWeight=0.50, epilog, nogc, extend
+ add rsp, 8
pop rbx
pop r15
- pop rbp
tail.jmp [rax]System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:GetOrAdd(System.__Canon,System.Func`2[System.__Canon,System.__Canon]):System.__Canon:this
- ;; size=7 bbWeight=0.50 PerfScore 1.75
+ ;; size=10 bbWeight=0.50 PerfScore 1.62
-; Total bytes of code 112, prolog size 15, PerfScore 18.62, instruction count 30, allocated bytes for code 112 (MethodHash=d0934f30) for method System.Reflection.TypeLoading.RoModule:GetUniqueByRefType(System.Reflection.TypeLoading.RoType):System.Reflection.TypeLoading.RoByRefType:this (FullOpts)
+; Total bytes of code 153, prolog size 10, PerfScore 19.25, instruction count 37, allocated bytes for code 153 (MethodHash=d0934f30) for method System.Reflection.TypeLoading.RoModule:GetUniqueByRefType(System.Reflection.TypeLoading.RoType):System.Reflection.TypeLoading.RoByRefType:this (FullOpts)
; ============================================================
9 (10.11 % of base) - Microsoft.Extensions.Http.Logging.LogHelper:BeginRequestPipelineScope(Microsoft.Extensions.Logging.ILogger,System.Net.Http.HttpRequestMessage,byref):System.IDisposable
; Assembly listing for method Microsoft.Extensions.Http.Logging.LogHelper:BeginRequestPipelineScope(Microsoft.Extensions.Logging.ILogger,System.Net.Http.HttpRequestMessage,byref):System.IDisposable (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; 2 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
-; V00 arg0 [V00,T03] ( 3, 3 ) ref -> r14 class-hnd single-def <Microsoft.Extensions.Logging.ILogger>
+; V00 arg0 [V00,T02] ( 3, 3 ) ref -> r14 class-hnd single-def <Microsoft.Extensions.Logging.ILogger>
; V01 arg1 [V01,T00] ( 4, 4 ) ref -> rbx class-hnd single-def <System.Net.Http.HttpRequestMessage>
; V02 arg2 [V02,T01] ( 4, 4 ) byref -> r15 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V04 rat0 [V04,T02] ( 3, 6 ) ref -> rax "delegate invoke call"
;
; Lcl frame size = 8
G_M8978_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
push r15
push r14
push rbx
push rax
lea rbp, [rsp+0x20]
mov r14, rdi
; gcrRegs +[r14]
mov rbx, rsi
; gcrRegs +[rbx]
mov r15, rdx
; byrRegs +[r15]
;; size=21 bbWeight=1 PerfScore 6.25
G_M8978_IG02: ; bbWeight=1, gcrefRegs=4008 {rbx r14}, byrefRegs=8000 {r15}, byref
mov rdi, gword ptr [rbx+0x10]
; gcrRegs +[rdi]
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Http.Logging.LogHelper:GetRedactedUriString(System.Uri):System.String
call [rax]Microsoft.Extensions.Http.Logging.LogHelper:GetRedactedUriString(System.Uri):System.String
; gcrRegs -[rdi] +[rax]
mov rsi, rax
; gcrRegs +[rsi]
mov rdi, r15
; byrRegs +[rdi]
call CORINFO_HELP_CHECKED_ASSIGN_REF
; gcrRegs -[rax rsi]
; byrRegs -[rdi]
+ mov rdi, 0xD1FFAB1E ; const ptr
+ mov rdi, gword ptr [rdi]
+ ; gcrRegs +[rdi]
+ mov rdi, gword ptr [rdi+0x18]
mov rcx, gword ptr [r15]
; gcrRegs +[rcx]
mov rdx, gword ptr [rbx+0x08]
; gcrRegs +[rdx]
- mov rsi, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rsi]
- ; gcrRegs +[rax]
mov rsi, r14
; gcrRegs +[rsi]
- mov rdi, gword ptr [rax+0x08]
- ; gcrRegs +[rdi]
- ;; size=54 bbWeight=1 PerfScore 15.25
+ mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass2_0`2[System.__Canon,System.__Canon]:<DefineScope>b__0(Microsoft.Extensions.Logging.ILogger,System.__Canon,System.__Canon):System.IDisposable:this
+ ;; size=64 bbWeight=1 PerfScore 15.50
G_M8978_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
pop rbx
pop r14
pop r15
pop rbp
- tail.jmp [rax+0x18]System.Func`4[System.__Canon,System.__Canon,System.__Canon,System.__Canon]:Invoke(System.__Canon,System.__Canon,System.__Canon):System.__Canon:this
- ;; size=14 bbWeight=1 PerfScore 4.25
+ tail.jmp [rax]Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass2_0`2[System.__Canon,System.__Canon]:<DefineScope>b__0(Microsoft.Extensions.Logging.ILogger,System.__Canon,System.__Canon):System.IDisposable:this
+ ;; size=13 bbWeight=1 PerfScore 4.25
-; Total bytes of code 89, prolog size 12, PerfScore 25.75, instruction count 27, allocated bytes for code 89 (MethodHash=6ed8dced) for method Microsoft.Extensions.Http.Logging.LogHelper:BeginRequestPipelineScope(Microsoft.Extensions.Logging.ILogger,System.Net.Http.HttpRequestMessage,byref):System.IDisposable (FullOpts)
+; Total bytes of code 98, prolog size 12, PerfScore 26.00, instruction count 28, allocated bytes for code 98 (MethodHash=6ed8dced) for method Microsoft.Extensions.Http.Logging.LogHelper:BeginRequestPipelineScope(Microsoft.Extensions.Logging.ILogger,System.Net.Http.HttpRequestMessage,byref):System.IDisposable (FullOpts)
; ============================================================
9 (2.17 % of base) - Microsoft.Extensions.Http.Logging.LogHelper:LogRequestStart(Microsoft.Extensions.Logging.ILogger,System.Net.Http.HttpRequestMessage,System.Func`2[System.String,ubyte])
; Assembly listing for method Microsoft.Extensions.Http.Logging.LogHelper:LogRequestStart(Microsoft.Extensions.Logging.ILogger,System.Net.Http.HttpRequestMessage,System.Func`2[System.String,ubyte]) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T00] ( 7, 5.50) ref -> rbx class-hnd single-def <Microsoft.Extensions.Logging.ILogger>
; V01 arg1 [V01,T01] ( 6, 4 ) ref -> r15 class-hnd single-def <System.Net.Http.HttpRequestMessage>
; V02 arg2 [V02,T04] ( 3, 2.50) ref -> r14 class-hnd single-def <System.Func`2[System.String,ubyte]>
; V03 OutArgs [V03 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" <Microsoft.Extensions.Logging.EventId>
-; V05 tmp2 [V05,T08] ( 2, 2 ) ref -> r13 class-hnd exact single-def "impAppendStmt" <System.Net.Http.Headers.HttpRequestHeaders>
+; V05 tmp2 [V05,T07] ( 2, 2 ) ref -> r13 class-hnd exact single-def "impAppendStmt" <System.Net.Http.Headers.HttpRequestHeaders>
; V06 tmp3 [V06,T05] ( 3, 3 ) ref -> rdi class-hnd single-def "dup spill" <System.Net.Http.HttpContent>
;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref single-def
;* V08 tmp5 [V08 ] ( 0, 0 ) int -> zero-ref single-def
;* V09 tmp6 [V09 ] ( 0, 0 ) struct (16) zero-ref <Microsoft.Extensions.Logging.EventId>
;* V10 tmp7 [V10 ] ( 0, 0 ) int -> zero-ref single-def
;* V11 tmp8 [V11 ] ( 0, 0 ) ref -> zero-ref 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 ) int -> zero-ref single-def
;* V15 tmp12 [V15 ] ( 0, 0 ) struct (16) zero-ref <Microsoft.Extensions.Logging.EventId>
;* V16 tmp13 [V16 ] ( 0, 0 ) int -> zero-ref single-def
;* V17 tmp14 [V17 ] ( 0, 0 ) ref -> zero-ref single-def
-; V18 tmp15 [V18,T14] ( 3, 1.50) ref -> r15
+; V18 tmp15 [V18,T13] ( 3, 1.50) ref -> r15
; V19 tmp16 [V19,T02] ( 6, 6 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" <Microsoft.Extensions.Http.Logging.HttpHeadersLogValue>
-; V20 tmp17 [V20,T09] ( 2, 2 ) ref -> r15 class-hnd single-def "dup spill" <System.Func`3[Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception,System.String]>
+; V20 tmp17 [V20,T08] ( 2, 2 ) ref -> r15 class-hnd single-def "dup spill" <System.Func`3[Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception,System.String]>
;* V21 tmp18 [V21 ] ( 0, 0 ) ref -> zero-ref single-def
;* V22 tmp19 [V22 ] ( 0, 0 ) int -> zero-ref single-def
;* V23 tmp20 [V23 ] ( 0, 0 ) struct (16) zero-ref <Microsoft.Extensions.Logging.EventId>
;* V24 tmp21 [V24 ] ( 0, 0 ) ref -> zero-ref single-def
;* V25 tmp22 [V25 ] ( 0, 0 ) ref -> zero-ref single-def
-; V26 tmp23 [V26,T07] ( 4, 2 ) ref -> r15
-; V27 tmp24 [V27,T13] ( 2, 2 ) long -> rax "VirtualCall through function pointer"
+; V26 tmp23 [V26,T06] ( 4, 2 ) ref -> r15
+; V27 tmp24 [V27,T12] ( 2, 2 ) long -> rax "VirtualCall through function pointer"
; V28 tmp25 [V28,T03] ( 5, 5 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" <System.Func`3[Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception,System.String]>
;* V29 tmp26 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Net.Http.HttpMethod>
-; V30 tmp27 [V30,T10] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <Microsoft.Extensions.Http.Logging.LogHelper+<>c>
-;* V31 tmp28 [V31,T16] ( 0, 0 ) ref -> zero-ref single-def "field V04.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
-;* V32 tmp29 [V32,T17] ( 0, 0 ) int -> zero-ref single-def "field V04.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
+; V30 tmp27 [V30,T09] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" <Microsoft.Extensions.Http.Logging.LogHelper+<>c>
+;* V31 tmp28 [V31,T15] ( 0, 0 ) ref -> zero-ref single-def "field V04.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
+;* V32 tmp29 [V32,T16] ( 0, 0 ) int -> zero-ref single-def "field V04.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
;* V33 tmp30 [V33 ] ( 0, 0 ) ref -> zero-ref single-def "field V09.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
;* V34 tmp31 [V34 ] ( 0, 0 ) int -> zero-ref single-def "field V09.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
;* V35 tmp32 [V35 ] ( 0, 0 ) ref -> zero-ref single-def "field V15.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
;* V36 tmp33 [V36 ] ( 0, 0 ) int -> zero-ref single-def "field V15.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
;* V37 tmp34 [V37 ] ( 0, 0 ) ref -> zero-ref single-def "field V23.<Name>k__BackingField (fldOffset=0x0)" P-INDEP
;* V38 tmp35 [V38 ] ( 0, 0 ) int -> zero-ref single-def "field V23.<Id>k__BackingField (fldOffset=0x8)" P-INDEP
-; V39 tmp36 [V39,T11] ( 2, 2 ) ref -> rcx single-def "argument with side effect"
-; V40 tmp37 [V40,T12] ( 2, 2 ) ref -> r13 single-def "argument with side effect"
-;* V41 tmp38 [V41,T15] ( 0, 0 ) ref -> zero-ref single-def "BlockOp address local"
-; V42 rat0 [V42,T06] ( 3, 3 ) ref -> rax "delegate invoke call"
+; V39 tmp36 [V39,T10] ( 2, 2 ) ref -> rcx single-def "argument with side effect"
+; V40 tmp37 [V40,T11] ( 2, 2 ) ref -> r13 single-def "argument with side effect"
+;* V41 tmp38 [V41,T14] ( 0, 0 ) ref -> zero-ref single-def "BlockOp address local"
;
; Lcl frame size = 8
G_M16607_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
; gcrRegs +[rbx]
mov r15, rsi
; gcrRegs +[r15]
mov r14, rdx
; gcrRegs +[r14]
;; size=25 bbWeight=1 PerfScore 8.25
G_M16607_IG02: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, rbx
; gcrRegs +[rdi]
mov r11, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
mov esi, 2
call [r11]Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
; gcrRegs -[rdi]
test eax, eax
je SHORT G_M16607_IG04
;; size=25 bbWeight=1 PerfScore 5.00
G_M16607_IG03: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
mov r13, gword ptr [r15+0x08]
; gcrRegs +[r13]
mov rdi, gword ptr [r15+0x10]
; gcrRegs +[rdi]
mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Http.Logging.LogHelper:GetRedactedUriString(System.Uri):System.String
call [rax]Microsoft.Extensions.Http.Logging.LogHelper:GetRedactedUriString(System.Uri):System.String
; gcrRegs -[rdi] +[rax]
mov rcx, rax
; gcrRegs +[rcx]
mov rdx, r13
; gcrRegs +[rdx]
- mov rsi, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rsi]
+ mov rdi, 0xD1FFAB1E ; const ptr
+ mov rdi, gword ptr [rdi]
+ ; gcrRegs +[rdi]
+ mov rdi, gword ptr [rdi+0x18]
mov rsi, rbx
; gcrRegs +[rsi]
xor r8, r8
; gcrRegs +[r8]
- mov rdi, gword ptr [rax+0x08]
- ; gcrRegs +[rdi]
- call [rax+0x18]System.Action`4[System.__Canon,System.__Canon,System.__Canon,System.__Canon]:Invoke(System.__Canon,System.__Canon,System.__Canon,System.__Canon):this
- ; gcrRegs -[rax rcx rdx rsi rdi r8 r13]
- ;; size=52 bbWeight=0.50 PerfScore 7.75
+ mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[System.__Canon,System.__Canon]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,System.__Canon,System.__Canon,System.Exception):this
+ ; gcrRegs -[rax]
+ call [rax]Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[System.__Canon,System.__Canon]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,System.__Canon,System.__Canon,System.Exception):this
+ ; gcrRegs -[rcx rdx rsi rdi r8 r13]
+ ;; size=61 bbWeight=0.50 PerfScore 7.88
G_M16607_IG04: ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
mov rdi, rbx
; gcrRegs +[rdi]
mov r11, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
xor esi, esi
call [r11]Microsoft.Extensions.Logging.ILogger:IsEnabled(int):ubyte:this
; gcrRegs -[rdi]
test eax, eax
je G_M16607_IG09
;; size=26 bbWeight=1 PerfScore 5.00
G_M16607_IG05: ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, r15
; gcrRegs +[rdi]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpRequestMessage:get_Headers():System.Net.Http.Headers.HttpRequestHeaders:this
cmp dword ptr [rdi], edi
call [rax]System.Net.Http.HttpRequestMessage:get_Headers():System.Net.Http.Headers.HttpRequestHeaders:this
; gcrRegs -[rdi] +[rax]
mov r13, rax
; gcrRegs +[r13]
mov rdi, gword ptr [r15+0x28]
; gcrRegs +[rdi]
test rdi, rdi
je SHORT G_M16607_IG06
mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpContent:get_Headers():System.Net.Http.Headers.HttpContentHeaders:this
; gcrRegs -[rax]
call [rax]System.Net.Http.HttpContent:get_Headers():System.Net.Http.Headers.HttpContentHeaders:this
; gcrRegs -[rdi r15] +[rax]
mov r15, rax
; gcrRegs +[r15]
jmp SHORT G_M16607_IG07
;; size=46 bbWeight=0.50 PerfScore 7.75
G_M16607_IG06: ; bbWeight=0.50, gcrefRegs=6008 {rbx r13 r14}, byrefRegs=0000 {}, byref
; gcrRegs -[rax r15]
xor r15, r15
; gcrRegs +[r15]
;; size=3 bbWeight=0.50 PerfScore 0.12
G_M16607_IG07: ; bbWeight=0.50, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, byref, isz
mov rdi, 0xD1FFAB1E ; Microsoft.Extensions.Http.Logging.HttpHeadersLogValue
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
mov r12, rax
; gcrRegs +[r12]
xor edi, edi
mov dword ptr [r12+0x30], edi
lea rdi, bword ptr [r12+0x08]
; byrRegs +[rdi]
mov rsi, r14
; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rsi r14]
; byrRegs -[rdi]
lea rdi, bword ptr [r12+0x20]
; byrRegs +[rdi]
mov rsi, r13
; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rsi r13]
; byrRegs -[rdi]
lea rdi, bword ptr [r12+0x28]
; byrRegs +[rdi]
mov rsi, r15
; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rsi r15]
; byrRegs -[rdi]
mov rdi, 0xD1FFAB1E ; data for Microsoft.Extensions.Http.Logging.LogHelper+<>c:<>9__12_0
mov r15, gword ptr [rdi]
; gcrRegs +[r15]
test r15, r15
jne SHORT G_M16607_IG08
mov rdi, 0xD1FFAB1E ; System.Func`3[Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception,System.String]
call CORINFO_HELP_NEWSFAST
; gcrRegs -[r15] +[rax]
mov r15, rax
; gcrRegs +[r15]
mov rdi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rdi]
; gcrRegs +[rsi]
lea rdi, bword ptr [r15+0x08]
; byrRegs +[rdi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rax rsi]
; byrRegs -[rdi]
mov rdi, 0xD1FFAB1E ; code for Microsoft.Extensions.Http.Logging.LogHelper+<>c:<LogRequestStart>b__12_0(Microsoft.Extensions.Http.Logging.HttpHeadersLogValue,System.Exception):System.String:this
mov qword ptr [r15+0x18], rdi
mov rdi, 0xD1FFAB1E ; data for Microsoft.Extensions.Http.Logging.LogHelper+<>c:<>9__12_0
mov rsi, r15
; gcrRegs +[rsi]
call CORINFO_HELP_ASSIGN_REF
; gcrRegs -[rsi]
;; size=154 bbWeight=0.50 PerfScore 9.75
G_M16607_IG08: ; bbWeight=0.50, gcrefRegs=9008 {rbx r12 r15}, byrefRegs=0000 {}, byref
mov rdi, rbx
; gcrRegs +[rdi]
mov rsi, 0xD1FFAB1E ; Microsoft.Extensions.Logging.ILogger
mov rdx, 0xD1FFAB1E ; token handle
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_VIRTUAL_FUNC_PTR
call [rax]CORINFO_HELP_VIRTUAL_FUNC_PTR
; gcrRegs -[rdi]
mov gword ptr [rsp], r15
mov rdx, 0xD1FFAB1E ; 'RequestHeader'
; gcrRegs +[rdx]
mov ecx, 102
mov rdi, rbx
; gcrRegs +[rdi]
mov r8, r12
; gcrRegs +[r8]
xor esi, esi
xor r9, r9
; gcrRegs +[r9]
call rax
; gcrRegs -[rdx rbx rdi r8-r9 r12 r15]
;; size=67 bbWeight=0.50 PerfScore 4.75
G_M16607_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
G_M16607_IG10: ; bbWeight=1, epilog, nogc, extend
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
-; Total bytes of code 414, prolog size 16, PerfScore 52.88, instruction count 100, allocated bytes for code 414 (MethodHash=f275bf20) for method Microsoft.Extensions.Http.Logging.LogHelper:LogRequestStart(Microsoft.Extensions.Logging.ILogger,System.Net.Http.HttpRequestMessage,System.Func`2[System.String,ubyte]) (FullOpts)
+; Total bytes of code 423, prolog size 16, PerfScore 53.00, instruction count 101, allocated bytes for code 423 (MethodHash=f275bf20) for method Microsoft.Extensions.Http.Logging.LogHelper:LogRequestStart(Microsoft.Extensions.Logging.ILogger,System.Net.Http.HttpRequestMessage,System.Func`2[System.String,ubyte]) (FullOpts)
; ============================================================
9 (6.52 % of base) - System.Reflection.TypeLoading.RoModule:GetUniqueArrayType(System.Reflection.TypeLoading.RoType,int):System.Reflection.TypeLoading.RoArrayType:this
; Assembly listing for method System.Reflection.TypeLoading.RoModule:GetUniqueArrayType(System.Reflection.TypeLoading.RoType,int):System.Reflection.TypeLoading.RoArrayType: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; 1 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T02] ( 3, 2.50) ref -> rbx this class-hnd single-def <System.Reflection.TypeLoading.RoModule>
; V01 arg1 [V01,T00] ( 3, 3 ) ref -> rsi class-hnd single-def <System.Reflection.TypeLoading.RoType>
; V02 arg2 [V02,T01] ( 3, 3 ) int -> rdx single-def
;* V03 loc0 [V03 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op <System.Reflection.TypeLoading.RoArrayType+Key>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05,T03] ( 4, 3 ) ref -> r15 single-def "field V03.<ElementType>k__BackingField (fldOffset=0x0)" P-INDEP
-; V06 tmp2 [V06,T05] ( 3, 2 ) int -> r14 single-def "field V03.<Rank>k__BackingField (fldOffset=0x8)" P-INDEP
-; V07 rat0 [V07,T04] ( 3, 3 ) ref -> rax "delegate invoke call"
+; V06 tmp2 [V06,T04] ( 3, 2 ) int -> r14 single-def "field V03.<Rank>k__BackingField (fldOffset=0x8)" P-INDEP
;
; Lcl frame size = 8
G_M7824_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
push rbp
push r15
push r14
push rbx
push rax
lea rbp, [rsp+0x20]
mov rbx, rdi
; gcrRegs +[rbx]
;; size=15 bbWeight=1 PerfScore 5.75
G_M7824_IG02: ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rsi]
mov r15, rsi
; gcrRegs +[r15]
mov r14d, edx
mov rsi, r15
mov rdi, 0xD1FFAB1E ; System.Reflection.RoModifiedType
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
; gcrRegs -[rsi] +[rax]
test rax, rax
je SHORT G_M7824_IG05
;; size=36 bbWeight=1 PerfScore 5.50
G_M7824_IG03: ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
; gcrRegs -[rax rbx]
mov rsi, r15
; gcrRegs +[rsi]
mov edx, r14d
mov rdi, 0xD1FFAB1E ; const ptr
- mov rax, gword ptr [rdi]
- ; gcrRegs +[rax]
- mov rdi, gword ptr [rax+0x08]
+ mov rdi, gword ptr [rdi]
; gcrRegs +[rdi]
- call [rax+0x18]System.Func`2[System.Reflection.TypeLoading.RoArrayType+Key,System.__Canon]:Invoke(System.Reflection.TypeLoading.RoArrayType+Key):System.__Canon:this
- ; gcrRegs -[rsi rdi r15]
+ mov rdi, gword ptr [rdi+0x18]
+ mov rax, 0xD1FFAB1E ; code for System.Reflection.TypeLoading.RoModule+<>c:<.cctor>b__61_1(System.Reflection.TypeLoading.RoArrayType+Key):System.Reflection.TypeLoading.RoArrayType:this
+ call [rax]System.Reflection.TypeLoading.RoModule+<>c:<.cctor>b__61_1(System.Reflection.TypeLoading.RoArrayType+Key):System.Reflection.TypeLoading.RoArrayType:this
+ ; gcrRegs -[rsi rdi r15] +[rax]
nop
- ;; size=27 bbWeight=0.50 PerfScore 4.00
+ ;; size=36 bbWeight=0.50 PerfScore 4.12
G_M7824_IG04: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
pop r14
pop r15
pop rbp
ret
;; size=11 bbWeight=0.50 PerfScore 1.62
G_M7824_IG05: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, gcvars, byref
; gcrRegs -[rax] +[rbx r15]
mov rsi, r15
; gcrRegs +[rsi]
mov edx, r14d
mov rdi, gword ptr [rbx+0x20]
; gcrRegs +[rdi]
mov rcx, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rcx]
; gcrRegs +[rcx]
mov rax, 0xD1FFAB1E ; code for System.Collections.Concurrent.ConcurrentDictionary`2[System.Reflection.TypeLoading.RoArrayType+Key,System.__Canon]:GetOrAdd(System.Reflection.TypeLoading.RoArrayType+Key,System.Func`2[System.Reflection.TypeLoading.RoArrayType+Key,System.__Canon]):System.__Canon:this
cmp dword ptr [rdi], edi
call [rax]System.Collections.Concurrent.ConcurrentDictionary`2[System.Reflection.TypeLoading.RoArrayType+Key,System.__Canon]:GetOrAdd(System.Reflection.TypeLoading.RoArrayType+Key,System.Func`2[System.Reflection.TypeLoading.RoArrayType+Key,System.__Canon]):System.__Canon:this
; gcrRegs -[rcx rbx rsi rdi r15] +[rax]
nop
;; size=38 bbWeight=0.50 PerfScore 5.62
G_M7824_IG06: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 8
pop rbx
pop r14
pop r15
pop rbp
ret
;; size=11 bbWeight=0.50 PerfScore 1.62
-; Total bytes of code 138, prolog size 12, PerfScore 24.12, instruction count 43, allocated bytes for code 138 (MethodHash=69cae16f) for method System.Reflection.TypeLoading.RoModule:GetUniqueArrayType(System.Reflection.TypeLoading.RoType,int):System.Reflection.TypeLoading.RoArrayType:this (FullOpts)
+; Total bytes of code 147, prolog size 12, PerfScore 24.25, instruction count 44, allocated bytes for code 147 (MethodHash=69cae16f) for method System.Reflection.TypeLoading.RoModule:GetUniqueArrayType(System.Reflection.TypeLoading.RoType,int):System.Reflection.TypeLoading.RoArrayType:this (FullOpts)
; ============================================================