Untitled Diff

Created Diff never expires
54 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
366 lines
60 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
372 lines
; Assembly listing for method System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[ReadOnlyMemory`1][System.ReadOnlyMemory`1[System.Char]]:Return(System.ReadOnlyMemory`1[System.Char][],bool):this
; Assembly listing for method System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[ReadOnlyMemory`1][System.ReadOnlyMemory`1[System.Char]]:Return(System.ReadOnlyMemory`1[System.Char][],bool):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,T03] ( 9, 6 ) ref -> rdi this class-hnd
; V00 this [V00,T03] ( 9, 6 ) ref -> rdi this class-hnd
; V01 arg1 [V01,T02] ( 11, 7.50) ref -> rsi class-hnd
; V01 arg1 [V01,T02] ( 11, 7.50) ref -> rsi class-hnd
; V02 arg2 [V02,T11] ( 3, 2.50) bool -> rbx
; V02 arg2 [V02,T11] ( 3, 2.50) bool -> rbx
; V03 loc0 [V03,T06] ( 11, 6.50) int -> rbp
; V03 loc0 [V03,T06] ( 12, 7 ) int -> rbp
; V04 loc1 [V04,T18] ( 3, 2.50) ref -> rbx class-hnd exact
; V04 loc1 [V04,T19] ( 3, 2.50) ref -> rbx class-hnd exact
; V05 loc2 [V05,T10] ( 9, 4.50) ref -> r14 class-hnd
; V05 loc2 [V05,T10] ( 9, 4.50) ref -> r14 class-hnd
; V06 loc3 [V06,T35] ( 3, 1.48) ref -> rbx class-hnd
; V06 loc3 [V06,T36] ( 3, 1.48) ref -> rbx class-hnd
;* V07 loc4 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd
;* V07 loc4 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd
; V08 OutArgs [V08 ] ( 1, 1 ) lclBlk (40) [rsp+0x00] "OutgoingArgSpace"
; V08 OutArgs [V08 ] ( 1, 1 ) lclBlk (40) [rsp+0x00] "OutgoingArgSpace"
; V09 tmp1 [V09,T24] ( 2, 2 ) int -> rbp "impAppendStmt"
; V09 tmp1 [V09,T25] ( 2, 2 ) int -> rbp "impAppendStmt"
; V10 tmp2 [V10,T25] ( 2, 2 ) int -> rsi "impAppendStmt"
; V10 tmp2 [V10,T26] ( 2, 2 ) int -> rsi "impAppendStmt"
; V11 tmp3 [V11,T22] ( 2, 2 ) ref -> rax class-hnd "dup spill"
; V11 tmp3 [V11,T23] ( 2, 2 ) ref -> rax class-hnd "dup spill"
; V12 tmp4 [V12,T21] ( 4, 2 ) ref -> rax
; V12 tmp4 [V12,T22] ( 4, 2 ) ref -> rax
; V13 tmp5 [V13,T23] ( 2, 2 ) ref -> r14 class-hnd exact "dup spill"
; V13 tmp5 [V13,T24] ( 2, 2 ) ref -> r14 class-hnd exact "dup spill"
; V14 tmp6 [V14,T08] ( 6, 6 ) ref -> r14 class-hnd exact "NewObj constructor temp"
; V14 tmp6 [V14,T08] ( 6, 6 ) ref -> r14 class-hnd exact "NewObj constructor temp"
; V15 tmp7 [V15,T38] ( 3, 0 ) ref -> rsi class-hnd exact "NewObj constructor temp"
; V15 tmp7 [V15,T38] ( 3, 0 ) ref -> rsi class-hnd exact "NewObj constructor temp"
; V16 tmp8 [V16,T39] ( 3, 0 ) ref -> rsi class-hnd exact "NewObj constructor temp"
; V16 tmp8 [V16,T39] ( 3, 0 ) ref -> rsi class-hnd exact "NewObj constructor temp"
; V17 tmp9 [V17,T09] ( 3, 6 ) int -> rbp "Inlining Arg"
; V17 tmp9 [V17,T09] ( 3, 6 ) int -> rbp "Inlining Arg"
; V18 tmp10 [V18,T26] ( 2, 2 ) int -> rbp "Inline stloc first use temp"
; V18 tmp10 [V18,T27] ( 2, 2 ) int -> rbp "Inline stloc first use temp"
;* V19 tmp11 [V19 ] ( 0, 0 ) bool -> zero-ref "Inlining Arg"
;* V19 tmp11 [V19 ] ( 0, 0 ) bool -> zero-ref "Inlining Arg"
;* V20 tmp12 [V20 ] ( 0, 0 ) bool -> zero-ref "Inlining Arg"
;* V20 tmp12 [V20 ] ( 0, 0 ) bool -> zero-ref "Inlining Arg"
; V21 tmp13 [V21,T19] ( 2, 2.50) ref -> r15 class-hnd "Inlining Arg"
; V21 tmp13 [V21,T20] ( 2, 2.50) ref -> r15 class-hnd "Inlining Arg"
; V22 tmp14 [V22,T20] ( 2, 2.50) ref -> r14 class-hnd "Inlining Arg"
; V22 tmp14 [V22,T21] ( 2, 2.50) ref -> r14 class-hnd "Inlining Arg"
; V23 tmp15 [V23,T27] ( 2, 2 ) int -> r8 "Inline return value spill temp"
; V23 tmp15 [V23,T28] ( 2, 2 ) int -> r8 "Inline return value spill temp"
; V24 tmp16 [V24,T28] ( 2, 2 ) bool -> rcx "Inlining Arg"
; V24 tmp16 [V24,T29] ( 2, 2 ) bool -> rcx "Inlining Arg"
; V25 tmp17 [V25,T34] ( 2, 1.50) ref -> rbp class-hnd "Inlining Arg"
; V25 tmp17 [V25,T35] ( 2, 1.50) ref -> rbp class-hnd "Inlining Arg"
;* V26 tmp18 [V26 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V26 tmp18 [V26 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
; V27 tmp19 [V27,T13] ( 3, 3 ) ref -> rbx class-hnd exact "NewObj constructor temp"
; V27 tmp19 [V27,T13] ( 3, 3 ) ref -> rbx class-hnd exact "NewObj constructor temp"
; V28 tmp20 [V28 ] ( 3, 3 ) struct ( 8) [rsp+0x30] do-not-enreg[XS] addr-exposed "NewObj constructor temp"
; V28 tmp20 [V28 ] ( 3, 3 ) struct ( 8) [rsp+0x30] do-not-enreg[XS] addr-exposed "NewObj constructor temp"
; V29 tmp21 [V29,T14] ( 3, 3 ) ref -> rbp class-hnd "Inline stloc first use temp"
; V29 tmp21 [V29,T14] ( 3, 3 ) ref -> rbp class-hnd "Inline stloc first use temp"
; V30 tmp22 [V30,T01] ( 7, 11.50) int -> r15 "Inline stloc first use temp"
; V30 tmp22 [V30,T01] ( 7, 11.50) int -> r15 "Inline stloc first use temp"
; V31 tmp23 [V31,T07] ( 4, 6.50) int -> r12 "Inline stloc first use temp"
; V31 tmp23 [V31,T07] ( 4, 6.50) int -> r12 "Inline stloc first use temp"
; V32 tmp24 [V32,T04] ( 2, 8 ) int -> r15 "dup spill"
; V32 tmp24 [V32,T04] ( 2, 8 ) int -> r15 "dup spill"
; V33 tmp25 [V33,T37] ( 2, 1 ) int -> rax "Inline return value spill temp"
; V33 tmp25 [V33,T37] ( 2, 1 ) int -> rax "Inline return value spill temp"
; V34 tmp26 [V34,T12] ( 3, 4.48) bool -> [rsp+0x2C] "Inline stloc first use temp"
; V34 tmp26 [V34,T12] ( 3, 4.48) bool -> [rsp+0x2C] "Inline stloc first use temp"
; V35 tmp27 [V35,T00] ( 10, 24.80) ref -> r13 class-hnd "Inlining Arg"
; V35 tmp27 [V35,T00] ( 10, 24.80) ref -> r13 class-hnd "Inlining Arg"
; V36 tmp28 [V36,T36] ( 3, 1.44) int -> rdx "Inline stloc first use temp"
; V36 tmp28 [V36,T31] ( 4, 1.92) int -> rcx "Inline stloc first use temp"
; V37 tmp29 [V37,T30] ( 2, 1.92) ref -> rcx class-hnd "impAppendStmt"
; V37 tmp29 [V37,T18] ( 3, 2.88) ref -> rdx class-hnd "impAppendStmt"
; V38 tmp30 [V38,T29] ( 2, 2 ) int -> rax "Inlining Arg"
; V38 tmp30 [V38,T30] ( 2, 2 ) int -> rax "Inlining Arg"
; V39 tmp31 [V39 ] ( 3, 2 ) long -> [rsp+0x30] do-not-enreg[X] addr-exposed V28._handle(offs=0x00) P-DEP "field V28._handle (fldOffset=0x0)"
; V39 tmp31 [V39 ] ( 3, 2 ) long -> [rsp+0x30] do-not-enreg[X] addr-exposed V28._handle(offs=0x00) P-DEP "field V28._handle (fldOffset=0x0)"
; V40 tmp32 [V40,T40] ( 2, 0 ) ref -> rdx "argument with side effect"
; V40 tmp32 [V40,T40] ( 2, 0 ) ref -> rdx "argument with side effect"
; V41 tmp33 [V41,T31] ( 3, 1.50) ref -> rcx "argument with side effect"
; V41 tmp33 [V41,T32] ( 3, 1.50) ref -> rcx "argument with side effect"
; V42 tmp34 [V42,T15] ( 3, 3 ) ref -> rdx "arr expr"
; V42 tmp34 [V42,T15] ( 3, 3 ) ref -> rdx "arr expr"
; V43 tmp35 [V43,T41] ( 2, 0 ) ref -> rcx "argument with side effect"
; V43 tmp35 [V43,T41] ( 2, 0 ) ref -> rcx "argument with side effect"
; V44 tmp36 [V44,T42] ( 2, 0 ) ref -> rdi "argument with side effect"
; V44 tmp36 [V44,T42] ( 2, 0 ) ref -> rdi "argument with side effect"
; V45 tmp37 [V45,T43] ( 2, 0 ) ref -> r8 "argument with side effect"
; V45 tmp37 [V45,T43] ( 2, 0 ) ref -> r8 "argument with side effect"
; V46 tmp38 [V46,T32] ( 3, 1.50) ref -> rcx "argument with side effect"
; V46 tmp38 [V46,T33] ( 3, 1.50) ref -> rcx "argument with side effect"
; V47 tmp39 [V47,T16] ( 3, 3 ) ref -> rcx "arr expr"
; V47 tmp39 [V47,T16] ( 3, 3 ) ref -> rcx "arr expr"
; V48 cse0 [V48,T33] ( 3, 1.50) byref -> rbx "CSE - moderate"
; V48 cse0 [V48,T34] ( 3, 1.50) byref -> rbx "CSE - moderate"
; V49 cse1 [V49,T17] ( 3, 3 ) ref -> r14 "CSE - moderate"
; V49 cse1 [V49,T17] ( 3, 3 ) ref -> r14 "CSE - moderate"
; V50 cse2 [V50,T05] ( 6, 7.50) int -> r14 "CSE - aggressive"
; V50 cse2 [V50,T05] ( 6, 7.50) int -> r14 "CSE - aggressive"
;
;
; Lcl frame size = 56
; Lcl frame size = 56


G_M7809_IG01:
G_M7809_IG01:
push r15
push r15
push r14
push r14
push r13
push r13
push r12
push r12
push rdi
push rdi
push rsi
push rsi
push rbp
push rbp
push rbx
push rbx
sub rsp, 56
sub rsp, 56
mov rdi, rcx
mov rdi, rcx
mov rsi, rdx
mov rsi, rdx
mov ebx, r8d
mov ebx, r8d
;; bbWeight=1 PerfScore 9.00
;; bbWeight=1 PerfScore 9.00
G_M7809_IG02:
G_M7809_IG02:
test rsi, rsi
test rsi, rsi
je G_M7809_IG24
je G_M7809_IG24
;; bbWeight=1 PerfScore 1.25
;; bbWeight=1 PerfScore 1.25
G_M7809_IG03:
G_M7809_IG03:
mov ebp, dword ptr [rsi+8]
mov ebp, dword ptr [rsi+8]
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov r14, gword ptr [rcx]
mov r14, gword ptr [rcx]
mov r15, r14
mov r15, r14
test ebp, ebp
test ebp, ebp
jge SHORT G_M7809_IG05
jge SHORT G_M7809_IG05
;; bbWeight=1 PerfScore 5.75
;; bbWeight=1 PerfScore 5.75
G_M7809_IG04:
G_M7809_IG04:
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov edx, 0x724
mov edx, 0x724
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov rcx, gword ptr [rcx]
mov rcx, gword ptr [rcx]
mov rdx, r15
mov rdx, r15
mov r8, r14
mov r8, r14
mov rax, qword ptr [rcx]
mov rax, qword ptr [rcx]
mov rax, qword ptr [rax+72]
mov rax, qword ptr [rax+72]
call qword ptr [rax+32]System.Diagnostics.DebugProvider:Fail(System.String,System.String):this
call qword ptr [rax+32]System.Diagnostics.DebugProvider:Fail(System.String,System.String):this
;; bbWeight=0.25 PerfScore 2.81
;; bbWeight=0.25 PerfScore 2.81
G_M7809_IG05:
G_M7809_IG05:
dec ebp
dec ebp
shr ebp, 4
shr ebp, 4
xor r8d, r8d
xor r8d, r8d
lzcnt r8d, ebp
lzcnt r8d, ebp
mov ebp, r8d
mov ebp, r8d
neg ebp
neg ebp
add ebp, 32
add ebp, 32
mov r8, gword ptr [rdi+16]
mov r8, gword ptr [rdi+16]
cmp dword ptr [r8+8], ebp
cmp dword ptr [r8+8], ebp
jle G_M7809_IG20
jle G_M7809_IG20
;; bbWeight=1 PerfScore 10.25
;; bbWeight=1 PerfScore 10.25
G_M7809_IG06:
G_M7809_IG06:
test bl, bl
test bl, bl
je SHORT G_M7809_IG07
je SHORT G_M7809_IG07
mov r8d, dword ptr [rsi+8]
mov r8d, dword ptr [rsi+8]
mov rcx, rsi
mov rcx, rsi
xor edx, edx
xor edx, edx
call System.Array:Clear(System.Array,int,int)
call System.Array:Clear(System.Array,int,int)
;; bbWeight=0.50 PerfScore 2.38
;; bbWeight=0.50 PerfScore 2.38
G_M7809_IG07:
G_M7809_IG07:
mov ecx, dword ptr [rsi+8]
mov ecx, dword ptr [rsi+8]
mov rdx, gword ptr [rdi+8]
mov rdx, gword ptr [rdi+8]
cmp ebp, dword ptr [rdx+8]
cmp ebp, dword ptr [rdx+8]
jae G_M7809_IG26
jae G_M7809_IG26
movsxd rax, ebp
movsxd rax, ebp
cmp ecx, dword ptr [rdx+4*rax+16]
cmp ecx, dword ptr [rdx+4*rax+16]
jne G_M7809_IG25
jne G_M7809_IG25
;; bbWeight=0.50 PerfScore 5.13
;; bbWeight=0.50 PerfScore 5.13
G_M7809_IG08:
G_M7809_IG08:
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov edx, 26
mov edx, 26
call CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_DYNAMICCLASS
call CORINFO_HELP_GETSHARED_GCTHREADSTATIC_BASE_DYNAMICCLASS
mov rbx, rax
mov rbx, rax
mov r14, gword ptr [rbx]
mov r14, gword ptr [rbx]
test r14, r14
test r14, r14
jne G_M7809_IG11
jne G_M7809_IG11
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov edx, 17
mov edx, 17
call CORINFO_HELP_NEWARR_1_OBJ
call CORINFO_HELP_NEWARR_1_OBJ
mov r14, rax
mov r14, rax
mov rcx, rbx
mov rcx, rbx
mov rdx, r14
mov rdx, r14
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
mov rcx, r14
cmp ebp, 17
mov edx, ebp
jae G_M7809_IG26
mov r8, rsi
movsxd rdx, ebp
call CORINFO_HELP_ARRADDR_ST
lea rcx, bword ptr [r14+8*rdx+16]
mov rdx, rsi
call CORINFO_HELP_ASSIGN_REF
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
cmp gword ptr [rcx], 0
cmp gword ptr [rcx], 0
setne cl
setne cl
movzx rcx, cl
movzx rcx, cl
mov rdx, 0xD1FFAB1E
mov rdx, 0xD1FFAB1E
mov rbp, gword ptr [rdx]
mov rbp, gword ptr [rdx]
test ecx, ecx
test ecx, ecx
jne SHORT G_M7809_IG10
jne SHORT G_M7809_IG10
;; bbWeight=0.50 PerfScore 8.50
;; bbWeight=0.50 PerfScore 9.50
G_M7809_IG09:
G_M7809_IG09:
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov edx, 0x724
mov edx, 0x724
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov rcx, gword ptr [rcx]
mov rcx, gword ptr [rcx]
mov rdx, 0xD1FFAB1E
mov rdx, 0xD1FFAB1E
mov rdx, gword ptr [rdx]
mov rdx, gword ptr [rdx]
mov r8, rbp
mov r8, rbp
mov rax, qword ptr [rcx]
mov rax, qword ptr [rcx]
mov rax, qword ptr [rax+72]
mov rax, qword ptr [rax+72]
call qword ptr [rax+32]System.Diagnostics.DebugProvider:Fail(System.String,System.String):this
call qword ptr [rax+32]System.Diagnostics.DebugProvider:Fail(System.String,System.String):this
;; bbWeight=0.25 PerfScore 3.31
;; bbWeight=0.25 PerfScore 3.31
G_M7809_IG10:
G_M7809_IG10:
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov rcx, gword ptr [rcx]
mov rcx, gword ptr [rcx]
mov rdx, r14
mov rdx, r14
xor r8, r8
xor r8, r8
cmp dword ptr [rcx], ecx
cmp dword ptr [rcx], ecx
call System.Runtime.CompilerServices.ConditionalWeakTable`2[__Canon,__Canon][System.__Canon,System.__Canon]:Add(System.__Canon,System.__Canon):this
call System.Runtime.CompilerServices.ConditionalWeakTable`2[__Canon,__Canon][System.__Canon,System.__Canon]:Add(System.__Canon,System.__Canon):this
lea rcx, bword ptr [rdi+24]
lea rcx, bword ptr [rdi+24]
mov eax, 1
mov eax, 1
xchg dword ptr [rcx], eax
xchg dword ptr [rcx], eax
cmp eax, 1
cmp eax, 1
je G_M7809_IG20
je G_M7809_IG20
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
mov r14, rax
mov r14, rax
lea rcx, bword ptr [r14+8]
lea rcx, bword ptr [r14+8]
mov rdx, r14
mov rdx, r14
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov qword ptr [r14+24], rcx
mov qword ptr [r14+24], rcx
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov qword ptr [r14+32], rcx
mov qword ptr [r14+32], rcx
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
call CORINFO_HELP_NEWFAST
call CORINFO_HELP_NEWFAST
mov rbx, rax
mov rbx, rax
lea rcx, bword ptr [rbx+16]
lea rcx, bword ptr [rbx+16]
mov rdx, r14
mov rdx, r14
call CORINFO_HELP_ASSIGN_REF
call CORINFO_HELP_ASSIGN_REF
xor rcx, rcx
xor rcx, rcx
mov qword ptr [rsp+30H], rcx
mov qword ptr [rsp+30H], rcx
lea rcx, bword ptr [rsp+30H]
lea rcx, bword ptr [rsp+30H]
mov rdx, rdi
mov rdx, rdi
xor r8d, r8d
xor r8d, r8d
call System.Runtime.InteropServices.GCHandle:.ctor(System.Object,int):this
call System.Runtime.InteropServices.GCHandle:.ctor(System.Object,int):this
mov rcx, qword ptr [rsp+30H]
mov rdx, qword ptr [rsp+30H]
mov qword ptr [rbx+24], rcx
mov qword ptr [rbx+24], rdx
jmp G_M7809_IG20
jmp G_M7809_IG20
;; bbWeight=0.50 PerfScore 23.00
;; bbWeight=0.50 PerfScore 23.00
G_M7809_IG11:
G_M7809_IG11:
cmp ebp, dword ptr [r14+8]
cmp ebp, dword ptr [r14+8]
jae G_M7809_IG26
jae G_M7809_IG26
movsxd rcx, ebp
movsxd rdx, ebp
mov rbx, gword ptr [r14+8*rcx+16]
mov rbx, gword ptr [r14+8*rdx+16]
mov rcx, r14
movsxd rdx, ebp
mov edx, ebp
lea rcx, bword ptr [r14+8*rdx+16]
mov r8, rsi
mov rdx, rsi
call CORINFO_HELP_ARRADDR_ST
call CORINFO_HELP_ASSIGN_REF
test rbx, rbx
test rbx, rbx
je G_M7809_IG20
je G_M7809_IG20
mov rcx, gword ptr [rdi+16]
mov rcx, gword ptr [rdi+16]
cmp ebp, dword ptr [rcx+8]
cmp ebp, dword ptr [rcx+8]
jae G_M7809_IG26
jae G_M7809_IG26
movsxd rdx, ebp
movsxd rdx, ebp
mov rax, gword ptr [rcx+8*rdx+16]
mov rax, gword ptr [rcx+8*rdx+16]
test rax, rax
test rax, rax
jne SHORT G_M7809_IG12
jne SHORT G_M7809_IG12
mov rcx, rdi
mov rcx, rdi
mov edx, ebp
mov edx, ebp
call System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[ReadOnlyMemory`1][System.ReadOnlyMemory`1[System.Char]]:CreatePerCoreLockedStacks(int):PerCoreLockedStacks[ReadOnlyMemory`1]:this
call System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[ReadOnlyMemory`1][System.ReadOnlyMemory`1[System.Char]]:CreatePerCoreLockedStacks(int):PerCoreLockedStacks[ReadOnlyMemory`1]:this
;; bbWeight=0.50 PerfScore 9.13
;; bbWeight=0.50 PerfScore 9.50
G_M7809_IG12:
G_M7809_IG12:
mov rbp, gword ptr [rax+8]
mov rbp, gword ptr [rax+8]
call System.Threading.Thread:GetCurrentProcessorNumber():int
call System.Threading.Thread:GetCurrentProcessorNumber():int
mov r14d, dword ptr [rbp+8]
mov r14d, dword ptr [rbp+8]
cdq
cdq
idiv edx:eax, r14d
idiv edx:eax, r14d
mov r15d, edx
mov r15d, edx
xor r12d, r12d
xor r12d, r12d
test r14d, r14d
test r14d, r14d
jle G_M7809_IG20
jle G_M7809_IG20
;; bbWeight=0.50 PerfScore 16.88
;; bbWeight=0.50 PerfScore 16.88
G_M7809_IG13:
G_M7809_IG13:
cmp r15d, r14d
cmp r15d, r14d
jae G_M7809_IG26
jae G_M7809_IG26
movsxd rcx, r15d
movsxd rcx, r15d
mov r13, gword ptr [rbp+8*rcx+16]
mov r13, gword ptr [rbp+8*rcx+16]
cmp dword ptr [r13], r13d
cmp dword ptr [r13], r13d
xor eax, eax
xor eax, eax
mov dword ptr [rsp+2CH], eax
mov dword ptr [rsp+2CH], eax
mov rcx, r13
mov rcx, r13
call System.Threading.Monitor:Enter(System.Object)
call System.Threading.Monitor:Enter(System.Object)
cmp dword ptr [r13+16], 8
cmp dword ptr [r13+16], 8
jge SHORT G_M7809_IG16
jge SHORT G_M7809_IG16
;; bbWeight=2 PerfScore 22.00
;; bbWeight=2 PerfScore 22.00
G_M7809_IG14:
G_M7809_IG14:
cmp dword ptr [r13+16], 0
cmp dword ptr [r13+16], 0
jne SHORT G_M7809_IG15
jne SHORT G_M7809_IG15
call System.Environment:get_TickCount():int
call System.Environment:get_TickCount():int
mov dword ptr [r13+20], eax
mov dword ptr [r13+20], eax
;; bbWeight=0.48 PerfScore 2.40
;; bbWeight=0.48 PerfScore 2.40
G_M7809_IG15:
G_M7809_IG15:
mov rcx, gword ptr [r13+8]
mov rdx, gword ptr [r13+8]
mov edx, dword ptr [r13+16]
mov ecx, dword ptr [r13+16]
lea r8d, [rdx+1]
lea eax, [rcx+1]
mov dword ptr [r13+16], r8d
mov dword ptr [r13+16], eax
mov r8, rbx
cmp ecx, dword ptr [rdx+8]
call CORINFO_HELP_ARRADDR_ST
jae G_M7809_IG26
movsxd rcx, ecx
lea rcx, bword ptr [rdx+8*rcx+16]
mov rdx, rbx
call CORINFO_HELP_ASSIGN_REF
mov dword ptr [rsp+2CH], 1
mov dword ptr [rsp+2CH], 1
;; bbWeight=0.48 PerfScore 3.72
;; bbWeight=0.48 PerfScore 5.76
G_M7809_IG16:
G_M7809_IG16:
mov rcx, r13
mov rcx, r13
call System.Threading.Monitor:Exit(System.Object)
call System.Threading.Monitor:Exit(System.Object)
cmp dword ptr [rsp+2CH], 0
cmp dword ptr [rsp+2CH], 0
jne SHORT G_M7809_IG20
jne SHORT G_M7809_IG20
;; bbWeight=2 PerfScore 6.50
;; bbWeight=2 PerfScore 6.50
G_M7809_IG17:
G_M7809_IG17:
inc r15d
inc r15d
cmp r14d, r15d
cmp r14d, r15d
jne SHORT G_M7809_IG19
jne SHORT G_M7809_IG19
;; bbWeight=2 PerfScore 3.00
;; bbWeight=2 PerfScore 3.00
G_M7809_IG18:
G_M7809_IG18:
xor r15d, r15d
xor r15d, r15d
;; bbWeight=1 PerfScore 0.25
;; bbWeight=1 PerfScore 0.25
G_M7809_IG19:
G_M7809_IG19:
inc r12d
inc r12d
cmp r14d, r12d
cmp r14d, r12d
jg SHORT G_M7809_IG13
jg G_M7809_IG13
;; bbWeight=2 PerfScore 3.00
;; bbWeight=2 PerfScore 3.00
G_M7809_IG20:
G_M7809_IG20:
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov rbx, gword ptr [rcx]
mov rbx, gword ptr [rcx]
cmp byte ptr [rbx+141], 0
cmp byte ptr [rbx+141], 0
je SHORT G_M7809_IG22
je SHORT G_M7809_IG22
;; bbWeight=1 PerfScore 5.25
;; bbWeight=1 PerfScore 5.25
G_M7809_IG21:
G_M7809_IG21:
mov rcx, rsi
mov rcx, rsi
call System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
call System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
mov ebp, eax
mov ebp, eax
mov esi, dword ptr [rsi+8]
mov esi, dword ptr [rsi+8]
mov rcx, rdi
mov rcx, rdi
call System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
call System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int
mov dword ptr [rsp+20H], eax
mov dword ptr [rsp+20H], eax
mov rcx, rbx
mov rcx, rbx
mov r8d, ebp
mov r8d, ebp
mov r9d, esi
mov r9d, esi
mov edx, 3
mov edx, 3
call System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
call System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this
;; bbWeight=0.50 PerfScore 3.88
;; bbWeight=0.50 PerfScore 3.88
G_M7809_IG22:
G_M7809_IG22:
nop
nop
;; bbWeight=1 PerfScore 0.25
;; bbWeight=1 PerfScore 0.25
G_M7809_IG23:
G_M7809_IG23:
add rsp, 56
add rsp, 56
pop rbx
pop rbx
pop rbp
pop rbp
pop rsi
pop rsi
pop rdi
pop rdi
pop r12
pop r12
pop r13
pop r13
pop r14
pop r14
pop r15
pop r15
ret
ret
;; bbWeight=1 PerfScore 5.25
;; bbWeight=1 PerfScore 5.25
G_M7809_IG24:
G_M7809_IG24:
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
mov rsi, rax
mov rsi, rax
mov ecx, 895
mov ecx, 895
mov rdx, 0xD1FFAB1E
mov rdx, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
call CORINFO_HELP_STRCNS
mov rdx, rax
mov rdx, rax
mov rcx, rsi
mov rcx, rsi
call System.ArgumentNullException:.ctor(System.String):this
call System.ArgumentNullException:.ctor(System.String):this
mov rcx, rsi
mov rcx, rsi
call CORINFO_HELP_THROW
call CORINFO_HELP_THROW
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00
G_M7809_IG25:
G_M7809_IG25:
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
mov rsi, rax
mov rsi, rax
mov ecx, 0xBF5F
mov ecx, 0xBF5F
mov rdx, 0xD1FFAB1E
mov rdx, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
call CORINFO_HELP_STRCNS
mov rcx, rax
mov rcx, rax
mov rdx, 0xD1FFAB1E
mov rdx, 0xD1FFAB1E
mov rdx, gword ptr [rdx]
mov rdx, gword ptr [rdx]
call System.SR:GetResourceString(System.String,System.String):System.String
call System.SR:GetResourceString(System.String,System.String):System.String
mov rdi, rax
mov rdi, rax
mov ecx, 895
mov ecx, 895
mov rdx, 0xD1FFAB1E
mov rdx, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
call CORINFO_HELP_STRCNS
mov r8, rax
mov r8, rax
mov rdx, rdi
mov rdx, rdi
mov rcx, rsi
mov rcx, rsi
call System.ArgumentException:.ctor(System.String,System.String):this
call System.ArgumentException:.ctor(System.String,System.String):this
mov rcx, rsi
mov rcx, rsi
call CORINFO_HELP_THROW
call CORINFO_HELP_THROW
int3
int3
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00
G_M7809_IG26:
G_M7809_IG26:
call CORINFO_HELP_RNGCHKFAIL
call CORINFO_HELP_RNGCHKFAIL
int3
int3
;; bbWeight=0 PerfScore 0.00
;; bbWeight=0 PerfScore 0.00


; Total bytes of code 1021, prolog size 25, PerfScore 254.97, (MethodHash=23ede196) for method System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[ReadOnlyMemory`1][System.ReadOnlyMemory`1[System.Char]]:Return(System.ReadOnlyMemory`1[System.Char][],bool):this
; Total bytes of code 1056, prolog size 25, PerfScore 261.89, (MethodHash=23ede196) for method System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[ReadOnlyMemory`1][System.ReadOnlyMemory`1[System.Char]]:Return(System.ReadOnlyMemory`1[System.Char][],bool):this
; ============================================================
; ============================================================