Untitled Diff

Created Diff never expires
99 removals
100 lines
52 additions
56 lines
; Assembly listing for method System.Linq.Enumerable:OrderDescending[int](System.Collections.Generic.IEnumerable`1[int]):System.Linq.IOrderedEnumerable`1[int]
; Assembly listing for method System.Linq.Enumerable:OrderDescending[int](System.Collections.Generic.IEnumerable`1[int]):System.Linq.IOrderedEnumerable`1[int]
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; optimized code
; optimized code
; rsp based frame
; rsp based frame
; partially interruptible
; partially interruptible
; No PGO data
; No PGO data
; 0 inlinees with PGO data; 6 single block inlinees; 3 inlinees without PGO data
; 0 inlinees with PGO data; 6 single block inlinees; 4 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
; V00 arg0 [V00,T01] ( 6, 4 ) ref -> rsi class-hnd single-def
; V00 arg0 [V00,T01] ( 4, 4 ) ref -> rsi class-hnd single-def
; V01 OutArgs [V01 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace"
; V01 OutArgs [V01 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace"
; V02 tmp1 [V02,T04] ( 3, 2 ) ref -> rbx class-hnd "Inline return value spill temp"
; V02 tmp1 [V02,T02] ( 2, 2 ) ref -> rax class-hnd single-def "Inline return value spill temp"
; V03 tmp2 [V03,T02] ( 4, 4 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp"
; V03 tmp2 [V03,T00] ( 4, 8 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp"
;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp"
;* V04 tmp3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp"
; V05 tmp4 [V05,T03] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg"
;* V05 tmp4 [V05 ] ( 0, 0 ) bool -> zero-ref "Inline return value spill temp"
; V06 tmp5 [V06,T00] ( 7, 7 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp"
;* V06 tmp5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg"
;* V07 tmp6 [V07 ] ( 0, 0 ) ref -> zero-ref single-def
;* V07 tmp6 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp"
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref single-def
;* V08 tmp7 [V08 ] ( 0, 0 ) ref -> zero-ref
;* V09 tmp8 [V09 ] ( 0, 0 ) ref -> zero-ref single-def
;* V09 tmp8 [V09 ] ( 0, 0 ) ref -> zero-ref
; V10 tmp9 [V10,T05] ( 2, 1 ) ref -> rdx single-def
;* V10 tmp9 [V10 ] ( 0, 0 ) ref -> zero-ref
;* V11 tmp10 [V11 ] ( 0, 0 ) ref -> zero-ref
;
;
; Lcl frame size = 32
; Lcl frame size = 40


G_M46272_IG01:
G_M46272_IG01:
push rdi
push rdi
push rsi
push rsi
push rbx
sub rsp, 40
sub rsp, 32
mov rsi, rcx
mov rsi, rcx
;; size=10 bbWeight=1 PerfScore 3.50
;; size=9 bbWeight=1 PerfScore 2.50
G_M46272_IG02:
G_M46272_IG02:
call [System.Linq.Enumerable:TypeIsImplicitlyStable[int]():bool]
test eax, eax
jne G_M46272_IG04
;; size=14 bbWeight=1 PerfScore 4.25
G_M46272_IG03:
mov rcx, 0xD1FFAB1E
mov edx, 9
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rcx, 0xD1FFAB1E ; data for System.Linq.EnumerableSorter`1[int]:IdentityFunc
mov rdi, gword ptr [rcx]
mov rcx, 0xD1FFAB1E ; System.Linq.OrderedEnumerable`2[int,int]
call CORINFO_HELP_NEWSFAST
mov rbx, rax
lea rcx, bword ptr [rbx+08H]
mov rdx, rsi
call CORINFO_HELP_ASSIGN_REF
test rsi, rsi
je G_M46272_IG08
test rdi, rdi
je SHORT G_M46272_IG07
xor rdx, rdx
mov gword ptr [rbx+10H], rdx
lea rcx, bword ptr [rbx+18H]
mov rdx, rdi
call CORINFO_HELP_ASSIGN_REF
mov rcx, 0xD1FFAB1E
mov edx, 38
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rdx, 0xD1FFAB1E ; data for System.Collections.Generic.Comparer`1[int]:<Default>k__BackingField
mov rdx, gword ptr [rdx]
lea rcx, bword ptr [rbx+20H]
call CORINFO_HELP_ASSIGN_REF
mov byte ptr [rbx+28H], 1
jmp SHORT G_M46272_IG05
;; size=143 bbWeight=0.50 PerfScore 10.38
G_M46272_IG04:
mov rcx, 0xD1FFAB1E ; System.Linq.OrderedImplicitlyStableEnumerable`1[int]
mov rcx, 0xD1FFAB1E ; System.Linq.OrderedImplicitlyStableEnumerable`1[int]
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
mov rbx, rax
mov rdi, rax
lea rcx, bword ptr [rbx+08H]
lea rcx, bword ptr [rdi+08H]
mov rdx, rsi
mov rdx, rsi
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
test rsi, rsi
test rsi, rsi
je SHORT G_M46272_IG08
je SHORT G_M46272_IG04
mov byte ptr [rbx+10H], 1
mov byte ptr [rdi+10H], 1
;; size=39 bbWeight=0.50 PerfScore 2.75
mov rax, rdi
G_M46272_IG05:
;; size=42 bbWeight=1 PerfScore 5.75
mov rax, rbx
G_M46272_IG03:
;; size=3 bbWeight=1 PerfScore 0.25
add rsp, 40
G_M46272_IG06:
add rsp, 32
pop rbx
pop rsi
pop rsi
pop rdi
pop rdi
ret
ret
;; size=8 bbWeight=1 PerfScore 2.75
;; size=7 bbWeight=1 PerfScore 2.25
G_M46272_IG07:
G_M46272_IG04:
mov ecx, 9
call [System.Linq.ThrowHelper:ThrowArgumentNullException(int)]
int3
;; size=12 bbWeight=0 PerfScore 0.00
G_M46272_IG08:
mov ecx, 16
mov ecx, 16
call [System.Linq.ThrowHelper:ThrowArgumentNullException(int)]
call [System.Linq.ThrowHelper:ThrowArgumentNullException(int)]
int3
int3
;; size=12 bbWeight=0 PerfScore 0.00
;; size=12 bbWeight=0 PerfScore 0.00


; Total bytes of code 241, prolog size 7, PerfScore 47.98, instruction count 58, allocated bytes for code 241 (MethodHash=1faf4b3f) for method System.Linq.Enumerable:OrderDescending[int](System.Collections.Generic.IEnumerable`1[int]):System.Linq.IOrderedEnumerable`1[int]
; Total bytes of code 70, prolog size 6, PerfScore 17.50, instruction count 21, allocated bytes for code 70 (MethodHash=1faf4b3f) for method System.Linq.Enumerable:OrderDescending[int](System.Collections.Generic.IEnumerable`1[int]):System.Linq.IOrderedEnumerable`1[int]
; ============================================================
; ============================================================