Untitled Diff

Created Diff never expires
61 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
200 lines
75 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
213 lines
; Assembly listing for method System.Collections.Generic.SegmentedList`1[Vector`1][System.Numerics.Vector`1[System.Single]]:EnsureCapacity(int):this
; Assembly listing for method System.Collections.Generic.SegmentedList`1[Vector`1][System.Numerics.Vector`1[System.Single]]:EnsureCapacity(int):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
; fully interruptible
; fully interruptible
; Final local variable assignments
; Final local variable assignments
;
;
; V00 this [V00,T00] ( 22, 31 ) ref -> rsi this class-hnd
; V00 this [V00,T01] ( 21, 20 ) ref -> rsi this class-hnd
; V01 arg1 [V01,T06] ( 8, 9 ) int -> rdi
; V01 arg1 [V01,T06] ( 8, 9 ) int -> rdi
; V02 loc0 [V02,T04] ( 10, 15.50) int -> rdx
; V02 loc0 [V02,T04] ( 10, 15.50) int -> rdx
; V03 loc1 [V03,T12] ( 4, 2 ) ref -> rbx class-hnd exact
; V03 loc1 [V03,T16] ( 4, 2 ) ref -> rbx class-hnd exact
; V04 loc2 [V04,T16] ( 3, 1.50) int -> rbx
; V04 loc2 [V04,T20] ( 3, 1.50) int -> rbx
; V05 loc3 [V05,T07] ( 6, 10 ) int -> rdi
; V05 loc3 [V05,T07] ( 6, 10 ) int -> rdi
; V06 loc4 [V06,T05] ( 6, 13.50) int -> rdx
; V06 loc4 [V06,T05] ( 6, 13.50) int -> rdx
; V07 loc5 [V07,T15] ( 3, 1.50) ref -> r14 class-hnd exact
; V07 loc5 [V07,T19] ( 3, 1.50) ref -> r14 class-hnd exact
; V08 loc6 [V08,T01] ( 6, 17 ) int -> rbx
; V08 loc6 [V08,T02] ( 7, 21 ) int -> rbx
; V09 OutArgs [V09 ] ( 1, 1 ) lclBlk (40) [rsp+0x00] "OutgoingArgSpace"
; V09 OutArgs [V09 ] ( 1, 1 ) lclBlk (40) [rsp+0x00] "OutgoingArgSpace"
; V10 tmp1 [V10,T17] ( 3, 1.50) int -> rdx
; V10 tmp1 [V10,T00] ( 3, 24 ) ref -> r12 class-hnd "Strict ordering of exceptions for Array store"
; V11 tmp2 [V11,T18] ( 3, 1.50) int -> rbp "Inline return value spill temp"
; V11 tmp2 [V11,T03] ( 2, 16 ) ref -> rax class-hnd exact "Strict ordering of exceptions for Array store"
; V12 tmp3 [V12,T11] ( 3, 3 ) int -> rbp "Inlining Arg"
; V12 tmp3 [V12,T21] ( 3, 1.50) int -> rdx
; V13 tmp4 [V13,T10] ( 3, 3 ) ref -> r8 "arr expr"
; V13 tmp4 [V13,T22] ( 3, 1.50) int -> rbp "Inline return value spill temp"
; V14 tmp5 [V14,T14] ( 2, 2 ) ref -> r8 "argument with side effect"
; V14 tmp5 [V14,T15] ( 3, 3 ) int -> rbp "Inlining Arg"
; V15 tmp6 [V15,T02] ( 2, 16 ) ref -> r8 "argument with side effect"
; V15 tmp6 [V15,T13] ( 3, 3 ) ref -> r8 "arr expr"
; V16 tmp7 [V16,T03] ( 2, 16 ) ref -> rbp "argument with side effect"
; V16 tmp7 [V16,T18] ( 2, 2 ) ref -> r8 "argument with side effect"
; V17 cse0 [V17,T19] ( 3, 1.50) int -> rdx "CSE - moderate"
; V17 tmp8 [V17,T14] ( 3, 3 ) ref -> rdx "arr expr"
; V18 cse1 [V18,T08] ( 6, 4 ) int -> rbp "CSE - aggressive"
; V18 cse0 [V18,T23] ( 3, 1.50) int -> rdx "CSE - moderate"
; V19 cse2 [V19,T13] ( 4, 2 ) ref -> rbp "CSE - moderate"
; V19 cse1 [V19,T10] ( 2, 4.50) long -> r15 "CSE - aggressive"
; V20 cse3 [V20,T09] ( 4, 3 ) int -> rbx "CSE - moderate"
; V20 cse2 [V20,T08] ( 3, 5 ) int -> r14 "CSE - aggressive"
; V21 cse4 [V21,T20] ( 3, 1.50) int -> rcx "CSE - conservative"
; V21 cse3 [V21,T09] ( 2, 4.50) ref -> rbp "CSE - aggressive"
; V22 cse4 [V22,T11] ( 6, 4 ) int -> rbp "CSE - moderate"
; V23 cse5 [V23,T17] ( 4, 2 ) ref -> rbp "CSE - conservative"
; V24 cse6 [V24,T12] ( 4, 3 ) int -> rbx "CSE - moderate"
; V25 cse7 [V25,T24] ( 3, 1.50) int -> rcx "CSE - conservative"
;
;
; Lcl frame size = 48
; Lcl frame size = 48


G_M60485_IG01:
G_M60485_IG01:
push r15
push r14
push r14
push r12
push rdi
push rdi
push rsi
push rsi
push rbp
push rbp
push rbx
push rbx
sub rsp, 48
sub rsp, 48
mov rsi, rcx
mov rsi, rcx
mov edi, edx
mov edi, edx
;; bbWeight=1 PerfScore 5.75
;; bbWeight=1 PerfScore 7.75
G_M60485_IG02:
G_M60485_IG02:
mov ebx, dword ptr [rsi+28]
mov ebx, dword ptr [rsi+28]
mov ebp, dword ptr [rsi+16]
mov ebp, dword ptr [rsi+16]
cmp ebx, ebp
cmp ebx, ebp
jge G_M60485_IG13
jge G_M60485_IG13
;; bbWeight=1 PerfScore 5.25
;; bbWeight=1 PerfScore 5.25
G_M60485_IG03:
G_M60485_IG03:
cmp gword ptr [rsi+8], 0
cmp gword ptr [rsi+8], 0
jne SHORT G_M60485_IG04
jne SHORT G_M60485_IG04
lea edx, [rdi+rbp-1]
lea edx, [rdi+rbp-1]
mov ecx, dword ptr [rsi+20]
mov ecx, dword ptr [rsi+20]
sar edx, cl
sar edx, cl
movsxd rdx, edx
movsxd rdx, edx
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
call CORINFO_HELP_NEWARR_1_OBJ
call CORINFO_HELP_NEWARR_1_OBJ
lea rcx, bword ptr [rsi+8]
lea rcx, bword ptr [rsi+8]
mov rdx, rax
mov rdx, rax
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
;; bbWeight=0.50 PerfScore 5.63
;; bbWeight=0.50 PerfScore 5.63
G_M60485_IG04:
G_M60485_IG04:
mov edx, ebp
mov edx, ebp
cmp edi, ebp
cmp edi, ebp
jge SHORT G_M60485_IG11
jge SHORT G_M60485_IG11
test ebx, ebx
test ebx, ebx
je SHORT G_M60485_IG05
je SHORT G_M60485_IG05
shl ebx, 1
shl ebx, 1
mov edx, ebx
mov edx, ebx
jmp SHORT G_M60485_IG06
jmp SHORT G_M60485_IG06
;; bbWeight=0.50 PerfScore 2.75
;; bbWeight=0.50 PerfScore 2.75
G_M60485_IG05:
G_M60485_IG05:
mov edx, 2
mov edx, 2
;; bbWeight=0.50 PerfScore 0.13
;; bbWeight=0.50 PerfScore 0.13
G_M60485_IG06:
G_M60485_IG06:
cmp edx, edi
cmp edx, edi
jge SHORT G_M60485_IG08
jge SHORT G_M60485_IG08
;; bbWeight=0.50 PerfScore 0.63
;; bbWeight=0.50 PerfScore 0.63
G_M60485_IG07:
G_M60485_IG07:
shl edx, 1
shl edx, 1
cmp edx, edi
cmp edx, edi
jl SHORT G_M60485_IG07
jl SHORT G_M60485_IG07
;; bbWeight=4 PerfScore 7.00
;; bbWeight=4 PerfScore 7.00
G_M60485_IG08:
G_M60485_IG08:
cmp edx, ebp
cmp edx, ebp
jle SHORT G_M60485_IG09
jle SHORT G_M60485_IG09
jmp SHORT G_M60485_IG10
jmp SHORT G_M60485_IG10
;; bbWeight=0.50 PerfScore 1.63
;; bbWeight=0.50 PerfScore 1.63
G_M60485_IG09:
G_M60485_IG09:
mov ebp, edx
mov ebp, edx
;; bbWeight=0.50 PerfScore 0.13
;; bbWeight=0.50 PerfScore 0.13
G_M60485_IG10:
G_M60485_IG10:
mov edx, ebp
mov edx, ebp
;; bbWeight=0.50 PerfScore 0.13
;; bbWeight=0.50 PerfScore 0.13
G_M60485_IG11:
G_M60485_IG11:
movsxd rdx, edx
movsxd rdx, edx
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
call CORINFO_HELP_NEWARR_1_VC
call CORINFO_HELP_NEWARR_1_VC
mov rbx, rax
mov rbx, rax
mov ecx, dword ptr [rsi+32]
mov ecx, dword ptr [rsi+32]
test ecx, ecx
test ecx, ecx
jle SHORT G_M60485_IG12
jle SHORT G_M60485_IG12
mov r8, gword ptr [rsi+8]
mov r8, gword ptr [rsi+8]
cmp dword ptr [r8+8], 0
cmp dword ptr [r8+8], 0
jbe G_M60485_IG20
jbe G_M60485_IG20
mov r8, gword ptr [r8+16]
mov r8, gword ptr [r8+16]
mov dword ptr [rsp+20H], ecx
mov dword ptr [rsp+20H], ecx
mov rcx, r8
mov rcx, r8
mov r8, rbx
mov r8, rbx
xor edx, edx
xor edx, edx
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)
;; bbWeight=0.50 PerfScore 7.50
;; bbWeight=0.50 PerfScore 7.50
G_M60485_IG12:
G_M60485_IG12:
mov rcx, gword ptr [rsi+8]
mov rdx, gword ptr [rsi+8]
mov r8, rbx
cmp dword ptr [rdx+8], 0
xor edx, edx
jbe G_M60485_IG20
call CORINFO_HELP_ARRADDR_ST
lea rcx, bword ptr [rdx+16]
mov rdx, rbx
call CORINFO_HELP_ASSIGN_REF
mov ecx, dword ptr [rbx+8]
mov ecx, dword ptr [rbx+8]
mov dword ptr [rsi+28], ecx
mov dword ptr [rsi+28], ecx
;; bbWeight=0.50 PerfScore 3.25
;; bbWeight=0.50 PerfScore 4.88
G_M60485_IG13:
G_M60485_IG13:
cmp dword ptr [rsi+28], edi
cmp dword ptr [rsi+28], edi
jge G_M60485_IG19
jge G_M60485_IG19
;; bbWeight=1 PerfScore 3.00
;; bbWeight=1 PerfScore 3.00
G_M60485_IG14:
G_M60485_IG14:
mov ebx, dword ptr [rsi+28]
mov ebx, dword ptr [rsi+28]
mov edx, dword ptr [rsi+20]
mov edx, dword ptr [rsi+20]
and edx, 31
and edx, 31
mov ecx, edx
mov ecx, edx
sar ebx, cl
sar ebx, cl
mov ecx, dword ptr [rsi+16]
mov ecx, dword ptr [rsi+16]
lea edi, [rdi+rcx-1]
lea edi, [rdi+rcx-1]
mov ecx, edx
mov ecx, edx
sar edi, cl
sar edi, cl
mov rbp, gword ptr [rsi+8]
mov rbp, gword ptr [rsi+8]
cmp dword ptr [rbp+8], edi
cmp dword ptr [rbp+8], edi
jge SHORT G_M60485_IG17
jge SHORT G_M60485_IG17
mov edx, dword ptr [rbp+8]
mov edx, dword ptr [rbp+8]
shl edx, 1
shl edx, 1
cmp edx, edi
cmp edx, edi
jge SHORT G_M60485_IG16
jge SHORT G_M60485_IG16
;; bbWeight=0.50 PerfScore 10.25
;; bbWeight=0.50 PerfScore 10.25
G_M60485_IG15:
G_M60485_IG15:
shl edx, 1
shl edx, 1
cmp edx, edi
cmp edx, edi
jl SHORT G_M60485_IG15
jl SHORT G_M60485_IG15
;; bbWeight=4 PerfScore 7.00
;; bbWeight=4 PerfScore 7.00
G_M60485_IG16:
G_M60485_IG16:
movsxd rdx, edx
movsxd rdx, edx
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
call CORINFO_HELP_NEWARR_1_OBJ
call CORINFO_HELP_NEWARR_1_OBJ
mov r14, rax
mov r14, rax
mov dword ptr [rsp+20H], ebx
mov dword ptr [rsp+20H], ebx
mov rcx, rbp
mov rcx, rbp
mov r8, r14
mov r8, r14
xor edx, edx
xor edx, edx
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)
lea rcx, bword ptr [rsi+8]
lea rcx, bword ptr [rsi+8]
mov rdx, r14
mov rdx, r14
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
;; bbWeight=0.50 PerfScore 3.25
;; bbWeight=0.50 PerfScore 3.25
G_M60485_IG17:
G_M60485_IG17:
cmp ebx, edi
cmp ebx, edi
jge SHORT G_M60485_IG19
jge SHORT G_M60485_IG19
;; bbWeight=0.50 PerfScore 0.63
G_M60485_IG18:
mov rbp, gword ptr [rsi+8]
mov rbp, gword ptr [rsi+8]
mov edx, dword ptr [rsi+16]
mov r14d, dword ptr [rsi+16]
movsxd rdx, edx
movsxd r15, r14d
;; bbWeight=0.50 PerfScore 2.75
G_M60485_IG18:
mov r12, rbp
mov rdx, r15
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
call CORINFO_HELP_NEWARR_1_VC
call CORINFO_HELP_NEWARR_1_VC
mov r8, rax
cmp ebx, dword ptr [r12+8]
mov rcx, rbp
jae SHORT G_M60485_IG20
mov edx, ebx
movsxd rdx, ebx
call CORINFO_HELP_ARRADDR_ST
lea rcx, bword ptr [r12+8*rdx+16]
mov eax, dword ptr [rsi+16]
mov rdx, rax
add dword ptr [rsi+28], eax
call CORINFO_HELP_ASSIGN_REF
add dword ptr [rsi+28], r14d
inc ebx
inc ebx
cmp ebx, edi
cmp ebx, edi
jl SHORT G_M60485_IG18
jl SHORT G_M60485_IG18
;; bbWeight=4 PerfScore 63.00
;; bbWeight=4 PerfScore 55.00
G_M60485_IG19:
G_M60485_IG19:
add rsp, 48
add rsp, 48
pop rbx
pop rbx
pop rbp
pop rbp
pop rsi
pop rsi
pop rdi
pop rdi
pop r12
pop r14
pop r14
pop r15
ret
ret
;; bbWeight=1 PerfScore 3.75
;; bbWeight=1 PerfScore 4.75
G_M60485_IG20:
G_M60485_IG20:
call CORINFO_HELP_RNGCHKFAIL
call CORINFO_HELP_RNGCHKFAIL
int3
int3
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00


; Total bytes of code 384, prolog size 15, PerfScore 169.03, (MethodHash=21d213bb) for method System.Collections.Generic.SegmentedList`1[Vector`1][System.Numerics.Vector`1[System.Single]]:EnsureCapacity(int):this
; Total bytes of code 419, prolog size 19, PerfScore 171.28, (MethodHash=21d213bb) for method System.Collections.Generic.SegmentedList`1[Vector`1][System.Numerics.Vector`1[System.Single]]:EnsureCapacity(int):this
; ============================================================
; ============================================================