Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
표시
레이아웃
나란히 보기
합쳐 보기
실시간 편집
공백 변경 숨기기
변경 없는 행 숨기기
줄바꿈 비활성화
비교 단위
스마트
구문
없음
모양 변경
처리
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
이 비교의 나머지 부분을 불러오는 중입니다.
Untitled diff
생성일
2년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
157 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
286 행
복사
156 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
285 행
복사
; Assembly listing for method System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int]) (Tier1)
; Assembly listing for method System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int]) (Tier1)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; Tier1 code
; Tier1 code
; optimized code
; optimized code
; optimized using Dynamic PGO
; optimized using Dynamic PGO
; rsp based frame
; rsp based frame
; fully interruptible
; fully interruptible
; with Dynamic PGO: fgCalledCount is 6265
; with Dynamic PGO: fgCalledCount is 6265
; 29 inlinees with PGO data; 22 single block inlinees; 0 inlinees without PGO data
; 29 inlinees with PGO data; 22 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
복사
복사됨
복사
복사됨
; V00 arg0 [V00,T5
3
] ( 4, 8 ) byref -> rcx ld-addr-op single-def
; V00 arg0 [V00,T5
0
] ( 4, 8 ) byref -> rcx ld-addr-op single-def
; V01 arg1 [V01,T5
4
] ( 11, 7.92) int -> [rsp+0x1
6
8]
; V01 arg1 [V01,T5
1
] ( 11, 7.92) int -> [rsp+0x1
7
8]
; V02 arg2 [V02,T31] ( 45,108.59) ref -> rbx class-hnd single-def <System.Comparison`1[int]>
; V02 arg2 [V02,T31] ( 45,108.59) ref -> rbx class-hnd single-def <System.Comparison`1[int]>
복사
복사됨
복사
복사됨
; V03 loc0 [V03,
T50
] ( 23, 15.42) int -> r14
; V03 loc0 [V03,
T47
] ( 23, 15.42) int -> r14
;* V04 loc1 [V04 ] ( 0, 0 ) int -> zero-ref
;* V04 loc1 [V04 ] ( 0, 0 ) int -> zero-ref
복사
복사됨
복사
복사됨
; V05 loc2 [V05,T8
9
] ( 7, 3.91) int ->
registers
; V05 loc2 [V05,T8
6
] ( 7, 3.91) int ->
r11
; V06 OutArgs [V06 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V06 OutArgs [V06 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
;* V07 tmp1 [V07 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[int]>
;* V07 tmp1 [V07 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[int]>
;* V08 tmp2 [V08 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[int]>
;* V08 tmp2 [V08 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[int]>
;* V09 tmp3 [V09 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[int]>
;* V09 tmp3 [V09 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[int]>
;* V10 tmp4 [V10 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[int]>
;* V10 tmp4 [V10 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[int]>
;* V11 tmp5 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V11 tmp5 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V12 tmp6 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V12 tmp6 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V13 tmp7 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V13 tmp7 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V14 tmp8 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V14 tmp8 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp9 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V15 tmp9 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V16 tmp10 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
;* V16 tmp10 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
;* V17 tmp11 [V17 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V17 tmp11 [V17 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V18 tmp12 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V18 tmp12 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V19 tmp13 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V19 tmp13 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V20 tmp14 [V20,T43] ( 11, 34.18) int -> r15 "Inline stloc first use temp"
; V20 tmp14 [V20,T43] ( 11, 34.18) int -> r15 "Inline stloc first use temp"
;* V21 tmp15 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
;* V21 tmp15 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
; V22 tmp16 [V22,T41] ( 13, 78.39) int -> r12 "Inline stloc first use temp"
; V22 tmp16 [V22,T41] ( 13, 78.39) int -> r12 "Inline stloc first use temp"
; V23 tmp17 [V23,T01] ( 23,241.73) int -> registers "Inline stloc first use temp"
; V23 tmp17 [V23,T01] ( 23,241.73) int -> registers "Inline stloc first use temp"
복사
복사됨
복사
복사됨
; V24 tmp18 [V24,
T47
] ( 7, 0 ) int -> rax "guarded devirt return temp"
; V24 tmp18 [V24,
T128
] ( 7, 0 ) int -> rax "guarded devirt return temp"
; V25 tmp19 [V25,T07] ( 11,185.49) int -> rbp "guarded devirt arg temp"
; V25 tmp19 [V25,T07] ( 11,185.49) int -> rbp "guarded devirt arg temp"
; V26 tmp20 [V26,T14] ( 14,154.58) ref -> rsi class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]>
; V26 tmp20 [V26,T14] ( 14,154.58) ref -> rsi class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]>
복사
복사됨
복사
복사됨
; V27 tmp21 [V27,T28] ( 9,123.97) ref -> [rsp+
0x90
] class-hnd "Inline stloc first use temp" <System.__Canon[]>
; V27 tmp21 [V27,T28] ( 9,123.97) ref -> [rsp+
0xA8
] class-hnd "Inline stloc first use temp" <System.__Canon[]>
;* V28 tmp22 [V28 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V28 tmp22 [V28 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
; V29 tmp23 [V29,T08] ( 8,185.49) long -> r11 "VirtualCall with runtime lookup"
; V29 tmp23 [V29,T08] ( 8,185.49) long -> r11 "VirtualCall with runtime lookup"
; V30 tmp24 [V30,T38] ( 6, 92.75) int -> rax "Inline stloc first use temp"
; V30 tmp24 [V30,T38] ( 6, 92.75) int -> rax "Inline stloc first use temp"
;* V31 tmp25 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
;* V31 tmp25 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
;* V32 tmp26 [V32 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V32 tmp26 [V32 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg"
;* V33 tmp27 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
;* V33 tmp27 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
;* V34 tmp28 [V34 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V34 tmp28 [V34 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V35 tmp29 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V35 tmp29 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V36 tmp30 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V36 tmp30 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V37 tmp31 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
;* V37 tmp31 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
복사
복사됨
복사
복사됨
; V38 tmp32 [V38,
T52
] ( 34, 11.86) int -> r15 "Inline stloc first use temp"
; V38 tmp32 [V38,
T49
] ( 34, 11.86) int -> r15 "Inline stloc first use temp"
; V39 tmp33 [V39,
T51
] ( 36, 11.88) int -> [rsp+
0x10C
] "Inline stloc first use temp"
; V39 tmp33 [V39,
T48
] ( 36, 11.88) int -> [rsp+
0x114
] "Inline stloc first use temp"
; V40 tmp34 [V40,T23] ( 20,131.03) int -> [rsp+0x
108
] "Inline stloc first use temp"
; V40 tmp34 [V40,T23] ( 20,131.03) int -> [rsp+0x
110
] "Inline stloc first use temp"
; V41 tmp35 [V41,T04] ( 32,195.60) int -> [rsp+0x10
4
] "Inline stloc first use temp"
; V41 tmp35 [V41,T04] ( 32,195.60) int -> [rsp+0x10
C
] "Inline stloc first use temp"
; V42 tmp36 [V42,T16] ( 18,140.69) int -> [rsp+0x10
0
] "Inline stloc first use temp"
; V42 tmp36 [V42,T16] ( 18,140.69) int -> [rsp+0x10
8
] "Inline stloc first use temp"
; V43 tmp37 [V43,T21] ( 4,134.85) int ->
registers
"dup spill"
; V43 tmp37 [V43,T21] ( 4,134.85) int ->
rax
"dup spill"
; V44 tmp38 [V44,T00] ( 9,253.45) int ->
registers
"dup spill"
; V44 tmp38 [V44,T00] ( 9,253.45) int ->
rbp
"dup spill"
; V45 tmp39 [V45,
T44
] ( 7, 0 ) int -> registers "guarded devirt return temp"
; V45 tmp39 [V45,
T129
] ( 7, 0 ) int -> registers "guarded devirt return temp"
; V46 tmp40 [V46,T02] ( 11,202.27) int -> [rsp+
0xFC
] "guarded devirt arg temp"
; V46 tmp40 [V46,T02] ( 11,202.27) int -> [rsp+
0x104
] "guarded devirt arg temp"
; V47 tmp41 [V47,T12] ( 14,168.56) ref -> [rsp+
0x88
] class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]>
; V47 tmp41 [V47,T12] ( 14,168.56) ref -> [rsp+
0xA0
] class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]>
; V48 tmp42 [V48,
T46
] ( 7, 0 ) int ->
r10
"guarded devirt return temp"
; V48 tmp42 [V48,
T126
] ( 7, 0 ) int ->
r9
"guarded devirt return temp"
; V49 tmp43 [V49,T05] ( 11,187.89) int ->
[rsp+0xF8]
"guarded devirt arg temp"
; V49 tmp43 [V49,T05] ( 11,187.89) int ->
r12
"guarded devirt arg temp"
; V50 tmp44 [V50,T13] ( 14,156.57) ref -> [rsp+0x
80
] class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]>
; V50 tmp44 [V50,T13] ( 14,156.57) ref -> [rsp+0x
98
] class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]>
;* V51 tmp45 [V51 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V51 tmp45 [V51 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V52 tmp46 [V52 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V52 tmp46 [V52 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V53 tmp47 [V53 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V53 tmp47 [V53 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V54 tmp48 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
;* V54 tmp48 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
복사
복사됨
복사
복사됨
; V55 tmp49 [V55,T11
3
] ( 4, 1.02) int -> r8 "Inline stloc first use temp"
; V55 tmp49 [V55,T11
0
] ( 4, 1.02) int -> r8 "Inline stloc first use temp"
; V56 tmp50 [V56,
T116
] ( 7, 0 ) int -> r10 "guarded devirt return temp"
; V56 tmp50 [V56,
T132
] ( 7, 0 ) int -> r10 "guarded devirt return temp"
; V57 tmp51 [V57,T5
9
] ( 11, 5.87) int -> [rsp+
0xF4
] "guarded devirt arg temp"
; V57 tmp51 [V57,T5
6
] ( 11, 5.87) int -> [rsp+
0x100
] "guarded devirt arg temp"
; V58 tmp52 [V58,
T60
] ( 11, 5.87) int -> [rsp+0xF
0
] "guarded devirt arg temp"
; V58 tmp52 [V58,
T57
] ( 11, 5.87) int -> [rsp+0xF
C
] "guarded devirt arg temp"
; V59 tmp53 [V59,
T71
] ( 14, 4.89) ref -> [rsp+
0x78
] class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]>
; V59 tmp53 [V59,
T68
] ( 14, 4.89) ref -> [rsp+
0x90
] class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]>
;* V60 tmp54 [V60 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V60 tmp54 [V60 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V61 tmp55 [V61 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V61 tmp55 [V61 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
복사
복사됨
복사
복사됨
; V62 tmp56 [V62,T7
4
] ( 9, 4.88) ref -> [rsp+
0x70
] class-hnd "Inline stloc first use temp" <System.__Canon[]>
; V62 tmp56 [V62,T7
1
] ( 9, 4.88) ref -> [rsp+
0x88
] class-hnd "Inline stloc first use temp" <System.__Canon[]>
;* V63 tmp57 [V63 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V63 tmp57 [V63 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
복사
복사됨
복사
복사됨
; V64 tmp58 [V64,T6
5
] ( 8, 5.87) long -> [rsp+
0xE8
] "VirtualCall with runtime lookup"
; V64 tmp58 [V64,T6
2
] ( 8, 5.87) long -> [rsp+
0xF0
] "VirtualCall with runtime lookup"
; V65 tmp59 [V65,
T90
] ( 6, 2.94) int -> rax "Inline stloc first use temp"
; V65 tmp59 [V65,
T87
] ( 6, 2.94) int -> rax "Inline stloc first use temp"
;* V66 tmp60 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
;* V66 tmp60 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
복사
복사됨
복사
복사됨
; V67 tmp61 [V67,T11
4
] ( 4, 1.02) int -> r8 "Inline stloc first use temp"
; V67 tmp61 [V67,T11
1
] ( 4, 1.02) int -> r8 "Inline stloc first use temp"
; V68 tmp62 [V68,
T117
] ( 7, 0 ) int -> r10 "guarded devirt return temp"
; V68 tmp62 [V68,
T133
] ( 7, 0 ) int -> r10 "guarded devirt return temp"
; V69 tmp63 [V69,
T61
] ( 11, 5.87) int -> [rsp+0xE
4
] "guarded devirt arg temp"
; V69 tmp63 [V69,
T58
] ( 11, 5.87) int -> [rsp+0xE
C
] "guarded devirt arg temp"
; V70 tmp64 [V70,
T62
] ( 11, 5.87) int -> [rsp+0xE
0
] "guarded devirt arg temp"
; V70 tmp64 [V70,
T59
] ( 11, 5.87) int -> [rsp+0xE
8
] "guarded devirt arg temp"
; V71 tmp65 [V71,
T72
] ( 14, 4.89) ref -> [rsp+0x
68
] class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]>
; V71 tmp65 [V71,
T69
] ( 14, 4.89) ref -> [rsp+0x
80
] class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]>
;* V72 tmp66 [V72 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V72 tmp66 [V72 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V73 tmp67 [V73 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V73 tmp67 [V73 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
복사
복사됨
복사
복사됨
; V74 tmp68 [V74,T7
5
] ( 9, 4.88) ref -> [rsp+
0x60
] class-hnd "Inline stloc first use temp" <System.__Canon[]>
; V74 tmp68 [V74,T7
2
] ( 9, 4.88) ref -> [rsp+
0x78
] class-hnd "Inline stloc first use temp" <System.__Canon[]>
;* V75 tmp69 [V75 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V75 tmp69 [V75 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
복사
복사됨
복사
복사됨
; V76 tmp70 [V76,T6
6
] ( 8, 5.87) long ->
registers
"VirtualCall with runtime lookup"
; V76 tmp70 [V76,T6
3
] ( 8, 5.87) long ->
[rsp+0xE0]
"VirtualCall with runtime lookup"
; V77 tmp71 [V77,
T91
] ( 6, 2.94) int -> rax "Inline stloc first use temp"
; V77 tmp71 [V77,
T88
] ( 6, 2.94) int -> rax "Inline stloc first use temp"
;* V78 tmp72 [V78 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
;* V78 tmp72 [V78 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
복사
복사됨
복사
복사됨
; V79 tmp73 [V79,T11
5
] ( 4, 1.02) int -> r10 "Inline stloc first use temp"
; V79 tmp73 [V79,T11
2
] ( 4, 1.02) int -> r10 "Inline stloc first use temp"
; V80 tmp74 [V80,
T118
] ( 7, 0 ) int -> r10 "guarded devirt return temp"
; V80 tmp74 [V80,
T134
] ( 7, 0 ) int -> r10 "guarded devirt return temp"
; V81 tmp75 [V81,T6
3
] ( 11, 5.87) int -> [rsp+0xDC] "guarded devirt arg temp"
; V81 tmp75 [V81,T6
0
] ( 11, 5.87) int -> [rsp+0xDC] "guarded devirt arg temp"
; V82 tmp76 [V82,T6
4
] ( 11, 5.87) int -> [rsp+0xD8] "guarded devirt arg temp"
; V82 tmp76 [V82,T6
1
] ( 11, 5.87) int -> [rsp+0xD8] "guarded devirt arg temp"
; V83 tmp77 [V83,T7
3
] ( 14, 4.89) ref -> [rsp+
0x58
] class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]>
; V83 tmp77 [V83,T7
0
] ( 14, 4.89) ref -> [rsp+
0x70
] class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]>
;* V84 tmp78 [V84 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V84 tmp78 [V84 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V85 tmp79 [V85 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V85 tmp79 [V85 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
복사
복사됨
복사
복사됨
; V86 tmp80 [V86,T7
6
] ( 9, 4.88) ref -> [rsp+
0x50
] class-hnd "Inline stloc first use temp" <System.__Canon[]>
; V86 tmp80 [V86,T7
3
] ( 9, 4.88) ref -> [rsp+
0x68
] class-hnd "Inline stloc first use temp" <System.__Canon[]>
;* V87 tmp81 [V87 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V87 tmp81 [V87 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
복사
복사됨
복사
복사됨
; V88 tmp82 [V88,T6
7
] ( 8, 5.87) long ->
[rsp+0xD0]
"VirtualCall with runtime lookup"
; V88 tmp82 [V88,T6
4
] ( 8, 5.87) long ->
registers
"VirtualCall with runtime lookup"
; V89 tmp83 [V89,T
92
] ( 6, 2.94) int -> rax "Inline stloc first use temp"
; V89 tmp83 [V89,T
89
] ( 6, 2.94) int -> rax "Inline stloc first use temp"
; V90 tmp84 [V90,T5
6
] ( 11, 9.81) int -> [rsp+
0xCC
] "Inlining Arg"
; V90 tmp84 [V90,T5
3
] ( 11, 9.81) int -> [rsp+
0xD4
] "Inlining Arg"
;* V91 tmp85 [V91 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
;* V91 tmp85 [V91 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
복사
복사됨
복사
복사됨
; V92 tmp86 [V92,T9
4
] ( 4, 1.96) int -> rdx "Inline stloc first use temp"
; V92 tmp86 [V92,T9
1
] ( 4, 1.96) int -> rdx "Inline stloc first use temp"
;* V93 tmp87 [V93 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V93 tmp87 [V93 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V94 tmp88 [V94 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V94 tmp88 [V94 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
복사
복사됨
복사
복사됨
; V95 tmp89 [V95,T17] ( 9,135.19) ref -> [rsp+
0x48
] class-hnd "Inline stloc first use temp" <System.__Canon[]>
; V95 tmp89 [V95,T17] ( 9,135.19) ref -> [rsp+
0x60
] class-hnd "Inline stloc first use temp" <System.__Canon[]>
;* V96 tmp90 [V96 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V96 tmp90 [V96 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
복사
복사됨
복사
복사됨
; V97 tmp91 [V97,T03] ( 8,202.27) long ->
[rsp+0xC0]
"VirtualCall with runtime lookup"
; V97 tmp91 [V97,T03] ( 8,202.27) long ->
registers
"VirtualCall with runtime lookup"
; V98 tmp92 [V98,T33] ( 6,101.13) int -> rax "Inline stloc first use temp"
; V98 tmp92 [V98,T33] ( 6,101.13) int -> rax "Inline stloc first use temp"
복사
복사됨
복사
복사됨
; V99 tmp93 [V99,T24] ( 9,125.58) ref -> [rsp+
0x40
] class-hnd "Inline stloc first use temp" <System.__Canon[]>
; V99 tmp93 [V99,T24] ( 9,125.58) ref -> [rsp+
0x58
] class-hnd "Inline stloc first use temp" <System.__Canon[]>
;* V100 tmp94 [V100 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
;* V100 tmp94 [V100 ] ( 0, 0 ) long -> zero-ref "spilling helperCall"
복사
복사됨
복사
복사됨
; V101 tmp95 [V101,T06] ( 8,187.89) long ->
[rsp+0xB8]
"VirtualCall with runtime lookup"
; V101 tmp95 [V101,T06] ( 8,187.89) long ->
r11
"VirtualCall with runtime lookup"
; V102 tmp96 [V102,T37] ( 6, 93.94) int -> rax "Inline stloc first use temp"
; V102 tmp96 [V102,T37] ( 6, 93.94) int -> rax "Inline stloc first use temp"
;* V103 tmp97 [V103 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
;* V103 tmp97 [V103 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
복사
복사됨
복사
복사됨
; V104 tmp98 [V104,T4
8
] ( 4, 25.90) int -> r10 "Inline stloc first use temp"
; V104 tmp98 [V104,T4
5
] ( 4, 25.90) int -> r10 "Inline stloc first use temp"
;* V105 tmp99 [V105 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V105 tmp99 [V105 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V106 tmp100 [V106 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V106 tmp100 [V106 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
복사
복사됨
복사
복사됨
; V107 tmp101 [V107,
T82
] ( 5, 3.93) int -> r15 "Inlining Arg"
; V107 tmp101 [V107,
T79
] ( 5, 3.93) int -> r15 "Inlining Arg"
;* V108 tmp102 [V108 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
;* V108 tmp102 [V108 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]>
복사
복사됨
복사
복사됨
; V109 tmp103 [V109,T9
5
] ( 4, 1.96) int -> r9 "Inline stloc first use temp"
; V109 tmp103 [V109,T9
2
] ( 4, 1.96) int -> r9 "Inline stloc first use temp"
;* V110 tmp104 [V110 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V110 tmp104 [V110 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V111 tmp105 [V111 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V111 tmp105 [V111 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
복사
복사됨
복사
복사됨
; V112 tmp106 [V112,T5
5
] ( 8, 9.83) int ->
r15
"Inlining Arg"
; V112 tmp106 [V112,T5
2
] ( 8, 9.83) int ->
registers
"Inlining Arg"
;* V113 tmp107 [V113 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
;* V113 tmp107 [V113 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]>
복사
복사됨
복사
복사됨
; V114 tmp108 [V114,T5
8
] ( 4, 5.92) byref -> registers "Inlining Arg"
; V114 tmp108 [V114,T5
5
] ( 4, 5.92) byref -> registers "Inlining Arg"
;* V115 tmp109 [V115 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V115 tmp109 [V115 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V116 tmp110 [V116 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
;* V116 tmp110 [V116 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg"
; V117 tmp111 [V117,T27] ( 29,123.74) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
; V117 tmp111 [V117,T27] ( 29,123.74) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP
저장된 비교 결과
원본
파일 열기
; Assembly listing for method System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int]) (Tier1) ; Emitting BLENDED_CODE for X64 with AVX512 - Windows ; Tier1 code ; optimized code ; optimized using Dynamic PGO ; rsp based frame ; fully interruptible ; with Dynamic PGO: fgCalledCount is 6265 ; 29 inlinees with PGO data; 22 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T53] ( 4, 8 ) byref -> rcx ld-addr-op single-def ; V01 arg1 [V01,T54] ( 11, 7.92) int -> [rsp+0x168] ; V02 arg2 [V02,T31] ( 45,108.59) ref -> rbx class-hnd single-def <System.Comparison`1[int]> ; V03 loc0 [V03,T50] ( 23, 15.42) int -> r14 ;* V04 loc1 [V04 ] ( 0, 0 ) int -> zero-ref ; V05 loc2 [V05,T89] ( 7, 3.91) int -> registers ; V06 OutArgs [V06 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V07 tmp1 [V07 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[int]> ;* V08 tmp2 [V08 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[int]> ;* V09 tmp3 [V09 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[int]> ;* V10 tmp4 [V10 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[int]> ;* V11 tmp5 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V12 tmp6 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V13 tmp7 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V14 tmp8 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V15 tmp9 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V16 tmp10 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]> ;* V17 tmp11 [V17 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg" ;* V18 tmp12 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V19 tmp13 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V20 tmp14 [V20,T43] ( 11, 34.18) int -> r15 "Inline stloc first use temp" ;* V21 tmp15 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]> ; V22 tmp16 [V22,T41] ( 13, 78.39) int -> r12 "Inline stloc first use temp" ; V23 tmp17 [V23,T01] ( 23,241.73) int -> registers "Inline stloc first use temp" ; V24 tmp18 [V24,T47] ( 7, 0 ) int -> rax "guarded devirt return temp" ; V25 tmp19 [V25,T07] ( 11,185.49) int -> rbp "guarded devirt arg temp" ; V26 tmp20 [V26,T14] ( 14,154.58) ref -> rsi class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]> ; V27 tmp21 [V27,T28] ( 9,123.97) ref -> [rsp+0x90] class-hnd "Inline stloc first use temp" <System.__Canon[]> ;* V28 tmp22 [V28 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V29 tmp23 [V29,T08] ( 8,185.49) long -> r11 "VirtualCall with runtime lookup" ; V30 tmp24 [V30,T38] ( 6, 92.75) int -> rax "Inline stloc first use temp" ;* V31 tmp25 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]> ;* V32 tmp26 [V32 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg" ;* V33 tmp27 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]> ;* V34 tmp28 [V34 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V35 tmp29 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V36 tmp30 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V37 tmp31 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]> ; V38 tmp32 [V38,T52] ( 34, 11.86) int -> r15 "Inline stloc first use temp" ; V39 tmp33 [V39,T51] ( 36, 11.88) int -> [rsp+0x10C] "Inline stloc first use temp" ; V40 tmp34 [V40,T23] ( 20,131.03) int -> [rsp+0x108] "Inline stloc first use temp" ; V41 tmp35 [V41,T04] ( 32,195.60) int -> [rsp+0x104] "Inline stloc first use temp" ; V42 tmp36 [V42,T16] ( 18,140.69) int -> [rsp+0x100] "Inline stloc first use temp" ; V43 tmp37 [V43,T21] ( 4,134.85) int -> registers "dup spill" ; V44 tmp38 [V44,T00] ( 9,253.45) int -> registers "dup spill" ; V45 tmp39 [V45,T44] ( 7, 0 ) int -> registers "guarded devirt return temp" ; V46 tmp40 [V46,T02] ( 11,202.27) int -> [rsp+0xFC] "guarded devirt arg temp" ; V47 tmp41 [V47,T12] ( 14,168.56) ref -> [rsp+0x88] class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]> ; V48 tmp42 [V48,T46] ( 7, 0 ) int -> r10 "guarded devirt return temp" ; V49 tmp43 [V49,T05] ( 11,187.89) int -> [rsp+0xF8] "guarded devirt arg temp" ; V50 tmp44 [V50,T13] ( 14,156.57) ref -> [rsp+0x80] class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]> ;* V51 tmp45 [V51 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V52 tmp46 [V52 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V53 tmp47 [V53 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V54 tmp48 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]> ; V55 tmp49 [V55,T113] ( 4, 1.02) int -> r8 "Inline stloc first use temp" ; V56 tmp50 [V56,T116] ( 7, 0 ) int -> r10 "guarded devirt return temp" ; V57 tmp51 [V57,T59] ( 11, 5.87) int -> [rsp+0xF4] "guarded devirt arg temp" ; V58 tmp52 [V58,T60] ( 11, 5.87) int -> [rsp+0xF0] "guarded devirt arg temp" ; V59 tmp53 [V59,T71] ( 14, 4.89) ref -> [rsp+0x78] class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]> ;* V60 tmp54 [V60 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V61 tmp55 [V61 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V62 tmp56 [V62,T74] ( 9, 4.88) ref -> [rsp+0x70] class-hnd "Inline stloc first use temp" <System.__Canon[]> ;* V63 tmp57 [V63 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V64 tmp58 [V64,T65] ( 8, 5.87) long -> [rsp+0xE8] "VirtualCall with runtime lookup" ; V65 tmp59 [V65,T90] ( 6, 2.94) int -> rax "Inline stloc first use temp" ;* V66 tmp60 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]> ; V67 tmp61 [V67,T114] ( 4, 1.02) int -> r8 "Inline stloc first use temp" ; V68 tmp62 [V68,T117] ( 7, 0 ) int -> r10 "guarded devirt return temp" ; V69 tmp63 [V69,T61] ( 11, 5.87) int -> [rsp+0xE4] "guarded devirt arg temp" ; V70 tmp64 [V70,T62] ( 11, 5.87) int -> [rsp+0xE0] "guarded devirt arg temp" ; V71 tmp65 [V71,T72] ( 14, 4.89) ref -> [rsp+0x68] class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]> ;* V72 tmp66 [V72 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V73 tmp67 [V73 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V74 tmp68 [V74,T75] ( 9, 4.88) ref -> [rsp+0x60] class-hnd "Inline stloc first use temp" <System.__Canon[]> ;* V75 tmp69 [V75 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V76 tmp70 [V76,T66] ( 8, 5.87) long -> registers "VirtualCall with runtime lookup" ; V77 tmp71 [V77,T91] ( 6, 2.94) int -> rax "Inline stloc first use temp" ;* V78 tmp72 [V78 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]> ; V79 tmp73 [V79,T115] ( 4, 1.02) int -> r10 "Inline stloc first use temp" ; V80 tmp74 [V80,T118] ( 7, 0 ) int -> r10 "guarded devirt return temp" ; V81 tmp75 [V81,T63] ( 11, 5.87) int -> [rsp+0xDC] "guarded devirt arg temp" ; V82 tmp76 [V82,T64] ( 11, 5.87) int -> [rsp+0xD8] "guarded devirt arg temp" ; V83 tmp77 [V83,T73] ( 14, 4.89) ref -> [rsp+0x58] class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]> ;* V84 tmp78 [V84 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V85 tmp79 [V85 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V86 tmp80 [V86,T76] ( 9, 4.88) ref -> [rsp+0x50] class-hnd "Inline stloc first use temp" <System.__Canon[]> ;* V87 tmp81 [V87 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V88 tmp82 [V88,T67] ( 8, 5.87) long -> [rsp+0xD0] "VirtualCall with runtime lookup" ; V89 tmp83 [V89,T92] ( 6, 2.94) int -> rax "Inline stloc first use temp" ; V90 tmp84 [V90,T56] ( 11, 9.81) int -> [rsp+0xCC] "Inlining Arg" ;* V91 tmp85 [V91 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]> ; V92 tmp86 [V92,T94] ( 4, 1.96) int -> rdx "Inline stloc first use temp" ;* V93 tmp87 [V93 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V94 tmp88 [V94 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V95 tmp89 [V95,T17] ( 9,135.19) ref -> [rsp+0x48] class-hnd "Inline stloc first use temp" <System.__Canon[]> ;* V96 tmp90 [V96 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V97 tmp91 [V97,T03] ( 8,202.27) long -> [rsp+0xC0] "VirtualCall with runtime lookup" ; V98 tmp92 [V98,T33] ( 6,101.13) int -> rax "Inline stloc first use temp" ; V99 tmp93 [V99,T24] ( 9,125.58) ref -> [rsp+0x40] class-hnd "Inline stloc first use temp" <System.__Canon[]> ;* V100 tmp94 [V100 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V101 tmp95 [V101,T06] ( 8,187.89) long -> [rsp+0xB8] "VirtualCall with runtime lookup" ; V102 tmp96 [V102,T37] ( 6, 93.94) int -> rax "Inline stloc first use temp" ;* V103 tmp97 [V103 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]> ; V104 tmp98 [V104,T48] ( 4, 25.90) int -> r10 "Inline stloc first use temp" ;* V105 tmp99 [V105 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V106 tmp100 [V106 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V107 tmp101 [V107,T82] ( 5, 3.93) int -> r15 "Inlining Arg" ;* V108 tmp102 [V108 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]> ; V109 tmp103 [V109,T95] ( 4, 1.96) int -> r9 "Inline stloc first use temp" ;* V110 tmp104 [V110 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V111 tmp105 [V111 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V112 tmp106 [V112,T55] ( 8, 9.83) int -> r15 "Inlining Arg" ;* V113 tmp107 [V113 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]> ; V114 tmp108 [V114,T58] ( 4, 5.92) byref -> registers "Inlining Arg" ;* V115 tmp109 [V115 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V116 tmp110 [V116 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V117 tmp111 [V117,T27] ( 29,123.74) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP ; V118 tmp112 [V118,T57] ( 14, 6.98) int -> [rsp+0xB4] spill-single-def "field V00._length (fldOffset=0x8)" P-INDEP ;* V119 tmp113 [V119 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP ;* V120 tmp114 [V120 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP ;* V121 tmp115 [V121 ] ( 0, 0 ) byref -> zero-ref "field V08._reference (fldOffset=0x0)" P-INDEP ;* V122 tmp116 [V122 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP ;* V123 tmp117 [V123 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP ;* V124 tmp118 [V124 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP ;* V125 tmp119 [V125 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP ;* V126 tmp120 [V126 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP ; V127 tmp121 [V127,T99] ( 2, 1.80) byref -> rdi single-def "field V16._reference (fldOffset=0x0)" P-INDEP ; V128 tmp122 [V128,T100] ( 2, 1.80) int -> r14 "field V16._length (fldOffset=0x8)" P-INDEP ; V129 tmp123 [V129,T36] ( 11, 97.24) byref -> rdi single-def "field V21._reference (fldOffset=0x0)" P-INDEP ; V130 tmp124 [V130,T32] ( 14,106.42) int -> r14 "field V21._length (fldOffset=0x8)" P-INDEP ; V131 tmp125 [V131,T139] ( 2, 0 ) byref -> rcx single-def "field V31._reference (fldOffset=0x0)" P-INDEP ; V132 tmp126 [V132,T140] ( 2, 0 ) int -> rdx "field V31._length (fldOffset=0x8)" P-INDEP ;* V133 tmp127 [V133,T119] ( 0, 0 ) byref -> zero-ref "field V33._reference (fldOffset=0x0)" P-INDEP ; V134 tmp128 [V134,T96] ( 4, 1.96) int -> r13 "field V33._length (fldOffset=0x8)" P-INDEP ; V135 tmp129 [V135,T49] ( 48, 17.84) byref -> r12 "field V37._reference (fldOffset=0x0)" P-INDEP ; V136 tmp130 [V136,T35] ( 44, 97.22) int -> r13 "field V37._length (fldOffset=0x8)" P-INDEP ;* V137 tmp131 [V137 ] ( 0, 0 ) byref -> zero-ref "field V54._reference (fldOffset=0x0)" P-INDEP ;* V138 tmp132 [V138 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP ;* V139 tmp133 [V139 ] ( 0, 0 ) byref -> zero-ref "field V66._reference (fldOffset=0x0)" P-INDEP ;* V140 tmp134 [V140 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP ;* V141 tmp135 [V141 ] ( 0, 0 ) byref -> zero-ref "field V78._reference (fldOffset=0x0)" P-INDEP ;* V142 tmp136 [V142 ] ( 0, 0 ) int -> zero-ref "field V78._length (fldOffset=0x8)" P-INDEP ;* V143 tmp137 [V143 ] ( 0, 0 ) byref -> zero-ref "field V91._reference (fldOffset=0x0)" P-INDEP ;* V144 tmp138 [V144 ] ( 0, 0 ) int -> zero-ref "field V91._length (fldOffset=0x8)" P-INDEP ;* V145 tmp139 [V145 ] ( 0, 0 ) byref -> zero-ref "field V103._reference (fldOffset=0x0)" P-INDEP ;* V146 tmp140 [V146 ] ( 0, 0 ) int -> zero-ref "field V103._length (fldOffset=0x8)" P-INDEP ;* V147 tmp141 [V147 ] ( 0, 0 ) byref -> zero-ref "field V108._reference (fldOffset=0x0)" P-INDEP ;* V148 tmp142 [V148 ] ( 0, 0 ) int -> zero-ref "field V108._length (fldOffset=0x8)" P-INDEP ; V149 tmp143 [V149,T80] ( 4, 3.96) byref -> registers "field V113._reference (fldOffset=0x0)" P-INDEP ; V150 tmp144 [V150,T81] ( 4, 3.96) int -> r15 "field V113._length (fldOffset=0x8)" P-INDEP ;* V151 tmp145 [V151 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" <System.Span`1[int]> ; V152 tmp146 [V152,T83] ( 4, 3.92) ref -> rcx "argument with side effect" ; V153 tmp147 [V153,T84] ( 4, 3.92) ref -> registers "argument with side effect" ; V154 tmp148 [V154,T135] ( 6, 0 ) ref -> rcx "argument with side effect" ; V155 tmp149 [V155,T85] ( 4, 3.92) ref -> rcx "argument with side effect" ; V156 tmp150 [V156,T86] ( 4, 3.92) ref -> registers "argument with side effect" ; V157 tmp151 [V157,T136] ( 6, 0 ) ref -> rcx "argument with side effect" ; V158 tmp152 [V158,T87] ( 4, 3.92) ref -> [rsp+0x38] "argument with side effect" ; V159 tmp153 [V159,T88] ( 4, 3.92) ref -> registers "argument with side effect" ; V160 tmp154 [V160,T137] ( 6, 0 ) ref -> rcx "argument with side effect" ; V161 tmp155 [V161,T19] ( 4,134.85) ref -> registers "argument with side effect" ; V162 tmp156 [V162,T20] ( 4,134.85) ref -> registers "argument with side effect" ; V163 tmp157 [V163,T133] ( 6, 0 ) ref -> rcx "argument with side effect" ; V164 tmp158 [V164,T25] ( 4,125.26) ref -> rcx "argument with side effect" ; V165 tmp159 [V165,T26] ( 4,125.26) ref -> registers "argument with side effect" ; V166 tmp160 [V166,T132] ( 6, 0 ) ref -> rcx "argument with side effect" ; V167 tmp161 [V167 ] ( 21, 12.61) struct (16) [rsp+0xA0] do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.Span`1[int]> ; V168 tmp162 [V168,T29] ( 4,123.66) ref -> rcx "argument with side effect" ; V169 tmp163 [V169,T30] ( 4,123.66) ref -> rdx "argument with side effect" ; V170 tmp164 [V170,T134] ( 6, 0 ) ref -> rcx "argument with side effect" ; V171 cse0 [V171,T93] ( 3, 2.91) byref -> [rsp+0x30] spill-single-def "CSE #32: conservative" ; V172 cse1 [V172,T126] ( 3, 0.03) byref -> [rsp+0x28] spill-single-def "CSE #55: conservative" ; V173 cse2 [V173,T34] ( 3,100.11) int -> rbp "CSE #15: moderate" ; V174 cse3 [V174,T39] ( 3, 92.98) int -> rax "CSE #18: moderate" ; V175 cse4 [V175,T40] ( 3, 91.81) int -> r8 "CSE #61: moderate" ; V176 cse5 [V176,T42] ( 3, 72.57) int -> rcx "CSE #59: moderate" ; V177 cse6 [V177,T45] ( 4, 32.79) int -> r13 "CSE #58: moderate" ; V178 cse7 [V178,T127] ( 3, 0.03) int -> [rsp+0x9C] spill-single-def "CSE #34: conservative" ; V179 cse8 [V179,T128] ( 3, 0.03) int -> r8 "CSE #37: conservative" ; V180 cse9 [V180,T129] ( 3, 0.03) int -> [rsp+0x98] spill-single-def "CSE #41: conservative" ; V181 cse10 [V181,T130] ( 3, 0.03) long -> rcx "CSE #57: conservative" ; V182 cse11 [V182,T131] ( 3, 0.03) long -> rcx "CSE #54: conservative" ; V183 rat0 [V183,T77] ( 3, 4.26) long -> rcx "Spilling to split statement for tree" ; V184 rat1 [V184,T68] ( 3, 5.43) long -> rax "fgMakeTemp is creating a new local variable" ; V185 rat2 [V185,T78] ( 3, 4.26) long -> rcx "Spilling to split statement for tree" ; V186 rat3 [V186,T69] ( 3, 5.43) long -> rax "fgMakeTemp is creating a new local variable" ; V187 rat4 [V187,T79] ( 3, 4.26) long -> rax "Spilling to split statement for tree" ; V188 rat5 [V188,T70] ( 3, 5.43) long -> r10 "fgMakeTemp is creating a new local variable" ; V189 rat6 [V189,T15] ( 3,146.83) long -> r8 "Spilling to split statement for tree" ; V190 rat7 [V190,T09] ( 3,186.88) long -> r12 "fgMakeTemp is creating a new local variable" ; V191 rat8 [V191,T18] ( 3,136.38) long -> rcx "Spilling to split statement for tree" ; V192 rat9 [V192,T10] ( 3,173.57) long -> rdx "fgMakeTemp is creating a new local variable" ;* V193 rat10 [V193,T110] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V194 rat11 [V194,T103] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;* V195 rat12 [V195,T107] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V196 rat13 [V196,T98] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;* V197 rat14 [V197,T109] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V198 rat15 [V198,T102] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ; V199 rat16 [V199,T123] ( 3, 0.04) long -> rcx "Spilling to split statement for tree" ; V200 rat17 [V200,T120] ( 3, 0.05) long -> rdx "fgMakeTemp is creating a new local variable" ; V201 rat18 [V201,T124] ( 3, 0.04) long -> rcx "Spilling to split statement for tree" ; V202 rat19 [V202,T121] ( 3, 0.05) long -> rdx "fgMakeTemp is creating a new local variable" ; V203 rat20 [V203,T125] ( 3, 0.04) long -> rcx "Spilling to split statement for tree" ; V204 rat21 [V204,T122] ( 3, 0.05) long -> rdx "fgMakeTemp is creating a new local variable" ; V205 rat22 [V205,T106] ( 3, 1.50) long -> rcx "Spilling to split statement for tree" ; V206 rat23 [V206,T97] ( 3, 1.91) long -> rdx "fgMakeTemp is creating a new local variable" ; V207 rat24 [V207,T108] ( 3, 1.41) long -> rcx "Spilling to split statement for tree" ; V208 rat25 [V208,T101] ( 3, 1.79) long -> r11 "fgMakeTemp is creating a new local variable" ; V209 rat26 [V209,T22] ( 3,134.65) long -> rcx "Spilling to split statement for tree" ; V210 rat27 [V210,T11] ( 3,171.38) long -> r11 "fgMakeTemp is creating a new local variable" ;* V211 rat28 [V211,T112] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V212 rat29 [V212,T105] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ; V213 rat30 [V213,T111] ( 3, 1.37) long -> rcx "Spilling to split statement for tree" ; V214 rat31 [V214,T104] ( 3, 1.75) long -> r11 "fgMakeTemp is creating a new local variable" ;* V215 rat32 [V215,T138] ( 0, 0 ) ref -> zero-ref "delegate invoke call" ; TEMP_01 ref -> [rsp+0x110] ; ; Lcl frame size = 280 G_M15629_IG01: push r15 push r14 push r13 push r12 push rdi push rsi push rbp push rbx sub rsp, 280 vxorps xmm4, xmm4, xmm4 vmovdqu ymmword ptr [rsp+0xA0], ymm4 vmovdqu ymmword ptr [rsp+0xC0], ymm4 vmovdqu ymmword ptr [rsp+0xE0], ymm4 vmovdqa xmmword ptr [rsp+0x100], xmm4 xor eax, eax mov qword ptr [rsp+0x110], rax mov esi, edx mov rbx, r8 ;; size=74 bbWeight=1 PerfScore 18.33 G_M15629_IG02: mov rdi, bword ptr [rcx] mov ebp, dword ptr [rcx+0x08] mov dword ptr [rsp+0xB4], ebp test ebp, ebp je G_M15629_IG105 ;; size=21 bbWeight=1 PerfScore 6.25 G_M15629_IG03: test esi, esi jl G_M15629_IG106 ;; size=8 bbWeight=1 PerfScore 1.25 G_M15629_IG04: test rbx, rbx je G_M15629_IG107 ;; size=9 bbWeight=1 PerfScore 1.25 G_M15629_IG05: mov r14d, ebp cmp ebp, 1 jle G_M15629_IG57 ;; size=12 bbWeight=1 PerfScore 1.50 G_M15629_IG06: test rbx, rbx je G_M15629_IG59 mov rcx, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]:CompareAnyKeys(int,int):int:this cmp qword ptr [rbx+0x18], rcx jne G_M15629_IG59 ;; size=29 bbWeight=0.99 PerfScore 5.44 G_M15629_IG07: cmp r14d, 16 jg G_M15629_IG18 ;; size=10 bbWeight=1.94 PerfScore 2.42 G_M15629_IG08: cmp r14d, 2 je G_M15629_IG56 ;; size=10 bbWeight=0.98 PerfScore 1.22 G_M15629_IG09: cmp r14d, 3 je G_M15629_IG55 ;; size=10 bbWeight=0.92 PerfScore 1.15 G_M15629_IG10: cmp r14d, ebp ja G_M15629_IG166 test r14d, r14d jl G_M15629_IG130 ;; size=18 bbWeight=0.90 PerfScore 2.25 G_M15629_IG11: xor r15d, r15d lea ecx, [r14-0x01] test ecx, ecx jle G_M15629_IG57 ;; size=15 bbWeight=0.90 PerfScore 1.80 G_M15629_IG12: test rbx, rbx je G_M15629_IG82 mov rcx, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]:CompareAnyKeys(int,int):int:this cmp qword ptr [rbx+0x18], rcx jne G_M15629_IG82 ;; size=29 bbWeight=0.81 PerfScore 4.46 G_M15629_IG13: lea r13d, [r15+0x01] cmp r13d, r14d jae G_M15629_IG167 mov ecx, r13d mov r12d, dword ptr [rdi+4*rcx] jmp SHORT G_M15629_IG15 ;; size=22 bbWeight=8.20 PerfScore 49.18 G_M15629_IG14: lea ecx, [r15+0x01] cmp ecx, r14d jae G_M15629_IG167 cmp r15d, r14d jae G_M15629_IG167 mov edx, r15d mov edx, dword ptr [rdi+4*rdx] mov dword ptr [rdi+4*rcx], edx dec r15d ;; size=34 bbWeight=24.19 PerfScore 157.23 G_M15629_IG15: test r15d, r15d jl G_M15629_IG81 ;; size=9 bbWeight=32.30 PerfScore 40.38 G_M15629_IG16: cmp r15d, r14d jae G_M15629_IG167 mov ecx, r15d mov ebp, dword ptr [rdi+4*rcx] mov rsi, gword ptr [rbx+0x08] mov rax, gword ptr [rsi+0x20] mov rcx, qword ptr [rsi] mov rdx, qword ptr [rcx+0x38] mov rdx, qword ptr [rdx+0x08] mov r11, qword ptr [rdx+0x28] test r11, r11 je G_M15629_IG80 ;; size=47 bbWeight=30.60 PerfScore 512.60 G_M15629_IG17: mov rcx, gword ptr [rsi+0x10] mov r8d, dword ptr [rax+0x08] cmp r12d, r8d jae G_M15629_IG167 mov edx, r12d mov rdx, gword ptr [rax+8*rdx+0x10] cmp ebp, r8d jae G_M15629_IG167 mov r8d, ebp mov r8, gword ptr [rax+8*r8+0x10] call [r11] test eax, eax je G_M15629_IG131 movzx rcx, byte ptr [rsi+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx je G_M15629_IG14 jmp G_M15629_IG81 ;; size=78 bbWeight=30.60 PerfScore 673.26 G_M15629_IG18: test esi, esi je G_M15629_IG165 dec esi mov dword ptr [rsp+0x168], esi cmp r14d, ebp ja G_M15629_IG166 test r14d, r14d jl G_M15629_IG108 ;; size=35 bbWeight=0.97 PerfScore 4.84 G_M15629_IG19: mov r13d, r14d mov r12, rdi lea r15d, [r13-0x01] mov r8d, r15d sar r8d, 1 je G_M15629_IG109 ;; size=22 bbWeight=0.97 PerfScore 2.66 G_M15629_IG20: mov r10d, dword ptr [r12] mov dword ptr [rsp+0xF4], r10d cmp r8d, r13d jae G_M15629_IG167 mov dword ptr [rsp+0x10C], r8d mov ecx, r8d mov r9d, dword ptr [r12+4*rcx] mov dword ptr [rsp+0xF0], r9d mov r11, gword ptr [rbx+0x08] mov rdx, gword ptr [r11+0x20] mov gword ptr [rsp+0x70], rdx mov gword ptr [rsp+0x78], r11 mov rcx, qword ptr [r11] mov rax, qword ptr [rcx+0x38] mov rax, qword ptr [rax+0x08] mov rax, qword ptr [rax+0x28] test rax, rax je G_M15629_IG35 ;; size=86 bbWeight=0.97 PerfScore 23.01 G_M15629_IG21: mov r11, gword ptr [rsp+0x78] mov rcx, gword ptr [r11+0x10] mov r10d, dword ptr [rsp+0xF4] mov rdx, gword ptr [rsp+0x70] cmp r10d, dword ptr [rdx+0x08] jae G_M15629_IG167 mov dword ptr [rsp+0xF4], r10d mov edx, r10d mov r11, gword ptr [rsp+0x70] mov rdx, gword ptr [r11+8*rdx+0x10] mov gword ptr [rsp+0x110], rcx mov r9d, dword ptr [rsp+0xF0] cmp r9d, dword ptr [r11+0x08] jae G_M15629_IG167 mov dword ptr [rsp+0xF0], r9d mov ecx, r9d mov r8, gword ptr [r11+8*rcx+0x10] mov r11, rax mov rcx, gword ptr [rsp+0x110] call [rax] test eax, eax je G_M15629_IG110 mov r10, gword ptr [rsp+0x78] movzx rcx, byte ptr [r10+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne G_M15629_IG36 ;; size=142 bbWeight=0.97 PerfScore 32.70 G_M15629_IG22: test r15d, r15d je G_M15629_IG113 ;; size=9 bbWeight=0.97 PerfScore 1.21 G_M15629_IG23: mov r9d, dword ptr [r12] mov ecx, r15d mov r11d, dword ptr [r12+4*rcx] mov r8, gword ptr [rbx+0x08] mov rdx, gword ptr [r8+0x20] mov rcx, qword ptr [r8] mov rax, qword ptr [rcx+0x38] mov rax, qword ptr [rax+0x08] mov rax, qword ptr [rax+0x28] test rax, rax je G_M15629_IG37 ;; size=43 bbWeight=0.97 PerfScore 16.96 G_M15629_IG24: mov gword ptr [rsp+0x68], r8 mov rcx, gword ptr [r8+0x10] cmp r9d, dword ptr [rdx+0x08] jae G_M15629_IG167 mov dword ptr [rsp+0xE4], r9d mov r10d, r9d mov gword ptr [rsp+0x60], rdx mov r10, gword ptr [rdx+8*r10+0x10] mov gword ptr [rsp+0x110], rcx mov rdx, r10 mov r10, gword ptr [rsp+0x60] cmp r11d, dword ptr [r10+0x08] jae G_M15629_IG167 mov dword ptr [rsp+0xE0], r11d mov ecx, r11d mov r8, gword ptr [r10+8*rcx+0x10] mov r11, rax mov rcx, gword ptr [rsp+0x110] call [rax] test eax, eax je G_M15629_IG114 mov r10, gword ptr [rsp+0x68] movzx rcx, byte ptr [r10+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne G_M15629_IG38 ;; size=129 bbWeight=0.97 PerfScore 31.01 G_M15629_IG25: mov r9d, dword ptr [rsp+0x10C] cmp r9d, r15d je G_M15629_IG117 ;; size=17 bbWeight=0.97 PerfScore 2.18 G_M15629_IG26: mov dword ptr [rsp+0x10C], r9d mov ecx, r9d mov r11d, dword ptr [r12+4*rcx] mov ecx, r15d mov r8d, dword ptr [r12+4*rcx] mov rdx, gword ptr [rbx+0x08] mov rcx, gword ptr [rdx+0x20] mov rax, qword ptr [rdx] mov r10, qword ptr [rax+0x38] mov r10, qword ptr [r10+0x08] mov r10, qword ptr [r10+0x28] test r10, r10 je G_M15629_IG39 ;; size=54 bbWeight=0.97 PerfScore 18.17 G_M15629_IG27: mov gword ptr [rsp+0x58], rdx mov rax, gword ptr [rdx+0x10] mov gword ptr [rsp+0x38], rax cmp r11d, dword ptr [rcx+0x08] jae G_M15629_IG167 mov dword ptr [rsp+0xDC], r11d mov eax, r11d mov gword ptr [rsp+0x50], rcx mov rax, gword ptr [rcx+8*rax+0x10] mov rcx, gword ptr [rsp+0x38] mov gword ptr [rsp+0x110], rcx mov rdx, rax mov rax, gword ptr [rsp+0x50] cmp r8d, dword ptr [rax+0x08] jae G_M15629_IG167 mov dword ptr [rsp+0xD8], r8d mov ecx, r8d mov r8, gword ptr [rax+8*rcx+0x10] mov r11, r10 mov rcx, gword ptr [rsp+0x110] call [r10] test eax, eax je G_M15629_IG118 mov r10, gword ptr [rsp+0x58] movzx rcx, byte ptr [r10+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne G_M15629_IG40 ;; size=140 bbWeight=0.97 PerfScore 32.95 G_M15629_IG28: mov r9d, dword ptr [rsp+0x10C] mov ecx, r9d mov r11d, dword ptr [r12+4*rcx] lea r8d, [r15-0x01] cmp r9d, r8d je G_M15629_IG121 ;; size=28 bbWeight=0.97 PerfScore 4.84 G_M15629_IG29: mov ecx, r9d mov edx, dword ptr [r12+4*rcx] mov ecx, r9d cmp r8d, r13d jae G_M15629_IG167 mov eax, r8d mov eax, dword ptr [r12+4*rax] mov dword ptr [r12+4*rcx], eax mov ecx, r8d lea r12, bword ptr [r12+4*rcx] mov bword ptr [rsp+0x30], r12 mov dword ptr [r12], edx xor eax, eax lea ecx, [r15-0x01] mov dword ptr [rsp+0x100], ecx test ecx, ecx jle G_M15629_IG32 ;; size=67 bbWeight=0.97 PerfScore 12.35 G_M15629_IG30: inc eax cmp eax, r13d jae G_M15629_IG167 mov dword ptr [rsp+0x104], eax mov edx, eax mov edx, dword ptr [rdi+4*rdx] mov r10, gword ptr [rbx+0x08] mov r9, gword ptr [r10+0x20] mov r8, qword ptr [r10] mov r12, qword ptr [r8+0x38] mov r12, qword ptr [r12+0x08] mov r12, qword ptr [r12+0x28] test r12, r12 je G_M15629_IG41 ;; size=57 bbWeight=33.37 PerfScore 600.68 G_M15629_IG31: mov gword ptr [rsp+0x88], r10 mov r8, gword ptr [r10+0x10] mov ebp, dword ptr [r9+0x08] cmp edx, ebp jae G_M15629_IG167 mov dword ptr [rsp+0xFC], edx mov esi, edx mov rsi, gword ptr [r9+8*rsi+0x10] mov rcx, r8 mov rdx, rsi cmp r11d, ebp jae G_M15629_IG167 mov dword ptr [rsp+0x108], r11d mov r8d, r11d mov r8, gword ptr [r9+8*r8+0x10] mov r11, r12 call [r12] test eax, eax jne SHORT G_M15629_IG33 jmp G_M15629_IG122 ;; size=85 bbWeight=33.37 PerfScore 700.79 G_M15629_IG32: mov esi, eax jmp G_M15629_IG49 ;; size=7 bbWeight=0 PerfScore 0.00 G_M15629_IG33: mov rsi, gword ptr [rsp+0x88] movzx rcx, byte ptr [rsi+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne G_M15629_IG42 ;; size=28 bbWeight=33.37 PerfScore 191.88 G_M15629_IG34: mov eax, dword ptr [rsp+0x104] mov r11d, dword ptr [rsp+0x108] jmp G_M15629_IG30 ;; size=20 bbWeight=21.92 PerfScore 87.68 G_M15629_IG35: mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS jmp G_M15629_IG21 ;; size=20 bbWeight=0.19 PerfScore 0.63 G_M15629_IG36: mov r8d, dword ptr [r12] mov r10d, dword ptr [rsp+0x10C] mov ecx, r10d mov ecx, dword ptr [r12+4*rcx] mov dword ptr [r12], ecx mov dword ptr [rsp+0x10C], r10d mov ecx, r10d mov dword ptr [r12+4*rcx], r8d jmp G_M15629_IG22 ;; size=43 bbWeight=0.50 PerfScore 5.28 G_M15629_IG37: mov dword ptr [rsp+0xE4], r9d mov dword ptr [rsp+0xE0], r11d mov gword ptr [rsp+0x68], r8 mov gword ptr [rsp+0x60], rdx mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov rdx, gword ptr [rsp+0x60] mov r8, gword ptr [rsp+0x68] mov r9d, dword ptr [rsp+0xE4] mov r11d, dword ptr [rsp+0xE0] jmp G_M15629_IG24 ;; size=72 bbWeight=0.19 PerfScore 2.18 G_M15629_IG38: mov r8d, dword ptr [r12] mov ecx, r15d mov ecx, dword ptr [r12+4*rcx] mov dword ptr [r12], ecx mov ecx, r15d mov dword ptr [r12+4*rcx], r8d jmp G_M15629_IG25 ;; size=27 bbWeight=0.50 PerfScore 4.28 G_M15629_IG39: mov dword ptr [rsp+0xDC], r11d mov dword ptr [rsp+0xD8], r8d mov gword ptr [rsp+0x58], rdx mov gword ptr [rsp+0x50], rcx mov rcx, rax mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov r10, rax mov rcx, gword ptr [rsp+0x50] mov rdx, gword ptr [rsp+0x58] mov r8d, dword ptr [rsp+0xD8] mov r11d, dword ptr [rsp+0xDC] jmp G_M15629_IG27 ;; size=78 bbWeight=0.19 PerfScore 2.28 G_M15629_IG40: mov r8d, dword ptr [rsp+0x10C] mov ecx, r8d mov r10d, dword ptr [r12+4*rcx] mov ecx, r8d mov edx, r15d mov edx, dword ptr [r12+4*rdx] mov dword ptr [r12+4*rcx], edx mov ecx, r15d mov dword ptr [r12+4*rcx], r10d mov dword ptr [rsp+0x10C], r8d jmp G_M15629_IG28 ;; size=49 bbWeight=0.50 PerfScore 5.53 G_M15629_IG41: mov dword ptr [rsp+0xFC], edx mov gword ptr [rsp+0x88], r10 mov gword ptr [rsp+0x48], r9 mov dword ptr [rsp+0x108], r11d mov rcx, r8 mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov r12, rax mov edx, dword ptr [rsp+0xFC] mov r9, gword ptr [rsp+0x48] mov r10, gword ptr [rsp+0x88] mov r11d, dword ptr [rsp+0x108] jmp G_M15629_IG31 ;; size=82 bbWeight=6.67 PerfScore 78.42 G_M15629_IG42: mov r12d, dword ptr [rsp+0x100] dec r12d mov r8d, r12d cmp r8d, r13d jae G_M15629_IG167 mov dword ptr [rsp+0x100], r8d mov ecx, r8d mov r10d, dword ptr [rdi+4*rcx] mov dword ptr [rsp+0xF8], r10d mov r9, gword ptr [rbx+0x08] mov r11, gword ptr [r9+0x20] mov gword ptr [rsp+0x40], r11 mov gword ptr [rsp+0x80], r9 mov rcx, qword ptr [r9] mov rdx, qword ptr [rcx+0x38] mov rdx, qword ptr [rdx+0x08] mov rdx, qword ptr [rdx+0x28] test rdx, rdx je G_M15629_IG46 ;; size=91 bbWeight=30.99 PerfScore 689.63 G_M15629_IG43: mov qword ptr [rsp+0xB8], rdx ;; size=8 bbWeight=24.80 PerfScore 24.80 G_M15629_IG44: mov r9, gword ptr [rsp+0x80] mov rcx, gword ptr [r9+0x10] mov r11, gword ptr [rsp+0x40] mov eax, dword ptr [r11+0x08] mov ebp, dword ptr [rsp+0x108] cmp ebp, eax jae G_M15629_IG167 mov esi, ebp mov rsi, gword ptr [r11+8*rsi+0x10] mov rdx, rsi mov r10d, dword ptr [rsp+0xF8] cmp r10d, eax jae G_M15629_IG167 mov dword ptr [rsp+0xF8], r10d mov eax, r10d mov r8, gword ptr [r11+8*rax+0x10] mov r11, qword ptr [rsp+0xB8] call [r11] test eax, eax je G_M15629_IG126 mov rsi, gword ptr [rsp+0x80] movzx rcx, byte ptr [rsi+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne SHORT G_M15629_IG47 ;; size=122 bbWeight=30.99 PerfScore 844.61 G_M15629_IG45: mov dword ptr [rsp+0x108], ebp jmp G_M15629_IG42 ;; size=12 bbWeight=20.36 PerfScore 61.08 G_M15629_IG46: mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov qword ptr [rsp+0xB8], rax jmp G_M15629_IG44 ;; size=28 bbWeight=6.20 PerfScore 26.35 G_M15629_IG47: mov esi, dword ptr [rsp+0x104] cmp esi, r12d jge SHORT G_M15629_IG49 ;; size=12 bbWeight=12.82 PerfScore 28.84 G_M15629_IG48: mov ecx, esi mov r10d, dword ptr [rdi+4*rcx] mov ecx, esi cmp r12d, r13d jae G_M15629_IG167 mov edx, r12d mov edx, dword ptr [rdi+4*rdx] mov dword ptr [rdi+4*rcx], edx cmp r12d, r13d jae G_M15629_IG167 mov ecx, r12d mov dword ptr [rdi+4*rcx], r10d mov r12d, dword ptr [rsp+0x100] cmp esi, r12d mov dword ptr [rsp+0x100], r12d mov r11d, ebp jl SHORT G_M15629_IG52 ;; size=66 bbWeight=12.82 PerfScore 166.66 G_M15629_IG49: lea ecx, [r15-0x01] cmp esi, ecx je SHORT G_M15629_IG51 ;; size=8 bbWeight=0.97 PerfScore 1.70 G_M15629_IG50: dec r15d cmp esi, r13d jae G_M15629_IG167 mov ecx, esi mov r9d, dword ptr [rdi+4*rcx] cmp esi, r13d jae G_M15629_IG167 mov ecx, esi mov edx, r15d mov edx, dword ptr [rdi+4*rdx] mov dword ptr [rdi+4*rcx], edx mov r12, bword ptr [rsp+0x30] mov dword ptr [r12], r9d ;; size=47 bbWeight=0.97 PerfScore 10.17 G_M15629_IG51: lea r12d, [rsi+0x01] mov r15d, r14d sub r15d, r12d mov ecx, r12d mov edx, r15d add rcx, rdx mov ebp, dword ptr [rsp+0xB4] mov edx, ebp cmp rcx, rdx jbe SHORT G_M15629_IG53 jmp G_M15629_IG166 ;; size=38 bbWeight=0.97 PerfScore 6.06 G_M15629_IG52: mov eax, esi jmp G_M15629_IG30 ;; size=7 bbWeight=12.82 PerfScore 28.84 G_M15629_IG53: mov ecx, r12d lea r12, bword ptr [rdi+4*rcx] test r15d, r15d jl G_M15629_IG129 ;; size=16 bbWeight=0.97 PerfScore 1.94 G_M15629_IG54: mov bword ptr [rsp+0xA0], r12 mov dword ptr [rsp+0xA8], r15d lea rcx, [rsp+0xA0] mov edx, dword ptr [rsp+0x168] mov r8, rbx call [System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int])] mov r14d, esi cmp r14d, 1 mov esi, dword ptr [rsp+0x168] jg G_M15629_IG07 jmp G_M15629_IG57 ;; size=65 bbWeight=1.96 PerfScore 22.04 G_M15629_IG55: mov bword ptr [rsp+0xA0], rdi mov dword ptr [rsp+0xA8], ebp lea rcx, [rsp+0xA0] mov rdx, rbx xor r8d, r8d mov r9d, 1 call [System.Collections.Generic.ArraySortHelper`1[int]:SwapIfGreater(System.Span`1[int],System.Comparison`1[int],int,int)] mov bword ptr [rsp+0xA0], rdi mov dword ptr [rsp+0xA8], ebp lea rcx, [rsp+0xA0] mov rdx, rbx xor r8d, r8d mov r9d, 2 call [System.Collections.Generic.ArraySortHelper`1[int]:SwapIfGreater(System.Span`1[int],System.Comparison`1[int],int,int)] mov bword ptr [rsp+0xA0], rdi mov dword ptr [rsp+0xA8], ebp lea rcx, [rsp+0xA0] mov rdx, rbx mov r8d, 1 mov r9d, 2 call [System.Collections.Generic.ArraySortHelper`1[int]:SwapIfGreater(System.Span`1[int],System.Comparison`1[int],int,int)] jmp SHORT G_M15629_IG57 ;; size=128 bbWeight=0.02 PerfScore 0.42 G_M15629_IG56: mov bword ptr [rsp+0xA0], rdi mov dword ptr [rsp+0xA8], ebp lea rcx, [rsp+0xA0] mov rdx, rbx xor r8d, r8d mov r9d, 1 call [System.Collections.Generic.ArraySortHelper`1[int]:SwapIfGreater(System.Span`1[int],System.Comparison`1[int],int,int)] ;; size=41 bbWeight=0.06 PerfScore 0.38 G_M15629_IG57: nop ;; size=1 bbWeight=0.98 PerfScore 0.24 G_M15629_IG58: add rsp, 280 pop rbx pop rbp pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 ret ;; size=20 bbWeight=0.98 PerfScore 5.14 G_M15629_IG59: cmp r14d, 16 jle G_M15629_IG08 ;; size=10 bbWeight=0.02 PerfScore 0.02 G_M15629_IG60: test esi, esi je G_M15629_IG165 dec esi cmp r14d, ebp ja G_M15629_IG166 test r14d, r14d jl G_M15629_IG138 ;; size=28 bbWeight=0.01 PerfScore 0.04 G_M15629_IG61: mov r13d, r14d mov r12, rdi test rbx, rbx je G_M15629_IG139 ;; size=15 bbWeight=0.01 PerfScore 0.02 G_M15629_IG62: lea r15d, [r13-0x01] mov r8d, r15d sar r8d, 1 mov eax, r8d test eax, eax je G_M15629_IG140 ;; size=21 bbWeight=0.01 PerfScore 0.03 G_M15629_IG63: test r13d, r13d je G_M15629_IG167 mov r10d, dword ptr [r12] cmp eax, r13d jae G_M15629_IG167 mov dword ptr [rsp+0x10C], eax mov ecx, eax mov r9d, dword ptr [r12+4*rcx] mov rcx, 0xD1FFAB1E ; function address cmp qword ptr [rbx+0x18], rcx jne G_M15629_IG143 mov rcx, gword ptr [rbx+0x08] mov r11, rcx mov rcx, gword ptr [r11+0x20] mov r8, rcx mov rcx, qword ptr [r11] mov rdx, qword ptr [rcx+0x38] mov rdx, qword ptr [rdx+0x08] mov rdx, qword ptr [rdx+0x28] test rdx, rdx je G_M15629_IG89 ;; size=93 bbWeight=0.01 PerfScore 0.25 G_M15629_IG64: mov qword ptr [rsp+0xE8], rdx ;; size=8 bbWeight=0.01 PerfScore 0.01 G_M15629_IG65: mov gword ptr [rsp+0x78], r11 mov rcx, gword ptr [r11+0x10] mov ebp, dword ptr [r8+0x08] mov dword ptr [rsp+0x9C], ebp cmp r10d, ebp jae G_M15629_IG167 mov dword ptr [rsp+0xF4], r10d mov ebp, r10d mov rbp, gword ptr [r8+8*rbp+0x10] mov rdx, rbp cmp r9d, dword ptr [rsp+0x9C] jae G_M15629_IG167 mov dword ptr [rsp+0xF0], r9d mov ebp, r9d mov r8, gword ptr [r8+8*rbp+0x10] mov r11, qword ptr [rsp+0xE8] call [r11] test eax, eax je G_M15629_IG141 mov rbp, gword ptr [rsp+0x78] movzx rcx, byte ptr [rbp+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne G_M15629_IG90 ;; size=122 bbWeight=0.01 PerfScore 0.27 G_M15629_IG66: test r15d, r15d je G_M15629_IG145 ;; size=9 bbWeight=0.01 PerfScore 0.01 G_M15629_IG67: test r13d, r13d je G_M15629_IG167 mov r9d, dword ptr [r12] mov ebp, r9d cmp r15d, r13d jae G_M15629_IG167 mov ecx, r15d mov r11d, dword ptr [r12+4*rcx] mov eax, r11d mov rcx, 0xD1FFAB1E ; function address cmp qword ptr [rbx+0x18], rcx jne G_M15629_IG148 mov r8, gword ptr [rbx+0x08] mov r10, r8 mov rdx, gword ptr [r10+0x20] mov r9, rdx mov rcx, qword ptr [r10] mov rdx, qword ptr [rcx+0x38] mov rdx, qword ptr [rdx+0x08] mov rdx, qword ptr [rdx+0x28] test rdx, rdx je G_M15629_IG91 ;; size=93 bbWeight=0.01 PerfScore 0.25 G_M15629_IG68: mov r11, rdx ;; size=3 bbWeight=0.01 PerfScore 0.00 G_M15629_IG69: mov gword ptr [rsp+0x68], r10 mov rcx, gword ptr [r10+0x10] mov r8d, dword ptr [r9+0x08] cmp ebp, r8d jae G_M15629_IG167 mov edx, ebp mov rdx, gword ptr [r9+8*rdx+0x10] cmp eax, r8d jae G_M15629_IG167 mov dword ptr [rsp+0xE0], eax mov r8d, eax mov r8, gword ptr [r9+8*r8+0x10] call [r11] test eax, eax je G_M15629_IG146 mov rbp, gword ptr [rsp+0x68] movzx rcx, byte ptr [rbp+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne G_M15629_IG92 ;; size=89 bbWeight=0.01 PerfScore 0.23 G_M15629_IG70: mov ebp, dword ptr [rsp+0x10C] cmp ebp, r15d je G_M15629_IG150 ;; size=16 bbWeight=0.01 PerfScore 0.02 G_M15629_IG71: cmp ebp, r13d jae G_M15629_IG167 mov ecx, ebp mov r11d, dword ptr [r12+4*rcx] mov eax, r11d cmp r15d, r13d jae G_M15629_IG167 mov ecx, r15d mov r8d, dword ptr [r12+4*rcx] mov r10d, r8d mov rcx, 0xD1FFAB1E ; function address cmp qword ptr [rbx+0x18], rcx jne G_M15629_IG153 mov rdx, gword ptr [rbx+0x08] mov r9, rdx mov rcx, gword ptr [r9+0x20] mov r11, rcx mov rcx, qword ptr [r9] mov rdx, qword ptr [rcx+0x38] mov rdx, qword ptr [rdx+0x08] mov rdx, qword ptr [rdx+0x28] test rdx, rdx je G_M15629_IG93 ;; size=95 bbWeight=0.01 PerfScore 0.25 G_M15629_IG72: mov qword ptr [rsp+0xD0], rdx ;; size=8 bbWeight=0.01 PerfScore 0.01 G_M15629_IG73: mov gword ptr [rsp+0x58], r9 mov rcx, gword ptr [r9+0x10] mov edx, dword ptr [r11+0x08] mov dword ptr [rsp+0x98], edx cmp eax, edx jae G_M15629_IG167 mov dword ptr [rsp+0xDC], eax mov edx, eax mov rdx, gword ptr [r11+8*rdx+0x10] mov gword ptr [rsp+0x110], rcx cmp r10d, dword ptr [rsp+0x98] jae G_M15629_IG167 mov dword ptr [rsp+0xD8], r10d mov ecx, r10d mov r8, gword ptr [r11+8*rcx+0x10] mov r11, qword ptr [rsp+0xD0] mov rcx, gword ptr [rsp+0x110] call [r11] test eax, eax je G_M15629_IG151 mov r10, gword ptr [rsp+0x58] movzx rcx, byte ptr [r10+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne G_M15629_IG94 ;; size=133 bbWeight=0.01 PerfScore 0.29 G_M15629_IG74: cmp ebp, r13d jae G_M15629_IG167 mov ecx, ebp mov ecx, dword ptr [r12+4*rcx] mov eax, ecx lea r8d, [r15-0x01] mov r9d, r8d cmp ebp, r9d je G_M15629_IG155 ;; size=33 bbWeight=0.01 PerfScore 0.06 G_M15629_IG75: cmp ebp, r13d jae G_M15629_IG167 mov ecx, ebp mov edx, dword ptr [r12+4*rcx] cmp ebp, r13d jae G_M15629_IG167 mov ecx, ebp cmp r9d, r13d jae G_M15629_IG167 mov r8d, r9d mov r8d, dword ptr [r12+4*r8] mov dword ptr [r12+4*rcx], r8d cmp r9d, r13d jae G_M15629_IG167 mov ecx, r9d lea rbp, bword ptr [r12+4*rcx] mov bword ptr [rsp+0x28], rbp mov dword ptr [rbp], edx xor ecx, ecx xor r12d, r12d lea ecx, [r15-0x01] mov r11d, ecx mov dword ptr [rsp+0x100], r11d test r11d, r11d jle G_M15629_IG101 ;; size=99 bbWeight=0.01 PerfScore 0.17 G_M15629_IG76: lea ecx, [r12+0x01] mov r12d, ecx cmp r12d, r13d jae G_M15629_IG167 mov ecx, r12d mov edx, dword ptr [rdi+4*rcx] mov r8d, edx mov rcx, 0xD1FFAB1E ; function address cmp qword ptr [rbx+0x18], rcx jne G_M15629_IG158 mov r10, gword ptr [rbx+0x08] mov r9, gword ptr [r10+0x20] mov rcx, qword ptr [r10] mov rdx, qword ptr [rcx+0x38] mov rdx, qword ptr [rdx+0x08] mov rdx, qword ptr [rdx+0x28] test rdx, rdx je G_M15629_IG95 ;; size=78 bbWeight=0.34 PerfScore 7.49 G_M15629_IG77: mov qword ptr [rsp+0xC0], rdx ;; size=8 bbWeight=0.27 PerfScore 0.27 G_M15629_IG78: mov gword ptr [rsp+0x88], r10 mov rcx, gword ptr [r10+0x10] cmp r8d, dword ptr [r9+0x08] jae G_M15629_IG167 mov dword ptr [rsp+0xFC], r8d mov ebp, r8d mov rbp, gword ptr [r9+8*rbp+0x10] mov rdx, rbp cmp eax, dword ptr [r9+0x08] jae G_M15629_IG167 mov dword ptr [rsp+0x108], eax mov ebp, eax mov r8, gword ptr [r9+8*rbp+0x10] mov r11, qword ptr [rsp+0xC0] call [r11] test eax, eax je G_M15629_IG156 mov rbp, gword ptr [rsp+0x88] movzx rcx, byte ptr [rbp+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne G_M15629_IG96 ;; size=112 bbWeight=0.34 PerfScore 9.79 G_M15629_IG79: mov eax, dword ptr [rsp+0x108] jmp G_M15629_IG76 ;; size=12 bbWeight=0.22 PerfScore 0.67 G_M15629_IG80: mov gword ptr [rsp+0x90], rax mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov r11, rax mov rax, gword ptr [rsp+0x90] jmp G_M15629_IG17 ;; size=39 bbWeight=6.12 PerfScore 33.66 G_M15629_IG81: lea r11d, [r15+0x01] cmp r11d, r14d jae G_M15629_IG167 lea ecx, [r15+0x01] mov dword ptr [rdi+4*rcx], r12d mov r15d, r13d lea ecx, [r14-0x01] cmp r15d, ecx jl G_M15629_IG13 jmp G_M15629_IG57 ;; size=42 bbWeight=8.20 PerfScore 59.43 G_M15629_IG82: lea ecx, [r15+0x01] cmp ecx, r14d jae G_M15629_IG167 lea ecx, [r15+0x01] mov r12d, dword ptr [rdi+4*rcx] mov r13d, r15d jmp SHORT G_M15629_IG84 ;; size=26 bbWeight=0.08 PerfScore 0.54 G_M15629_IG83: lea ecx, [r13+0x01] cmp ecx, r14d jae G_M15629_IG167 lea ecx, [r13+0x01] cmp r13d, r14d jae G_M15629_IG167 mov edx, r13d mov edx, dword ptr [rdi+4*rdx] mov dword ptr [rdi+4*rcx], edx dec r13d ;; size=38 bbWeight=0.25 PerfScore 1.73 G_M15629_IG84: test r13d, r13d jl G_M15629_IG88 ;; size=9 bbWeight=0.33 PerfScore 0.41 G_M15629_IG85: cmp r13d, r14d jae G_M15629_IG167 mov ecx, r13d mov ebp, dword ptr [rdi+4*rcx] mov rcx, 0xD1FFAB1E ; function address cmp qword ptr [rbx+0x18], rcx jne G_M15629_IG136 mov rsi, gword ptr [rbx+0x08] mov rax, gword ptr [rsi+0x20] mov gword ptr [rsp+0x90], rax mov rcx, qword ptr [rsi] mov rdx, qword ptr [rcx+0x38] mov rdx, qword ptr [rdx+0x08] mov r11, qword ptr [rdx+0x28] test r11, r11 je SHORT G_M15629_IG87 ;; size=71 bbWeight=0.31 PerfScore 6.87 G_M15629_IG86: mov rcx, gword ptr [rsi+0x10] mov rax, gword ptr [rsp+0x90] cmp r12d, dword ptr [rax+0x08] jae G_M15629_IG167 mov edx, r12d mov rdx, gword ptr [rax+8*rdx+0x10] cmp ebp, dword ptr [rax+0x08] jae G_M15629_IG167 mov r8d, ebp mov r8, gword ptr [rax+8*r8+0x10] call [r11] test eax, eax je G_M15629_IG134 movzx rcx, byte ptr [rsi+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx je G_M15629_IG83 jmp SHORT G_M15629_IG88 ;; size=80 bbWeight=0.31 PerfScore 8.27 G_M15629_IG87: mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov r11, rax jmp SHORT G_M15629_IG86 ;; size=20 bbWeight=0.06 PerfScore 0.22 G_M15629_IG88: lea ecx, [r13+0x01] cmp ecx, r14d jae G_M15629_IG167 lea ecx, [r13+0x01] mov dword ptr [rdi+4*rcx], r12d inc r15d lea ecx, [r14-0x01] cmp r15d, ecx jl G_M15629_IG82 jmp G_M15629_IG57 ;; size=42 bbWeight=0.08 PerfScore 0.60 G_M15629_IG89: mov dword ptr [rsp+0xF4], r10d mov dword ptr [rsp+0xF0], r9d mov gword ptr [rsp+0x78], r11 mov gword ptr [rsp+0x70], r8 mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov r11, rax mov qword ptr [rsp+0xE8], r11 mov r8, gword ptr [rsp+0x70] mov r9d, dword ptr [rsp+0xF0] mov r10d, dword ptr [rsp+0xF4] mov r11, gword ptr [rsp+0x78] jmp G_M15629_IG65 ;; size=83 bbWeight=0.00 PerfScore 0.02 G_M15629_IG90: test r13d, r13d je G_M15629_IG167 mov r8d, dword ptr [r12] test r13d, r13d je G_M15629_IG167 mov eax, dword ptr [rsp+0x10C] cmp eax, r13d jae G_M15629_IG167 mov ecx, eax mov ecx, dword ptr [r12+4*rcx] mov dword ptr [r12], ecx cmp eax, r13d jae G_M15629_IG167 mov ecx, eax mov dword ptr [r12+4*rcx], r8d mov dword ptr [rsp+0x10C], eax jmp G_M15629_IG66 ;; size=75 bbWeight=0.01 PerfScore 0.08 G_M15629_IG91: mov dword ptr [rsp+0xE0], eax mov gword ptr [rsp+0x68], r10 mov gword ptr [rsp+0x60], r9 mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov r11, rax mov eax, dword ptr [rsp+0xE0] mov r9, gword ptr [rsp+0x60] mov r10, gword ptr [rsp+0x68] jmp G_M15629_IG69 ;; size=57 bbWeight=0.00 PerfScore 0.02 G_M15629_IG92: test r13d, r13d je G_M15629_IG167 mov r8d, dword ptr [r12] test r13d, r13d je G_M15629_IG167 cmp r15d, r13d jae G_M15629_IG167 mov ecx, r15d mov ecx, dword ptr [r12+4*rcx] mov dword ptr [r12], ecx cmp r15d, r13d jae G_M15629_IG167 mov ecx, r15d mov dword ptr [r12+4*rcx], r8d jmp G_M15629_IG70 ;; size=63 bbWeight=0.01 PerfScore 0.07 G_M15629_IG93: mov dword ptr [rsp+0xDC], eax mov dword ptr [rsp+0xD8], r10d mov gword ptr [rsp+0x58], r9 mov gword ptr [rsp+0x50], r11 mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov qword ptr [rsp+0xD0], rax mov eax, dword ptr [rsp+0xDC] mov r9, gword ptr [rsp+0x58] mov r10d, dword ptr [rsp+0xD8] mov r11, gword ptr [rsp+0x50] jmp G_M15629_IG73 ;; size=78 bbWeight=0.00 PerfScore 0.02 G_M15629_IG94: cmp ebp, r13d jae G_M15629_IG167 mov ecx, ebp mov r10d, dword ptr [r12+4*rcx] cmp ebp, r13d jae G_M15629_IG167 mov ecx, ebp cmp r15d, r13d jae G_M15629_IG167 mov edx, r15d mov edx, dword ptr [r12+4*rdx] mov dword ptr [r12+4*rcx], edx cmp r15d, r13d jae G_M15629_IG167 mov ecx, r15d mov dword ptr [r12+4*rcx], r10d jmp G_M15629_IG74 ;; size=67 bbWeight=0.01 PerfScore 0.07 G_M15629_IG95: mov dword ptr [rsp+0xFC], r8d mov gword ptr [rsp+0x88], r10 mov gword ptr [rsp+0x48], r9 mov dword ptr [rsp+0x108], eax mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov qword ptr [rsp+0xC0], rax mov eax, dword ptr [rsp+0x108] mov r8d, dword ptr [rsp+0xFC] mov r9, gword ptr [rsp+0x48] mov r10, gword ptr [rsp+0x88] jmp G_M15629_IG78 ;; size=84 bbWeight=0.07 PerfScore 0.83 G_M15629_IG96: mov eax, dword ptr [rsp+0x100] dec eax mov r8d, eax cmp r8d, r13d jae G_M15629_IG167 mov dword ptr [rsp+0x100], r8d mov ecx, r8d mov r10d, dword ptr [rdi+4*rcx] mov dword ptr [rsp+0xF8], r10d mov rcx, 0xD1FFAB1E ; function address cmp qword ptr [rbx+0x18], rcx jne G_M15629_IG162 mov rcx, gword ptr [rbx+0x08] mov r9, rcx mov r11, gword ptr [r9+0x20] mov gword ptr [rsp+0x40], r11 mov gword ptr [rsp+0x80], r9 mov rcx, qword ptr [r9] mov rdx, qword ptr [rcx+0x38] mov rdx, qword ptr [rdx+0x08] mov r11, qword ptr [rdx+0x28] test r11, r11 je G_M15629_IG98 ;; size=112 bbWeight=0.32 PerfScore 8.54 G_M15629_IG97: mov r9, gword ptr [rsp+0x80] mov rcx, gword ptr [r9+0x10] mov edx, dword ptr [rsp+0x108] mov rax, gword ptr [rsp+0x40] cmp edx, dword ptr [rax+0x08] jae G_M15629_IG167 mov dword ptr [rsp+0x108], edx mov ebp, edx mov rbp, gword ptr [rax+8*rbp+0x10] mov rdx, rbp mov r10d, dword ptr [rsp+0xF8] cmp r10d, dword ptr [rax+0x08] jae G_M15629_IG167 mov dword ptr [rsp+0xF8], r10d mov ebp, r10d mov r8, gword ptr [rax+8*rbp+0x10] call [r11] test eax, eax je G_M15629_IG160 mov rbp, gword ptr [rsp+0x80] movzx rcx, byte ptr [rbp+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne SHORT G_M15629_IG99 jmp G_M15629_IG96 ;; size=124 bbWeight=0.32 PerfScore 10.46 G_M15629_IG98: mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov r11, rax jmp G_M15629_IG97 ;; size=23 bbWeight=0.06 PerfScore 0.22 G_M15629_IG99: mov ebp, dword ptr [rsp+0x100] cmp r12d, ebp jge SHORT G_M15629_IG101 ;; size=12 bbWeight=0.13 PerfScore 0.29 G_M15629_IG100: cmp r12d, r13d jae G_M15629_IG167 mov ecx, r12d mov r10d, dword ptr [rdi+4*rcx] cmp r12d, r13d jae G_M15629_IG167 mov ecx, r12d cmp ebp, r13d jae G_M15629_IG167 mov edx, ebp mov edx, dword ptr [rdi+4*rdx] mov dword ptr [rdi+4*rcx], edx cmp ebp, r13d jae G_M15629_IG167 mov ecx, ebp mov dword ptr [rdi+4*rcx], r10d mov dword ptr [rsp+0x100], ebp mov eax, dword ptr [rsp+0x108] jmp G_M15629_IG76 ;; size=79 bbWeight=0.13 PerfScore 2.09 G_M15629_IG101: lea ecx, [r15-0x01] cmp r12d, ecx je SHORT G_M15629_IG103 ;; size=9 bbWeight=0.01 PerfScore 0.02 G_M15629_IG102: dec r15d cmp r12d, r13d jae G_M15629_IG167 mov ecx, r12d mov r9d, dword ptr [rdi+4*rcx] cmp r12d, r13d jae G_M15629_IG167 cmp r15d, r13d jae G_M15629_IG167 mov edx, r15d mov edx, dword ptr [rdi+4*rdx] mov dword ptr [rdi+4*rcx], edx mov rbp, bword ptr [rsp+0x28] mov dword ptr [rbp], r9d ;; size=55 bbWeight=0.01 PerfScore 0.11 G_M15629_IG103: lea ecx, [r12+0x01] mov r15d, r14d sub r15d, ecx mov edx, r15d add rdx, rcx mov ebp, dword ptr [rsp+0xB4] mov r8d, ebp cmp rdx, r8 ja G_M15629_IG166 lea rcx, bword ptr [rdi+4*rcx] mov r13, rcx test r15d, r15d jl G_M15629_IG164 ;; size=52 bbWeight=0.01 PerfScore 0.06 G_M15629_IG104: mov bword ptr [rsp+0xA0], r13 mov dword ptr [rsp+0xA8], r15d lea rcx, [rsp+0xA0] mov edx, esi mov r8, rbx call [System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int])] mov r14d, r12d cmp r14d, 1 jg G_M15629_IG59 jmp G_M15629_IG57 ;; size=53 bbWeight=0.02 PerfScore 0.19 G_M15629_IG105: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG03 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG106: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG04 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG107: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG05 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG108: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG19 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG109: mov dword ptr [rsp+0x10C], r8d mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] mov r8d, dword ptr [rsp+0x10C] jmp G_M15629_IG20 ;; size=47 bbWeight=0 PerfScore 0.00 G_M15629_IG110: mov rax, gword ptr [rsp+0x78] cmp gword ptr [rax+0x18], 0 jne SHORT G_M15629_IG111 mov r10d, dword ptr [rsp+0xF4] sub r10d, dword ptr [rsp+0xF0] jmp SHORT G_M15629_IG112 ;; size=30 bbWeight=0 PerfScore 0.00 G_M15629_IG111: mov rcx, gword ptr [rax+0x18] mov edx, dword ptr [rsp+0xF4] mov r8d, dword ptr [rsp+0xF0] mov rax, qword ptr [rcx] mov rax, qword ptr [rax+0x48] call [rax+0x28]<unknown method> mov r10d, eax ;; size=32 bbWeight=0 PerfScore 0.00 G_M15629_IG112: test r10d, r10d jle G_M15629_IG22 jmp G_M15629_IG36 ;; size=14 bbWeight=0 PerfScore 0.00 G_M15629_IG113: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG23 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG114: mov rax, gword ptr [rsp+0x68] cmp gword ptr [rax+0x18], 0 jne SHORT G_M15629_IG115 mov r10d, dword ptr [rsp+0xE4] sub r10d, dword ptr [rsp+0xE0] jmp SHORT G_M15629_IG116 ;; size=30 bbWeight=0 PerfScore 0.00 G_M15629_IG115: mov rcx, gword ptr [rax+0x18] mov edx, dword ptr [rsp+0xE4] mov r8d, dword ptr [rsp+0xE0] mov rax, qword ptr [rcx] mov rax, qword ptr [rax+0x48] call [rax+0x28]<unknown method> mov r10d, eax ;; size=32 bbWeight=0 PerfScore 0.00 G_M15629_IG116: test r10d, r10d jle G_M15629_IG25 jmp G_M15629_IG38 ;; size=14 bbWeight=0 PerfScore 0.00 G_M15629_IG117: mov dword ptr [rsp+0x10C], r9d mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] mov r9d, dword ptr [rsp+0x10C] jmp G_M15629_IG26 ;; size=47 bbWeight=0 PerfScore 0.00 G_M15629_IG118: mov rax, gword ptr [rsp+0x58] cmp gword ptr [rax+0x18], 0 jne SHORT G_M15629_IG119 mov r10d, dword ptr [rsp+0xDC] sub r10d, dword ptr [rsp+0xD8] jmp SHORT G_M15629_IG120 ;; size=30 bbWeight=0 PerfScore 0.00 G_M15629_IG119: mov rcx, gword ptr [rax+0x18] mov edx, dword ptr [rsp+0xDC] mov r8d, dword ptr [rsp+0xD8] mov rax, qword ptr [rcx] mov rax, qword ptr [rax+0x48] call [rax+0x28]<unknown method> mov r10d, eax ;; size=32 bbWeight=0 PerfScore 0.00 G_M15629_IG120: test r10d, r10d jle G_M15629_IG28 jmp G_M15629_IG40 ;; size=14 bbWeight=0 PerfScore 0.00 G_M15629_IG121: mov dword ptr [rsp+0x108], r11d mov dword ptr [rsp+0x10C], r9d mov dword ptr [rsp+0xCC], r8d mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] mov r8d, dword ptr [rsp+0xCC] mov r9d, dword ptr [rsp+0x10C] mov r11d, dword ptr [rsp+0x108] jmp G_M15629_IG29 ;; size=79 bbWeight=0 PerfScore 0.00 G_M15629_IG122: mov r12, gword ptr [rsp+0x88] cmp gword ptr [r12+0x18], 0 jne SHORT G_M15629_IG123 mov r12d, dword ptr [rsp+0xFC] mov eax, dword ptr [rsp+0x108] sub r12d, eax jmp SHORT G_M15629_IG124 ;; size=36 bbWeight=0 PerfScore 0.00 G_M15629_IG123: mov eax, dword ptr [rsp+0x108] mov rcx, gword ptr [r12+0x18] mov edx, dword ptr [rsp+0xFC] mov dword ptr [rsp+0x108], eax mov r8d, eax mov r10, qword ptr [rcx] mov r10, qword ptr [r10+0x48] call [r10+0x28]<unknown method> mov r12d, eax mov eax, dword ptr [rsp+0x108] ;; size=50 bbWeight=0 PerfScore 0.00 G_M15629_IG124: test r12d, r12d jl SHORT G_M15629_IG125 mov dword ptr [rsp+0x108], eax jmp G_M15629_IG42 ;; size=17 bbWeight=0 PerfScore 0.00 G_M15629_IG125: mov r11d, eax mov eax, dword ptr [rsp+0x104] jmp G_M15629_IG30 ;; size=15 bbWeight=0 PerfScore 0.00 G_M15629_IG126: mov rax, gword ptr [rsp+0x80] cmp gword ptr [rax+0x18], 0 jne SHORT G_M15629_IG127 mov r10d, ebp sub r10d, dword ptr [rsp+0xF8] jmp SHORT G_M15629_IG128 ;; size=28 bbWeight=0 PerfScore 0.00 G_M15629_IG127: mov rcx, gword ptr [rax+0x18] mov edx, ebp mov r8d, dword ptr [rsp+0xF8] mov rax, qword ptr [rcx] mov rax, qword ptr [rax+0x48] call [rax+0x28]<unknown method> mov r10d, eax ;; size=27 bbWeight=0 PerfScore 0.00 G_M15629_IG128: test r10d, r10d jge G_M15629_IG47 mov dword ptr [rsp+0x108], ebp jmp G_M15629_IG42 ;; size=21 bbWeight=0 PerfScore 0.00 G_M15629_IG129: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG54 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG130: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG11 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG131: cmp gword ptr [rsi+0x18], 0 jne SHORT G_M15629_IG132 mov eax, r12d sub eax, ebp jmp SHORT G_M15629_IG133 ;; size=14 bbWeight=0 PerfScore 0.00 G_M15629_IG132: mov rcx, gword ptr [rsi+0x18] mov edx, r12d mov r8d, ebp mov rax, qword ptr [rcx] mov rax, qword ptr [rax+0x48] call [rax+0x28]<unknown method> ;; size=20 bbWeight=0 PerfScore 0.00 G_M15629_IG133: test eax, eax jl G_M15629_IG14 jmp G_M15629_IG81 ;; size=13 bbWeight=0 PerfScore 0.00 G_M15629_IG134: cmp gword ptr [rsi+0x18], 0 jne SHORT G_M15629_IG135 mov eax, r12d sub eax, ebp jmp SHORT G_M15629_IG137 ;; size=14 bbWeight=0 PerfScore 0.00 G_M15629_IG135: mov rcx, gword ptr [rsi+0x18] mov edx, r12d mov r8d, ebp mov rax, qword ptr [rcx] mov rax, qword ptr [rax+0x48] call [rax+0x28]<unknown method> jmp SHORT G_M15629_IG137 ;; size=22 bbWeight=0 PerfScore 0.00 G_M15629_IG136: mov edx, r12d mov r8d, ebp mov rcx, gword ptr [rbx+0x08] call [rbx+0x18]System.Comparison`1[int]:Invoke(int,int):int:this ;; size=13 bbWeight=0 PerfScore 0.00 G_M15629_IG137: test eax, eax jl G_M15629_IG83 jmp G_M15629_IG88 ;; size=13 bbWeight=0 PerfScore 0.00 G_M15629_IG138: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG61 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG139: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG62 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG140: mov dword ptr [rsp+0x10C], eax mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] mov eax, dword ptr [rsp+0x10C] jmp G_M15629_IG63 ;; size=45 bbWeight=0 PerfScore 0.00 G_M15629_IG141: mov rcx, gword ptr [rsp+0x78] cmp gword ptr [rcx+0x18], 0 jne SHORT G_M15629_IG142 mov eax, dword ptr [rsp+0xF4] mov r10d, eax sub r10d, dword ptr [rsp+0xF0] jmp SHORT G_M15629_IG144 ;; size=32 bbWeight=0 PerfScore 0.00 G_M15629_IG142: mov eax, dword ptr [rsp+0xF4] mov rcx, gword ptr [rcx+0x18] mov edx, eax mov r8d, dword ptr [rsp+0xF0] mov rax, qword ptr [rcx] mov rax, qword ptr [rax+0x48] call [rax+0x28]<unknown method> mov r10d, eax jmp SHORT G_M15629_IG144 ;; size=36 bbWeight=0 PerfScore 0.00 G_M15629_IG143: mov edx, r10d mov r8d, r9d mov rcx, gword ptr [rbx+0x08] call [rbx+0x18]System.Comparison`1[int]:Invoke(int,int):int:this mov r10d, eax ;; size=16 bbWeight=0 PerfScore 0.00 G_M15629_IG144: test r10d, r10d jle G_M15629_IG66 jmp G_M15629_IG90 ;; size=14 bbWeight=0 PerfScore 0.00 G_M15629_IG145: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG67 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG146: mov rcx, gword ptr [rsp+0x68] cmp gword ptr [rcx+0x18], 0 jne SHORT G_M15629_IG147 mov r10d, ebp sub r10d, dword ptr [rsp+0xE0] jmp SHORT G_M15629_IG149 ;; size=25 bbWeight=0 PerfScore 0.00 G_M15629_IG147: mov rcx, gword ptr [rcx+0x18] mov edx, ebp mov r8d, dword ptr [rsp+0xE0] mov rax, qword ptr [rcx] mov rax, qword ptr [rax+0x48] call [rax+0x28]<unknown method> mov r10d, eax jmp SHORT G_M15629_IG149 ;; size=29 bbWeight=0 PerfScore 0.00 G_M15629_IG148: mov edx, ebp mov r8d, eax mov rcx, gword ptr [rbx+0x08] call [rbx+0x18]System.Comparison`1[int]:Invoke(int,int):int:this mov r10d, eax ;; size=15 bbWeight=0 PerfScore 0.00 G_M15629_IG149: test r10d, r10d jle G_M15629_IG70 jmp G_M15629_IG92 ;; size=14 bbWeight=0 PerfScore 0.00 G_M15629_IG150: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG71 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG151: mov rcx, gword ptr [rsp+0x58] cmp gword ptr [rcx+0x18], 0 jne SHORT G_M15629_IG152 mov eax, dword ptr [rsp+0xDC] mov r10d, eax sub r10d, dword ptr [rsp+0xD8] jmp SHORT G_M15629_IG154 ;; size=32 bbWeight=0 PerfScore 0.00 G_M15629_IG152: mov eax, dword ptr [rsp+0xDC] mov rcx, gword ptr [rcx+0x18] mov edx, eax mov r8d, dword ptr [rsp+0xD8] mov rax, qword ptr [rcx] mov rax, qword ptr [rax+0x48] call [rax+0x28]<unknown method> mov r10d, eax jmp SHORT G_M15629_IG154 ;; size=36 bbWeight=0 PerfScore 0.00 G_M15629_IG153: mov edx, eax mov r8d, r10d mov rcx, gword ptr [rbx+0x08] call [rbx+0x18]System.Comparison`1[int]:Invoke(int,int):int:this mov r10d, eax ;; size=15 bbWeight=0 PerfScore 0.00 G_M15629_IG154: test r10d, r10d jle G_M15629_IG74 jmp G_M15629_IG94 ;; size=14 bbWeight=0 PerfScore 0.00 G_M15629_IG155: mov dword ptr [rsp+0x108], eax mov dword ptr [rsp+0xCC], r9d mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] mov eax, dword ptr [rsp+0x108] mov r9d, dword ptr [rsp+0xCC] jmp G_M15629_IG75 ;; size=61 bbWeight=0 PerfScore 0.00 G_M15629_IG156: mov rbp, gword ptr [rsp+0x88] cmp gword ptr [rbp+0x18], 0 jne SHORT G_M15629_IG157 mov ebp, dword ptr [rsp+0xFC] mov eax, dword ptr [rsp+0x108] mov ecx, ebp sub ecx, eax jmp SHORT G_M15629_IG159 ;; size=35 bbWeight=0 PerfScore 0.00 G_M15629_IG157: mov eax, dword ptr [rsp+0x108] mov rcx, gword ptr [rbp+0x18] mov edx, dword ptr [rsp+0xFC] mov dword ptr [rsp+0x108], eax mov r8d, eax mov r10, qword ptr [rcx] mov r10, qword ptr [r10+0x48] call [r10+0x28]<unknown method> mov ecx, eax mov eax, dword ptr [rsp+0x108] jmp SHORT G_M15629_IG159 ;; size=50 bbWeight=0 PerfScore 0.00 G_M15629_IG158: mov edx, r8d mov dword ptr [rsp+0x108], eax mov r8d, eax mov rcx, gword ptr [rbx+0x08] call [rbx+0x18]System.Comparison`1[int]:Invoke(int,int):int:this mov ecx, eax mov eax, dword ptr [rsp+0x108] ;; size=29 bbWeight=0 PerfScore 0.00 G_M15629_IG159: test ecx, ecx jl G_M15629_IG76 mov dword ptr [rsp+0x108], eax jmp G_M15629_IG96 ;; size=20 bbWeight=0 PerfScore 0.00 G_M15629_IG160: mov rcx, gword ptr [rsp+0x80] cmp gword ptr [rcx+0x18], 0 jne SHORT G_M15629_IG161 mov eax, dword ptr [rsp+0x108] mov r10d, eax sub r10d, dword ptr [rsp+0xF8] jmp SHORT G_M15629_IG163 ;; size=35 bbWeight=0 PerfScore 0.00 G_M15629_IG161: mov eax, dword ptr [rsp+0x108] mov rcx, gword ptr [rcx+0x18] mov dword ptr [rsp+0x108], eax mov edx, eax mov r8d, dword ptr [rsp+0xF8] mov r10, qword ptr [rcx] mov r10, qword ptr [r10+0x48] call [r10+0x28]<unknown method> mov r10d, eax mov eax, dword ptr [rsp+0x108] jmp SHORT G_M15629_IG163 ;; size=51 bbWeight=0 PerfScore 0.00 G_M15629_IG162: mov r10d, dword ptr [rsp+0xF8] mov edx, dword ptr [rsp+0x108] mov r8d, r10d mov rcx, gword ptr [rbx+0x08] call [rbx+0x18]System.Comparison`1[int]:Invoke(int,int):int:this mov r10d, eax mov eax, dword ptr [rsp+0x108] ;; size=35 bbWeight=0 PerfScore 0.00 G_M15629_IG163: test r10d, r10d mov dword ptr [rsp+0x108], eax jl G_M15629_IG96 jmp G_M15629_IG99 ;; size=21 bbWeight=0 PerfScore 0.00 G_M15629_IG164: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG104 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG165: cmp r14d, ebp ja SHORT G_M15629_IG166 mov ecx, r14d not ecx shr ecx, 31 call [System.Diagnostics.Debug:Assert(ubyte)] mov rcx, rdi mov edx, r14d mov bword ptr [rsp+0xA0], rcx mov dword ptr [rsp+0xA8], edx lea rcx, [rsp+0xA0] mov rdx, rbx call [System.Collections.Generic.ArraySortHelper`1[int]:HeapSort(System.Span`1[int],System.Comparison`1[int])] jmp G_M15629_IG57 ;; size=62 bbWeight=0 PerfScore 0.00 G_M15629_IG166: call [System.ThrowHelper:ThrowArgumentOutOfRangeException()] int3 ;; size=7 bbWeight=0 PerfScore 0.00 G_M15629_IG167: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 ; Total bytes of code 6774, prolog size 74, PerfScore 5416.38, instruction count 1441, allocated bytes for code 6774 (MethodHash=9b78c2f2) for method System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int]) (Tier1) ; ============================================================
수정본
파일 열기
; Assembly listing for method System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int]) (Tier1) ; Emitting BLENDED_CODE for X64 with AVX512 - Windows ; Tier1 code ; optimized code ; optimized using Dynamic PGO ; rsp based frame ; fully interruptible ; with Dynamic PGO: fgCalledCount is 6265 ; 29 inlinees with PGO data; 22 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T50] ( 4, 8 ) byref -> rcx ld-addr-op single-def ; V01 arg1 [V01,T51] ( 11, 7.92) int -> [rsp+0x178] ; V02 arg2 [V02,T31] ( 45,108.59) ref -> rbx class-hnd single-def <System.Comparison`1[int]> ; V03 loc0 [V03,T47] ( 23, 15.42) int -> r14 ;* V04 loc1 [V04 ] ( 0, 0 ) int -> zero-ref ; V05 loc2 [V05,T86] ( 7, 3.91) int -> r11 ; V06 OutArgs [V06 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V07 tmp1 [V07 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[int]> ;* V08 tmp2 [V08 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[int]> ;* V09 tmp3 [V09 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[int]> ;* V10 tmp4 [V10 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[int]> ;* V11 tmp5 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V12 tmp6 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V13 tmp7 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V14 tmp8 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V15 tmp9 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V16 tmp10 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]> ;* V17 tmp11 [V17 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg" ;* V18 tmp12 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V19 tmp13 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V20 tmp14 [V20,T43] ( 11, 34.18) int -> r15 "Inline stloc first use temp" ;* V21 tmp15 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]> ; V22 tmp16 [V22,T41] ( 13, 78.39) int -> r12 "Inline stloc first use temp" ; V23 tmp17 [V23,T01] ( 23,241.73) int -> registers "Inline stloc first use temp" ; V24 tmp18 [V24,T128] ( 7, 0 ) int -> rax "guarded devirt return temp" ; V25 tmp19 [V25,T07] ( 11,185.49) int -> rbp "guarded devirt arg temp" ; V26 tmp20 [V26,T14] ( 14,154.58) ref -> rsi class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]> ; V27 tmp21 [V27,T28] ( 9,123.97) ref -> [rsp+0xA8] class-hnd "Inline stloc first use temp" <System.__Canon[]> ;* V28 tmp22 [V28 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V29 tmp23 [V29,T08] ( 8,185.49) long -> r11 "VirtualCall with runtime lookup" ; V30 tmp24 [V30,T38] ( 6, 92.75) int -> rax "Inline stloc first use temp" ;* V31 tmp25 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]> ;* V32 tmp26 [V32 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg" ;* V33 tmp27 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]> ;* V34 tmp28 [V34 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V35 tmp29 [V35 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V36 tmp30 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V37 tmp31 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]> ; V38 tmp32 [V38,T49] ( 34, 11.86) int -> r15 "Inline stloc first use temp" ; V39 tmp33 [V39,T48] ( 36, 11.88) int -> [rsp+0x114] "Inline stloc first use temp" ; V40 tmp34 [V40,T23] ( 20,131.03) int -> [rsp+0x110] "Inline stloc first use temp" ; V41 tmp35 [V41,T04] ( 32,195.60) int -> [rsp+0x10C] "Inline stloc first use temp" ; V42 tmp36 [V42,T16] ( 18,140.69) int -> [rsp+0x108] "Inline stloc first use temp" ; V43 tmp37 [V43,T21] ( 4,134.85) int -> rax "dup spill" ; V44 tmp38 [V44,T00] ( 9,253.45) int -> rbp "dup spill" ; V45 tmp39 [V45,T129] ( 7, 0 ) int -> registers "guarded devirt return temp" ; V46 tmp40 [V46,T02] ( 11,202.27) int -> [rsp+0x104] "guarded devirt arg temp" ; V47 tmp41 [V47,T12] ( 14,168.56) ref -> [rsp+0xA0] class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]> ; V48 tmp42 [V48,T126] ( 7, 0 ) int -> r9 "guarded devirt return temp" ; V49 tmp43 [V49,T05] ( 11,187.89) int -> r12 "guarded devirt arg temp" ; V50 tmp44 [V50,T13] ( 14,156.57) ref -> [rsp+0x98] class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]> ;* V51 tmp45 [V51 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V52 tmp46 [V52 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V53 tmp47 [V53 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V54 tmp48 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]> ; V55 tmp49 [V55,T110] ( 4, 1.02) int -> r8 "Inline stloc first use temp" ; V56 tmp50 [V56,T132] ( 7, 0 ) int -> r10 "guarded devirt return temp" ; V57 tmp51 [V57,T56] ( 11, 5.87) int -> [rsp+0x100] "guarded devirt arg temp" ; V58 tmp52 [V58,T57] ( 11, 5.87) int -> [rsp+0xFC] "guarded devirt arg temp" ; V59 tmp53 [V59,T68] ( 14, 4.89) ref -> [rsp+0x90] class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]> ;* V60 tmp54 [V60 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V61 tmp55 [V61 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V62 tmp56 [V62,T71] ( 9, 4.88) ref -> [rsp+0x88] class-hnd "Inline stloc first use temp" <System.__Canon[]> ;* V63 tmp57 [V63 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V64 tmp58 [V64,T62] ( 8, 5.87) long -> [rsp+0xF0] "VirtualCall with runtime lookup" ; V65 tmp59 [V65,T87] ( 6, 2.94) int -> rax "Inline stloc first use temp" ;* V66 tmp60 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]> ; V67 tmp61 [V67,T111] ( 4, 1.02) int -> r8 "Inline stloc first use temp" ; V68 tmp62 [V68,T133] ( 7, 0 ) int -> r10 "guarded devirt return temp" ; V69 tmp63 [V69,T58] ( 11, 5.87) int -> [rsp+0xEC] "guarded devirt arg temp" ; V70 tmp64 [V70,T59] ( 11, 5.87) int -> [rsp+0xE8] "guarded devirt arg temp" ; V71 tmp65 [V71,T69] ( 14, 4.89) ref -> [rsp+0x80] class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]> ;* V72 tmp66 [V72 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V73 tmp67 [V73 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V74 tmp68 [V74,T72] ( 9, 4.88) ref -> [rsp+0x78] class-hnd "Inline stloc first use temp" <System.__Canon[]> ;* V75 tmp69 [V75 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V76 tmp70 [V76,T63] ( 8, 5.87) long -> [rsp+0xE0] "VirtualCall with runtime lookup" ; V77 tmp71 [V77,T88] ( 6, 2.94) int -> rax "Inline stloc first use temp" ;* V78 tmp72 [V78 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]> ; V79 tmp73 [V79,T112] ( 4, 1.02) int -> r10 "Inline stloc first use temp" ; V80 tmp74 [V80,T134] ( 7, 0 ) int -> r10 "guarded devirt return temp" ; V81 tmp75 [V81,T60] ( 11, 5.87) int -> [rsp+0xDC] "guarded devirt arg temp" ; V82 tmp76 [V82,T61] ( 11, 5.87) int -> [rsp+0xD8] "guarded devirt arg temp" ; V83 tmp77 [V83,T70] ( 14, 4.89) ref -> [rsp+0x70] class-hnd "guarded devirt this exact temp" <System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]> ;* V84 tmp78 [V84 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V85 tmp79 [V85 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V86 tmp80 [V86,T73] ( 9, 4.88) ref -> [rsp+0x68] class-hnd "Inline stloc first use temp" <System.__Canon[]> ;* V87 tmp81 [V87 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V88 tmp82 [V88,T64] ( 8, 5.87) long -> registers "VirtualCall with runtime lookup" ; V89 tmp83 [V89,T89] ( 6, 2.94) int -> rax "Inline stloc first use temp" ; V90 tmp84 [V90,T53] ( 11, 9.81) int -> [rsp+0xD4] "Inlining Arg" ;* V91 tmp85 [V91 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]> ; V92 tmp86 [V92,T91] ( 4, 1.96) int -> rdx "Inline stloc first use temp" ;* V93 tmp87 [V93 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V94 tmp88 [V94 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V95 tmp89 [V95,T17] ( 9,135.19) ref -> [rsp+0x60] class-hnd "Inline stloc first use temp" <System.__Canon[]> ;* V96 tmp90 [V96 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V97 tmp91 [V97,T03] ( 8,202.27) long -> registers "VirtualCall with runtime lookup" ; V98 tmp92 [V98,T33] ( 6,101.13) int -> rax "Inline stloc first use temp" ; V99 tmp93 [V99,T24] ( 9,125.58) ref -> [rsp+0x58] class-hnd "Inline stloc first use temp" <System.__Canon[]> ;* V100 tmp94 [V100 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V101 tmp95 [V101,T06] ( 8,187.89) long -> r11 "VirtualCall with runtime lookup" ; V102 tmp96 [V102,T37] ( 6, 93.94) int -> rax "Inline stloc first use temp" ;* V103 tmp97 [V103 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]> ; V104 tmp98 [V104,T45] ( 4, 25.90) int -> r10 "Inline stloc first use temp" ;* V105 tmp99 [V105 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V106 tmp100 [V106 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V107 tmp101 [V107,T79] ( 5, 3.93) int -> r15 "Inlining Arg" ;* V108 tmp102 [V108 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[int]> ; V109 tmp103 [V109,T92] ( 4, 1.96) int -> r9 "Inline stloc first use temp" ;* V110 tmp104 [V110 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V111 tmp105 [V111 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V112 tmp106 [V112,T52] ( 8, 9.83) int -> registers "Inlining Arg" ;* V113 tmp107 [V113 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Span`1[int]> ; V114 tmp108 [V114,T55] ( 4, 5.92) byref -> registers "Inlining Arg" ;* V115 tmp109 [V115 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V116 tmp110 [V116 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V117 tmp111 [V117,T27] ( 29,123.74) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP ; V118 tmp112 [V118,T54] ( 14, 6.98) int -> [rsp+0xD0] spill-single-def "field V00._length (fldOffset=0x8)" P-INDEP ;* V119 tmp113 [V119 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP ;* V120 tmp114 [V120 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP ;* V121 tmp115 [V121 ] ( 0, 0 ) byref -> zero-ref "field V08._reference (fldOffset=0x0)" P-INDEP ;* V122 tmp116 [V122 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP ;* V123 tmp117 [V123 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP ;* V124 tmp118 [V124 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP ;* V125 tmp119 [V125 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP ;* V126 tmp120 [V126 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP ; V127 tmp121 [V127,T96] ( 2, 1.80) byref -> rdi single-def "field V16._reference (fldOffset=0x0)" P-INDEP ; V128 tmp122 [V128,T97] ( 2, 1.80) int -> r14 "field V16._length (fldOffset=0x8)" P-INDEP ; V129 tmp123 [V129,T36] ( 11, 97.24) byref -> rdi single-def "field V21._reference (fldOffset=0x0)" P-INDEP ; V130 tmp124 [V130,T32] ( 14,106.42) int -> r14 "field V21._length (fldOffset=0x8)" P-INDEP ; V131 tmp125 [V131,T139] ( 2, 0 ) byref -> rcx single-def "field V31._reference (fldOffset=0x0)" P-INDEP ; V132 tmp126 [V132,T140] ( 2, 0 ) int -> rdx "field V31._length (fldOffset=0x8)" P-INDEP ;* V133 tmp127 [V133,T113] ( 0, 0 ) byref -> zero-ref "field V33._reference (fldOffset=0x0)" P-INDEP ; V134 tmp128 [V134,T93] ( 4, 1.96) int -> r13 "field V33._length (fldOffset=0x8)" P-INDEP ; V135 tmp129 [V135,T46] ( 48, 17.84) byref -> r12 "field V37._reference (fldOffset=0x0)" P-INDEP ; V136 tmp130 [V136,T35] ( 44, 97.22) int -> r13 "field V37._length (fldOffset=0x8)" P-INDEP ;* V137 tmp131 [V137 ] ( 0, 0 ) byref -> zero-ref "field V54._reference (fldOffset=0x0)" P-INDEP ;* V138 tmp132 [V138 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP ;* V139 tmp133 [V139 ] ( 0, 0 ) byref -> zero-ref "field V66._reference (fldOffset=0x0)" P-INDEP ;* V140 tmp134 [V140 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP ;* V141 tmp135 [V141 ] ( 0, 0 ) byref -> zero-ref "field V78._reference (fldOffset=0x0)" P-INDEP ;* V142 tmp136 [V142 ] ( 0, 0 ) int -> zero-ref "field V78._length (fldOffset=0x8)" P-INDEP ;* V143 tmp137 [V143 ] ( 0, 0 ) byref -> zero-ref "field V91._reference (fldOffset=0x0)" P-INDEP ;* V144 tmp138 [V144 ] ( 0, 0 ) int -> zero-ref "field V91._length (fldOffset=0x8)" P-INDEP ;* V145 tmp139 [V145 ] ( 0, 0 ) byref -> zero-ref "field V103._reference (fldOffset=0x0)" P-INDEP ;* V146 tmp140 [V146 ] ( 0, 0 ) int -> zero-ref "field V103._length (fldOffset=0x8)" P-INDEP ;* V147 tmp141 [V147 ] ( 0, 0 ) byref -> zero-ref "field V108._reference (fldOffset=0x0)" P-INDEP ;* V148 tmp142 [V148 ] ( 0, 0 ) int -> zero-ref "field V108._length (fldOffset=0x8)" P-INDEP ; V149 tmp143 [V149,T77] ( 4, 3.96) byref -> registers "field V113._reference (fldOffset=0x0)" P-INDEP ; V150 tmp144 [V150,T78] ( 4, 3.96) int -> registers "field V113._length (fldOffset=0x8)" P-INDEP ;* V151 tmp145 [V151 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" <System.Span`1[int]> ; V152 tmp146 [V152,T80] ( 4, 3.92) ref -> [rsp+0x50] "argument with side effect" ; V153 tmp147 [V153,T81] ( 4, 3.92) ref -> [rsp+0x48] "argument with side effect" ; V154 tmp148 [V154,T135] ( 6, 0 ) ref -> rcx "argument with side effect" ; V155 tmp149 [V155,T82] ( 4, 3.92) ref -> rcx "argument with side effect" ; V156 tmp150 [V156,T83] ( 4, 3.92) ref -> r10 "argument with side effect" ; V157 tmp151 [V157,T136] ( 6, 0 ) ref -> rcx "argument with side effect" ; V158 tmp152 [V158,T84] ( 4, 3.92) ref -> [rsp+0x40] "argument with side effect" ; V159 tmp153 [V159,T85] ( 4, 3.92) ref -> [rsp+0x38] "argument with side effect" ; V160 tmp154 [V160,T137] ( 6, 0 ) ref -> rcx "argument with side effect" ; V161 tmp155 [V161,T19] ( 4,134.85) ref -> registers "argument with side effect" ; V162 tmp156 [V162,T20] ( 4,134.85) ref -> registers "argument with side effect" ; V163 tmp157 [V163,T130] ( 6, 0 ) ref -> rcx "argument with side effect" ; V164 tmp158 [V164,T25] ( 4,125.26) ref -> rcx "argument with side effect" ; V165 tmp159 [V165,T26] ( 4,125.26) ref -> registers "argument with side effect" ; V166 tmp160 [V166,T127] ( 6, 0 ) ref -> rcx "argument with side effect" ; V167 tmp161 [V167 ] ( 21, 12.61) struct (16) [rsp+0xC0] do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.Span`1[int]> ; V168 tmp162 [V168,T29] ( 4,123.66) ref -> rcx "argument with side effect" ; V169 tmp163 [V169,T30] ( 4,123.66) ref -> rdx "argument with side effect" ; V170 tmp164 [V170,T131] ( 6, 0 ) ref -> rcx "argument with side effect" ; V171 cse0 [V171,T90] ( 3, 2.91) byref -> [rsp+0x30] spill-single-def "CSE #32: conservative" ; V172 cse1 [V172,T120] ( 3, 0.03) byref -> [rsp+0x28] spill-single-def "CSE #55: conservative" ; V173 cse2 [V173,T34] ( 3,100.11) int -> rbp "CSE #15: moderate" ; V174 cse3 [V174,T39] ( 3, 92.98) int -> r8 "CSE #18: moderate" ; V175 cse4 [V175,T40] ( 3, 91.81) int -> r8 "CSE #61: moderate" ; V176 cse5 [V176,T42] ( 3, 72.57) int -> rcx "CSE #59: moderate" ; V177 cse6 [V177,T44] ( 4, 32.79) int -> r13 "CSE #58: moderate" ; V178 cse7 [V178,T121] ( 3, 0.03) int -> [rsp+0xBC] spill-single-def "CSE #34: conservative" ; V179 cse8 [V179,T122] ( 3, 0.03) int -> [rsp+0xB8] spill-single-def "CSE #37: conservative" ; V180 cse9 [V180,T123] ( 3, 0.03) int -> [rsp+0xB4] spill-single-def "CSE #41: conservative" ; V181 cse10 [V181,T124] ( 3, 0.03) long -> rcx "CSE #57: conservative" ; V182 cse11 [V182,T125] ( 3, 0.03) long -> rcx "CSE #54: conservative" ; V183 rat0 [V183,T74] ( 3, 4.26) long -> rcx "Spilling to split statement for tree" ; V184 rat1 [V184,T65] ( 3, 5.43) long -> rax "fgMakeTemp is creating a new local variable" ; V185 rat2 [V185,T75] ( 3, 4.26) long -> rcx "Spilling to split statement for tree" ; V186 rat3 [V186,T66] ( 3, 5.43) long -> rax "fgMakeTemp is creating a new local variable" ; V187 rat4 [V187,T76] ( 3, 4.26) long -> rax "Spilling to split statement for tree" ; V188 rat5 [V188,T67] ( 3, 5.43) long -> r10 "fgMakeTemp is creating a new local variable" ; V189 rat6 [V189,T15] ( 3,146.83) long -> r8 "Spilling to split statement for tree" ; V190 rat7 [V190,T09] ( 3,186.88) long -> r12 "fgMakeTemp is creating a new local variable" ; V191 rat8 [V191,T18] ( 3,136.38) long -> rcx "Spilling to split statement for tree" ; V192 rat9 [V192,T10] ( 3,173.57) long -> r11 "fgMakeTemp is creating a new local variable" ;* V193 rat10 [V193,T107] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V194 rat11 [V194,T100] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;* V195 rat12 [V195,T104] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V196 rat13 [V196,T95] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ;* V197 rat14 [V197,T106] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V198 rat15 [V198,T99] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ; V199 rat16 [V199,T117] ( 3, 0.04) long -> rcx "Spilling to split statement for tree" ; V200 rat17 [V200,T114] ( 3, 0.05) long -> rdx "fgMakeTemp is creating a new local variable" ; V201 rat18 [V201,T118] ( 3, 0.04) long -> rcx "Spilling to split statement for tree" ; V202 rat19 [V202,T115] ( 3, 0.05) long -> rdx "fgMakeTemp is creating a new local variable" ; V203 rat20 [V203,T119] ( 3, 0.04) long -> rcx "Spilling to split statement for tree" ; V204 rat21 [V204,T116] ( 3, 0.05) long -> r10 "fgMakeTemp is creating a new local variable" ; V205 rat22 [V205,T103] ( 3, 1.50) long -> rcx "Spilling to split statement for tree" ; V206 rat23 [V206,T94] ( 3, 1.91) long -> r12 "fgMakeTemp is creating a new local variable" ; V207 rat24 [V207,T105] ( 3, 1.41) long -> rcx "Spilling to split statement for tree" ; V208 rat25 [V208,T98] ( 3, 1.79) long -> r11 "fgMakeTemp is creating a new local variable" ; V209 rat26 [V209,T22] ( 3,134.65) long -> rcx "Spilling to split statement for tree" ; V210 rat27 [V210,T11] ( 3,171.38) long -> r11 "fgMakeTemp is creating a new local variable" ;* V211 rat28 [V211,T109] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree" ;* V212 rat29 [V212,T102] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" ; V213 rat30 [V213,T108] ( 3, 1.37) long -> rcx "Spilling to split statement for tree" ; V214 rat31 [V214,T101] ( 3, 1.75) long -> r11 "fgMakeTemp is creating a new local variable" ;* V215 rat32 [V215,T138] ( 0, 0 ) ref -> zero-ref "delegate invoke call" ; TEMP_02 ref -> [rsp+0x120] ; TEMP_01 ref -> [rsp+0x118] ; ; Lcl frame size = 296 G_M15629_IG01: push r15 push r14 push r13 push r12 push rdi push rsi push rbp push rbx sub rsp, 296 vxorps xmm4, xmm4, xmm4 vmovdqu ymmword ptr [rsp+0xC0], ymm4 vmovdqu ymmword ptr [rsp+0xE0], ymm4 vmovdqu ymmword ptr [rsp+0x100], ymm4 xor eax, eax mov qword ptr [rsp+0x120], rax mov esi, edx mov rbx, r8 ;; size=65 bbWeight=1 PerfScore 16.33 G_M15629_IG02: mov rdi, bword ptr [rcx] mov ebp, dword ptr [rcx+0x08] mov dword ptr [rsp+0xD0], ebp test ebp, ebp je G_M15629_IG104 ;; size=21 bbWeight=1 PerfScore 6.25 G_M15629_IG03: test esi, esi jl G_M15629_IG105 ;; size=8 bbWeight=1 PerfScore 1.25 G_M15629_IG04: test rbx, rbx je G_M15629_IG106 ;; size=9 bbWeight=1 PerfScore 1.25 G_M15629_IG05: mov r14d, ebp cmp ebp, 1 jle G_M15629_IG48 ;; size=12 bbWeight=1 PerfScore 1.50 G_M15629_IG06: test rbx, rbx je G_M15629_IG58 mov rcx, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]:CompareAnyKeys(int,int):int:this cmp qword ptr [rbx+0x18], rcx jne G_M15629_IG58 ;; size=29 bbWeight=0.99 PerfScore 5.44 G_M15629_IG07: cmp r14d, 16 jg G_M15629_IG18 ;; size=10 bbWeight=1.94 PerfScore 2.42 G_M15629_IG08: cmp r14d, 2 je G_M15629_IG47 ;; size=10 bbWeight=0.98 PerfScore 1.22 G_M15629_IG09: cmp r14d, 3 je G_M15629_IG46 ;; size=10 bbWeight=0.92 PerfScore 1.15 G_M15629_IG10: cmp r14d, ebp ja G_M15629_IG166 test r14d, r14d jl G_M15629_IG129 ;; size=18 bbWeight=0.90 PerfScore 2.25 G_M15629_IG11: xor r15d, r15d lea ecx, [r14-0x01] test ecx, ecx jle G_M15629_IG48 ;; size=15 bbWeight=0.90 PerfScore 1.80 G_M15629_IG12: test rbx, rbx je G_M15629_IG85 mov rcx, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]:CompareAnyKeys(int,int):int:this cmp qword ptr [rbx+0x18], rcx jne G_M15629_IG85 ;; size=29 bbWeight=0.81 PerfScore 4.46 G_M15629_IG13: lea r13d, [r15+0x01] cmp r13d, r14d jae G_M15629_IG167 mov ecx, r13d mov r12d, dword ptr [rdi+4*rcx] jmp SHORT G_M15629_IG15 ;; size=22 bbWeight=8.20 PerfScore 49.18 G_M15629_IG14: lea ecx, [r15+0x01] cmp ecx, r14d jae G_M15629_IG167 cmp r15d, r14d jae G_M15629_IG167 mov edx, r15d mov edx, dword ptr [rdi+4*rdx] mov dword ptr [rdi+4*rcx], edx dec r15d ;; size=34 bbWeight=24.19 PerfScore 157.23 G_M15629_IG15: test r15d, r15d jl G_M15629_IG84 ;; size=9 bbWeight=32.30 PerfScore 40.38 G_M15629_IG16: cmp r15d, r14d jae G_M15629_IG167 mov ecx, r15d mov ebp, dword ptr [rdi+4*rcx] mov rsi, gword ptr [rbx+0x08] mov rax, gword ptr [rsi+0x20] mov rcx, qword ptr [rsi] mov rdx, qword ptr [rcx+0x38] mov rdx, qword ptr [rdx+0x08] mov r11, qword ptr [rdx+0x28] test r11, r11 je G_M15629_IG83 ;; size=47 bbWeight=30.60 PerfScore 512.60 G_M15629_IG17: mov rcx, gword ptr [rsi+0x10] mov r8d, dword ptr [rax+0x08] cmp r12d, r8d jae G_M15629_IG167 mov edx, r12d mov rdx, gword ptr [rax+8*rdx+0x10] cmp ebp, r8d jae G_M15629_IG167 mov r8d, ebp mov r8, gword ptr [rax+8*r8+0x10] call [r11] test eax, eax je G_M15629_IG130 movzx rcx, byte ptr [rsi+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne G_M15629_IG84 jmp G_M15629_IG14 ;; size=78 bbWeight=30.60 PerfScore 673.26 G_M15629_IG18: test esi, esi je G_M15629_IG165 dec esi mov dword ptr [rsp+0x178], esi cmp r14d, ebp ja G_M15629_IG166 test r14d, r14d jl G_M15629_IG107 ;; size=35 bbWeight=0.97 PerfScore 4.84 G_M15629_IG19: mov r13d, r14d mov r12, rdi lea r15d, [r13-0x01] mov r10d, r15d sar r10d, 1 je G_M15629_IG108 ;; size=22 bbWeight=0.97 PerfScore 2.66 G_M15629_IG20: mov r9d, dword ptr [r12] cmp r10d, r13d jae G_M15629_IG167 mov dword ptr [rsp+0x114], r10d mov ecx, r10d mov r11d, dword ptr [r12+4*rcx] mov r8, gword ptr [rbx+0x08] mov rdx, gword ptr [r8+0x20] mov rcx, qword ptr [r8] mov rax, qword ptr [rcx+0x38] mov rax, qword ptr [rax+0x08] mov rax, qword ptr [rax+0x28] test rax, rax je G_M15629_IG50 ;; size=60 bbWeight=0.97 PerfScore 19.14 G_M15629_IG21: mov gword ptr [rsp+0x90], r8 mov rcx, gword ptr [r8+0x10] mov gword ptr [rsp+0x50], rcx cmp r9d, dword ptr [rdx+0x08] jae G_M15629_IG167 mov dword ptr [rsp+0x100], r9d mov ecx, r9d mov gword ptr [rsp+0x88], rdx mov rcx, gword ptr [rdx+8*rcx+0x10] mov gword ptr [rsp+0x48], rcx mov rcx, gword ptr [rsp+0x50] mov gword ptr [rsp+0x120], rcx mov rdx, gword ptr [rsp+0x48] mov gword ptr [rsp+0x118], rdx mov rcx, gword ptr [rsp+0x88] cmp r11d, dword ptr [rcx+0x08] jae G_M15629_IG167 mov dword ptr [rsp+0xFC], r11d mov edx, r11d mov r8, gword ptr [rcx+8*rdx+0x10] mov r11, rax mov rcx, gword ptr [rsp+0x120] mov rdx, gword ptr [rsp+0x118] call [rax] test eax, eax je G_M15629_IG109 mov r10, gword ptr [rsp+0x90] movzx rcx, byte ptr [r10+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne G_M15629_IG51 ;; size=174 bbWeight=0.97 PerfScore 36.58 G_M15629_IG22: test r15d, r15d je G_M15629_IG112 ;; size=9 bbWeight=0.97 PerfScore 1.21 G_M15629_IG23: mov r9d, dword ptr [r12] mov ecx, r15d mov r11d, dword ptr [r12+4*rcx] mov r8, gword ptr [rbx+0x08] mov rdx, gword ptr [r8+0x20] mov rcx, qword ptr [r8] mov rax, qword ptr [rcx+0x38] mov rax, qword ptr [rax+0x08] mov rax, qword ptr [rax+0x28] test rax, rax je G_M15629_IG52 ;; size=43 bbWeight=0.97 PerfScore 16.96 G_M15629_IG24: mov gword ptr [rsp+0x80], r8 mov rcx, gword ptr [r8+0x10] cmp r9d, dword ptr [rdx+0x08] jae G_M15629_IG167 mov dword ptr [rsp+0xEC], r9d mov r10d, r9d mov gword ptr [rsp+0x78], rdx mov r10, gword ptr [rdx+8*r10+0x10] mov gword ptr [rsp+0x118], rcx mov rdx, r10 mov r10, gword ptr [rsp+0x78] cmp r11d, dword ptr [r10+0x08] jae G_M15629_IG167 mov dword ptr [rsp+0xE8], r11d mov ecx, r11d mov r8, gword ptr [r10+8*rcx+0x10] mov r11, rax mov rcx, gword ptr [rsp+0x118] call [rax] test eax, eax je G_M15629_IG113 mov r10, gword ptr [rsp+0x80] movzx rcx, byte ptr [r10+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne G_M15629_IG53 ;; size=135 bbWeight=0.97 PerfScore 31.01 G_M15629_IG25: mov r9d, dword ptr [rsp+0x114] cmp r9d, r15d je G_M15629_IG116 ;; size=17 bbWeight=0.97 PerfScore 2.18 G_M15629_IG26: mov dword ptr [rsp+0x114], r9d mov ecx, r9d mov r11d, dword ptr [r12+4*rcx] mov ecx, r15d mov r8d, dword ptr [r12+4*rcx] mov rdx, gword ptr [rbx+0x08] mov rcx, gword ptr [rdx+0x20] mov rax, qword ptr [rdx] mov r10, qword ptr [rax+0x38] mov r10, qword ptr [r10+0x08] mov r10, qword ptr [r10+0x28] test r10, r10 je G_M15629_IG54 ;; size=54 bbWeight=0.97 PerfScore 18.17 G_M15629_IG27: mov gword ptr [rsp+0x70], rdx mov rax, gword ptr [rdx+0x10] mov gword ptr [rsp+0x40], rax cmp r11d, dword ptr [rcx+0x08] jae G_M15629_IG167 mov dword ptr [rsp+0xDC], r11d mov eax, r11d mov gword ptr [rsp+0x68], rcx mov rax, gword ptr [rcx+8*rax+0x10] mov rcx, gword ptr [rsp+0x40] mov gword ptr [rsp+0x118], rcx mov rdx, rax mov rax, gword ptr [rsp+0x68] cmp r8d, dword ptr [rax+0x08] jae G_M15629_IG167 mov dword ptr [rsp+0xD8], r8d mov ecx, r8d mov r8, gword ptr [rax+8*rcx+0x10] mov r11, r10 mov rcx, gword ptr [rsp+0x118] call [r10] test eax, eax je G_M15629_IG117 mov r10, gword ptr [rsp+0x70] movzx rcx, byte ptr [r10+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne G_M15629_IG55 ;; size=140 bbWeight=0.97 PerfScore 32.95 G_M15629_IG28: mov r9d, dword ptr [rsp+0x114] mov ecx, r9d mov r11d, dword ptr [r12+4*rcx] lea r8d, [r15-0x01] cmp r9d, r8d je G_M15629_IG120 ;; size=28 bbWeight=0.97 PerfScore 4.84 G_M15629_IG29: mov ecx, r9d mov edx, dword ptr [r12+4*rcx] mov ecx, r9d cmp r8d, r13d jae G_M15629_IG167 mov eax, r8d mov eax, dword ptr [r12+4*rax] mov dword ptr [r12+4*rcx], eax mov ecx, r8d lea r12, bword ptr [r12+4*rcx] mov bword ptr [rsp+0x30], r12 mov dword ptr [r12], edx xor eax, eax lea ecx, [r15-0x01] mov dword ptr [rsp+0x108], ecx test ecx, ecx jle G_M15629_IG32 ;; size=67 bbWeight=0.97 PerfScore 12.35 G_M15629_IG30: inc eax cmp eax, r13d jae G_M15629_IG167 mov dword ptr [rsp+0x10C], eax mov edx, eax mov edx, dword ptr [rdi+4*rdx] mov r10, gword ptr [rbx+0x08] mov r9, gword ptr [r10+0x20] mov r8, qword ptr [r10] mov r12, qword ptr [r8+0x38] mov r12, qword ptr [r12+0x08] mov r12, qword ptr [r12+0x28] test r12, r12 je G_M15629_IG56 ;; size=57 bbWeight=33.37 PerfScore 600.68 G_M15629_IG31: mov gword ptr [rsp+0xA0], r10 mov r8, gword ptr [r10+0x10] mov ebp, dword ptr [r9+0x08] cmp edx, ebp jae G_M15629_IG167 mov dword ptr [rsp+0x104], edx mov esi, edx mov rsi, gword ptr [r9+8*rsi+0x10] mov rcx, r8 mov rdx, rsi cmp r11d, ebp jae G_M15629_IG167 mov dword ptr [rsp+0x110], r11d mov r8d, r11d mov r8, gword ptr [r9+8*r8+0x10] mov r11, r12 call [r12] test eax, eax jne SHORT G_M15629_IG33 jmp G_M15629_IG121 ;; size=85 bbWeight=33.37 PerfScore 700.79 G_M15629_IG32: mov r12d, eax jmp G_M15629_IG40 ;; size=8 bbWeight=0 PerfScore 0.00 G_M15629_IG33: mov rsi, gword ptr [rsp+0xA0] movzx rcx, byte ptr [rsi+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne SHORT G_M15629_IG35 ;; size=24 bbWeight=33.37 PerfScore 191.88 G_M15629_IG34: mov eax, dword ptr [rsp+0x10C] mov r11d, dword ptr [rsp+0x110] jmp G_M15629_IG30 ;; size=20 bbWeight=21.92 PerfScore 87.68 G_M15629_IG35: mov ebp, dword ptr [rsp+0x108] dec ebp mov esi, ebp cmp esi, r13d jae G_M15629_IG167 mov ecx, esi mov r12d, dword ptr [rdi+4*rcx] mov r10, gword ptr [rbx+0x08] mov r9, gword ptr [r10+0x20] mov rcx, qword ptr [r10] mov rdx, qword ptr [rcx+0x38] mov rdx, qword ptr [rdx+0x08] mov r11, qword ptr [rdx+0x28] test r11, r11 je G_M15629_IG57 ;; size=58 bbWeight=30.99 PerfScore 565.65 G_M15629_IG36: mov gword ptr [rsp+0x98], r10 mov rcx, gword ptr [r10+0x10] mov r8d, dword ptr [r9+0x08] mov edx, dword ptr [rsp+0x110] cmp edx, r8d jae G_M15629_IG167 mov dword ptr [rsp+0x110], edx mov eax, edx mov rax, gword ptr [r9+8*rax+0x10] mov rdx, rax cmp r12d, r8d jae G_M15629_IG167 mov r8d, r12d mov r8, gword ptr [r9+8*r8+0x10] call [r11] test eax, eax je G_M15629_IG125 mov r12, gword ptr [rsp+0x98] movzx rcx, byte ptr [r12+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne SHORT G_M15629_IG38 ;; size=103 bbWeight=30.99 PerfScore 751.62 G_M15629_IG37: mov dword ptr [rsp+0x108], esi jmp G_M15629_IG35 ;; size=12 bbWeight=20.36 PerfScore 61.08 G_M15629_IG38: mov r12d, dword ptr [rsp+0x10C] cmp r12d, ebp jge SHORT G_M15629_IG40 ;; size=13 bbWeight=12.82 PerfScore 28.84 G_M15629_IG39: mov ecx, r12d mov r10d, dword ptr [rdi+4*rcx] mov ecx, r12d cmp ebp, r13d jae G_M15629_IG167 mov edx, ebp mov edx, dword ptr [rdi+4*rdx] mov dword ptr [rdi+4*rcx], edx cmp ebp, r13d jae G_M15629_IG167 mov ecx, ebp mov dword ptr [rdi+4*rcx], r10d cmp r12d, esi mov dword ptr [rsp+0x108], esi mov r11d, dword ptr [rsp+0x110] jl SHORT G_M15629_IG43 ;; size=62 bbWeight=12.82 PerfScore 163.45 G_M15629_IG40: lea ecx, [r15-0x01] cmp r12d, ecx je SHORT G_M15629_IG42 ;; size=9 bbWeight=0.97 PerfScore 1.70 G_M15629_IG41: dec r15d cmp r12d, r13d jae G_M15629_IG167 mov ecx, r12d mov r9d, dword ptr [rdi+4*rcx] cmp r12d, r13d jae G_M15629_IG167 mov ecx, r12d mov edx, r15d mov edx, dword ptr [rdi+4*rdx] mov dword ptr [rdi+4*rcx], edx mov r15, bword ptr [rsp+0x30] mov dword ptr [r15], r9d ;; size=48 bbWeight=0.97 PerfScore 10.17 G_M15629_IG42: lea r11d, [r12+0x01] mov esi, r14d sub esi, r11d mov ecx, r11d mov edx, esi add rcx, rdx mov ebp, dword ptr [rsp+0xD0] mov edx, ebp cmp rcx, rdx jbe SHORT G_M15629_IG44 jmp G_M15629_IG166 ;; size=38 bbWeight=0.97 PerfScore 6.06 G_M15629_IG43: mov eax, r12d jmp G_M15629_IG30 ;; size=8 bbWeight=12.82 PerfScore 28.84 G_M15629_IG44: mov ecx, r11d lea r15, bword ptr [rdi+4*rcx] test esi, esi jl G_M15629_IG128 ;; size=15 bbWeight=0.97 PerfScore 1.94 G_M15629_IG45: mov bword ptr [rsp+0xC0], r15 mov dword ptr [rsp+0xC8], esi lea rcx, [rsp+0xC0] mov edx, dword ptr [rsp+0x178] mov r8, rbx call [System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int])] mov r14d, r12d cmp r14d, 1 mov esi, dword ptr [rsp+0x178] jg G_M15629_IG07 jmp G_M15629_IG48 ;; size=64 bbWeight=1.96 PerfScore 22.04 G_M15629_IG46: mov bword ptr [rsp+0xC0], rdi mov dword ptr [rsp+0xC8], ebp lea rcx, [rsp+0xC0] mov rdx, rbx xor r8d, r8d mov r9d, 1 call [System.Collections.Generic.ArraySortHelper`1[int]:SwapIfGreater(System.Span`1[int],System.Comparison`1[int],int,int)] mov bword ptr [rsp+0xC0], rdi mov dword ptr [rsp+0xC8], ebp lea rcx, [rsp+0xC0] mov rdx, rbx xor r8d, r8d mov r9d, 2 call [System.Collections.Generic.ArraySortHelper`1[int]:SwapIfGreater(System.Span`1[int],System.Comparison`1[int],int,int)] mov bword ptr [rsp+0xC0], rdi mov dword ptr [rsp+0xC8], ebp lea rcx, [rsp+0xC0] mov rdx, rbx mov r8d, 1 mov r9d, 2 call [System.Collections.Generic.ArraySortHelper`1[int]:SwapIfGreater(System.Span`1[int],System.Comparison`1[int],int,int)] jmp SHORT G_M15629_IG48 ;; size=128 bbWeight=0.02 PerfScore 0.42 G_M15629_IG47: mov bword ptr [rsp+0xC0], rdi mov dword ptr [rsp+0xC8], ebp lea rcx, [rsp+0xC0] mov rdx, rbx xor r8d, r8d mov r9d, 1 call [System.Collections.Generic.ArraySortHelper`1[int]:SwapIfGreater(System.Span`1[int],System.Comparison`1[int],int,int)] ;; size=41 bbWeight=0.06 PerfScore 0.38 G_M15629_IG48: nop ;; size=1 bbWeight=0.98 PerfScore 0.24 G_M15629_IG49: add rsp, 296 pop rbx pop rbp pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 ret ;; size=20 bbWeight=0.98 PerfScore 5.14 G_M15629_IG50: mov dword ptr [rsp+0x100], r9d mov dword ptr [rsp+0xFC], r11d mov gword ptr [rsp+0x90], r8 mov gword ptr [rsp+0x88], rdx mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov rdx, gword ptr [rsp+0x88] mov r8, gword ptr [rsp+0x90] mov r9d, dword ptr [rsp+0x100] mov r11d, dword ptr [rsp+0xFC] jmp G_M15629_IG21 ;; size=84 bbWeight=0.19 PerfScore 2.18 G_M15629_IG51: mov r8d, dword ptr [r12] mov r10d, dword ptr [rsp+0x114] mov ecx, r10d mov ecx, dword ptr [r12+4*rcx] mov dword ptr [r12], ecx mov dword ptr [rsp+0x114], r10d mov ecx, r10d mov dword ptr [r12+4*rcx], r8d jmp G_M15629_IG22 ;; size=43 bbWeight=0.50 PerfScore 5.28 G_M15629_IG52: mov dword ptr [rsp+0xEC], r9d mov dword ptr [rsp+0xE8], r11d mov gword ptr [rsp+0x80], r8 mov gword ptr [rsp+0x78], rdx mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov rdx, gword ptr [rsp+0x78] mov r8, gword ptr [rsp+0x80] mov r9d, dword ptr [rsp+0xEC] mov r11d, dword ptr [rsp+0xE8] jmp G_M15629_IG24 ;; size=78 bbWeight=0.19 PerfScore 2.18 G_M15629_IG53: mov r8d, dword ptr [r12] mov ecx, r15d mov ecx, dword ptr [r12+4*rcx] mov dword ptr [r12], ecx mov ecx, r15d mov dword ptr [r12+4*rcx], r8d jmp G_M15629_IG25 ;; size=27 bbWeight=0.50 PerfScore 4.28 G_M15629_IG54: mov dword ptr [rsp+0xDC], r11d mov dword ptr [rsp+0xD8], r8d mov gword ptr [rsp+0x70], rdx mov gword ptr [rsp+0x68], rcx mov rcx, rax mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov r10, rax mov rcx, gword ptr [rsp+0x68] mov rdx, gword ptr [rsp+0x70] mov r8d, dword ptr [rsp+0xD8] mov r11d, dword ptr [rsp+0xDC] jmp G_M15629_IG27 ;; size=78 bbWeight=0.19 PerfScore 2.28 G_M15629_IG55: mov r8d, dword ptr [rsp+0x114] mov ecx, r8d mov r10d, dword ptr [r12+4*rcx] mov ecx, r8d mov edx, r15d mov edx, dword ptr [r12+4*rdx] mov dword ptr [r12+4*rcx], edx mov ecx, r15d mov dword ptr [r12+4*rcx], r10d mov dword ptr [rsp+0x114], r8d jmp G_M15629_IG28 ;; size=49 bbWeight=0.50 PerfScore 5.53 G_M15629_IG56: mov dword ptr [rsp+0x104], edx mov gword ptr [rsp+0xA0], r10 mov gword ptr [rsp+0x60], r9 mov dword ptr [rsp+0x110], r11d mov rcx, r8 mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov r12, rax mov edx, dword ptr [rsp+0x104] mov r9, gword ptr [rsp+0x60] mov r10, gword ptr [rsp+0xA0] mov r11d, dword ptr [rsp+0x110] jmp G_M15629_IG31 ;; size=82 bbWeight=6.67 PerfScore 78.42 G_M15629_IG57: mov gword ptr [rsp+0x98], r10 mov gword ptr [rsp+0x58], r9 mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov r11, rax mov r9, gword ptr [rsp+0x58] mov r10, gword ptr [rsp+0x98] jmp G_M15629_IG36 ;; size=49 bbWeight=6.20 PerfScore 46.49 G_M15629_IG58: cmp r14d, 16 jle G_M15629_IG08 ;; size=10 bbWeight=0.02 PerfScore 0.02 G_M15629_IG59: test esi, esi je G_M15629_IG165 dec esi cmp r14d, ebp ja G_M15629_IG166 test r14d, r14d jl G_M15629_IG137 ;; size=28 bbWeight=0.01 PerfScore 0.04 G_M15629_IG60: mov r13d, r14d mov r12, rdi test rbx, rbx je G_M15629_IG138 ;; size=15 bbWeight=0.01 PerfScore 0.02 G_M15629_IG61: lea r15d, [r13-0x01] mov r8d, r15d sar r8d, 1 mov eax, r8d test eax, eax je G_M15629_IG139 ;; size=21 bbWeight=0.01 PerfScore 0.03 G_M15629_IG62: test r13d, r13d je G_M15629_IG167 mov r9d, dword ptr [r12] mov r10d, r9d cmp eax, r13d jae G_M15629_IG167 mov dword ptr [rsp+0x114], eax mov ecx, eax mov r11d, dword ptr [r12+4*rcx] mov r9d, r11d mov rcx, 0xD1FFAB1E ; function address cmp qword ptr [rbx+0x18], rcx jne G_M15629_IG142 mov r8, gword ptr [rbx+0x08] mov r11, r8 mov rdx, gword ptr [r11+0x20] mov r8, rdx mov rcx, qword ptr [r11] mov rdx, qword ptr [rcx+0x38] mov rdx, qword ptr [rdx+0x08] mov rdx, qword ptr [rdx+0x28] test rdx, rdx je G_M15629_IG92 ;; size=99 bbWeight=0.01 PerfScore 0.26 G_M15629_IG63: mov qword ptr [rsp+0xF0], rdx ;; size=8 bbWeight=0.01 PerfScore 0.01 G_M15629_IG64: mov gword ptr [rsp+0x90], r11 mov rcx, gword ptr [r11+0x10] mov gword ptr [rsp+0x50], rcx mov ecx, dword ptr [r8+0x08] mov dword ptr [rsp+0xBC], ecx cmp r10d, ecx jae G_M15629_IG167 mov dword ptr [rsp+0x100], r10d mov ecx, r10d mov rcx, gword ptr [r8+8*rcx+0x10] mov gword ptr [rsp+0x48], rcx mov rcx, gword ptr [rsp+0x50] mov gword ptr [rsp+0x118], rcx mov rdx, gword ptr [rsp+0x48] cmp r9d, dword ptr [rsp+0xBC] jae G_M15629_IG167 mov dword ptr [rsp+0xFC], r9d mov ecx, r9d mov r8, gword ptr [r8+8*rcx+0x10] mov r11, qword ptr [rsp+0xF0] mov rcx, gword ptr [rsp+0x118] call [r11] test eax, eax je G_M15629_IG140 mov r10, gword ptr [rsp+0x90] movzx rcx, byte ptr [r10+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne G_M15629_IG93 ;; size=162 bbWeight=0.01 PerfScore 0.33 G_M15629_IG65: test r15d, r15d je G_M15629_IG144 ;; size=9 bbWeight=0.01 PerfScore 0.01 G_M15629_IG66: test r13d, r13d je G_M15629_IG167 mov r9d, dword ptr [r12] mov eax, r9d cmp r15d, r13d jae G_M15629_IG167 mov ecx, r15d mov r11d, dword ptr [r12+4*rcx] mov r9d, r11d mov rcx, 0xD1FFAB1E ; function address cmp qword ptr [rbx+0x18], rcx jne G_M15629_IG147 mov r8, gword ptr [rbx+0x08] mov r11, r8 mov rdx, gword ptr [r11+0x20] mov r8, rdx mov rcx, qword ptr [r11] mov rdx, qword ptr [rcx+0x38] mov rdx, qword ptr [rdx+0x08] mov rdx, qword ptr [rdx+0x28] test rdx, rdx je G_M15629_IG94 ;; size=93 bbWeight=0.01 PerfScore 0.25 G_M15629_IG67: mov qword ptr [rsp+0xE0], rdx ;; size=8 bbWeight=0.01 PerfScore 0.01 G_M15629_IG68: mov gword ptr [rsp+0x80], r11 mov rcx, gword ptr [r11+0x10] mov r10d, dword ptr [r8+0x08] mov dword ptr [rsp+0xB8], r10d cmp eax, r10d jae G_M15629_IG167 mov dword ptr [rsp+0xEC], eax mov r10d, eax mov r10, gword ptr [r8+8*r10+0x10] mov rdx, r10 cmp r9d, dword ptr [rsp+0xB8] jae G_M15629_IG167 mov dword ptr [rsp+0xE8], r9d mov r10d, r9d mov r8, gword ptr [r8+8*r10+0x10] mov r11, qword ptr [rsp+0xE0] call [r11] test eax, eax je G_M15629_IG145 mov r10, gword ptr [rsp+0x80] movzx rcx, byte ptr [r10+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne G_M15629_IG95 ;; size=129 bbWeight=0.01 PerfScore 0.27 G_M15629_IG69: mov eax, dword ptr [rsp+0x114] cmp eax, r15d je G_M15629_IG149 ;; size=16 bbWeight=0.01 PerfScore 0.02 G_M15629_IG70: cmp eax, r13d jae G_M15629_IG167 mov dword ptr [rsp+0x114], eax mov ecx, eax mov r11d, dword ptr [r12+4*rcx] mov r9d, r11d cmp r15d, r13d jae G_M15629_IG167 mov ecx, r15d mov r8d, dword ptr [r12+4*rcx] mov r11d, r8d mov rcx, 0xD1FFAB1E ; function address cmp qword ptr [rbx+0x18], rcx jne G_M15629_IG152 mov rdx, gword ptr [rbx+0x08] mov r8, rdx mov rcx, gword ptr [r8+0x20] mov rdx, rcx mov rcx, qword ptr [r8] mov r10, qword ptr [rcx+0x38] mov r10, qword ptr [r10+0x08] mov r10, qword ptr [r10+0x28] test r10, r10 je G_M15629_IG96 ;; size=102 bbWeight=0.01 PerfScore 0.26 G_M15629_IG71: mov gword ptr [rsp+0x70], r8 mov rcx, gword ptr [r8+0x10] mov gword ptr [rsp+0x40], rcx mov ecx, dword ptr [rdx+0x08] mov dword ptr [rsp+0xB4], ecx cmp r9d, ecx jae G_M15629_IG167 mov dword ptr [rsp+0xDC], r9d mov ecx, r9d mov gword ptr [rsp+0x68], rdx mov rcx, gword ptr [rdx+8*rcx+0x10] mov gword ptr [rsp+0x38], rcx mov rcx, gword ptr [rsp+0x40] mov gword ptr [rsp+0x118], rcx mov rdx, gword ptr [rsp+0x38] mov gword ptr [rsp+0x120], rdx cmp r11d, dword ptr [rsp+0xB4] jae G_M15629_IG167 mov dword ptr [rsp+0xD8], r11d mov ecx, r11d mov rdx, gword ptr [rsp+0x68] mov r8, gword ptr [rdx+8*rcx+0x10] mov r11, r10 mov rcx, gword ptr [rsp+0x118] mov rdx, gword ptr [rsp+0x120] call [r10] test eax, eax je G_M15629_IG150 mov r10, gword ptr [rsp+0x70] movzx rcx, byte ptr [r10+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne G_M15629_IG97 ;; size=176 bbWeight=0.01 PerfScore 0.36 G_M15629_IG72: mov eax, dword ptr [rsp+0x114] cmp eax, r13d jae G_M15629_IG167 mov ecx, eax mov r11d, dword ptr [r12+4*rcx] mov r9d, r11d lea r8d, [r15-0x01] mov r11d, r8d cmp eax, r11d je G_M15629_IG154 ;; size=41 bbWeight=0.01 PerfScore 0.07 G_M15629_IG73: cmp eax, r13d jae G_M15629_IG167 mov ecx, eax mov edx, dword ptr [r12+4*rcx] cmp eax, r13d jae G_M15629_IG167 mov ecx, eax cmp r11d, r13d jae G_M15629_IG167 mov r8d, r11d mov r8d, dword ptr [r12+4*r8] mov dword ptr [r12+4*rcx], r8d cmp r11d, r13d jae G_M15629_IG167 mov ecx, r11d lea r12, bword ptr [r12+4*rcx] mov bword ptr [rsp+0x28], r12 mov dword ptr [r12], edx xor eax, eax lea ecx, [r15-0x01] mov r8d, ecx mov dword ptr [rsp+0x108], r8d test r8d, r8d jg SHORT G_M15629_IG76 ;; size=93 bbWeight=0.01 PerfScore 0.16 G_M15629_IG74: mov r12d, eax jmp G_M15629_IG100 ;; size=8 bbWeight=0 PerfScore 0.00 G_M15629_IG75: cmp r12d, r13d jae G_M15629_IG167 mov ecx, r12d mov r10d, dword ptr [rdi+4*rcx] cmp r12d, r13d jae G_M15629_IG167 mov ecx, r12d cmp ebp, r13d jae G_M15629_IG167 mov edx, ebp mov edx, dword ptr [rdi+4*rdx] mov dword ptr [rdi+4*rcx], edx cmp ebp, r13d jae G_M15629_IG167 mov ecx, ebp mov dword ptr [rdi+4*rcx], r10d mov dword ptr [rsp+0x108], ebp mov eax, r12d mov r9d, dword ptr [rsp+0x110] ;; size=78 bbWeight=0.13 PerfScore 1.86 G_M15629_IG76: inc eax cmp eax, r13d jae G_M15629_IG167 mov dword ptr [rsp+0x10C], eax mov ecx, eax mov edx, dword ptr [rdi+4*rcx] mov rcx, 0xD1FFAB1E ; function address cmp qword ptr [rbx+0x18], rcx jne G_M15629_IG157 mov r10, gword ptr [rbx+0x08] mov rcx, gword ptr [r10+0x20] mov r11, rcx mov rcx, qword ptr [r10] mov r12, qword ptr [rcx+0x38] mov r12, qword ptr [r12+0x08] mov r12, qword ptr [r12+0x28] test r12, r12 je G_M15629_IG98 ;; size=80 bbWeight=0.34 PerfScore 7.66 G_M15629_IG77: mov gword ptr [rsp+0xA0], r10 mov rcx, gword ptr [r10+0x10] cmp edx, dword ptr [r11+0x08] jae G_M15629_IG167 mov dword ptr [rsp+0x104], edx mov ebp, edx mov rbp, gword ptr [r11+8*rbp+0x10] mov rdx, rbp cmp r9d, dword ptr [r11+0x08] jae G_M15629_IG167 mov dword ptr [rsp+0x110], r9d mov ebp, r9d mov r8, gword ptr [r11+8*rbp+0x10] mov r11, r12 call [r12] test eax, eax je G_M15629_IG155 mov rbp, gword ptr [rsp+0xA0] movzx rcx, byte ptr [rbp+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne SHORT G_M15629_IG79 ;; size=104 bbWeight=0.34 PerfScore 9.53 G_M15629_IG78: mov eax, dword ptr [rsp+0x10C] mov r9d, dword ptr [rsp+0x110] jmp G_M15629_IG76 ;; size=20 bbWeight=0.22 PerfScore 0.89 G_M15629_IG79: mov ebp, dword ptr [rsp+0x108] dec ebp cmp ebp, r13d jae G_M15629_IG167 mov ecx, ebp mov r12d, dword ptr [rdi+4*rcx] mov rcx, 0xD1FFAB1E ; function address cmp qword ptr [rbx+0x18], rcx jne G_M15629_IG162 mov r10, gword ptr [rbx+0x08] mov rax, r10 mov r9, gword ptr [rax+0x20] mov r10, r9 mov rcx, qword ptr [rax] mov rdx, qword ptr [rcx+0x38] mov rdx, qword ptr [rdx+0x08] mov r11, qword ptr [rdx+0x28] test r11, r11 je G_M15629_IG99 ;; size=82 bbWeight=0.32 PerfScore 7.27 G_M15629_IG80: mov gword ptr [rsp+0x98], rax mov rcx, gword ptr [rax+0x10] mov r9d, dword ptr [rsp+0x110] cmp r9d, dword ptr [r10+0x08] jae G_M15629_IG167 mov dword ptr [rsp+0x110], r9d mov edx, r9d mov rdx, gword ptr [r10+8*rdx+0x10] cmp r12d, dword ptr [r10+0x08] jae G_M15629_IG167 mov r8d, r12d mov r8, gword ptr [r10+8*r8+0x10] call [r11] test eax, eax je G_M15629_IG160 mov r12, gword ptr [rsp+0x98] movzx rcx, byte ptr [r12+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne SHORT G_M15629_IG82 ;; size=101 bbWeight=0.32 PerfScore 8.78 G_M15629_IG81: mov dword ptr [rsp+0x108], ebp jmp G_M15629_IG79 ;; size=12 bbWeight=0.21 PerfScore 0.63 G_M15629_IG82: mov r12d, dword ptr [rsp+0x10C] cmp r12d, ebp jge G_M15629_IG100 jmp G_M15629_IG75 ;; size=22 bbWeight=0.13 PerfScore 0.56 G_M15629_IG83: mov gword ptr [rsp+0xA8], rax mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov r11, rax mov rax, gword ptr [rsp+0xA8] jmp G_M15629_IG17 ;; size=39 bbWeight=6.12 PerfScore 33.66 G_M15629_IG84: lea r11d, [r15+0x01] cmp r11d, r14d jae G_M15629_IG167 lea ecx, [r15+0x01] mov dword ptr [rdi+4*rcx], r12d mov r15d, r13d lea ecx, [r14-0x01] cmp r15d, ecx jl G_M15629_IG13 jmp G_M15629_IG48 ;; size=42 bbWeight=8.20 PerfScore 59.43 G_M15629_IG85: lea ecx, [r15+0x01] cmp ecx, r14d jae G_M15629_IG167 lea ecx, [r15+0x01] mov r12d, dword ptr [rdi+4*rcx] mov r13d, r15d jmp SHORT G_M15629_IG87 ;; size=26 bbWeight=0.08 PerfScore 0.54 G_M15629_IG86: lea ecx, [r13+0x01] cmp ecx, r14d jae G_M15629_IG167 lea ecx, [r13+0x01] cmp r13d, r14d jae G_M15629_IG167 mov edx, r13d mov edx, dword ptr [rdi+4*rdx] mov dword ptr [rdi+4*rcx], edx dec r13d ;; size=38 bbWeight=0.25 PerfScore 1.73 G_M15629_IG87: test r13d, r13d jl G_M15629_IG91 ;; size=9 bbWeight=0.33 PerfScore 0.41 G_M15629_IG88: cmp r13d, r14d jae G_M15629_IG167 mov ecx, r13d mov ebp, dword ptr [rdi+4*rcx] mov rcx, 0xD1FFAB1E ; function address cmp qword ptr [rbx+0x18], rcx jne G_M15629_IG135 mov rsi, gword ptr [rbx+0x08] mov rax, gword ptr [rsi+0x20] mov gword ptr [rsp+0xA8], rax mov rcx, qword ptr [rsi] mov rdx, qword ptr [rcx+0x38] mov rdx, qword ptr [rdx+0x08] mov r11, qword ptr [rdx+0x28] test r11, r11 je SHORT G_M15629_IG90 ;; size=71 bbWeight=0.31 PerfScore 6.87 G_M15629_IG89: mov rcx, gword ptr [rsi+0x10] mov rax, gword ptr [rsp+0xA8] cmp r12d, dword ptr [rax+0x08] jae G_M15629_IG167 mov edx, r12d mov rdx, gword ptr [rax+8*rdx+0x10] cmp ebp, dword ptr [rax+0x08] jae G_M15629_IG167 mov r8d, ebp mov r8, gword ptr [rax+8*r8+0x10] call [r11] test eax, eax je G_M15629_IG133 movzx rcx, byte ptr [rsi+0x28] test eax, eax setg dl movzx rdx, dl cmp ecx, edx jne SHORT G_M15629_IG91 jmp G_M15629_IG86 ;; size=79 bbWeight=0.31 PerfScore 8.27 G_M15629_IG90: mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov r11, rax jmp SHORT G_M15629_IG89 ;; size=20 bbWeight=0.06 PerfScore 0.22 G_M15629_IG91: lea ecx, [r13+0x01] cmp ecx, r14d jae G_M15629_IG167 lea ecx, [r13+0x01] mov dword ptr [rdi+4*rcx], r12d inc r15d lea ecx, [r14-0x01] cmp r15d, ecx jl G_M15629_IG85 jmp G_M15629_IG48 ;; size=42 bbWeight=0.08 PerfScore 0.60 G_M15629_IG92: mov dword ptr [rsp+0x100], r10d mov dword ptr [rsp+0xFC], r9d mov gword ptr [rsp+0x90], r11 mov gword ptr [rsp+0x88], r8 mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov qword ptr [rsp+0xF0], rax mov r8, gword ptr [rsp+0x88] mov r9d, dword ptr [rsp+0xFC] mov r10d, dword ptr [rsp+0x100] mov r11, gword ptr [rsp+0x90] jmp G_M15629_IG64 ;; size=92 bbWeight=0.00 PerfScore 0.02 G_M15629_IG93: test r13d, r13d je G_M15629_IG167 mov r8d, dword ptr [r12] test r13d, r13d je G_M15629_IG167 mov eax, dword ptr [rsp+0x114] cmp eax, r13d jae G_M15629_IG167 mov ecx, eax mov ecx, dword ptr [r12+4*rcx] mov dword ptr [r12], ecx cmp eax, r13d jae G_M15629_IG167 mov dword ptr [rsp+0x114], eax mov ecx, eax mov dword ptr [r12+4*rcx], r8d jmp G_M15629_IG65 ;; size=75 bbWeight=0.01 PerfScore 0.08 G_M15629_IG94: mov dword ptr [rsp+0xEC], eax mov dword ptr [rsp+0xE8], r9d mov gword ptr [rsp+0x80], r11 mov gword ptr [rsp+0x78], r8 mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov qword ptr [rsp+0xE0], rax mov eax, dword ptr [rsp+0xEC] mov r8, gword ptr [rsp+0x78] mov r9d, dword ptr [rsp+0xE8] mov r11, gword ptr [rsp+0x80] jmp G_M15629_IG68 ;; size=84 bbWeight=0.00 PerfScore 0.02 G_M15629_IG95: test r13d, r13d je G_M15629_IG167 mov r8d, dword ptr [r12] test r13d, r13d je G_M15629_IG167 cmp r15d, r13d jae G_M15629_IG167 mov ecx, r15d mov ecx, dword ptr [r12+4*rcx] mov dword ptr [r12], ecx cmp r15d, r13d jae G_M15629_IG167 mov ecx, r15d mov dword ptr [r12+4*rcx], r8d jmp G_M15629_IG69 ;; size=63 bbWeight=0.01 PerfScore 0.07 G_M15629_IG96: mov dword ptr [rsp+0xDC], r9d mov dword ptr [rsp+0xD8], r11d mov gword ptr [rsp+0x70], r8 mov gword ptr [rsp+0x68], rdx mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov r10, rax mov rdx, gword ptr [rsp+0x68] mov r8, gword ptr [rsp+0x70] mov r9d, dword ptr [rsp+0xDC] mov r11d, dword ptr [rsp+0xD8] jmp G_M15629_IG71 ;; size=75 bbWeight=0.00 PerfScore 0.02 G_M15629_IG97: mov eax, dword ptr [rsp+0x114] cmp eax, r13d jae G_M15629_IG167 mov ecx, eax mov r10d, dword ptr [r12+4*rcx] cmp eax, r13d jae G_M15629_IG167 mov ecx, eax cmp r15d, r13d jae G_M15629_IG167 mov edx, r15d mov edx, dword ptr [r12+4*rdx] mov dword ptr [r12+4*rcx], edx cmp r15d, r13d jae G_M15629_IG167 mov ecx, r15d mov dword ptr [r12+4*rcx], r10d mov dword ptr [rsp+0x114], eax jmp G_M15629_IG72 ;; size=81 bbWeight=0.01 PerfScore 0.08 G_M15629_IG98: mov dword ptr [rsp+0x104], edx mov gword ptr [rsp+0xA0], r10 mov gword ptr [rsp+0x60], r11 mov dword ptr [rsp+0x110], r9d mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov r12, rax mov edx, dword ptr [rsp+0x104] mov r9d, dword ptr [rsp+0x110] mov r10, gword ptr [rsp+0xA0] mov r11, gword ptr [rsp+0x60] jmp G_M15629_IG77 ;; size=79 bbWeight=0.07 PerfScore 0.78 G_M15629_IG99: mov gword ptr [rsp+0x98], rax mov gword ptr [rsp+0x58], r10 mov rdx, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov r11, rax mov rax, gword ptr [rsp+0x98] mov r10, gword ptr [rsp+0x58] jmp G_M15629_IG80 ;; size=49 bbWeight=0.06 PerfScore 0.48 G_M15629_IG100: lea ecx, [r15-0x01] cmp r12d, ecx je SHORT G_M15629_IG102 ;; size=9 bbWeight=0.01 PerfScore 0.02 G_M15629_IG101: dec r15d cmp r12d, r13d jae G_M15629_IG167 mov ecx, r12d mov r9d, dword ptr [rdi+4*rcx] cmp r12d, r13d jae G_M15629_IG167 cmp r15d, r13d jae G_M15629_IG167 mov edx, r15d mov edx, dword ptr [rdi+4*rdx] mov dword ptr [rdi+4*rcx], edx mov r15, bword ptr [rsp+0x28] mov dword ptr [r15], r9d ;; size=54 bbWeight=0.01 PerfScore 0.11 G_M15629_IG102: lea r11d, [r12+0x01] mov ecx, r14d sub ecx, r11d mov r15d, ecx mov ecx, r11d mov edx, r15d add rdx, rcx mov ebp, dword ptr [rsp+0xD0] mov r8d, ebp cmp rdx, r8 ja G_M15629_IG166 lea rcx, bword ptr [rdi+4*rcx] mov r13, rcx test r15d, r15d jl G_M15629_IG164 ;; size=58 bbWeight=0.01 PerfScore 0.06 G_M15629_IG103: mov bword ptr [rsp+0xC0], r13 mov dword ptr [rsp+0xC8], r15d lea rcx, [rsp+0xC0] mov edx, esi mov r8, rbx call [System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int])] mov r14d, r12d cmp r14d, 1 jg G_M15629_IG58 jmp G_M15629_IG48 ;; size=53 bbWeight=0.02 PerfScore 0.19 G_M15629_IG104: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG03 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG105: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG04 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG106: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG05 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG107: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG19 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG108: mov dword ptr [rsp+0x114], r10d mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] mov r10d, dword ptr [rsp+0x114] jmp G_M15629_IG20 ;; size=47 bbWeight=0 PerfScore 0.00 G_M15629_IG109: mov rax, gword ptr [rsp+0x90] cmp gword ptr [rax+0x18], 0 jne SHORT G_M15629_IG110 mov r10d, dword ptr [rsp+0x100] sub r10d, dword ptr [rsp+0xFC] jmp SHORT G_M15629_IG111 ;; size=33 bbWeight=0 PerfScore 0.00 G_M15629_IG110: mov rcx, gword ptr [rax+0x18] mov edx, dword ptr [rsp+0x100] mov r8d, dword ptr [rsp+0xFC] mov rax, qword ptr [rcx] mov rax, qword ptr [rax+0x48] call [rax+0x28]<unknown method> mov r10d, eax ;; size=32 bbWeight=0 PerfScore 0.00 G_M15629_IG111: test r10d, r10d jle G_M15629_IG22 jmp G_M15629_IG51 ;; size=14 bbWeight=0 PerfScore 0.00 G_M15629_IG112: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG23 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG113: mov rax, gword ptr [rsp+0x80] cmp gword ptr [rax+0x18], 0 jne SHORT G_M15629_IG114 mov r10d, dword ptr [rsp+0xEC] sub r10d, dword ptr [rsp+0xE8] jmp SHORT G_M15629_IG115 ;; size=33 bbWeight=0 PerfScore 0.00 G_M15629_IG114: mov rcx, gword ptr [rax+0x18] mov edx, dword ptr [rsp+0xEC] mov r8d, dword ptr [rsp+0xE8] mov rax, qword ptr [rcx] mov rax, qword ptr [rax+0x48] call [rax+0x28]<unknown method> mov r10d, eax ;; size=32 bbWeight=0 PerfScore 0.00 G_M15629_IG115: test r10d, r10d jle G_M15629_IG25 jmp G_M15629_IG53 ;; size=14 bbWeight=0 PerfScore 0.00 G_M15629_IG116: mov dword ptr [rsp+0x114], r9d mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] mov r9d, dword ptr [rsp+0x114] jmp G_M15629_IG26 ;; size=47 bbWeight=0 PerfScore 0.00 G_M15629_IG117: mov rax, gword ptr [rsp+0x70] cmp gword ptr [rax+0x18], 0 jne SHORT G_M15629_IG118 mov r10d, dword ptr [rsp+0xDC] sub r10d, dword ptr [rsp+0xD8] jmp SHORT G_M15629_IG119 ;; size=30 bbWeight=0 PerfScore 0.00 G_M15629_IG118: mov rcx, gword ptr [rax+0x18] mov edx, dword ptr [rsp+0xDC] mov r8d, dword ptr [rsp+0xD8] mov rax, qword ptr [rcx] mov rax, qword ptr [rax+0x48] call [rax+0x28]<unknown method> mov r10d, eax ;; size=32 bbWeight=0 PerfScore 0.00 G_M15629_IG119: test r10d, r10d jle G_M15629_IG28 jmp G_M15629_IG55 ;; size=14 bbWeight=0 PerfScore 0.00 G_M15629_IG120: mov dword ptr [rsp+0x110], r11d mov dword ptr [rsp+0x114], r9d mov dword ptr [rsp+0xD4], r8d mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] mov r8d, dword ptr [rsp+0xD4] mov r9d, dword ptr [rsp+0x114] mov r11d, dword ptr [rsp+0x110] jmp G_M15629_IG29 ;; size=79 bbWeight=0 PerfScore 0.00 G_M15629_IG121: mov r12, gword ptr [rsp+0xA0] cmp gword ptr [r12+0x18], 0 jne SHORT G_M15629_IG122 mov r12d, dword ptr [rsp+0x104] mov eax, dword ptr [rsp+0x110] sub r12d, eax jmp SHORT G_M15629_IG123 ;; size=36 bbWeight=0 PerfScore 0.00 G_M15629_IG122: mov eax, dword ptr [rsp+0x110] mov rcx, gword ptr [r12+0x18] mov edx, dword ptr [rsp+0x104] mov dword ptr [rsp+0x110], eax mov r8d, eax mov r10, qword ptr [rcx] mov r10, qword ptr [r10+0x48] call [r10+0x28]<unknown method> mov r12d, eax mov eax, dword ptr [rsp+0x110] ;; size=50 bbWeight=0 PerfScore 0.00 G_M15629_IG123: test r12d, r12d jl SHORT G_M15629_IG124 mov dword ptr [rsp+0x110], eax jmp G_M15629_IG35 ;; size=17 bbWeight=0 PerfScore 0.00 G_M15629_IG124: mov r11d, eax mov eax, dword ptr [rsp+0x10C] jmp G_M15629_IG30 ;; size=15 bbWeight=0 PerfScore 0.00 G_M15629_IG125: mov r10, gword ptr [rsp+0x98] cmp gword ptr [r10+0x18], 0 jne SHORT G_M15629_IG126 mov eax, dword ptr [rsp+0x110] mov r9d, eax sub r9d, r12d jmp SHORT G_M15629_IG127 ;; size=30 bbWeight=0 PerfScore 0.00 G_M15629_IG126: mov eax, dword ptr [rsp+0x110] mov rcx, gword ptr [r10+0x18] mov dword ptr [rsp+0x110], eax mov edx, eax mov r8d, r12d mov r10, qword ptr [rcx] mov r10, qword ptr [r10+0x48] call [r10+0x28]<unknown method> mov r9d, eax mov eax, dword ptr [rsp+0x110] ;; size=44 bbWeight=0 PerfScore 0.00 G_M15629_IG127: test r9d, r9d mov dword ptr [rsp+0x110], eax jge G_M15629_IG38 mov dword ptr [rsp+0x108], esi jmp G_M15629_IG35 ;; size=28 bbWeight=0 PerfScore 0.00 G_M15629_IG128: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG45 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG129: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG11 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG130: cmp gword ptr [rsi+0x18], 0 jne SHORT G_M15629_IG131 mov eax, r12d sub eax, ebp jmp SHORT G_M15629_IG132 ;; size=14 bbWeight=0 PerfScore 0.00 G_M15629_IG131: mov rcx, gword ptr [rsi+0x18] mov edx, r12d mov r8d, ebp mov rax, qword ptr [rcx] mov rax, qword ptr [rax+0x48] call [rax+0x28]<unknown method> ;; size=20 bbWeight=0 PerfScore 0.00 G_M15629_IG132: test eax, eax jl G_M15629_IG14 jmp G_M15629_IG84 ;; size=13 bbWeight=0 PerfScore 0.00 G_M15629_IG133: cmp gword ptr [rsi+0x18], 0 jne SHORT G_M15629_IG134 mov eax, r12d sub eax, ebp jmp SHORT G_M15629_IG136 ;; size=14 bbWeight=0 PerfScore 0.00 G_M15629_IG134: mov rcx, gword ptr [rsi+0x18] mov edx, r12d mov r8d, ebp mov rax, qword ptr [rcx] mov rax, qword ptr [rax+0x48] call [rax+0x28]<unknown method> jmp SHORT G_M15629_IG136 ;; size=22 bbWeight=0 PerfScore 0.00 G_M15629_IG135: mov edx, r12d mov r8d, ebp mov rcx, gword ptr [rbx+0x08] call [rbx+0x18]System.Comparison`1[int]:Invoke(int,int):int:this ;; size=13 bbWeight=0 PerfScore 0.00 G_M15629_IG136: test eax, eax jl G_M15629_IG86 jmp G_M15629_IG91 ;; size=13 bbWeight=0 PerfScore 0.00 G_M15629_IG137: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG60 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG138: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG61 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG139: mov dword ptr [rsp+0x114], eax mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] mov eax, dword ptr [rsp+0x114] jmp G_M15629_IG62 ;; size=45 bbWeight=0 PerfScore 0.00 G_M15629_IG140: mov rcx, gword ptr [rsp+0x90] cmp gword ptr [rcx+0x18], 0 jne SHORT G_M15629_IG141 mov eax, dword ptr [rsp+0x100] mov r10d, eax sub r10d, dword ptr [rsp+0xFC] jmp SHORT G_M15629_IG143 ;; size=35 bbWeight=0 PerfScore 0.00 G_M15629_IG141: mov eax, dword ptr [rsp+0x100] mov rcx, gword ptr [rcx+0x18] mov edx, eax mov r8d, dword ptr [rsp+0xFC] mov rax, qword ptr [rcx] mov rax, qword ptr [rax+0x48] call [rax+0x28]<unknown method> mov r10d, eax jmp SHORT G_M15629_IG143 ;; size=36 bbWeight=0 PerfScore 0.00 G_M15629_IG142: mov edx, r10d mov r8d, r9d mov rcx, gword ptr [rbx+0x08] call [rbx+0x18]System.Comparison`1[int]:Invoke(int,int):int:this mov r10d, eax ;; size=16 bbWeight=0 PerfScore 0.00 G_M15629_IG143: test r10d, r10d jle G_M15629_IG65 jmp G_M15629_IG93 ;; size=14 bbWeight=0 PerfScore 0.00 G_M15629_IG144: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG66 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG145: mov rcx, gword ptr [rsp+0x80] cmp gword ptr [rcx+0x18], 0 jne SHORT G_M15629_IG146 mov eax, dword ptr [rsp+0xEC] mov r10d, eax sub r10d, dword ptr [rsp+0xE8] jmp SHORT G_M15629_IG148 ;; size=35 bbWeight=0 PerfScore 0.00 G_M15629_IG146: mov eax, dword ptr [rsp+0xEC] mov rcx, gword ptr [rcx+0x18] mov edx, eax mov r8d, dword ptr [rsp+0xE8] mov rax, qword ptr [rcx] mov rax, qword ptr [rax+0x48] call [rax+0x28]<unknown method> mov r10d, eax jmp SHORT G_M15629_IG148 ;; size=36 bbWeight=0 PerfScore 0.00 G_M15629_IG147: mov edx, eax mov r8d, r9d mov rcx, gword ptr [rbx+0x08] call [rbx+0x18]System.Comparison`1[int]:Invoke(int,int):int:this mov r10d, eax ;; size=15 bbWeight=0 PerfScore 0.00 G_M15629_IG148: test r10d, r10d jle G_M15629_IG69 jmp G_M15629_IG95 ;; size=14 bbWeight=0 PerfScore 0.00 G_M15629_IG149: mov dword ptr [rsp+0x114], eax mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] mov eax, dword ptr [rsp+0x114] jmp G_M15629_IG70 ;; size=45 bbWeight=0 PerfScore 0.00 G_M15629_IG150: mov rcx, gword ptr [rsp+0x70] cmp gword ptr [rcx+0x18], 0 jne SHORT G_M15629_IG151 mov eax, dword ptr [rsp+0xDC] mov r10d, eax sub r10d, dword ptr [rsp+0xD8] jmp SHORT G_M15629_IG153 ;; size=32 bbWeight=0 PerfScore 0.00 G_M15629_IG151: mov eax, dword ptr [rsp+0xDC] mov rcx, gword ptr [rcx+0x18] mov edx, eax mov r8d, dword ptr [rsp+0xD8] mov rax, qword ptr [rcx] mov rax, qword ptr [rax+0x48] call [rax+0x28]<unknown method> mov r10d, eax jmp SHORT G_M15629_IG153 ;; size=36 bbWeight=0 PerfScore 0.00 G_M15629_IG152: mov edx, r9d mov r8d, r11d mov rcx, gword ptr [rbx+0x08] call [rbx+0x18]System.Comparison`1[int]:Invoke(int,int):int:this mov r10d, eax ;; size=16 bbWeight=0 PerfScore 0.00 G_M15629_IG153: test r10d, r10d jle G_M15629_IG72 jmp G_M15629_IG97 ;; size=14 bbWeight=0 PerfScore 0.00 G_M15629_IG154: mov dword ptr [rsp+0x110], r9d mov dword ptr [rsp+0x114], eax mov dword ptr [rsp+0xD4], r11d mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] mov eax, dword ptr [rsp+0x114] mov r9d, dword ptr [rsp+0x110] mov r11d, dword ptr [rsp+0xD4] jmp G_M15629_IG73 ;; size=77 bbWeight=0 PerfScore 0.00 G_M15629_IG155: mov r12, gword ptr [rsp+0xA0] cmp gword ptr [r12+0x18], 0 jne SHORT G_M15629_IG156 mov r12d, dword ptr [rsp+0x104] mov eax, dword ptr [rsp+0x110] sub r12d, eax jmp SHORT G_M15629_IG158 ;; size=36 bbWeight=0 PerfScore 0.00 G_M15629_IG156: mov eax, dword ptr [rsp+0x110] mov rcx, gword ptr [r12+0x18] mov edx, dword ptr [rsp+0x104] mov dword ptr [rsp+0x110], eax mov r8d, eax mov r10, qword ptr [rcx] mov r10, qword ptr [r10+0x48] call [r10+0x28]<unknown method> mov r12d, eax mov eax, dword ptr [rsp+0x110] jmp SHORT G_M15629_IG158 ;; size=52 bbWeight=0 PerfScore 0.00 G_M15629_IG157: mov dword ptr [rsp+0x110], r9d mov r8d, r9d mov rcx, gword ptr [rbx+0x08] call [rbx+0x18]System.Comparison`1[int]:Invoke(int,int):int:this mov r12d, eax mov eax, dword ptr [rsp+0x110] ;; size=28 bbWeight=0 PerfScore 0.00 G_M15629_IG158: test r12d, r12d jl SHORT G_M15629_IG159 mov dword ptr [rsp+0x110], eax jmp G_M15629_IG79 ;; size=17 bbWeight=0 PerfScore 0.00 G_M15629_IG159: mov r9d, eax mov eax, dword ptr [rsp+0x10C] jmp G_M15629_IG76 ;; size=15 bbWeight=0 PerfScore 0.00 G_M15629_IG160: mov rcx, gword ptr [rsp+0x98] cmp gword ptr [rcx+0x18], 0 jne SHORT G_M15629_IG161 mov eax, dword ptr [rsp+0x110] mov r9d, eax sub r9d, r12d jmp SHORT G_M15629_IG163 ;; size=30 bbWeight=0 PerfScore 0.00 G_M15629_IG161: mov eax, dword ptr [rsp+0x110] mov rcx, gword ptr [rcx+0x18] mov dword ptr [rsp+0x110], eax mov edx, eax mov r8d, r12d mov r10, qword ptr [rcx] mov r10, qword ptr [r10+0x48] call [r10+0x28]<unknown method> mov r9d, eax mov eax, dword ptr [rsp+0x110] jmp SHORT G_M15629_IG163 ;; size=46 bbWeight=0 PerfScore 0.00 G_M15629_IG162: mov edx, dword ptr [rsp+0x110] mov r8d, r12d mov rcx, gword ptr [rbx+0x08] call [rbx+0x18]System.Comparison`1[int]:Invoke(int,int):int:this mov r9d, eax mov eax, dword ptr [rsp+0x110] ;; size=27 bbWeight=0 PerfScore 0.00 G_M15629_IG163: test r9d, r9d mov dword ptr [rsp+0x110], eax jge G_M15629_IG82 mov dword ptr [rsp+0x108], ebp jmp G_M15629_IG79 ;; size=28 bbWeight=0 PerfScore 0.00 G_M15629_IG164: mov rcx, 0xD1FFAB1E mov rdx, 0xD1FFAB1E call [<unknown method>] jmp G_M15629_IG103 ;; size=31 bbWeight=0 PerfScore 0.00 G_M15629_IG165: cmp r14d, ebp ja SHORT G_M15629_IG166 mov ecx, r14d not ecx shr ecx, 31 call [System.Diagnostics.Debug:Assert(ubyte)] mov rcx, rdi mov edx, r14d mov bword ptr [rsp+0xC0], rcx mov dword ptr [rsp+0xC8], edx lea rcx, [rsp+0xC0] mov rdx, rbx call [System.Collections.Generic.ArraySortHelper`1[int]:HeapSort(System.Span`1[int],System.Comparison`1[int])] jmp G_M15629_IG48 ;; size=62 bbWeight=0 PerfScore 0.00 G_M15629_IG166: call [System.ThrowHelper:ThrowArgumentOutOfRangeException()] int3 ;; size=7 bbWeight=0 PerfScore 0.00 G_M15629_IG167: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 ; Total bytes of code 7066, prolog size 65, PerfScore 5189.11, instruction count 1479, allocated bytes for code 7066 (MethodHash=9b78c2f2) for method System.Collections.Generic.ArraySortHelper`1[int]:IntroSort(System.Span`1[int],int,System.Comparison`1[int]) (Tier1) ; ============================================================
비교하기