Diff
checker
テキスト
テキスト
画像
ドキュメント
Excel
フォルダ
Legal
Enterprise
デスクトップ
料金
ログイン
Diffchecker デスクトップのダウンロード
テキスト比較
2 つのテキスト ファイルの違いを見つける
ツール
履歴
ライブエディター
空白の変更を非表示
未変更行を折りたたむ
折り返しなし
レイアウト
分割
統合
比較精度
スマート
単語
文字
テキストスタイル
外観を変更
シンタックスハイライト
構文を選択
無視
テキスト変換
最初の差分へ移動
入力を編集
Diffchecker Desktop
Diffcheckerを実行する最も安全な方法。Diffchecker Desktopアプリを入手:あなたの差分はコンピューターから出ることはありません!
Desktopを入手
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
コピー
コピー済み
コピー
コピー済み
; V118 tmp112 [V118,T5
7
] ( 14, 6.98) int -> [rsp+
0xB4
] spill-single-def "field V00._length (fldOffset=0x8)" P-INDEP
; V118 tmp112 [V118,T5
4
] ( 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
;* 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
;* 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
;* 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
;* 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
;* 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
;* 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
;* 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
;* V126 tmp120 [V126 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP
コピー
コピー済み
コピー
コピー済み
; V127 tmp121 [V127,T9
9
] ( 2, 1.80) byref -> rdi single-def "field V16._reference (fldOffset=0x0)" P-INDEP
; V127 tmp121 [V127,T9
6
] ( 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
; 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
; 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
; 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
; 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
; V132 tmp126 [V132,T140] ( 2, 0 ) int -> rdx "field V31._length (fldOffset=0x8)" P-INDEP
コピー
コピー済み
コピー
コピー済み
;* V133 tmp127 [V133,T11
9
] ( 0, 0 ) byref -> zero-ref "field V33._reference (fldOffset=0x0)" P-INDEP
;* V133 tmp127 [V133,T11
3
] ( 0, 0 ) byref -> zero-ref "field V33._reference (fldOffset=0x0)" P-INDEP
; V134 tmp128 [V134,T9
6
] ( 4, 1.96) int -> r13 "field V33._length (fldOffset=0x8)" P-INDEP
; V134 tmp128 [V134,T9
3
] ( 4, 1.96) int -> r13 "field V33._length (fldOffset=0x8)" P-INDEP
; V135 tmp129 [V135,T4
9
] ( 48, 17.84) byref -> r12 "field V37._reference (fldOffset=0x0)" P-INDEP
; V135 tmp129 [V135,T4
6
] ( 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
; 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
;* 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
;* 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
;* 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
;* 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
;* 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
;* 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
;* 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
;* 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
;* 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
;* 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
;* 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
;* 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
; V149 tmp143 [V149,
T77
] ( 4, 3.96) byref -> registers "field V113._reference (fldOffset=0x0)" P-INDEP
; V150 tmp144 [V150,T
81
] ( 4, 3.96) int ->
r15
"field V113._length (fldOffset=0x8)" P-INDEP
; V150 tmp144 [V150,T
78
] ( 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]>
;* V151 tmp145 [V151 ] ( 0, 0 ) struct (16) zero-ref "Promoted implicit byref" <System.Span`1[int]>
コピー
コピー済み
コピー
コピー済み
; V152 tmp146 [V152,T8
3
] ( 4, 3.92) ref ->
rcx
"argument with side effect"
; V152 tmp146 [V152,T8
0
] ( 4, 3.92) ref ->
[rsp+0x50]
"argument with side effect"
; V153 tmp147 [V153,T8
4
] ( 4, 3.92) ref ->
registers
"argument with side effect"
; V153 tmp147 [V153,T8
1
] ( 4, 3.92) ref ->
[rsp+0x48]
"argument with side effect"
; V154 tmp148 [V154,T135] ( 6, 0 ) ref -> rcx "argument with side effect"
; V154 tmp148 [V154,T135] ( 6, 0 ) ref -> rcx "argument with side effect"
コピー
コピー済み
コピー
コピー済み
; V155 tmp149 [V155,T8
5
] ( 4, 3.92) ref -> rcx "argument with side effect"
; V155 tmp149 [V155,T8
2
] ( 4, 3.92) ref -> rcx "argument with side effect"
; V156 tmp150 [V156,T8
6
] ( 4, 3.92) ref ->
registers
"argument with side effect"
; V156 tmp150 [V156,T8
3
] ( 4, 3.92) ref ->
r10
"argument with side effect"
; V157 tmp151 [V157,T136] ( 6, 0 ) ref -> rcx "argument with side effect"
; V157 tmp151 [V157,T136] ( 6, 0 ) ref -> rcx "argument with side effect"
コピー
コピー済み
コピー
コピー済み
; V158 tmp152 [V158,T8
7
] ( 4, 3.92) ref -> [rsp+
0x38
] "argument with side effect"
; V158 tmp152 [V158,T8
4
] ( 4, 3.92) ref -> [rsp+
0x40
] "argument with side effect"
; V159 tmp153 [V159,T8
8
] ( 4, 3.92) ref ->
registers
"argument with side effect"
; V159 tmp153 [V159,T8
5
] ( 4, 3.92) ref ->
[rsp+0x38]
"argument with side effect"
; V160 tmp154 [V160,T137] ( 6, 0 ) ref -> rcx "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"
; 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"
; V162 tmp156 [V162,T20] ( 4,134.85) ref -> registers "argument with side effect"
コピー
コピー済み
コピー
コピー済み
; V163 tmp157 [V163,T13
3
] ( 6, 0 ) ref -> rcx "argument with side effect"
; V163 tmp157 [V163,T13
0
] ( 6, 0 ) ref -> rcx "argument with side effect"
; V164 tmp158 [V164,T25] ( 4,125.26) 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"
; V165 tmp159 [V165,T26] ( 4,125.26) ref -> registers "argument with side effect"
コピー
コピー済み
コピー
コピー済み
; V166 tmp160 [V166,T1
32
] ( 6, 0 ) ref -> rcx "argument with side effect"
; V166 tmp160 [V166,T1
27
] ( 6, 0 ) ref -> rcx "argument with side effect"
; V167 tmp161 [V167 ] ( 21, 12.61) struct (16) [rsp+0x
A
0] do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.Span`1[int]>
; V167 tmp161 [V167 ] ( 21, 12.61) struct (16) [rsp+0x
C
0] 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"
; 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"
; V169 tmp163 [V169,T30] ( 4,123.66) ref -> rdx "argument with side effect"
コピー
コピー済み
コピー
コピー済み
; V170 tmp164 [V170,T13
4
] ( 6, 0 ) ref -> rcx "argument with side effect"
; V170 tmp164 [V170,T13
1
] ( 6, 0 ) ref -> rcx "argument with side effect"
; V171 cse0 [V171,T9
3
] ( 3, 2.91) byref -> [rsp+0x30] spill-single-def "CSE #32: conservative"
; V171 cse0 [V171,T9
0
] ( 3, 2.91) byref -> [rsp+0x30] spill-single-def "CSE #32: conservative"
; V172 cse1 [V172,T12
6
] ( 3, 0.03) byref -> [rsp+0x28] spill-single-def "CSE #55: conservative"
; V172 cse1 [V172,T12
0
] ( 3, 0.03) byref -> [rsp+0x28] spill-single-def "CSE #55: conservative"
; V173 cse2 [V173,T34] ( 3,100.11) int -> rbp "CSE #15: moderate"
; V173 cse2 [V173,T34] ( 3,100.11) int -> rbp "CSE #15: moderate"
コピー
コピー済み
コピー
コピー済み
; V174 cse3 [V174,T39] ( 3, 92.98) int ->
rax
"CSE #18: 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"
; V175 cse4 [V175,T40] ( 3, 91.81) int -> r8 "CSE #61: moderate"
; V176 cse5 [V176,T42] ( 3, 72.57) int -> rcx "CSE #59: moderate"
; V176 cse5 [V176,T42] ( 3, 72.57) int -> rcx "CSE #59: moderate"
コピー
コピー済み
コピー
コピー済み
; V177 cse6 [V177,T4
5
] ( 4, 32.79) int -> r13 "CSE #58: moderate"
; V177 cse6 [V177,T4
4
] ( 4, 32.79) int -> r13 "CSE #58: moderate"
; V178 cse7 [V178,T12
7
] ( 3, 0.03) int -> [rsp+0x
9
C] spill-single-def "CSE #34: conservative"
; V178 cse7 [V178,T12
1
] ( 3, 0.03) int -> [rsp+0x
B
C] spill-single-def "CSE #34: conservative"
; V179 cse8 [V179,T12
8
] ( 3, 0.03) int ->
r8
"CSE #37: conservative"
; V179 cse8 [V179,T12
2
] ( 3, 0.03) int ->
[rsp+0xB8] spill-single-def
"CSE #37: conservative"
; V180 cse9 [V180,T12
9
] ( 3, 0.03) int -> [rsp+
0x98
] spill-single-def "CSE #41: conservative"
; V180 cse9 [V180,T12
3
] ( 3, 0.03) int -> [rsp+
0xB4
] spill-single-def "CSE #41: conservative"
; V181 cse10 [V181,
T130
] ( 3, 0.03) long -> rcx "CSE #57: conservative"
; V181 cse10 [V181,
T124
] ( 3, 0.03) long -> rcx "CSE #57: conservative"
; V182 cse11 [V182,
T131
] ( 3, 0.03) long -> rcx "CSE #54: conservative"
; V182 cse11 [V182,
T125
] ( 3, 0.03) long -> rcx "CSE #54: conservative"
; V183 rat0 [V183,T7
7
] ( 3, 4.26) long -> rcx "Spilling to split statement for tree"
; V183 rat0 [V183,T7
4
] ( 3, 4.26) long -> rcx "Spilling to split statement for tree"
; V184 rat1 [V184,T6
8
] ( 3, 5.43) long -> rax "fgMakeTemp is creating a new local variable"
; V184 rat1 [V184,T6
5
] ( 3, 5.43) long -> rax "fgMakeTemp is creating a new local variable"
; V185 rat2 [V185,T7
8
] ( 3, 4.26) long -> rcx "Spilling to split statement for tree"
; V185 rat2 [V185,T7
5
] ( 3, 4.26) long -> rcx "Spilling to split statement for tree"
; V186 rat3 [V186,T6
9
] ( 3, 5.43) long -> rax "fgMakeTemp is creating a new local variable"
; V186 rat3 [V186,T6
6
] ( 3, 5.43) long -> rax "fgMakeTemp is creating a new local variable"
; V187 rat4 [V187,T7
9
] ( 3, 4.26) long -> rax "Spilling to split statement for tree"
; V187 rat4 [V187,T7
6
] ( 3, 4.26) long -> rax "Spilling to split statement for tree"
; V188 rat5 [V188,T
70
] ( 3, 5.43) long -> r10 "fgMakeTemp is creating a new local variable"
; V188 rat5 [V188,T
67
] ( 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"
; 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"
; 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"
; 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"
; V192 rat9 [V192,T10] ( 3,173.57) long ->
r11
"fgMakeTemp is creating a new local variable"
;* V193 rat10 [V193,T
110
] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V193 rat10 [V193,T
107
] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V194 rat11 [V194,T10
3
] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;* V194 rat11 [V194,T10
0
] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;* V195 rat12 [V195,T10
7
] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V195 rat12 [V195,T10
4
] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V196 rat13 [V196,T9
8
] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;* V196 rat13 [V196,T9
5
] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;* V197 rat14 [V197,T10
9
] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V197 rat14 [V197,T10
6
] ( 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"
;* V198 rat15 [V198,
T99
] ( 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"
; V199 rat16 [V199,
T117
] ( 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"
; V200 rat17 [V200,
T114
] ( 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"
; V201 rat18 [V201,
T118
] ( 3, 0.04) long -> rcx "Spilling to split statement for tree"
; V202 rat19 [V202,T1
21
] ( 3, 0.05) long -> rdx "fgMakeTemp is creating a new local variable"
; V202 rat19 [V202,T1
15
] ( 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"
; V203 rat20 [V203,
T119
] ( 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"
; V204 rat21 [V204,
T116
] ( 3, 0.05) long ->
r10
"fgMakeTemp is creating a new local variable"
; V205 rat22 [V205,T10
6
] ( 3, 1.50) long -> rcx "Spilling to split statement for tree"
; V205 rat22 [V205,T10
3
] ( 3, 1.50) long -> rcx "Spilling to split statement for tree"
; V206 rat23 [V206,T9
7
] ( 3, 1.91) long ->
rdx
"fgMakeTemp is creating a new local variable"
; V206 rat23 [V206,T9
4
] ( 3, 1.91) long ->
r12
"fgMakeTemp is creating a new local variable"
; V207 rat24 [V207,T10
8
] ( 3, 1.41) long -> rcx "Spilling to split statement for tree"
; V207 rat24 [V207,T10
5
] ( 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"
; 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"
; 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"
; 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"
;* V211 rat28 [V211,
T109
] ( 0, 0 ) long -> zero-ref "Spilling to split statement for tree"
;* V212 rat29 [V212,T10
5
] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable"
;* V212 rat29 [V212,T10
2
] ( 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"
; V213 rat30 [V213,
T108
] ( 3, 1.37) long -> rcx "Spilling to split statement for tree"
; V214 rat31 [V214,T10
4
] ( 3, 1.75) long -> r11 "fgMakeTemp is creating a new local variable"
; V214 rat31 [V214,T10
1
] ( 3, 1.75) long -> r11 "fgMakeTemp is creating a new local variable"
;* V215 rat32 [V215,T138] ( 0, 0 ) ref -> zero-ref "delegate invoke call"
;* V215 rat32 [V215,T138] ( 0, 0 ) ref -> zero-ref "delegate invoke call"
コピー
コピー済み
コピー
コピー済み
; TEMP_01 ref -> [rsp+0x11
0
]
; TEMP_02 ref -> [rsp+0x120]
; TEMP_01 ref -> [rsp+0x11
8
]
;
;
コピー
コピー済み
コピー
コピー済み
; Lcl frame size =
280
; Lcl frame size =
296
G_M15629_IG01:
G_M15629_IG01:
push r15
push r15
push r14
push r14
push r13
push r13
push r12
push r12
push rdi
push rdi
push rsi
push rsi
push rbp
push rbp
push rbx
push rbx
コピー
コピー済み
コピー
コピー済み
sub rsp,
280
sub rsp,
296
vxorps xmm4, xmm4, xmm4
vxorps xmm4, xmm4, xmm4
コピー
コピー済み
コピー
コピー済み
vmovdqu ymmword ptr [rsp+0xA0], ymm4
vmovdqu ymmword ptr [rsp+0xC0], ymm4
vmovdqu ymmword ptr [rsp+0xC0], ymm4
vmovdqu ymmword ptr [rsp+0xE0], ymm4
vmovdqu ymmword ptr [rsp+0xE0], ymm4
コピー
コピー済み
コピー
コピー済み
vmovdq
a x
mmword ptr [rsp+0x100],
x
mm4
vmovdq
u y
mmword ptr [rsp+0x100],
y
mm4
xor eax, eax
xor eax, eax
コピー
コピー済み
コピー
コピー済み
mov qword ptr [rsp+0x1
1
0], rax
mov qword ptr [rsp+0x1
2
0], rax
mov esi, edx
mov esi, edx
mov rbx, r8
mov rbx, r8
コピー
コピー済み
コピー
コピー済み
;; size=
74
bbWeight=1 PerfScore
18
.33
;; size=
65
bbWeight=1 PerfScore
16
.33
G_M15629_IG02:
G_M15629_IG02:
mov rdi, bword ptr [rcx]
mov rdi, bword ptr [rcx]
mov ebp, dword ptr [rcx+0x08]
mov ebp, dword ptr [rcx+0x08]
コピー
コピー済み
コピー
コピー済み
mov dword ptr [rsp+
0xB4
], ebp
mov dword ptr [rsp+
0xD0
], ebp
test ebp, ebp
test ebp, ebp
コピー
コピー済み
コピー
コピー済み
je G_M15629_IG10
5
je G_M15629_IG10
4
;; size=21 bbWeight=1 PerfScore 6.25
;; size=21 bbWeight=1 PerfScore 6.25
G_M15629_IG03:
G_M15629_IG03:
test esi, esi
test esi, esi
コピー
コピー済み
コピー
コピー済み
jl G_M15629_IG10
6
jl G_M15629_IG10
5
;; size=8 bbWeight=1 PerfScore 1.25
;; size=8 bbWeight=1 PerfScore 1.25
G_M15629_IG04:
G_M15629_IG04:
test rbx, rbx
test rbx, rbx
コピー
コピー済み
コピー
コピー済み
je G_M15629_IG10
7
je G_M15629_IG10
6
;; size=9 bbWeight=1 PerfScore 1.25
;; size=9 bbWeight=1 PerfScore 1.25
G_M15629_IG05:
G_M15629_IG05:
mov r14d, ebp
mov r14d, ebp
cmp ebp, 1
cmp ebp, 1
コピー
コピー済み
コピー
コピー済み
jle G_M15629_
IG57
jle G_M15629_
IG48
;; size=12 bbWeight=1 PerfScore 1.50
;; size=12 bbWeight=1 PerfScore 1.50
G_M15629_IG06:
G_M15629_IG06:
test rbx, rbx
test rbx, rbx
コピー
コピー済み
コピー
コピー済み
je G_M15629_IG5
9
je G_M15629_IG5
8
mov rcx, 0xD1FFAB1E ; code for System.Linq.Enumerable+EnumerableSorter`2[System.__Canon,System.__Canon]:CompareAnyKeys(int,int):int:this
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
cmp qword ptr [rbx+0x18], rcx
コピー
コピー済み
コピー
コピー済み
jne G_M15629_IG5
9
jne G_M15629_IG5
8
;; size=29 bbWeight=0.99 PerfScore 5.44
;; size=29 bbWeight=0.99 PerfScore 5.44
G_M15629_IG07:
G_M15629_IG07:
cmp r14d, 16
cmp r14d, 16
jg G_M15629_IG18
jg G_M15629_IG18
;; size=10 bbWeight=1.94 PerfScore 2.42
;; size=10 bbWeight=1.94 PerfScore 2.42
G_M15629_IG08:
G_M15629_IG08:
cmp r14d, 2
cmp r14d, 2
コピー
コピー済み
コピー
コピー済み
je
G_M15629_IG56
je
;; size=10 bbWeight=
保存された差分
原文
ファイルを開く
; 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) ; ============================================================
違いを見つける