-41 (-77.36 % of base) - System.Array+SorterGenericArray:.ctor(System.Array,System.Array,System.Collections.IComparer):this
; Assembly listing for method System.Array+SorterGenericArray:.ctor(System.Array,System.Array,System.Collections.IComparer):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 5 ) byref -> rbx this single-def
+; V00 this [V00,T00] ( 5, 5 ) byref -> rdi this single-def
; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rsi class-hnd single-def <System.Array>
-; V02 arg2 [V02,T02] ( 3, 3 ) ref -> r15 class-hnd single-def <System.Array>
-; V03 arg3 [V03,T03] ( 3, 3 ) ref -> r14 class-hnd single-def <System.Collections.IComparer>
+; V02 arg2 [V02,T02] ( 3, 3 ) ref -> rdx class-hnd single-def <System.Array>
+; V03 arg3 [V03,T03] ( 3, 3 ) ref -> rcx class-hnd single-def <System.Collections.IComparer>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 0
G_M26553_IG01:
- push r15
- push r14
- push rbx
- mov rbx, rdi
- mov r15, rdx
- mov r14, rcx
- ;; size=14 bbWeight=1 PerfScore 3.75
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M26553_IG02:
- mov rdi, rbx
- call CORINFO_HELP_CHECKED_ASSIGN_REF
- lea rdi, bword ptr [rbx+0x08]
- mov rsi, r15
- call CORINFO_HELP_CHECKED_ASSIGN_REF
- lea rdi, bword ptr [rbx+0x10]
- mov rsi, r14
- call CORINFO_HELP_CHECKED_ASSIGN_REF
- nop
- ;; size=33 bbWeight=1 PerfScore 5.00
+ mov gword ptr [rdi], rsi
+ mov gword ptr [rdi+0x08], rdx
+ mov gword ptr [rdi+0x10], rcx
+ ;; size=11 bbWeight=1 PerfScore 3.00
G_M26553_IG03:
- pop rbx
- pop r14
- pop r15
ret
- ;; size=6 bbWeight=1 PerfScore 2.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 53, prolog size 5, PerfScore 11.25, instruction count 19, allocated bytes for code 53 (MethodHash=6b259846) for method System.Array+SorterGenericArray:.ctor(System.Array,System.Array,System.Collections.IComparer):this (FullOpts)
+; Total bytes of code 12, prolog size 0, PerfScore 4.00, instruction count 4, allocated bytes for code 12 (MethodHash=6b259846) for method System.Array+SorterGenericArray:.ctor(System.Array,System.Array,System.Collections.IComparer):this (FullOpts)
-41 (-77.36 % of base) - System.Array+SorterObjectArray:.ctor(System.Object[],System.Object[],System.Collections.IComparer):this
; Assembly listing for method System.Array+SorterObjectArray:.ctor(System.Object[],System.Object[],System.Collections.IComparer):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 5 ) byref -> rbx this single-def
+; V00 this [V00,T00] ( 5, 5 ) byref -> rdi this single-def
; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rsi class-hnd single-def <System.Object[]>
-; V02 arg2 [V02,T02] ( 3, 3 ) ref -> r15 class-hnd single-def <System.Object[]>
-; V03 arg3 [V03,T03] ( 3, 3 ) ref -> r14 class-hnd single-def <System.Collections.IComparer>
+; V02 arg2 [V02,T02] ( 3, 3 ) ref -> rdx class-hnd single-def <System.Object[]>
+; V03 arg3 [V03,T03] ( 3, 3 ) ref -> rcx class-hnd single-def <System.Collections.IComparer>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 0
G_M55325_IG01:
- push r15
- push r14
- push rbx
- mov rbx, rdi
- mov r15, rdx
- mov r14, rcx
- ;; size=14 bbWeight=1 PerfScore 3.75
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M55325_IG02:
- mov rdi, rbx
- call CORINFO_HELP_CHECKED_ASSIGN_REF
- lea rdi, bword ptr [rbx+0x08]
- mov rsi, r15
- call CORINFO_HELP_CHECKED_ASSIGN_REF
- lea rdi, bword ptr [rbx+0x10]
- mov rsi, r14
- call CORINFO_HELP_CHECKED_ASSIGN_REF
- nop
- ;; size=33 bbWeight=1 PerfScore 5.00
+ mov gword ptr [rdi], rsi
+ mov gword ptr [rdi+0x08], rdx
+ mov gword ptr [rdi+0x10], rcx
+ ;; size=11 bbWeight=1 PerfScore 3.00
G_M55325_IG03:
- pop rbx
- pop r14
- pop r15
ret
- ;; size=6 bbWeight=1 PerfScore 2.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 53, prolog size 5, PerfScore 11.25, instruction count 19, allocated bytes for code 53 (MethodHash=115e27e2) for method System.Array+SorterObjectArray:.ctor(System.Object[],System.Object[],System.Collections.IComparer):this (FullOpts)
+; Total bytes of code 12, prolog size 0, PerfScore 4.00, instruction count 4, allocated bytes for code 12 (MethodHash=115e27e2) for method System.Array+SorterObjectArray:.ctor(System.Object[],System.Object[],System.Collections.IComparer):this (FullOpts)
-36 (-7.07 % of base) - System.DateTimeParse:ExpandPredefinedFormat(ushort,byref,byref,byref):System.String
; Assembly listing for method System.DateTimeParse:ExpandPredefinedFormat(ushort,byref,byref,byref):System.String (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 arg0 [V00,T04] ( 3, 3 ) ushort -> rdi single-def
; V01 arg1 [V01,T00] ( 9, 6 ) byref -> rbx single-def
; V02 arg2 [V02,T02] ( 6, 4 ) byref -> r14 single-def
; V03 arg3 [V03,T01] ( 9, 5.50) byref -> r15 single-def
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V05 tmp1 [V05,T06] ( 3, 3 ) byref -> rdi single-def "dup spill"
;* V06 tmp2 [V06 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" <System.TimeSpan>
; V07 tmp3 [V07,T07] ( 3, 3 ) byref -> r15 single-def "dup spill"
;* V08 tmp4 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Object>
; V09 tmp5 [V09,T10] ( 2, 2 ) byref -> rdi single-def "dup spill"
; V10 tmp6 [V10,T11] ( 2, 2 ) byref -> rdi single-def "dup spill"
;* V11 tmp7 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" <System.Globalization.DateTimeFormatInfo>
;* V12 tmp8 [V12,T18] ( 0, 0 ) long -> zero-ref "field V06._ticks (fldOffset=0x0)" P-INDEP
; V13 tmp9 [V13,T09] ( 3, 2 ) ref -> rax single-def "argument with side effect"
; V14 tmp10 [V14,T12] ( 2, 2 ) ref -> rsi single-def "argument with side effect"
; V15 tmp11 [V15,T13] ( 2, 2 ) ref -> r14 single-def "argument with side effect"
; V16 cse0 [V16,T15] ( 3, 1.50) int -> rsi "CSE #03: moderate"
; V17 cse1 [V17,T16] ( 3, 1.50) int -> rsi "CSE #05: moderate"
; V18 cse2 [V18,T03] ( 7, 5 ) int -> r13 "CSE #01: aggressive"
; V19 cse3 [V19,T14] ( 3, 1.50) ref -> rdi "CSE #06: moderate"
; V20 rat0 [V20,T05] ( 4, 3.50) ref -> rsi "replacement local"
; V21 rat1 [V21,T17] ( 3, 1 ) long -> rdi "CSE for expectedClsNode"
; V22 rat2 [V22,T08] ( 3, 2.88) int -> r12 "ReplaceWithLclVar is creating a new local variable"
;
; Lcl frame size = 8
G_M44728_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov rbx, rsi
mov r14, rdx
mov r15, rcx
;; size=25 bbWeight=1 PerfScore 8.25
G_M44728_IG02:
movzx r13, di
cmp r13d, 82
ja SHORT G_M44728_IG04
;; size=10 bbWeight=1 PerfScore 1.50
G_M44728_IG03:
cmp r13d, 79
je G_M44728_IG10
cmp r13d, 82
je G_M44728_IG11
jmp G_M44728_IG12
;; size=25 bbWeight=0.50 PerfScore 2.25
G_M44728_IG04:
cmp r13d, 85
je SHORT G_M44728_IG06
lea r12d, [r13-0x6F]
cmp r12d, 6
ja G_M44728_IG12
;; size=20 bbWeight=0.50 PerfScore 1.50
G_M44728_IG05:
mov eax, r12d
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rax]
lea rdx, G_M44728_IG02
add rcx, rdx
jmp rcx
;; size=25 bbWeight=0.44 PerfScore 2.62
G_M44728_IG06:
mov rax, 0xD1FFAB1E ; code for System.Globalization.GregorianCalendar:GetDefaultInstance():System.Globalization.Calendar
call [rax]System.Globalization.GregorianCalendar:GetDefaultInstance():System.Globalization.Calendar
- mov rsi, rax
- mov rdi, r14
- call CORINFO_HELP_CHECKED_ASSIGN_REF
+ mov gword ptr [r14], rax
lea rdi, bword ptr [r15+0x2C]
or dword ptr [rdi], 256
xor edi, edi
mov qword ptr [r15+0x38], rdi
add r15, 44
or dword ptr [r15], 512
mov rdi, gword ptr [rbx]
mov rax, gword ptr [rdi+0x90]
mov rcx, 0xD1FFAB1E ; System.Globalization.GregorianCalendar
cmp qword ptr [rax], rcx
je G_M44728_IG12
mov rax, 0xD1FFAB1E ; code for System.Globalization.DateTimeFormatInfo:Clone():System.Object:this
call [rax]System.Globalization.DateTimeFormatInfo:Clone():System.Object:this
mov rsi, rax
test rsi, rsi
je SHORT G_M44728_IG08
- ;; size=99 bbWeight=0.50 PerfScore 12.88
+ ;; size=91 bbWeight=0.50 PerfScore 12.62
G_M44728_IG07:
mov rdi, 0xD1FFAB1E ; System.Globalization.DateTimeFormatInfo
cmp qword ptr [rsi], rdi
jne G_M44728_IG14
;; size=19 bbWeight=0.25 PerfScore 1.06
G_M44728_IG08:
mov rdi, rbx
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov r14, gword ptr [rbx]
mov rax, 0xD1FFAB1E ; code for System.Globalization.GregorianCalendar:GetDefaultInstance():System.Globalization.Calendar
call [rax]System.Globalization.GregorianCalendar:GetDefaultInstance():System.Globalization.Calendar
mov rsi, rax
mov rdi, r14
mov rax, 0xD1FFAB1E ; code for System.Globalization.DateTimeFormatInfo:set_Calendar(System.Globalization.Calendar):this
cmp dword ptr [rdi], edi
call [rax]System.Globalization.DateTimeFormatInfo:set_Calendar(System.Globalization.Calendar):this
jmp G_M44728_IG12
;; size=48 bbWeight=0.50 PerfScore 7.62
G_M44728_IG09:
mov rax, 0xD1FFAB1E ; code for System.Globalization.GregorianCalendar:GetDefaultInstance():System.Globalization.Calendar
call [rax]System.Globalization.GregorianCalendar:GetDefaultInstance():System.Globalization.Calendar
- mov rsi, rax
- mov rdi, r14
- call CORINFO_HELP_CHECKED_ASSIGN_REF
+ mov gword ptr [r14], rax
mov rdi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rdi]
mov rdi, rbx
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov esi, dword ptr [r15+0x2C]
test esi, 0x800
- je G_M44728_IG12
+ je SHORT G_M44728_IG12
lea rdi, bword ptr [r15+0x2C]
or esi, 0x4000
mov dword ptr [rdi], esi
jmp SHORT G_M44728_IG12
- ;; size=74 bbWeight=0.50 PerfScore 7.62
+ ;; size=62 bbWeight=0.50 PerfScore 7.38
G_M44728_IG10:
mov rax, 0xD1FFAB1E ; code for System.Globalization.GregorianCalendar:GetDefaultInstance():System.Globalization.Calendar
call [rax]System.Globalization.GregorianCalendar:GetDefaultInstance():System.Globalization.Calendar
- mov rsi, rax
- mov rdi, r14
- call CORINFO_HELP_CHECKED_ASSIGN_REF
+ mov gword ptr [r14], rax
mov rdi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rdi]
mov rdi, rbx
call CORINFO_HELP_CHECKED_ASSIGN_REF
jmp SHORT G_M44728_IG12
- ;; size=46 bbWeight=0.50 PerfScore 5.12
+ ;; size=38 bbWeight=0.50 PerfScore 4.88
G_M44728_IG11:
mov rax, 0xD1FFAB1E ; code for System.Globalization.GregorianCalendar:GetDefaultInstance():System.Globalization.Calendar
call [rax]System.Globalization.GregorianCalendar:GetDefaultInstance():System.Globalization.Calendar
- mov rsi, rax
- mov rdi, r14
- call CORINFO_HELP_CHECKED_ASSIGN_REF
+ mov gword ptr [r14], rax
mov rdi, 0xD1FFAB1E ; const ptr
mov rsi, gword ptr [rdi]
mov rdi, rbx
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov esi, dword ptr [r15+0x2C]
test esi, 0x800
je SHORT G_M44728_IG12
lea rdi, bword ptr [r15+0x2C]
or esi, 0x2000
mov dword ptr [rdi], esi
- ;; size=68 bbWeight=0.50 PerfScore 6.62
+ ;; size=60 bbWeight=0.50 PerfScore 6.38
G_M44728_IG12:
mov rsi, gword ptr [rbx]
mov edi, r13d
mov rax, 0xD1FFAB1E ; code for System.DateTimeFormat:ExpandStandardFormatToCustomPattern(ushort,System.Globalization.DateTimeFormatInfo):System.String
call [rax]System.DateTimeFormat:ExpandStandardFormatToCustomPattern(ushort,System.Globalization.DateTimeFormatInfo):System.String
nop
;; size=19 bbWeight=1 PerfScore 5.75
G_M44728_IG13:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
;; size=15 bbWeight=1 PerfScore 4.25
G_M44728_IG14:
mov rsi, rax
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS
call [rax]CORINFO_HELP_CHKCASTCLASS
int3
;; size=16 bbWeight=0 PerfScore 0.00
RWD00 dd G_M44728_IG10 - G_M44728_IG02
dd G_M44728_IG12 - G_M44728_IG02
dd G_M44728_IG12 - G_M44728_IG02
dd G_M44728_IG11 - G_M44728_IG02
dd G_M44728_IG10 - G_M44728_IG02
dd G_M44728_IG12 - G_M44728_IG02
dd G_M44728_IG09 - G_M44728_IG02
-; Total bytes of code 509, prolog size 16, PerfScore 67.06, instruction count 123, allocated bytes for code 509 (MethodHash=d2f95147) for method System.DateTimeParse:ExpandPredefinedFormat(ushort,byref,byref,byref):System.String (FullOpts)
+; Total bytes of code 473, prolog size 16, PerfScore 66.06, instruction count 115, allocated bytes for code 473 (MethodHash=d2f95147) for method System.DateTimeParse:ExpandPredefinedFormat(ushort,byref,byref,byref):System.String (FullOpts)
-24 (-5.63 % of base) - System.Security.Cryptography.XmlKeyHelper+ParseState:GetValue(System.String):System.String:this
; Assembly listing for method System.Security.Cryptography.XmlKeyHelper+ParseState:GetValue(System.String):System.String:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 4 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 19, 18.50) byref -> rbx this single-def
; V01 arg1 [V01,T02] ( 6, 10 ) ref -> r15 class-hnd single-def <System.String>
; V02 loc0 [V02,T06] ( 4, 7 ) int -> r14
; V03 loc1 [V03,T01] ( 7, 15.50) int -> r13
; V04 loc2 [V04,T03] ( 5, 10 ) ref -> rsi class-hnd exact <System.String>
;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 tmp1 [V06,T04] ( 2, 4 ) ubyte -> rax "Inline return value spill temp"
; V07 tmp2 [V07,T05] ( 2, 8 ) byref -> rdi "impAppendStmt"
;* V08 tmp3 [V08 ] ( 0, 0 ) ref -> zero-ref "Single return block return value"
; V09 cse0 [V09,T07] ( 3, 6 ) int -> r12 "CSE #02: aggressive"
; V10 cse1 [V10,T08] ( 3, 2.50) ref -> rdi "CSE #01: aggressive"
;
; Lcl frame size = 8
G_M48016_IG01:
push rbp
push r15
push r14
push r13
push r12
push rbx
push rax
lea rbp, [rsp+0x30]
mov rbx, rdi
mov r15, rsi
;; size=22 bbWeight=1 PerfScore 8.00
G_M48016_IG02:
mov rdi, gword ptr [rbx]
test rdi, rdi
je SHORT G_M48016_IG06
;; size=8 bbWeight=1 PerfScore 3.25
G_M48016_IG03:
cmp gword ptr [rbx+0x08], 0
jne SHORT G_M48016_IG04
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this
call [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this
- lea rdi, bword ptr [rbx+0x08]
- mov rsi, rax
- call CORINFO_HELP_CHECKED_ASSIGN_REF
- ;; size=32 bbWeight=0.50 PerfScore 4.50
+ mov gword ptr [rbx+0x08], rax
+ ;; size=24 bbWeight=0.50 PerfScore 4.12
G_M48016_IG04:
mov r14d, dword ptr [rbx+0x10]
mov r13d, r14d
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
jne SHORT G_M48016_IG08
mov r13d, -1
mov rdi, gword ptr [rbx]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this
call [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this
- lea rdi, bword ptr [rbx+0x08]
- mov rsi, rax
- call CORINFO_HELP_CHECKED_ASSIGN_REF
+ mov gword ptr [rbx+0x08], rax
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
jne SHORT G_M48016_IG08
- ;; size=83 bbWeight=0.50 PerfScore 11.25
+ ;; size=75 bbWeight=0.50 PerfScore 10.88
G_M48016_IG05:
xor rax, rax
mov gword ptr [rbx], rax
;; size=5 bbWeight=0.50 PerfScore 0.62
G_M48016_IG06:
xor rax, rax
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M48016_IG07:
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_M48016_IG08:
inc r13d
cmp r13d, r14d
je SHORT G_M48016_IG06
;; size=8 bbWeight=4 PerfScore 6.00
G_M48016_IG09:
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:get_Current():System.Object:this
call [r11]System.Collections.IEnumerator:get_Current():System.Object:this
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.XmlKeyHelper+ParseState+Functions:GetLocalName(System.Object):System.String
call [rax]System.Security.Cryptography.XmlKeyHelper+ParseState+Functions:GetLocalName(System.Object):System.String
mov rsi, rax
cmp r15, rsi
jne SHORT G_M48016_IG12
;; size=40 bbWeight=2 PerfScore 20.50
G_M48016_IG10:
mov dword ptr [rbx+0x10], r13d
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:get_Current():System.Object:this
call [r11]System.Collections.IEnumerator:get_Current():System.Object:this
mov rdi, rax
mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.XmlKeyHelper+ParseState+Functions:GetValue(System.Object):System.String
;; size=34 bbWeight=0.50 PerfScore 3.38
G_M48016_IG11:
add rsp, 8
pop rbx
pop r12
pop r13
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Security.Cryptography.XmlKeyHelper+ParseState+Functions:GetValue(System.Object):System.String
;; size=17 bbWeight=0.50 PerfScore 2.62
G_M48016_IG12:
test r15, r15
je SHORT G_M48016_IG13
test rsi, rsi
je SHORT G_M48016_IG13
mov r12d, dword ptr [r15+0x08]
cmp r12d, dword ptr [rsi+0x08]
je SHORT G_M48016_IG15
;; size=20 bbWeight=2 PerfScore 17.00
G_M48016_IG13:
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
jne G_M48016_IG08
mov r13d, -1
test r14d, r14d
jge SHORT G_M48016_IG16
;; size=36 bbWeight=2 PerfScore 16.00
G_M48016_IG14:
xor rdx, rdx
mov gword ptr [rbx+0x08], rdx
jmp G_M48016_IG06
;; size=11 bbWeight=0.50 PerfScore 1.62
G_M48016_IG15:
lea rdi, bword ptr [r15+0x0C]
add r12d, r12d
mov edx, r12d
add rsi, 12
mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte
test eax, eax
je SHORT G_M48016_IG13
jmp G_M48016_IG10
;; size=35 bbWeight=2 PerfScore 15.50
G_M48016_IG16:
mov rdi, gword ptr [rbx]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this
call [r11]System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this
- lea rdi, bword ptr [rbx+0x08]
- mov rsi, rax
- call CORINFO_HELP_CHECKED_ASSIGN_REF
+ mov gword ptr [rbx+0x08], rax
mov rdi, gword ptr [rbx+0x08]
mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
test eax, eax
jne G_M48016_IG08
jmp G_M48016_IG05
- ;; size=58 bbWeight=2 PerfScore 31.00
+ ;; size=50 bbWeight=2 PerfScore 29.50
-; Total bytes of code 426, prolog size 16, PerfScore 143.50, instruction count 115, allocated bytes for code 426 (MethodHash=823d446f) for method System.Security.Cryptography.XmlKeyHelper+ParseState:GetValue(System.String):System.String:this (FullOpts)
+; Total bytes of code 402, prolog size 16, PerfScore 141.25, instruction count 109, allocated bytes for code 402 (MethodHash=823d446f) for method System.Security.Cryptography.XmlKeyHelper+ParseState:GetValue(System.String):System.String:this (FullOpts)
-13 (-36.11 % of base) - System.Net.WebUtility+UrlDecoder:.ctor(int,System.Text.Encoding):this
; Assembly listing for method System.Net.WebUtility+UrlDecoder:.ctor(int,System.Text.Encoding):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 8, 8 ) byref -> rbx this single-def
+; V00 this [V00,T00] ( 8, 8 ) byref -> rdi this single-def
; V01 arg1 [V01,T02] ( 3, 3 ) int -> rsi single-def
; V02 arg2 [V02,T01] ( 3, 3 ) ref -> rdx class-hnd single-def <System.Text.Encoding>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 0
G_M57609_IG01:
- push rbx
- mov rbx, rdi
- ;; size=4 bbWeight=1 PerfScore 1.25
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M57609_IG02:
- mov dword ptr [rbx+0x18], esi
- lea rdi, bword ptr [rbx+0x10]
- mov rsi, rdx
- call CORINFO_HELP_CHECKED_ASSIGN_REF
+ mov dword ptr [rdi+0x18], esi
+ mov gword ptr [rdi+0x10], rdx
xor rax, rax
- mov gword ptr [rbx], rax
- ;; size=20 bbWeight=1 PerfScore 4.00
+ mov gword ptr [rdi], rax
+ ;; size=12 bbWeight=1 PerfScore 3.25
G_M57609_IG03:
- mov dword ptr [rbx+0x1C], eax
+ mov dword ptr [rdi+0x1C], eax
;; size=3 bbWeight=1 PerfScore 1.00
G_M57609_IG04:
- mov dword ptr [rbx+0x20], eax
+ mov dword ptr [rdi+0x20], eax
;; size=3 bbWeight=1 PerfScore 1.00
G_M57609_IG05:
- mov gword ptr [rbx+0x08], rax
+ mov gword ptr [rdi+0x08], rax
;; size=4 bbWeight=1 PerfScore 1.00
G_M57609_IG06:
- pop rbx
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 36, prolog size 1, PerfScore 9.75, instruction count 13, allocated bytes for code 36 (MethodHash=47051ef6) for method System.Net.WebUtility+UrlDecoder:.ctor(int,System.Text.Encoding):this (FullOpts)
+; Total bytes of code 23, prolog size 0, PerfScore 7.25, instruction count 8, allocated bytes for code 23 (MethodHash=47051ef6) for method System.Net.WebUtility+UrlDecoder:.ctor(int,System.Text.Encoding):this (FullOpts)
-11 (-5.61 % of base) - System.Net.NetworkInformation.UnixIPGlobalProperties+Context:AddException(System.Exception):this
; Assembly listing for method System.Net.NetworkInformation.UnixIPGlobalProperties+Context:AddException(System.Exception):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; fully interruptible
; No PGO data
; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T01] ( 5, 4.50) byref -> rbx this single-def
; V01 arg1 [V01,T02] ( 4, 3 ) ref -> r15 class-hnd single-def <System.Exception>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V03 tmp1 [V03,T04] ( 3, 3 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.Exception]>
; V04 tmp2 [V04,T00] ( 7, 12 ) ref -> rdi class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Exception]>
; V05 tmp3 [V05,T05] ( 3, 2.50) ref -> rdx class-hnd single-def "Inline stloc first use temp" <System.Exception[]>
; V06 tmp4 [V06,T03] ( 4, 3 ) int -> rsi "Inline stloc first use temp"
;
; Lcl frame size = 8
G_M6204_IG01:
push rbp
push r15
push r14
push rbx
push rax
lea rbp, [rsp+0x20]
mov rbx, rdi
mov r15, rsi
;; size=18 bbWeight=1 PerfScore 6.00
G_M6204_IG02:
cmp gword ptr [rbx+0x08], 0
jne SHORT G_M6204_IG05
;; size=7 bbWeight=1 PerfScore 4.00
G_M6204_IG03:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Exception]
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov rdi, 0xD1FFAB1E ; global ptr
test byte ptr [rdi], 1
je SHORT G_M6204_IG10
;; size=33 bbWeight=0.50 PerfScore 2.88
G_M6204_IG04:
mov rdi, 0xD1FFAB1E ; data for System.Collections.Generic.List`1[System.Exception]:s_emptyArray
mov rsi, gword ptr [rdi]
lea rdi, bword ptr [r14+0x08]
call CORINFO_HELP_ASSIGN_REF
- lea rdi, bword ptr [rbx+0x08]
- mov rsi, r14
- call CORINFO_HELP_CHECKED_ASSIGN_REF
- ;; size=34 bbWeight=0.50 PerfScore 2.75
+ mov gword ptr [rbx+0x08], r14
+ ;; size=26 bbWeight=0.50 PerfScore 2.38
G_M6204_IG05:
mov rdi, gword ptr [rbx+0x08]
inc dword ptr [rdi+0x14]
mov rdx, gword ptr [rdi+0x08]
mov esi, dword ptr [rdi+0x10]
cmp dword ptr [rdx+0x08], esi
jbe SHORT G_M6204_IG08
;; size=19 bbWeight=1 PerfScore 13.00
G_M6204_IG06:
lea eax, [rsi+0x01]
mov dword ptr [rdi+0x10], eax
movsxd rsi, esi
mov rdi, rdx
mov rdx, r15
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST
call [rax]CORINFO_HELP_ARRADDR_ST
nop
;; size=28 bbWeight=0.50 PerfScore 2.88
G_M6204_IG07:
add rsp, 8
pop rbx
pop r14
pop r15
pop rbp
ret
;; size=11 bbWeight=0.50 PerfScore 1.62
G_M6204_IG08:
mov rsi, r15
mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
;; size=13 bbWeight=0.50 PerfScore 0.25
G_M6204_IG09:
add rsp, 8
pop rbx
pop r14
pop r15
pop rbp
tail.jmp [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this
;; size=13 bbWeight=0.50 PerfScore 2.12
G_M6204_IG10:
mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.Exception]
call CORINFO_HELP_GET_GCSTATIC_BASE
- jmp G_M6204_IG04
- ;; size=20 bbWeight=0 PerfScore 0.00
+ jmp SHORT G_M6204_IG04
+ ;; size=17 bbWeight=0 PerfScore 0.00
-; Total bytes of code 196, prolog size 18, PerfScore 35.50, instruction count 54, allocated bytes for code 196 (MethodHash=6fcbe7c3) for method System.Net.NetworkInformation.UnixIPGlobalProperties+Context:AddException(System.Exception):this (FullOpts)
+; Total bytes of code 185, prolog size 18, PerfScore 35.12, instruction count 52, allocated bytes for code 185 (MethodHash=6fcbe7c3) for method System.Net.NetworkInformation.UnixIPGlobalProperties+Context:AddException(System.Exception):this (FullOpts)
-10 (-35.71 % of base) - System.Diagnostics.Tracing.PropertyValue:.ctor(System.Object):this
; Assembly listing for method System.Diagnostics.Tracing.PropertyValue:.ctor(System.Object):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 5 ) byref -> rbx this single-def
+; V00 this [V00,T00] ( 5, 5 ) byref -> rdi this single-def
; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rsi class-hnd single-def <System.Object>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 0
G_M33264_IG01:
- push rbx
- mov rbx, rdi
- ;; size=4 bbWeight=1 PerfScore 1.25
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M33264_IG02:
- mov rdi, rbx
- call CORINFO_HELP_CHECKED_ASSIGN_REF
+ mov gword ptr [rdi], rsi
vxorps xmm0, xmm0, xmm0
- vmovdqu xmmword ptr [rbx+0x10], xmm0
+ vmovdqu xmmword ptr [rdi+0x10], xmm0
xor eax, eax
- mov dword ptr [rbx+0x08], eax
- ;; size=22 bbWeight=1 PerfScore 4.83
+ mov dword ptr [rdi+0x08], eax
+ ;; size=17 bbWeight=1 PerfScore 4.58
G_M33264_IG03:
- pop rbx
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 28, prolog size 1, PerfScore 7.58, instruction count 10, allocated bytes for code 28 (MethodHash=421d7e0f) for method System.Diagnostics.Tracing.PropertyValue:.ctor(System.Object):this (FullOpts)
+; Total bytes of code 18, prolog size 0, PerfScore 5.58, instruction count 6, allocated bytes for code 18 (MethodHash=421d7e0f) for method System.Diagnostics.Tracing.PropertyValue:.ctor(System.Object):this (FullOpts)
-10 (-27.03 % of base) - System.ParsingInfo:.ctor(System.Globalization.Calendar):this
; Assembly listing for method System.ParsingInfo:.ctor(System.Globalization.Calendar):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 7, 7 ) byref -> rbx this single-def
+; V00 this [V00,T00] ( 7, 7 ) byref -> rdi this single-def
; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rsi class-hnd single-def <System.Globalization.Calendar>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 0
G_M25598_IG01:
- push rbx
- mov rbx, rdi
- ;; size=4 bbWeight=1 PerfScore 1.25
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M25598_IG02:
- xor edi, edi
- mov dword ptr [rbx+0x10], edi
- mov byte ptr [rbx+0x14], 0
- mov rdi, rbx
- call CORINFO_HELP_CHECKED_ASSIGN_REF
- mov dword ptr [rbx+0x08], -1
- mov dword ptr [rbx+0x0C], -1
- ;; size=31 bbWeight=1 PerfScore 5.50
+ xor eax, eax
+ mov dword ptr [rdi+0x10], eax
+ mov byte ptr [rdi+0x14], 0
+ mov gword ptr [rdi], rsi
+ mov dword ptr [rdi+0x08], -1
+ mov dword ptr [rdi+0x0C], -1
+ ;; size=26 bbWeight=1 PerfScore 5.25
G_M25598_IG03:
- pop rbx
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 37, prolog size 1, PerfScore 8.25, instruction count 11, allocated bytes for code 37 (MethodHash=3cb49c01) for method System.ParsingInfo:.ctor(System.Globalization.Calendar):this (FullOpts)
+; Total bytes of code 27, prolog size 0, PerfScore 6.25, instruction count 7, allocated bytes for code 27 (MethodHash=3cb49c01) for method System.ParsingInfo:.ctor(System.Globalization.Calendar):this (FullOpts)
-10 (-38.46 % of base) - System.TimeZoneInfo+StringSerializer:.ctor(System.String):this
; Assembly listing for method System.TimeZoneInfo+StringSerializer:.ctor(System.String):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
-; V00 this [V00,T00] ( 5, 5 ) byref -> rbx this single-def
+; V00 this [V00,T00] ( 5, 5 ) byref -> rdi this single-def
; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rsi class-hnd single-def <System.String>
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 0
G_M39859_IG01:
- push rbx
- mov rbx, rdi
- ;; size=4 bbWeight=1 PerfScore 1.25
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M39859_IG02:
- mov rdi, rbx
- call CORINFO_HELP_CHECKED_ASSIGN_REF
+ mov gword ptr [rdi], rsi
xor eax, eax
- mov dword ptr [rbx+0x08], eax
- mov dword ptr [rbx+0x0C], 2
- ;; size=20 bbWeight=1 PerfScore 3.50
+ mov dword ptr [rdi+0x08], eax
+ mov dword ptr [rdi+0x0C], 2
+ ;; size=15 bbWeight=1 PerfScore 3.25
G_M39859_IG03:
- pop rbx
ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 26, prolog size 1, PerfScore 6.25, instruction count 9, allocated bytes for code 26 (MethodHash=d646644c) for method System.TimeZoneInfo+StringSerializer:.ctor(System.String):this (FullOpts)
+; Total bytes of code 16, prolog size 0, PerfScore 4.25, instruction count 5, allocated bytes for code 16 (MethodHash=d646644c) for method System.TimeZoneInfo+StringSerializer:.ctor(System.String):this (FullOpts)
-9 (-7.14 % of base) - System.Reflection.PortableExecutable.PEBinaryReader:.ctor(System.IO.Stream,int):this
; Assembly listing for method System.Reflection.PortableExecutable.PEBinaryReader:.ctor(System.IO.Stream,int):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - 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,T00] ( 6, 6 ) byref -> rbx this single-def
; V01 arg1 [V01,T01] ( 5, 5 ) ref -> r15 class-hnd single-def <System.IO.Stream>
; V02 arg2 [V02,T03] ( 3, 3 ) int -> r14 single-def
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T02] ( 3, 6 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" <System.IO.BinaryReader>
;
; Lcl frame size = 8
G_M36073_IG01:
push rbp
push r15
push r14
push rbx
push rax
lea rbp, [rsp+0x20]
mov rbx, rdi
mov r15, rsi
mov r14d, edx
;; size=21 bbWeight=1 PerfScore 6.25
G_M36073_IG02:
mov rdi, r15
mov rax, qword ptr [r15]
mov rax, qword ptr [rax+0x48]
call [rax+0x10]System.IO.Stream:get_Position():long:this
mov qword ptr [rbx+0x08], rax
movsxd rdi, r14d
add rdi, qword ptr [rbx+0x08]
mov qword ptr [rbx+0x10], rdi
mov rdi, 0xD1FFAB1E ; System.IO.BinaryReader
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov rdx, 0xD1FFAB1E ; const ptr
mov rdx, gword ptr [rdx]
mov rdi, r14
mov rsi, r15
mov ecx, 1
mov rax, 0xD1FFAB1E ; code for System.IO.BinaryReader:.ctor(System.IO.Stream,System.Text.Encoding,ubyte):this
call [rax]System.IO.BinaryReader:.ctor(System.IO.Stream,System.Text.Encoding,ubyte):this
- mov rdi, rbx
- mov rsi, r14
- call CORINFO_HELP_CHECKED_ASSIGN_REF
- nop
- ;; size=94 bbWeight=1 PerfScore 22.00
+ mov gword ptr [rbx], r14
+ ;; size=85 bbWeight=1 PerfScore 21.25
G_M36073_IG03:
add rsp, 8
pop rbx
pop r14
pop r15
pop rbp
ret
;; size=11 bbWeight=1 PerfScore 3.25
-; Total bytes of code 126, prolog size 12, PerfScore 31.50, instruction count 37, allocated bytes for code 126 (MethodHash=3c457316) for method System.Reflection.PortableExecutable.PEBinaryReader:.ctor(System.IO.Stream,int):this (FullOpts)
+; Total bytes of code 117, prolog size 12, PerfScore 30.75, instruction count 34, allocated bytes for code 117 (MethodHash=3c457316) for method System.Reflection.PortableExecutable.PEBinaryReader:.ctor(System.IO.Stream,int):this (FullOpts)
-9 (-69.23 % of base) - System.Threading.Volatile:Write[System.__Canon](byref,System.__Canon)
; Assembly listing for method System.Threading.Volatile:Write[System.__Canon](byref,System.__Canon) (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
;* V00 TypeCtx [V00 ] ( 0, 0 ) long -> zero-ref single-def
-; V01 arg0 [V01,T00] ( 3, 3 ) byref -> rdi single-def
+; V01 arg0 [V01,T00] ( 3, 3 ) byref -> rsi single-def
; V02 arg1 [V02,T01] ( 3, 3 ) ref -> rdx class-hnd single-def <System.__Canon>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;
; Lcl frame size = 0
G_M37111_IG01:
- mov rdi, rsi
- ;; size=3 bbWeight=1 PerfScore 0.25
+ ;; size=0 bbWeight=1 PerfScore 0.00
G_M37111_IG02:
- mov rsi, rdx
- call CORINFO_HELP_CHECKED_ASSIGN_REF
- nop
- ;; size=9 bbWeight=1 PerfScore 1.50
+ mov gword ptr [rsi], rdx
+ ;; size=3 bbWeight=1 PerfScore 1.00
G_M37111_IG03:
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 13, prolog size 0, PerfScore 2.75, instruction count 5, allocated bytes for code 13 (MethodHash=79bd6f08) for method System.Threading.Volatile:Write[System.__Canon](byref,System.__Canon) (FullOpts)
+; Total bytes of code 4, prolog size 0, PerfScore 2.00, instruction count 2, allocated bytes for code 4 (MethodHash=79bd6f08) for method System.Threading.Volatile:Write[System.__Canon](byref,System.__Canon) (FullOpts)
-8 (-5.52 % of base) - System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_2[System.__Canon]:b__2(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this
; Assembly listing for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_2[System.__Canon]:<GetPropertyGetter>b__2(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T02] ( 4, 4 ) ref -> r15 this class-hnd single-def <System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_2[System.__Canon]>
; V01 RetBuf [V01,T00] ( 6, 6 ) byref -> rbx single-def
; V02 arg1 [V02,T10] ( 1, 1 ) struct (32) [rbp+0x10] do-not-enreg[SF] ld-addr-op single-def <System.Diagnostics.Tracing.PropertyValue>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Func`2[System.__Canon,ubyte]>
; V05 tmp2 [V05,T06] ( 2, 4 ) struct (32) [rbp-0x40] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Diagnostics.Tracing.PropertyValue>
;* V06 tmp3 [V06 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Diagnostics.Tracing.PropertyValue+Scalar>
-; V07 tmp4 [V07,T07] ( 2, 4 ) ubyte -> rdx "Inlining Arg"
+; V07 tmp4 [V07,T07] ( 2, 4 ) ubyte -> rax "Inlining Arg"
;* V08 tmp5 [V08 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Diagnostics.Tracing.PropertyValue+Scalar>
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref single-def "V05.[000..008)"
;* V10 tmp7 [V10 ] ( 0, 0 ) int -> zero-ref "V05.[008..012)"
;* V11 tmp8 [V11 ] ( 0, 0 ) ubyte -> zero-ref "V05.[016..017)"
;* V12 tmp9 [V12 ] ( 0, 0 ) ubyte -> zero-ref "V06.[000..001)"
;* V13 tmp10 [V13 ] ( 0, 0 ) ubyte -> zero-ref "V08.[000..001)"
; V14 tmp11 [V14,T05] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
; V15 tmp12 [V15,T03] ( 3, 6 ) ref -> r14 single-def "argument with side effect"
; V16 rat0 [V16,T08] ( 2, 3 ) long -> rdi "Spilling to split statement for tree"
; V17 rat1 [V17,T04] ( 3, 4.50) ref -> rsi "Spilling to split statement for tree"
; V18 rat2 [V18,T01] ( 5, 7.50) ref -> rax "replacement local"
; V19 rat3 [V19,T09] ( 3, 2.50) long -> rdi "CSE for expectedClsNode"
;
; Lcl frame size = 40
G_M22027_IG01:
push rbp
push r15
push r14
push rbx
sub rsp, 40
lea rbp, [rsp+0x40]
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x40], ymm8
mov qword ptr [rbp-0x20], rdi
mov r15, rdi
mov rbx, rsi
;; size=35 bbWeight=1 PerfScore 8.58
G_M22027_IG02:
mov r14, gword ptr [r15+0x08]
mov rdi, qword ptr [r15]
mov rdi, qword ptr [rdi+0x30]
mov rdi, qword ptr [rdi]
mov rdi, qword ptr [rdi]
mov rsi, gword ptr [rbp+0x10]
mov rax, rsi
test rax, rax
je SHORT G_M22027_IG05
;; size=29 bbWeight=1 PerfScore 12.50
G_M22027_IG03:
cmp qword ptr [rax], rdi
je SHORT G_M22027_IG05
;; size=5 bbWeight=0.50 PerfScore 2.00
G_M22027_IG04:
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTANY
call [rax]CORINFO_HELP_CHKCASTANY
;; size=12 bbWeight=0.25 PerfScore 0.81
G_M22027_IG05:
mov rsi, rax
mov rdi, gword ptr [r14+0x08]
call [r14+0x18]System.Func`2[System.__Canon,ubyte]:Invoke(System.__Canon):ubyte:this
- mov edx, eax
vxorps xmm0, xmm0, xmm0
vmovdqu xmmword ptr [rbp-0x30], xmm0
- mov rdi, rbx
- lea rsi, bword ptr [rbp-0x40]
- call CORINFO_HELP_ASSIGN_BYREF
- movsq
- movsq
- movsq
+ ;; size=20 bbWeight=1 PerfScore 6.58
+G_M22027_IG06:
+ vmovdqu ymm0, ymmword ptr [rbp-0x40]
+ vmovdqu ymmword ptr [rbx], ymm0
+ ;; size=9 bbWeight=1 PerfScore 6.00
+G_M22027_IG07:
mov dword ptr [rbx+0x08], 1
- mov byte ptr [rbx+0x10], dl
+ mov byte ptr [rbx+0x10], al
mov rax, rbx
- ;; size=53 bbWeight=1 PerfScore 13.83
-G_M22027_IG06:
+ ;; size=13 bbWeight=1 PerfScore 2.25
+G_M22027_IG08:
+ vzeroupper
add rsp, 40
pop rbx
pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=1 PerfScore 3.25
+ ;; size=14 bbWeight=1 PerfScore 4.25
-; Total bytes of code 145, prolog size 29, PerfScore 40.98, instruction count 45, allocated bytes for code 145 (MethodHash=1b2ba9f4) for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_2[System.__Canon]:<GetPropertyGetter>b__2(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
+; Total bytes of code 137, prolog size 29, PerfScore 42.98, instruction count 41, allocated bytes for code 137 (MethodHash=1b2ba9f4) for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_2[System.__Canon]:<GetPropertyGetter>b__2(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
-8 (-5.52 % of base) - System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_3[System.__Canon]:b__3(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this
; Assembly listing for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_3[System.__Canon]:<GetPropertyGetter>b__3(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T02] ( 4, 4 ) ref -> r15 this class-hnd single-def <System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_3[System.__Canon]>
; V01 RetBuf [V01,T00] ( 6, 6 ) byref -> rbx single-def
; V02 arg1 [V02,T10] ( 1, 1 ) struct (32) [rbp+0x10] do-not-enreg[SF] ld-addr-op single-def <System.Diagnostics.Tracing.PropertyValue>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Func`2[System.__Canon,ubyte]>
; V05 tmp2 [V05,T06] ( 2, 4 ) struct (32) [rbp-0x40] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Diagnostics.Tracing.PropertyValue>
;* V06 tmp3 [V06 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Diagnostics.Tracing.PropertyValue+Scalar>
-; V07 tmp4 [V07,T07] ( 2, 4 ) ubyte -> rdx "Inlining Arg"
+; V07 tmp4 [V07,T07] ( 2, 4 ) ubyte -> rax "Inlining Arg"
;* V08 tmp5 [V08 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Diagnostics.Tracing.PropertyValue+Scalar>
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref single-def "V05.[000..008)"
;* V10 tmp7 [V10 ] ( 0, 0 ) int -> zero-ref "V05.[008..012)"
;* V11 tmp8 [V11 ] ( 0, 0 ) ubyte -> zero-ref "V05.[016..017)"
;* V12 tmp9 [V12 ] ( 0, 0 ) ubyte -> zero-ref "V06.[000..001)"
;* V13 tmp10 [V13 ] ( 0, 0 ) ubyte -> zero-ref "V08.[000..001)"
; V14 tmp11 [V14,T05] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
; V15 tmp12 [V15,T03] ( 3, 6 ) ref -> r14 single-def "argument with side effect"
; V16 rat0 [V16,T08] ( 2, 3 ) long -> rdi "Spilling to split statement for tree"
; V17 rat1 [V17,T04] ( 3, 4.50) ref -> rsi "Spilling to split statement for tree"
; V18 rat2 [V18,T01] ( 5, 7.50) ref -> rax "replacement local"
; V19 rat3 [V19,T09] ( 3, 2.50) long -> rdi "CSE for expectedClsNode"
;
; Lcl frame size = 40
G_M55051_IG01:
push rbp
push r15
push r14
push rbx
sub rsp, 40
lea rbp, [rsp+0x40]
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x40], ymm8
mov qword ptr [rbp-0x20], rdi
mov r15, rdi
mov rbx, rsi
;; size=35 bbWeight=1 PerfScore 8.58
G_M55051_IG02:
mov r14, gword ptr [r15+0x08]
mov rdi, qword ptr [r15]
mov rdi, qword ptr [rdi+0x30]
mov rdi, qword ptr [rdi]
mov rdi, qword ptr [rdi]
mov rsi, gword ptr [rbp+0x10]
mov rax, rsi
test rax, rax
je SHORT G_M55051_IG05
;; size=29 bbWeight=1 PerfScore 12.50
G_M55051_IG03:
cmp qword ptr [rax], rdi
je SHORT G_M55051_IG05
;; size=5 bbWeight=0.50 PerfScore 2.00
G_M55051_IG04:
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTANY
call [rax]CORINFO_HELP_CHKCASTANY
;; size=12 bbWeight=0.25 PerfScore 0.81
G_M55051_IG05:
mov rsi, rax
mov rdi, gword ptr [r14+0x08]
call [r14+0x18]System.Func`2[System.__Canon,ubyte]:Invoke(System.__Canon):ubyte:this
- mov edx, eax
vxorps xmm0, xmm0, xmm0
vmovdqu xmmword ptr [rbp-0x30], xmm0
- mov rdi, rbx
- lea rsi, bword ptr [rbp-0x40]
- call CORINFO_HELP_ASSIGN_BYREF
- movsq
- movsq
- movsq
+ ;; size=20 bbWeight=1 PerfScore 6.58
+G_M55051_IG06:
+ vmovdqu ymm0, ymmword ptr [rbp-0x40]
+ vmovdqu ymmword ptr [rbx], ymm0
+ ;; size=9 bbWeight=1 PerfScore 6.00
+G_M55051_IG07:
mov dword ptr [rbx+0x08], 1
- mov byte ptr [rbx+0x10], dl
+ mov byte ptr [rbx+0x10], al
mov rax, rbx
- ;; size=53 bbWeight=1 PerfScore 13.83
-G_M55051_IG06:
+ ;; size=13 bbWeight=1 PerfScore 2.25
+G_M55051_IG08:
+ vzeroupper
add rsp, 40
pop rbx
pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=1 PerfScore 3.25
+ ;; size=14 bbWeight=1 PerfScore 4.25
-; Total bytes of code 145, prolog size 29, PerfScore 40.98, instruction count 45, allocated bytes for code 145 (MethodHash=d5e128f4) for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_3[System.__Canon]:<GetPropertyGetter>b__3(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
+; Total bytes of code 137, prolog size 29, PerfScore 42.98, instruction count 41, allocated bytes for code 137 (MethodHash=d5e128f4) for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_3[System.__Canon]:<GetPropertyGetter>b__3(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
-8 (-5.52 % of base) - System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_4[System.__Canon]:b__4(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this
; Assembly listing for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_4[System.__Canon]:<GetPropertyGetter>b__4(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T02] ( 4, 4 ) ref -> r15 this class-hnd single-def <System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_4[System.__Canon]>
; V01 RetBuf [V01,T00] ( 6, 6 ) byref -> rbx single-def
; V02 arg1 [V02,T10] ( 1, 1 ) struct (32) [rbp+0x10] do-not-enreg[SF] ld-addr-op single-def <System.Diagnostics.Tracing.PropertyValue>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Func`2[System.__Canon,byte]>
; V05 tmp2 [V05,T06] ( 2, 4 ) struct (32) [rbp-0x40] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Diagnostics.Tracing.PropertyValue>
;* V06 tmp3 [V06 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Diagnostics.Tracing.PropertyValue+Scalar>
-; V07 tmp4 [V07,T07] ( 2, 4 ) byte -> rdx "Inlining Arg"
+; V07 tmp4 [V07,T07] ( 2, 4 ) byte -> rax "Inlining Arg"
;* V08 tmp5 [V08 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Diagnostics.Tracing.PropertyValue+Scalar>
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref single-def "V05.[000..008)"
;* V10 tmp7 [V10 ] ( 0, 0 ) int -> zero-ref "V05.[008..012)"
;* V11 tmp8 [V11 ] ( 0, 0 ) byte -> zero-ref "V05.[016..017)"
;* V12 tmp9 [V12 ] ( 0, 0 ) byte -> zero-ref "V06.[000..001)"
;* V13 tmp10 [V13 ] ( 0, 0 ) byte -> zero-ref "V08.[000..001)"
; V14 tmp11 [V14,T05] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
; V15 tmp12 [V15,T03] ( 3, 6 ) ref -> r14 single-def "argument with side effect"
; V16 rat0 [V16,T08] ( 2, 3 ) long -> rdi "Spilling to split statement for tree"
; V17 rat1 [V17,T04] ( 3, 4.50) ref -> rsi "Spilling to split statement for tree"
; V18 rat2 [V18,T01] ( 5, 7.50) ref -> rax "replacement local"
; V19 rat3 [V19,T09] ( 3, 2.50) long -> rdi "CSE for expectedClsNode"
;
; Lcl frame size = 40
G_M44171_IG01:
push rbp
push r15
push r14
push rbx
sub rsp, 40
lea rbp, [rsp+0x40]
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x40], ymm8
mov qword ptr [rbp-0x20], rdi
mov r15, rdi
mov rbx, rsi
;; size=35 bbWeight=1 PerfScore 8.58
G_M44171_IG02:
mov r14, gword ptr [r15+0x08]
mov rdi, qword ptr [r15]
mov rdi, qword ptr [rdi+0x30]
mov rdi, qword ptr [rdi]
mov rdi, qword ptr [rdi]
mov rsi, gword ptr [rbp+0x10]
mov rax, rsi
test rax, rax
je SHORT G_M44171_IG05
;; size=29 bbWeight=1 PerfScore 12.50
G_M44171_IG03:
cmp qword ptr [rax], rdi
je SHORT G_M44171_IG05
;; size=5 bbWeight=0.50 PerfScore 2.00
G_M44171_IG04:
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTANY
call [rax]CORINFO_HELP_CHKCASTANY
;; size=12 bbWeight=0.25 PerfScore 0.81
G_M44171_IG05:
mov rsi, rax
mov rdi, gword ptr [r14+0x08]
call [r14+0x18]System.Func`2[System.__Canon,byte]:Invoke(System.__Canon):byte:this
- mov edx, eax
vxorps xmm0, xmm0, xmm0
vmovdqu xmmword ptr [rbp-0x30], xmm0
- mov rdi, rbx
- lea rsi, bword ptr [rbp-0x40]
- call CORINFO_HELP_ASSIGN_BYREF
- movsq
- movsq
- movsq
+ ;; size=20 bbWeight=1 PerfScore 6.58
+G_M44171_IG06:
+ vmovdqu ymm0, ymmword ptr [rbp-0x40]
+ vmovdqu ymmword ptr [rbx], ymm0
+ ;; size=9 bbWeight=1 PerfScore 6.00
+G_M44171_IG07:
mov dword ptr [rbx+0x08], 1
- mov byte ptr [rbx+0x10], dl
+ mov byte ptr [rbx+0x10], al
mov rax, rbx
- ;; size=53 bbWeight=1 PerfScore 13.83
-G_M44171_IG06:
+ ;; size=13 bbWeight=1 PerfScore 2.25
+G_M44171_IG08:
+ vzeroupper
add rsp, 40
pop rbx
pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=1 PerfScore 3.25
+ ;; size=14 bbWeight=1 PerfScore 4.25
-; Total bytes of code 145, prolog size 29, PerfScore 40.98, instruction count 45, allocated bytes for code 145 (MethodHash=2fca5374) for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_4[System.__Canon]:<GetPropertyGetter>b__4(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
+; Total bytes of code 137, prolog size 29, PerfScore 42.98, instruction count 41, allocated bytes for code 137 (MethodHash=2fca5374) for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_4[System.__Canon]:<GetPropertyGetter>b__4(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
-8 (-5.48 % of base) - System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_5[System.__Canon]:b__5(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this
; Assembly listing for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_5[System.__Canon]:<GetPropertyGetter>b__5(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T02] ( 4, 4 ) ref -> r15 this class-hnd single-def <System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_5[System.__Canon]>
; V01 RetBuf [V01,T00] ( 6, 6 ) byref -> rbx single-def
; V02 arg1 [V02,T10] ( 1, 1 ) struct (32) [rbp+0x10] do-not-enreg[SF] ld-addr-op single-def <System.Diagnostics.Tracing.PropertyValue>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Func`2[System.__Canon,ushort]>
; V05 tmp2 [V05,T06] ( 2, 4 ) struct (32) [rbp-0x40] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Diagnostics.Tracing.PropertyValue>
;* V06 tmp3 [V06 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Diagnostics.Tracing.PropertyValue+Scalar>
-; V07 tmp4 [V07,T07] ( 2, 4 ) ushort -> rdx "Inlining Arg"
+; V07 tmp4 [V07,T07] ( 2, 4 ) ushort -> rax "Inlining Arg"
;* V08 tmp5 [V08 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Diagnostics.Tracing.PropertyValue+Scalar>
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref single-def "V05.[000..008)"
;* V10 tmp7 [V10 ] ( 0, 0 ) int -> zero-ref "V05.[008..012)"
;* V11 tmp8 [V11 ] ( 0, 0 ) ushort -> zero-ref "V05.[016..018)"
;* V12 tmp9 [V12 ] ( 0, 0 ) ushort -> zero-ref "V06.[000..002)"
;* V13 tmp10 [V13 ] ( 0, 0 ) ushort -> zero-ref "V08.[000..002)"
; V14 tmp11 [V14,T05] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
; V15 tmp12 [V15,T03] ( 3, 6 ) ref -> r14 single-def "argument with side effect"
; V16 rat0 [V16,T08] ( 2, 3 ) long -> rdi "Spilling to split statement for tree"
; V17 rat1 [V17,T04] ( 3, 4.50) ref -> rsi "Spilling to split statement for tree"
; V18 rat2 [V18,T01] ( 5, 7.50) ref -> rax "replacement local"
; V19 rat3 [V19,T09] ( 3, 2.50) long -> rdi "CSE for expectedClsNode"
;
; Lcl frame size = 40
G_M43915_IG01:
push rbp
push r15
push r14
push rbx
sub rsp, 40
lea rbp, [rsp+0x40]
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x40], ymm8
mov qword ptr [rbp-0x20], rdi
mov r15, rdi
mov rbx, rsi
;; size=35 bbWeight=1 PerfScore 8.58
G_M43915_IG02:
mov r14, gword ptr [r15+0x08]
mov rdi, qword ptr [r15]
mov rdi, qword ptr [rdi+0x30]
mov rdi, qword ptr [rdi]
mov rdi, qword ptr [rdi]
mov rsi, gword ptr [rbp+0x10]
mov rax, rsi
test rax, rax
je SHORT G_M43915_IG05
;; size=29 bbWeight=1 PerfScore 12.50
G_M43915_IG03:
cmp qword ptr [rax], rdi
je SHORT G_M43915_IG05
;; size=5 bbWeight=0.50 PerfScore 2.00
G_M43915_IG04:
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTANY
call [rax]CORINFO_HELP_CHKCASTANY
;; size=12 bbWeight=0.25 PerfScore 0.81
G_M43915_IG05:
mov rsi, rax
mov rdi, gword ptr [r14+0x08]
call [r14+0x18]System.Func`2[System.__Canon,ushort]:Invoke(System.__Canon):ushort:this
- mov edx, eax
vxorps xmm0, xmm0, xmm0
vmovdqu xmmword ptr [rbp-0x30], xmm0
- mov rdi, rbx
- lea rsi, bword ptr [rbp-0x40]
- call CORINFO_HELP_ASSIGN_BYREF
- movsq
- movsq
- movsq
+ ;; size=20 bbWeight=1 PerfScore 6.58
+G_M43915_IG06:
+ vmovdqu ymm0, ymmword ptr [rbp-0x40]
+ vmovdqu ymmword ptr [rbx], ymm0
+ ;; size=9 bbWeight=1 PerfScore 6.00
+G_M43915_IG07:
mov dword ptr [rbx+0x08], 2
- mov word ptr [rbx+0x10], dx
+ mov word ptr [rbx+0x10], ax
mov rax, rbx
- ;; size=54 bbWeight=1 PerfScore 13.83
-G_M43915_IG06:
+ ;; size=14 bbWeight=1 PerfScore 2.25
+G_M43915_IG08:
+ vzeroupper
add rsp, 40
pop rbx
pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=1 PerfScore 3.25
+ ;; size=14 bbWeight=1 PerfScore 4.25
-; Total bytes of code 146, prolog size 29, PerfScore 40.98, instruction count 45, allocated bytes for code 146 (MethodHash=2b585474) for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_5[System.__Canon]:<GetPropertyGetter>b__5(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
+; Total bytes of code 138, prolog size 29, PerfScore 42.98, instruction count 41, allocated bytes for code 138 (MethodHash=2b585474) for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_5[System.__Canon]:<GetPropertyGetter>b__5(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
-8 (-5.48 % of base) - System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_6[System.__Canon]:b__6(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this
; Assembly listing for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_6[System.__Canon]:<GetPropertyGetter>b__6(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T02] ( 4, 4 ) ref -> r15 this class-hnd single-def <System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_6[System.__Canon]>
; V01 RetBuf [V01,T00] ( 6, 6 ) byref -> rbx single-def
; V02 arg1 [V02,T10] ( 1, 1 ) struct (32) [rbp+0x10] do-not-enreg[SF] ld-addr-op single-def <System.Diagnostics.Tracing.PropertyValue>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Func`2[System.__Canon,short]>
; V05 tmp2 [V05,T06] ( 2, 4 ) struct (32) [rbp-0x40] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Diagnostics.Tracing.PropertyValue>
;* V06 tmp3 [V06 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Diagnostics.Tracing.PropertyValue+Scalar>
-; V07 tmp4 [V07,T07] ( 2, 4 ) short -> rdx "Inlining Arg"
+; V07 tmp4 [V07,T07] ( 2, 4 ) short -> rax "Inlining Arg"
;* V08 tmp5 [V08 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Diagnostics.Tracing.PropertyValue+Scalar>
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref single-def "V05.[000..008)"
;* V10 tmp7 [V10 ] ( 0, 0 ) int -> zero-ref "V05.[008..012)"
;* V11 tmp8 [V11 ] ( 0, 0 ) short -> zero-ref "V05.[016..018)"
;* V12 tmp9 [V12 ] ( 0, 0 ) short -> zero-ref "V06.[000..002)"
;* V13 tmp10 [V13 ] ( 0, 0 ) short -> zero-ref "V08.[000..002)"
; V14 tmp11 [V14,T05] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
; V15 tmp12 [V15,T03] ( 3, 6 ) ref -> r14 single-def "argument with side effect"
; V16 rat0 [V16,T08] ( 2, 3 ) long -> rdi "Spilling to split statement for tree"
; V17 rat1 [V17,T04] ( 3, 4.50) ref -> rsi "Spilling to split statement for tree"
; V18 rat2 [V18,T01] ( 5, 7.50) ref -> rax "replacement local"
; V19 rat3 [V19,T09] ( 3, 2.50) long -> rdi "CSE for expectedClsNode"
;
; Lcl frame size = 40
G_M14859_IG01:
push rbp
push r15
push r14
push rbx
sub rsp, 40
lea rbp, [rsp+0x40]
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x40], ymm8
mov qword ptr [rbp-0x20], rdi
mov r15, rdi
mov rbx, rsi
;; size=35 bbWeight=1 PerfScore 8.58
G_M14859_IG02:
mov r14, gword ptr [r15+0x08]
mov rdi, qword ptr [r15]
mov rdi, qword ptr [rdi+0x30]
mov rdi, qword ptr [rdi]
mov rdi, qword ptr [rdi]
mov rsi, gword ptr [rbp+0x10]
mov rax, rsi
test rax, rax
je SHORT G_M14859_IG05
;; size=29 bbWeight=1 PerfScore 12.50
G_M14859_IG03:
cmp qword ptr [rax], rdi
je SHORT G_M14859_IG05
;; size=5 bbWeight=0.50 PerfScore 2.00
G_M14859_IG04:
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTANY
call [rax]CORINFO_HELP_CHKCASTANY
;; size=12 bbWeight=0.25 PerfScore 0.81
G_M14859_IG05:
mov rsi, rax
mov rdi, gword ptr [r14+0x08]
call [r14+0x18]System.Func`2[System.__Canon,short]:Invoke(System.__Canon):short:this
- mov edx, eax
vxorps xmm0, xmm0, xmm0
vmovdqu xmmword ptr [rbp-0x30], xmm0
- mov rdi, rbx
- lea rsi, bword ptr [rbp-0x40]
- call CORINFO_HELP_ASSIGN_BYREF
- movsq
- movsq
- movsq
+ ;; size=20 bbWeight=1 PerfScore 6.58
+G_M14859_IG06:
+ vmovdqu ymm0, ymmword ptr [rbp-0x40]
+ vmovdqu ymmword ptr [rbx], ymm0
+ ;; size=9 bbWeight=1 PerfScore 6.00
+G_M14859_IG07:
mov dword ptr [rbx+0x08], 2
- mov word ptr [rbx+0x10], dx
+ mov word ptr [rbx+0x10], ax
mov rax, rbx
- ;; size=54 bbWeight=1 PerfScore 13.83
-G_M14859_IG06:
+ ;; size=14 bbWeight=1 PerfScore 2.25
+G_M14859_IG08:
+ vzeroupper
add rsp, 40
pop rbx
pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=1 PerfScore 3.25
+ ;; size=14 bbWeight=1 PerfScore 4.25
-; Total bytes of code 146, prolog size 29, PerfScore 40.98, instruction count 45, allocated bytes for code 146 (MethodHash=3962c5f4) for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_6[System.__Canon]:<GetPropertyGetter>b__6(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
+; Total bytes of code 138, prolog size 29, PerfScore 42.98, instruction count 41, allocated bytes for code 138 (MethodHash=3962c5f4) for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_6[System.__Canon]:<GetPropertyGetter>b__6(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
-8 (-5.48 % of base) - System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_7[System.__Canon]:b__7(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this
; Assembly listing for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_7[System.__Canon]:<GetPropertyGetter>b__7(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T02] ( 4, 4 ) ref -> r15 this class-hnd single-def <System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_7[System.__Canon]>
; V01 RetBuf [V01,T00] ( 6, 6 ) byref -> rbx single-def
; V02 arg1 [V02,T10] ( 1, 1 ) struct (32) [rbp+0x10] do-not-enreg[SF] ld-addr-op single-def <System.Diagnostics.Tracing.PropertyValue>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Func`2[System.__Canon,ushort]>
; V05 tmp2 [V05,T06] ( 2, 4 ) struct (32) [rbp-0x40] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Diagnostics.Tracing.PropertyValue>
;* V06 tmp3 [V06 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Diagnostics.Tracing.PropertyValue+Scalar>
-; V07 tmp4 [V07,T07] ( 2, 4 ) ushort -> rdx "Inlining Arg"
+; V07 tmp4 [V07,T07] ( 2, 4 ) ushort -> rax "Inlining Arg"
;* V08 tmp5 [V08 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Diagnostics.Tracing.PropertyValue+Scalar>
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref single-def "V05.[000..008)"
;* V10 tmp7 [V10 ] ( 0, 0 ) int -> zero-ref "V05.[008..012)"
;* V11 tmp8 [V11 ] ( 0, 0 ) ushort -> zero-ref "V05.[016..018)"
;* V12 tmp9 [V12 ] ( 0, 0 ) ushort -> zero-ref "V06.[000..002)"
;* V13 tmp10 [V13 ] ( 0, 0 ) ushort -> zero-ref "V08.[000..002)"
; V14 tmp11 [V14,T05] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
; V15 tmp12 [V15,T03] ( 3, 6 ) ref -> r14 single-def "argument with side effect"
; V16 rat0 [V16,T08] ( 2, 3 ) long -> rdi "Spilling to split statement for tree"
; V17 rat1 [V17,T04] ( 3, 4.50) ref -> rsi "Spilling to split statement for tree"
; V18 rat2 [V18,T01] ( 5, 7.50) ref -> rax "replacement local"
; V19 rat3 [V19,T09] ( 3, 2.50) long -> rdi "CSE for expectedClsNode"
;
; Lcl frame size = 40
G_M47883_IG01:
push rbp
push r15
push r14
push rbx
sub rsp, 40
lea rbp, [rsp+0x40]
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x40], ymm8
mov qword ptr [rbp-0x20], rdi
mov r15, rdi
mov rbx, rsi
;; size=35 bbWeight=1 PerfScore 8.58
G_M47883_IG02:
mov r14, gword ptr [r15+0x08]
mov rdi, qword ptr [r15]
mov rdi, qword ptr [rdi+0x30]
mov rdi, qword ptr [rdi]
mov rdi, qword ptr [rdi]
mov rsi, gword ptr [rbp+0x10]
mov rax, rsi
test rax, rax
je SHORT G_M47883_IG05
;; size=29 bbWeight=1 PerfScore 12.50
G_M47883_IG03:
cmp qword ptr [rax], rdi
je SHORT G_M47883_IG05
;; size=5 bbWeight=0.50 PerfScore 2.00
G_M47883_IG04:
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTANY
call [rax]CORINFO_HELP_CHKCASTANY
;; size=12 bbWeight=0.25 PerfScore 0.81
G_M47883_IG05:
mov rsi, rax
mov rdi, gword ptr [r14+0x08]
call [r14+0x18]System.Func`2[System.__Canon,ushort]:Invoke(System.__Canon):ushort:this
- mov edx, eax
vxorps xmm0, xmm0, xmm0
vmovdqu xmmword ptr [rbp-0x30], xmm0
- mov rdi, rbx
- lea rsi, bword ptr [rbp-0x40]
- call CORINFO_HELP_ASSIGN_BYREF
- movsq
- movsq
- movsq
+ ;; size=20 bbWeight=1 PerfScore 6.58
+G_M47883_IG06:
+ vmovdqu ymm0, ymmword ptr [rbp-0x40]
+ vmovdqu ymmword ptr [rbx], ymm0
+ ;; size=9 bbWeight=1 PerfScore 6.00
+G_M47883_IG07:
mov dword ptr [rbx+0x08], 2
- mov word ptr [rbx+0x10], dx
+ mov word ptr [rbx+0x10], ax
mov rax, rbx
- ;; size=54 bbWeight=1 PerfScore 13.83
-G_M47883_IG06:
+ ;; size=14 bbWeight=1 PerfScore 2.25
+G_M47883_IG08:
+ vzeroupper
add rsp, 40
pop rbx
pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=1 PerfScore 3.25
+ ;; size=14 bbWeight=1 PerfScore 4.25
-; Total bytes of code 146, prolog size 29, PerfScore 40.98, instruction count 45, allocated bytes for code 146 (MethodHash=f41844f4) for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_7[System.__Canon]:<GetPropertyGetter>b__7(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
+; Total bytes of code 138, prolog size 29, PerfScore 42.98, instruction count 41, allocated bytes for code 138 (MethodHash=f41844f4) for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_7[System.__Canon]:<GetPropertyGetter>b__7(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
-8 (-5.52 % of base) - System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_8[System.__Canon]:b__8(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this
; Assembly listing for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_8[System.__Canon]:<GetPropertyGetter>b__8(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T02] ( 4, 4 ) ref -> r15 this class-hnd single-def <System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_8[System.__Canon]>
; V01 RetBuf [V01,T00] ( 6, 6 ) byref -> rbx single-def
; V02 arg1 [V02,T10] ( 1, 1 ) struct (32) [rbp+0x10] do-not-enreg[SF] ld-addr-op single-def <System.Diagnostics.Tracing.PropertyValue>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Func`2[System.__Canon,int]>
; V05 tmp2 [V05,T06] ( 2, 4 ) struct (32) [rbp-0x40] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Diagnostics.Tracing.PropertyValue>
;* V06 tmp3 [V06 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Diagnostics.Tracing.PropertyValue+Scalar>
-; V07 tmp4 [V07,T07] ( 2, 4 ) int -> rdx "Inlining Arg"
+; V07 tmp4 [V07,T07] ( 2, 4 ) int -> rax "Inlining Arg"
;* V08 tmp5 [V08 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Diagnostics.Tracing.PropertyValue+Scalar>
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref single-def "V05.[000..008)"
;* V10 tmp7 [V10 ] ( 0, 0 ) int -> zero-ref "V05.[008..012)"
;* V11 tmp8 [V11 ] ( 0, 0 ) int -> zero-ref "V05.[016..020)"
;* V12 tmp9 [V12 ] ( 0, 0 ) int -> zero-ref "V06.[000..004)"
;* V13 tmp10 [V13 ] ( 0, 0 ) int -> zero-ref "V08.[000..004)"
; V14 tmp11 [V14,T05] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
; V15 tmp12 [V15,T03] ( 3, 6 ) ref -> r14 single-def "argument with side effect"
; V16 rat0 [V16,T08] ( 2, 3 ) long -> rdi "Spilling to split statement for tree"
; V17 rat1 [V17,T04] ( 3, 4.50) ref -> rsi "Spilling to split statement for tree"
; V18 rat2 [V18,T01] ( 5, 7.50) ref -> rax "replacement local"
; V19 rat3 [V19,T09] ( 3, 2.50) long -> rdi "CSE for expectedClsNode"
;
; Lcl frame size = 40
G_M37515_IG01:
push rbp
push r15
push r14
push rbx
sub rsp, 40
lea rbp, [rsp+0x40]
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x40], ymm8
mov qword ptr [rbp-0x20], rdi
mov r15, rdi
mov rbx, rsi
;; size=35 bbWeight=1 PerfScore 8.58
G_M37515_IG02:
mov r14, gword ptr [r15+0x08]
mov rdi, qword ptr [r15]
mov rdi, qword ptr [rdi+0x30]
mov rdi, qword ptr [rdi]
mov rdi, qword ptr [rdi]
mov rsi, gword ptr [rbp+0x10]
mov rax, rsi
test rax, rax
je SHORT G_M37515_IG05
;; size=29 bbWeight=1 PerfScore 12.50
G_M37515_IG03:
cmp qword ptr [rax], rdi
je SHORT G_M37515_IG05
;; size=5 bbWeight=0.50 PerfScore 2.00
G_M37515_IG04:
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTANY
call [rax]CORINFO_HELP_CHKCASTANY
;; size=12 bbWeight=0.25 PerfScore 0.81
G_M37515_IG05:
mov rsi, rax
mov rdi, gword ptr [r14+0x08]
call [r14+0x18]System.Func`2[System.__Canon,int]:Invoke(System.__Canon):int:this
- mov edx, eax
vxorps xmm0, xmm0, xmm0
vmovdqu xmmword ptr [rbp-0x30], xmm0
- mov rdi, rbx
- lea rsi, bword ptr [rbp-0x40]
- call CORINFO_HELP_ASSIGN_BYREF
- movsq
- movsq
- movsq
+ ;; size=20 bbWeight=1 PerfScore 6.58
+G_M37515_IG06:
+ vmovdqu ymm0, ymmword ptr [rbp-0x40]
+ vmovdqu ymmword ptr [rbx], ymm0
+ ;; size=9 bbWeight=1 PerfScore 6.00
+G_M37515_IG07:
mov dword ptr [rbx+0x08], 4
- mov dword ptr [rbx+0x10], edx
+ mov dword ptr [rbx+0x10], eax
mov rax, rbx
- ;; size=53 bbWeight=1 PerfScore 13.83
-G_M37515_IG06:
+ ;; size=13 bbWeight=1 PerfScore 2.25
+G_M37515_IG08:
+ vzeroupper
add rsp, 40
pop rbx
pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=1 PerfScore 3.25
+ ;; size=14 bbWeight=1 PerfScore 4.25
-; Total bytes of code 145, prolog size 29, PerfScore 40.98, instruction count 45, allocated bytes for code 145 (MethodHash=63a16d74) for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_8[System.__Canon]:<GetPropertyGetter>b__8(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
+; Total bytes of code 137, prolog size 29, PerfScore 42.98, instruction count 41, allocated bytes for code 137 (MethodHash=63a16d74) for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_8[System.__Canon]:<GetPropertyGetter>b__8(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
-8 (-5.52 % of base) - System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_9[System.__Canon]:b__9(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this
; Assembly listing for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_9[System.__Canon]:<GetPropertyGetter>b__9(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
;
; V00 this [V00,T02] ( 4, 4 ) ref -> r15 this class-hnd single-def <System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_9[System.__Canon]>
; V01 RetBuf [V01,T00] ( 6, 6 ) byref -> rbx single-def
; V02 arg1 [V02,T10] ( 1, 1 ) struct (32) [rbp+0x10] do-not-enreg[SF] ld-addr-op single-def <System.Diagnostics.Tracing.PropertyValue>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" <System.Func`2[System.__Canon,uint]>
; V05 tmp2 [V05,T06] ( 2, 4 ) struct (32) [rbp-0x40] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Diagnostics.Tracing.PropertyValue>
;* V06 tmp3 [V06 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] ld-addr-op "Inline ldloca(s) first use temp" <System.Diagnostics.Tracing.PropertyValue+Scalar>
-; V07 tmp4 [V07,T07] ( 2, 4 ) int -> rdx "Inlining Arg"
+; V07 tmp4 [V07,T07] ( 2, 4 ) int -> rax "Inlining Arg"
;* V08 tmp5 [V08 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Diagnostics.Tracing.PropertyValue+Scalar>
;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref single-def "V05.[000..008)"
;* V10 tmp7 [V10 ] ( 0, 0 ) int -> zero-ref "V05.[008..012)"
;* V11 tmp8 [V11 ] ( 0, 0 ) int -> zero-ref "V05.[016..020)"
;* V12 tmp9 [V12 ] ( 0, 0 ) int -> zero-ref "V06.[000..004)"
;* V13 tmp10 [V13 ] ( 0, 0 ) int -> zero-ref "V08.[000..004)"
; V14 tmp11 [V14,T05] ( 2, 4 ) ref -> rsi single-def "argument with side effect"
; V15 tmp12 [V15,T03] ( 3, 6 ) ref -> r14 single-def "argument with side effect"
; V16 rat0 [V16,T08] ( 2, 3 ) long -> rdi "Spilling to split statement for tree"
; V17 rat1 [V17,T04] ( 3, 4.50) ref -> rsi "Spilling to split statement for tree"
; V18 rat2 [V18,T01] ( 5, 7.50) ref -> rax "replacement local"
; V19 rat3 [V19,T09] ( 3, 2.50) long -> rdi "CSE for expectedClsNode"
;
; Lcl frame size = 40
G_M37259_IG01:
push rbp
push r15
push r14
push rbx
sub rsp, 40
lea rbp, [rsp+0x40]
vxorps xmm8, xmm8, xmm8
vmovdqu ymmword ptr [rbp-0x40], ymm8
mov qword ptr [rbp-0x20], rdi
mov r15, rdi
mov rbx, rsi
;; size=35 bbWeight=1 PerfScore 8.58
G_M37259_IG02:
mov r14, gword ptr [r15+0x08]
mov rdi, qword ptr [r15]
mov rdi, qword ptr [rdi+0x30]
mov rdi, qword ptr [rdi]
mov rdi, qword ptr [rdi]
mov rsi, gword ptr [rbp+0x10]
mov rax, rsi
test rax, rax
je SHORT G_M37259_IG05
;; size=29 bbWeight=1 PerfScore 12.50
G_M37259_IG03:
cmp qword ptr [rax], rdi
je SHORT G_M37259_IG05
;; size=5 bbWeight=0.50 PerfScore 2.00
G_M37259_IG04:
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTANY
call [rax]CORINFO_HELP_CHKCASTANY
;; size=12 bbWeight=0.25 PerfScore 0.81
G_M37259_IG05:
mov rsi, rax
mov rdi, gword ptr [r14+0x08]
call [r14+0x18]System.Func`2[System.__Canon,uint]:Invoke(System.__Canon):uint:this
- mov edx, eax
vxorps xmm0, xmm0, xmm0
vmovdqu xmmword ptr [rbp-0x30], xmm0
- mov rdi, rbx
- lea rsi, bword ptr [rbp-0x40]
- call CORINFO_HELP_ASSIGN_BYREF
- movsq
- movsq
- movsq
+ ;; size=20 bbWeight=1 PerfScore 6.58
+G_M37259_IG06:
+ vmovdqu ymm0, ymmword ptr [rbp-0x40]
+ vmovdqu ymmword ptr [rbx], ymm0
+ ;; size=9 bbWeight=1 PerfScore 6.00
+G_M37259_IG07:
mov dword ptr [rbx+0x08], 4
- mov dword ptr [rbx+0x10], edx
+ mov dword ptr [rbx+0x10], eax
mov rax, rbx
- ;; size=53 bbWeight=1 PerfScore 13.83
-G_M37259_IG06:
+ ;; size=13 bbWeight=1 PerfScore 2.25
+G_M37259_IG08:
+ vzeroupper
add rsp, 40
pop rbx
pop r14
pop r15
pop rbp
ret
- ;; size=11 bbWeight=1 PerfScore 3.25
+ ;; size=14 bbWeight=1 PerfScore 4.25
-; Total bytes of code 145, prolog size 29, PerfScore 40.98, instruction count 45, allocated bytes for code 145 (MethodHash=5f2f6e74) for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_9[System.__Canon]:<GetPropertyGetter>b__9(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
+; Total bytes of code 137, prolog size 29, PerfScore 42.98, instruction count 41, allocated bytes for code 137 (MethodHash=5f2f6e74) for method System.Diagnostics.Tracing.PropertyValue+ReferenceTypeHelper`1+<>c__DisplayClass1_9[System.__Canon]:<GetPropertyGetter>b__9(System.Diagnostics.Tracing.PropertyValue):System.Diagnostics.Tracing.PropertyValue:this (FullOpts)
-8 (-9.20 % of base) - System.Net.WebUtility+UrlDecoder:AddByte(ubyte):this
; Assembly listing for method System.Net.WebUtility+UrlDecoder:AddByte(ubyte):this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; optimized code
; rbp based frame
; partially interruptible
; No PGO data
; Final local variable assignments
;
; V00 this [V00,T00] ( 8, 7 ) byref -> rbx this single-def
; V01 arg1 [V01,T02] ( 3, 3 ) ubyte -> r15 single-def
; V02 loc0 [V02,T03] ( 4, 4 ) int -> rcx
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V04 tmp1 [V04,T01] ( 3, 6 ) ref -> rax class-hnd single-def "impAppendStmt" <ubyte[]>
;
; Lcl frame size = 0
G_M40093_IG01:
push rbp
push r15
push rbx
lea rbp, [rsp+0x10]
mov rbx, rdi
mov r15d, esi
;; size=15 bbWeight=1 PerfScore 4.00
G_M40093_IG02:
cmp gword ptr [rbx+0x08], 0
jne SHORT G_M40093_IG04
;; size=7 bbWeight=1 PerfScore 4.00
G_M40093_IG03:
movsxd rsi, dword ptr [rbx+0x18]
mov rdi, 0xD1FFAB1E ; ubyte[]
call CORINFO_HELP_NEWARR_1_VC
- lea rdi, bword ptr [rbx+0x08]
- mov rsi, rax
- call CORINFO_HELP_CHECKED_ASSIGN_REF
- ;; size=31 bbWeight=0.50 PerfScore 3.50
+ mov gword ptr [rbx+0x08], rax
+ ;; size=23 bbWeight=0.50 PerfScore 3.12
G_M40093_IG04:
mov rax, gword ptr [rbx+0x08]
mov ecx, dword ptr [rbx+0x20]
lea edx, [rcx+0x01]
mov dword ptr [rbx+0x20], edx
cmp ecx, dword ptr [rax+0x08]
jae SHORT G_M40093_IG06
mov byte ptr [rax+rcx+0x10], r15b
;; size=23 bbWeight=1 PerfScore 10.50
G_M40093_IG05:
pop rbx
pop r15
pop rbp
ret
;; size=5 bbWeight=1 PerfScore 2.50
G_M40093_IG06:
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 87, prolog size 9, PerfScore 24.50, instruction count 27, allocated bytes for code 87 (MethodHash=ced66362) for method System.Net.WebUtility+UrlDecoder:AddByte(ubyte):this (FullOpts)
+; Total bytes of code 79, prolog size 9, PerfScore 24.12, instruction count 25, allocated bytes for code 79 (MethodHash=ced66362) for method System.Net.WebUtility+UrlDecoder:AddByte(ubyte):this (FullOpts)