Untitled Diff

Created Diff never expires
41 removals
75 lines
43 additions
74 lines
; Assembly listing for method System.ArraySegment`1[double]:ToArray():double[]:this
; 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; 0 single block inlinees; 1 inlinees without PGO data
; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
; V00 this [V00,T00] ( 6, 5 ) byref -> rsi this single-def
; V00 this [V00,T00] ( 6, 5 ) byref -> rsi this single-def
; V01 loc0 [V01,T02] ( 3, 1.50) ref -> rbx class-hnd exact single-def
; V01 loc0 [V01,T02] ( 3, 1.50) ref -> rbx class-hnd exact single-def
; V02 OutArgs [V02 ] ( 1, 1 ) lclBlk (40) [rsp+00H] "OutgoingArgSpace"
; V02 OutArgs [V02 ] ( 1, 1 ) lclBlk (40) [rsp+00H] "OutgoingArgSpace"
; V03 tmp1 [V03 ] ( 2, 2 ) struct (16) [rsp+30H] do-not-enreg[HS] must-init hidden-struct-arg "struct address for call/obj"
;* V03 tmp1 [V03 ] ( 0, 0 ) struct (16) zero-ref "struct address for call/obj"
; V04 tmp2 [V04,T03] ( 2, 1.50) ref -> [rsp+30H] do-not-enreg[H] hidden-struct-arg V03._array(offs=0x00) P-DEP "field V03._array (fldOffset=0x0)"
; V04 tmp2 [V04,T03] ( 2, 1 ) ref -> rax single-def V03._array(offs=0x00) P-INDEP "field V03._array (fldOffset=0x0)"
; V05 tmp3 [V05,T04] ( 1, 1 ) int -> [rsp+38H] do-not-enreg[H] hidden-struct-arg V03._offset(offs=0x08) P-DEP "field V03._offset (fldOffset=0x8)"
;* V05 tmp3 [V05 ] ( 0, 0 ) int -> zero-ref V03._offset(offs=0x08) P-INDEP "field V03._offset (fldOffset=0x8)"
; V06 tmp4 [V06,T05] ( 1, 1 ) int -> [rsp+3CH] do-not-enreg[H] hidden-struct-arg V03._count(offs=0x0c) P-DEP "field V03._count (fldOffset=0xc)"
;* V06 tmp4 [V06 ] ( 0, 0 ) int -> zero-ref V03._count(offs=0x0c) P-INDEP "field V03._count (fldOffset=0xc)"
; V07 cse0 [V07,T01] ( 4, 3 ) int -> rdi "CSE - aggressive"
; V07 cse0 [V07,T01] ( 4, 3 ) int -> rdi "CSE - aggressive"
;
;
; Lcl frame size = 64
; Lcl frame size = 48


G_M49573_IG01:
G_M49573_IG01:
push rdi
push rdi
push rsi
push rsi
push rbx
push rbx
sub rsp, 64
sub rsp, 48
xor eax, eax
mov qword ptr [rsp+30H], rax
mov rsi, rcx
mov rsi, rcx
;; size=17 bbWeight=1 PerfScore 4.75
;; size=10 bbWeight=1 PerfScore 3.50
G_M49573_IG02:
G_M49573_IG02:
cmp gword ptr [rsi], 0
cmp gword ptr [rsi], 0
je SHORT G_M49573_IG07
je SHORT G_M49573_IG07
mov edi, dword ptr [rsi+0CH]
mov edi, dword ptr [rsi+0CH]
test edi, edi
test edi, edi
jne SHORT G_M49573_IG05
jne SHORT G_M49573_IG05
;; size=13 bbWeight=1 PerfScore 7.25
;; size=13 bbWeight=1 PerfScore 7.25
G_M49573_IG03:
G_M49573_IG03:
lea rcx, [rsp+30H]
mov rax, 0xD1FFAB1E ; box for System.ArraySegment`1[double]:<Empty>k__BackingField
call [System.ArraySegment`1[double]:get_Empty():System.ArraySegment`1[double]]
mov rax, gword ptr [rax]
mov rax, gword ptr [rsp+30H]
mov rax, gword ptr [rax+08H]
;; size=16 bbWeight=0.50 PerfScore 2.25
;; size=17 bbWeight=0.50 PerfScore 2.12
G_M49573_IG04:
G_M49573_IG04:
add rsp, 64
add rsp, 48
pop rbx
pop rbx
pop rsi
pop rsi
pop rdi
pop rdi
ret
ret
;; size=8 bbWeight=0.50 PerfScore 1.38
;; size=8 bbWeight=0.50 PerfScore 1.38
G_M49573_IG05:
G_M49573_IG05:
movsxd rdx, edi
movsxd rdx, edi
mov rcx, 0xD1FFAB1E ; double[]
mov rcx, 0xD1FFAB1E ; double[]
call CORINFO_HELP_NEWARR_1_VC
call CORINFO_HELP_NEWARR_1_VC
mov rbx, rax
mov rbx, rax
mov dword ptr [rsp+20H], edi
mov dword ptr [rsp+20H], edi
mov rcx, gword ptr [rsi]
mov rcx, gword ptr [rsi]
mov edx, dword ptr [rsi+08H]
mov edx, dword ptr [rsi+08H]
mov r8, rbx
mov r8, rbx
xor r9d, r9d
xor r9d, r9d
call [System.Array:Copy(System.Array,int,System.Array,int,int)]
call [System.Array:Copy(System.Array,int,System.Array,int,int)]
mov rax, rbx
mov rax, rbx
;; size=46 bbWeight=0.50 PerfScore 5.25
;; size=46 bbWeight=0.50 PerfScore 5.25
G_M49573_IG06:
G_M49573_IG06:
add rsp, 64
add rsp, 48
pop rbx
pop rbx
pop rsi
pop rsi
pop rdi
pop rdi
ret
ret
;; size=8 bbWeight=0.50 PerfScore 1.38
;; size=8 bbWeight=0.50 PerfScore 1.38
G_M49573_IG07:
G_M49573_IG07:
mov ecx, 22
mov ecx, 22
call [System.ThrowHelper:ThrowInvalidOperationException(int)]
call [System.ThrowHelper:ThrowInvalidOperationException(int)]
int3
int3
;; size=12 bbWeight=0 PerfScore 0.00
;; size=12 bbWeight=0 PerfScore 0.00


; Total bytes of code 120, prolog size 14, PerfScore 34.25, instruction count 39, allocated bytes for code 120 (MethodHash=bece3e5a) for method System.ArraySegment`1[double]:ToArray():double[]:this
; Total bytes of code 114, prolog size 7, PerfScore 32.28, instruction count 37, allocated bytes for code 114 (MethodHash=bece3e5a) for method System.ArraySegment`1[double]:ToArray():double[]:this
; ============================================================
; ============================================================