Diff
checker
テキスト
テキスト
画像
ドキュメント
Excel
フォルダ
Legal
Enterprise
デスクトップ
料金
ログイン
Diffchecker デスクトップのダウンロード
テキスト比較
2 つのテキスト ファイルの違いを見つける
ツール
履歴
ライブエディター
未変更行を折りたたむ
折り返しなし
レイアウト
分割
統合
比較精度
スマート
単語
文字
シンタックスハイライト
構文を選択
無視
テキスト変換
最初の差分へ移動
入力を編集
Diffchecker Desktop
Diffcheckerを実行する最も安全な方法。Diffchecker Desktopアプリを入手:あなたの差分はコンピューターから出ることはありません!
Desktopを入手
Untitled diff
作成日
昨年
差分は期限切れになりません
クリア
エクスポート
共有
説明
413 削除
行
合計
削除
文字
合計
削除
この機能を引き続き使用するには、アップグレードしてください
Diff
checker
Pro
価格を見る
379 行
すべてコピー
411 追加
行
合計
追加
文字
合計
追加
この機能を引き続き使用するには、アップグレードしてください
Diff
checker
Pro
価格を見る
373 行
すべてコピー
; Assembly listing for method System.Net.Http.Http3Connection+<>c__DisplayClass47_0+<<ProcessServerControlStreamAsync>g__ReadFrameEnvelopeAsync|0>d:MoveNext():this (FullOpts)
; Assembly listing for method System.Net.Http.Http3Connection+<>c__DisplayClass47_0+<<ProcessServerControlStreamAsync>g__ReadFrameEnvelopeAsync|0>d:MoveNext():this (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; Emitting BLENDED_CODE for X64 with AVX512 - Unix
; FullOpts code
; FullOpts code
; optimized code
; optimized code
; rbp based frame
; rbp based frame
; fully interruptible
; fully interruptible
; No PGO data
; No PGO data
コピー
コピー済み
コピー
コピー済み
; 0 inlinees with PGO data; 27 single block inlinees;
17
inlinees without PGO data
; 0 inlinees with PGO data; 27 single block inlinees;
16
inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
コピー
コピー済み
コピー
コピー済み
; V00 this [V00,
T40
] ( 15, 13 ) byref -> [rbp-
0x90
] this EH-live single-def
; V00 this [V00,
T31
] ( 15, 13 ) byref -> [rbp-
0x88
] this EH-live single-def
; V01 loc0 [V01,
T60
] ( 2, 2 ) int -> rsi
; V01 loc0 [V01,
T58
] ( 2, 2 ) int -> rsi
; V02 loc1 [V02,
T12
] (
6, 99
) ref -> rbx class-hnd exact single-def <System.Net.Http.Http3Connection+<>c__DisplayClass47_0>
; V02 loc1 [V02,
T08
] (
9, 28
) ref -> rbx class-hnd exact single-def <System.Net.Http.Http3Connection+<>c__DisplayClass47_0>
;* V03 loc2 [V03 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] <System.ValueTuple`2[System.Nullable`1[long],long]>
;* V03 loc2 [V03 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] <System.ValueTuple`2[System.Nullable`1[long],long]>
コピー
コピー済み
コピー
コピー済み
; V04 loc3 [V04 ] ( 2,
65
) long -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op
; V04 loc3 [V04 ] ( 2,
9
) long -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op
; V05 loc4 [V05 ] (
3, 81
) long -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op
; V05 loc4 [V05 ] (
2, 9
) long -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op
; V06 loc5 [V06
,T61
] (
2, 2
) int ->
rdi
ld-addr-op
; V06 loc5 [V06
] (
5, 21
) int ->
[rbp-0x40] do-not-enreg[X] addr-exposed
ld-addr-op
; V07 loc6 [V07 ] ( 12,
147
) struct (16) [rbp-
0x48
] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]>
; V07 loc6 [V07 ] ( 12,
39
) struct (16) [rbp-
0x50
] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]>
; V08 loc7 [V08,T2
4
] ( 4,
64
) struct (16) [rbp-
0x58
] do-not-enreg[SFRM] multireg-ret multireg-dest must-init ld-addr-op <System.Threading.Tasks.ValueTask`1[int]>
; V08 loc7 [V08,T2
0
] ( 4,
16
) struct (16) [rbp-
0x60
] do-not-enreg[SFRM] multireg-ret multireg-dest must-init ld-addr-op <System.Threading.Tasks.ValueTask`1[int]>
;* V09 loc8 [V09 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1[int]>
;* V09 loc8 [V09 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1[int]>
;* V10 loc9 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Nullable`1[long]>
;* V10 loc9 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Nullable`1[long]>
;* V11 loc10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Exception>
;* V11 loc10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Exception>
; V12 OutArgs [V12 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
; V12 OutArgs [V12 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;* V13 tmp1 [V13 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V13 tmp1 [V13 ] ( 0, 0 ) int -> zero-ref "dup spill"
;* V14 tmp2 [V14 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Nullable`1[long],long]>
;* V14 tmp2 [V14 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Nullable`1[long],long]>
;* V15 tmp3 [V15 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
;* V15 tmp3 [V15 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]>
コピー
コピー済み
コピー
コピー済み
;* V16 tmp4 [V16 ] ( 0, 0 ) struct (16) zero-ref
do-not-enreg[SBRM]
multireg-ret multireg-dest "Return value temp for multireg return" <System.ReadOnlySpan`1[ubyte]>
;* V16 tmp4 [V16 ] ( 0, 0 ) struct (16) zero-ref
multireg-arg
multireg-ret multireg-dest "Return value temp for multireg return" <System.ReadOnlySpan`1[ubyte]>
; V17 tmp5 [V17,T2
5
] ( 2,
64
) ref -> rdi class-hnd exact "impAppendStmt" <System.Net.Quic.QuicStream>
; V17 tmp5 [V17,T2
4
] ( 2,
16
) ref -> rdi class-hnd exact "impAppendStmt" <System.Net.Quic.QuicStream>
;* V18 tmp6 [V18 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Memory`1[ubyte]>
;* V18 tmp6 [V18 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Memory`1[ubyte]>
;* V19 tmp7 [V19 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Threading.CancellationToken>
;* V19 tmp7 [V19 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Threading.CancellationToken>
;* V20 tmp8 [V20 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[long]>
;* V20 tmp8 [V20 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[long]>
;* V21 tmp9 [V21 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Nullable`1[long],long]>
;* V21 tmp9 [V21 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Nullable`1[long],long]>
コピー
コピー済み
コピー
コピー済み
; V22 tmp10 [V22,T6
4
] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
; V22 tmp10 [V22,T6
1
] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
; V23 tmp11 [V23,T0
1
] ( 4,
39
2 ) byref -> rdi "Inlining Arg"
; V23 tmp11 [V23,T0
6
] ( 4,
3
2 ) byref -> rdi "Inlining Arg"
; V24 tmp12 [V24,T1
6
] ( 3,
96
) byref -> rsi "Inlining Arg"
; V24 tmp12 [V24,T1
2
] ( 3,
24
) byref -> rsi "Inlining Arg"
; V25 tmp13 [V25,T
10
] ( 4,
128
) ref -> rdx class-hnd "Inlining Arg" <ubyte[]>
; V25 tmp13 [V25,T
07
] ( 4,
32
) ref -> rdx class-hnd "Inlining Arg" <ubyte[]>
; V26 tmp14 [V26,T0
7
] ( 5,
160
) int -> rsi "Inlining Arg"
; V26 tmp14 [V26,T0
3
] ( 5,
40
) int -> rsi "Inlining Arg"
; V27 tmp15 [V27 ] ( 8,
256
) struct (16) [rbp-
0x68
] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
; V27 tmp15 [V27 ] ( 8,
64
) struct (16) [rbp-
0x70
] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
;* V28 tmp16 [V28 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V28 tmp16 [V28 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
;* V29 tmp17 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]>
;* V29 tmp17 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]>
;* V30 tmp18 [V30 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "Inline stloc first use temp" <System.Threading.Tasks.ValueTask`1[int]>
;* V30 tmp18 [V30 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "Inline stloc first use temp" <System.Threading.Tasks.ValueTask`1[int]>
;* V31 tmp19 [V31 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1[int]>
;* V31 tmp19 [V31 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1[int]>
コピー
コピー済み
コピー
コピー済み
; V32 tmp20 [V32,T2
6
] ( 2,
64
) ref -> rsi class-hnd "Inlining Arg" <System.Object>
; V32 tmp20 [V32,T2
5
] ( 2,
16
) ref -> rsi class-hnd "Inlining Arg" <System.Object>
; V33 tmp21 [V33,T2
8
] ( 2,
64
) int -> rdi "Inlining Arg"
; V33 tmp21 [V33,T2
7
] ( 2,
16
) int -> rdi "Inlining Arg"
; V34 tmp22 [V34,T2
9
] ( 2,
64
) short -> rax "Inlining Arg"
; V34 tmp22 [V34,T2
8
] ( 2,
16
) short -> rax "Inlining Arg"
;* V35 tmp23 [V35 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]>
;* V35 tmp23 [V35 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]>
;* V36 tmp24 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;* V36 tmp24 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
コピー
コピー済み
コピー
コピー済み
; V37 tmp25 [V37,
T22
] ( 4,
64
) ref -> r15 class-hnd "Inline stloc first use temp" <System.Object>
; V37 tmp25 [V37,
T18
] ( 4,
16
) ref -> r15 class-hnd "Inline stloc first use temp" <System.Object>
; V38 tmp26 [V38,T3
1
] ( 3,
48
) ref -> rax class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
; V38 tmp26 [V38,T3
4
] ( 3,
12
) ref -> rax class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
;* V39 tmp27 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[int]>
;* V39 tmp27 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[int]>
;* V40 tmp28 [V40 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V40 tmp28 [V40 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;* V41 tmp29 [V41 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V41 tmp29 [V41 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V42 tmp30 [V42 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V42 tmp30 [V42 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg"
;* V43 tmp31 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox>
;* V43 tmp31 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox>
コピー
コピー済み
コピー
コピー済み
; V44 tmp32 [V44,T21] (
5, 80
) int -> rax "Inline return value spill temp"
; V44 tmp32 [V44,T21] (
4, 16
) int -> rax "Inline return value spill temp"
; V45 tmp33 [V45,
T23
] ( 4,
64
) ref -> r15 class-hnd "Inline stloc first use temp" <System.Object>
; V45 tmp33 [V45,
T19
] ( 4,
16
) ref -> r15 class-hnd "Inline stloc first use temp" <System.Object>
; V46 tmp34 [V46,
T20
] ( 5,
80
) ref -> r14 class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
; V46 tmp34 [V46,
T17
] ( 5,
20
) ref -> r14 class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
;* V47 tmp35 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[int]>
;* V47 tmp35 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[int]>
コピー
コピー済み
コピー
コピー済み
; V48 tmp36 [V48,T1
7
] ( 3,
96
) byref ->
r15
"Inlining Arg"
; V48 tmp36 [V48,T1
3
] ( 3,
24
) byref ->
rdi
"Inlining Arg"
;
*
V49 tmp37 [V49
] (
0, 0
) int ->
zero-ref
"Inlining Arg"
;
V49 tmp37 [V49
,T29
] (
2, 16
) int ->
rsi
"Inlining Arg"
;* V50 tmp38 [V50 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Nullable`1[long]>
;* V50 tmp38 [V50 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Nullable`1[long]>
コピー
コピー済み
コピー
コピー済み
; V51 tmp39 [V51,T00] ( 4,
512
) byref -> rdi "Inlining Arg"
; V51 tmp39 [V51,T00] ( 4,
64
) byref -> rdi "Inlining Arg"
;* V52 tmp40 [V52 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
;* V52 tmp40 [V52 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
コピー
コピー済み
コピー
コピー済み
; V53 tmp41 [V53,T0
2
] ( 4,
320
) ref -> rsi class-hnd "Inlining Arg" <ubyte[]>
; V53 tmp41 [V53,T0
1
] ( 4,
48
) ref -> rsi class-hnd "Inlining Arg" <ubyte[]>
; V54 tmp42 [V54,T04] ( 4,
224
) int -> rcx "Inlining Arg"
; V54 tmp42 [V54,T04] ( 4,
40
) int -> rcx "Inlining Arg"
; V55 tmp43 [V55,T05] ( 4,
224
) int -> rdi "Inlining Arg"
; V55 tmp43 [V55,T05] ( 4,
40
) int -> rdi "Inlining Arg"
;* V56 tmp44 [V56 ] ( 0, 0 )
ubyte -> zero-ref "Inline return value spill temp"
;* V56 tmp44 [V56 ] ( 0, 0 )
int -> zero-ref "Inlining Arg"
;* V57 tmp45 [V57 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret multireg-dest ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
; V57 tmp45 [V57,T32] ( 7, 14 ) byref -> rdi single-def
"Inlining Arg"
; V58 tmp46 [V58 ] ( 3, 81 ) int -> [rbp-0x70] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;
V58 tmp46
[
V58,T48
] ( 2,
4 ) int ->
rax "Inlining Arg"
; V59 tmp47 [V59 ] ( 2, 17 ) int -> [rbp-0x78] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp"
;
V59
tmp
47
[
V59,T49
] ( 2, 4 ) long -> r1
3
"Inlining Arg"
; V60 tmp48 [V60,T11] ( 4,128 ) int -> rdi "Inlining Arg"
;* V6
0 tmp48
[V6
0
] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Nullable`1[long]>
;* V61 tmp49 [V61 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
; V6
1 tmp49
[V6
1
,T5
0
] ( 2, 4 ) long ->
r15
"Inlining Arg"
; V62 tmp50 [V62,T27] ( 2, 64 ) byref -> rsi
"Inlining Arg"
; V6
2
tmp5
0
[V6
2,T37
] ( 5, 10 ) byref ->
rbx
single-def "Inlining Arg"
;
V63 tmp51
[
V63,T30
] ( 2,
6
4 ) int ->
r13 "Inlining Arg"
;
V63
tmp5
1
[
V63,T16
] ( 10, 20 ) ref ->
rbx
class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[System.ValueTuple`2[System.Nullable`1[long],long]]>
; V64 tmp52 [V64,T41] ( 7, 14 ) byref ->
rax "Inlining Arg"
;
V64
tmp5
2
[
V64,T33
] ( 6, 12 ) ref -> r12 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TplEventSource>
;
* V65 tmp53 [V65 ] ( 0, 0 ) int -> zero-ref "Inlining Arg"
;*
V65 tmp53
[
V65
] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.TplEventSource>
; V66
tmp
54
[
V66,T52
] ( 2, 4 ) long -> r1
4
"Inlining Arg"
;
V66 tmp54
[
V66
,T5
1
] ( 2, 4 ) int -> [rbp-0x7
4
] spill-single-def "Inlining Arg"
;* V6
7 tmp55
[V6
7
] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Nullable`1[long]>
;* V
67 tmp55
[V
67
] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V6
8 tmp56
[V6
8
,T5
3
] ( 2, 4 ) long ->
rbx
"Inlining Arg"
;*
V68
tmp
56
[
V68
] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
; V6
9
tmp5
7
[V6
9,T44
] ( 5, 10 ) byref ->
r13
single-def "Inlining Arg"
;* V
69 tmp57
[V
69
,T6
0
] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;
V70
tmp5
8
[
V70,T38
] ( 10, 20 ) ref ->
r13
class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[System.ValueTuple`2[System.Nullable`1[long],long]]>
; V7
0
tmp
58
[V7
0
,T5
3
] ( 3, 3 ) ref ->
r15
class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task+ContingentProperties>
;
V71
tmp5
9
[
V71,T42
] ( 6, 12 ) ref -> r12 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TplEventSource>
; V7
1 tmp59
[V7
1,T59
] ( 2, 2 ) ubyte -> rdi "Inline return value spill temp"
;*
V72 tmp60
[
V72
] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.TplEventSource>
; V7
2
tmp6
0
[V7
2
,T4
3
] ( 5, 5 ) int -> [rbp-0x
78
] spill-single-def "Inline stloc first use temp"
;
V73 tmp61
[
V73
,T5
4
] ( 2, 4 ) int -> [rbp-0x7
C
] spill-single-def "Inlining Arg"
;
V73
tmp6
1
[
V73
,T5
6
] ( 3, 3 ) ubyte -> rdi "Inline return value spill temp"
;* V
74 tmp62
[V
74
] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;
V74
tmp6
2
[
V74,T02
] ( 6, 41 ) int -> [rbp-
0x7C
] "Inline stloc first use temp"
;*
V75
tmp
63
[
V75
] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp"
;
V75 tmp63
[
V75,T14
] ( 3, 24 ) int -> rax "Inline stloc first use temp"
;* V
76 tmp64
[V
76
,T6
3
] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp"
;
V76 tmp64
[
V76
,T5
4
] ( 3, 3 ) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.Threading.ManualResetEventSlim>
; V7
7
tmp
65
[V7
7
,T5
5
] ( 3, 3 ) ref ->
rbx
class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task+ContingentProperties>
;*
V77 tmp65
[
V77
] ( 0, 0 ) ubyte -> zero-ref "field V10.hasValue (fldOffset=0x0)" P-INDEP
; V7
8 tmp66
[V7
8,T62
] ( 2, 2 ) ubyte -> rdi "Inline return value spill temp"
;* V
78 tmp66
[V
78
] ( 0, 0 ) long -> zero-ref "field V10.value (fldOffset=0x8)" P-INDEP
; V7
9
tmp6
7
[V7
9
,T4
7
] ( 5, 5 ) int -> [rbp-0x
80
] spill-single-def "Inline stloc first use temp"
;*
V79
tmp
67
[
V79
] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP
;
V80
tmp6
8
[
V80
,T5
8
] ( 3, 3 ) ubyte -> rdi "Inline return value spill temp"
;* V8
0 tmp68
[V8
0
] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
;
V81
tmp6
9
[
V81,T33
] ( 6, 41 ) int -> [rbp-
0x84
] "Inline stloc first use temp"
;
V8
1
tmp
69
[V8
1,T26
] (
2, 16
) byref ->
rdi
"field V16._reference (fldOffset=0x0)" P-
IN
DEP
;
V82 tmp70
[
V82,T37
] ( 3, 24 ) int -> rax "Inline stloc first use temp"
;
V8
2
tmp7
0
[V8
2,T30
] (
2, 16
) int ->
rsi
"field V16._length (fldOffset=0x8)" P-
IN
DEP
;
V83 tmp71
[
V83
,T5
6
] ( 3, 3 ) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.Threading.ManualResetEventSlim>
;*
V83
tmp7
1
[
V83
] ( 0, 0 ) ref -> zero-ref "field V18._object (fldOffset=0x0)" P-INDEP
;*
V84 tmp72
[
V84
] ( 0, 0 ) ubyte -> zero-ref "field V10.hasValue (fldOffset=0x0)" P-INDEP
;*
V84
tmp7
2
[
V84
] ( 0, 0 ) int -> zero-ref "field V18._index (fldOffset=0x8)" P-INDEP
;* V
85 tmp73
[V
85
] ( 0, 0 ) long -> zero-ref "field V10.value (fldOffset=0x8)" P-INDEP
;*
V85 tmp73
[
V85
] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0xc)" P-INDEP
;*
V86
tmp
74
[
V86
] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP
;*
V86 tmp74
[
V86
] ( 0, 0 ) ref -> zero-ref "field V19._source (fldOffset=0x0)" P-INDEP
;* V8
7 tmp75
[V8
7
] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP
;*
V87 tmp75
[
V87
] ( 0, 0 ) ubyte -> zero-ref "field V20.hasValue (fldOffset=0x0)" P-INDEP
;
*
V8
8
tmp
76
[V8
8
] (
0, 0
) byref ->
zero-ref
"field V16._reference (fldOffset=0x0)" P-
DEP
;*
V88 tmp76
[
V88
] ( 0, 0 ) long -> zero-ref "field V20.value (fldOffset=0x8)" P-INDEP
;
*
V8
9
tmp7
7
[V8
9
] (
0, 0
) int ->
zero-ref
"field V16._length (fldOffset=0x8)" P-
DEP
; V
89 tmp77
[V
89,T09
] ( 4,
24
) ref -> [rbp-
0x70
] do-not-enreg[] "field V27._object (fldOffset=0x0)" P-DEP
;*
V90
tmp7
8
[
V90
] ( 0, 0 ) ref -> zero-ref "field V18._object (fldOffset=0x0)" P-INDEP
; V9
0
tmp
78
[V9
0
,T1
0
] ( 4,
24
) int -> [rbp-0x6
8
] do-not-enreg[] "field V27._index (fldOffset=0x8)" P-DEP
;*
V91
tmp7
9
[
V91
] ( 0, 0 ) int -> zero-ref "field V18._index (fldOffset=0x8)" P-INDEP
; V9
1 tmp79
[V9
1
,T1
1
] ( 4,
24
) int -> [rbp-
0x64
] do-not-enreg[] "field V27._length (fldOffset=0xc)" P-DEP
;*
V92 tmp80
[
V92
] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0xc)" P-INDEP
;* V9
2
tmp8
0
[V9
2
] ( 0, 0 ) ref -> zero-ref "field V28._source (fldOffset=0x0)" P-INDEP
;*
V93 tmp81
[
V93
] ( 0, 0 ) ref -> zero-ref "field V19._source (fldOffset=0x0)" P-INDEP
;
V93
tmp8
1
[
V93,T40
] ( 2,
8
) ref -> rsi "field V29._obj (fldOffset=0x0)" P-INDEP
;*
V94 tmp82
[
V94
] ( 0, 0 ) ubyte -> zero-ref "field V20.hasValue (fldOffset=0x0)" P-INDEP
;
V94
tmp8
2
[
V94,T41
] ( 2,
8
) int -> rdi "field V29._result (fldOffset=0x8)" P-INDEP
;*
V95 tmp83
[
V95
] ( 0, 0 ) long -> zero-ref "field V20.value (fldOffset=0x8)" P-INDEP
;
V95 tmp83
[
V95,T42
] ( 2,
8
) short -> rax "field V29._token (fldOffset=0xc)" P-INDEP
; V
96 tmp84
[V
96,T13
] ( 4,
96
) ref -> [rbp-
0x68
] do-not-enreg[] "field V27._object (fldOffset=0x0)" P-DEP
;*
V96 tmp84
[
V96,T52
] ( 0, 0 ) ubyte -> zero-ref "field V29._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
; V9
7
tmp
85
[V9
7
,T1
4
] ( 4,
96
) int -> [rbp-0x6
0
] do-not-enreg[] "field V27._index (fldOffset=0x8)" P-DEP
;*
V97 tmp85
[
V97
] ( 0, 0 ) ubyte -> zero-ref "field V50.hasValue (fldOffset=0x0)" P-INDEP
; V9
8 tmp86
[V9
8
,T1
5
] ( 4,
96
) int -> [rbp-
0x5C
] do-not-enreg[] "field V27._length (fldOffset=0xc)" P-DEP
;*
V98 tmp86
[
V98
] ( 0, 0 ) long -> zero-ref "field V50.value (fldOffset=0x8)" P-INDEP
;* V9
9
tmp8
7
[V9
9
] ( 0, 0 ) ref -> zero-ref "field V28._source (fldOffset=0x0)" P-INDEP
;
V99 tmp87
[
V99,T22
] ( 3,
16
) byref -> rsi "field V52._reference (fldOffset=0x0)" P-INDEP
;
V100
tmp8
8
[
V100,T34
] ( 2,
32
) ref -> rsi "field V29._obj (fldOffset=0x0)" P-INDEP
; V10
0 tmp88
[V10
0,T23
] ( 3,
16
) int ->
rax
"field V5
2
._length (fldOffset=0x8)" P-INDEP
;
V101
tmp8
9
[
V101,T35
] ( 2,
32
) int -> rdi "field V29._result (fldOffset=0x8)" P-INDEP
;* V101 tmp89 [V101
] ( 0, 0 ) ubyte -> zero-ref "field V6
0
.hasValue (fldOffset=0x0)" P-INDEP
;
V102 tmp90
[
V102,T36
] ( 2,
32
) short -> rax "field V29._token (fldOffset=0xc)" P-INDEP
;*
V102
tmp
90
[
V102
] ( 0, 0 ) long -> zero-ref "field V6
0
.value (fldOffset=0x8)" P-INDEP
;*
V103 tmp91
[
V103,T39
] ( 0, 0 ) ubyte -> zero-ref "field V29._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
;*
V103
tmp
91
[V103
] ( 0, 0 ) long -> zero-ref "V14.[000..008)"
;*
V104 tmp92
[
V104
] ( 0, 0 ) ubyte -> zero-ref "field V50.hasValue (fldOffset=0x0)" P-INDEP
;*
V104 tmp92
[
V104
] ( 0, 0 ) ubyte -> zero-ref "V14.[008..009)"
;*
V105 tmp93
[
V105
] ( 0, 0 ) long -> zero-ref "field V50.value (fldOffset=0x8)" P-INDEP
;*
V105 tmp93
[
V105
] ( 0, 0 ) long -> zero-ref "V14.[016..024)"
;
V106 tmp94
[
V106,T18
] ( 3,
96
) byref -> rsi "field V52._reference (fldOffset=0x0)" P-INDEP
;*
V106 tmp94
[
V106
] ( 0, 0 ) long -> zero-ref "V21.[000..008)"
; V10
7 tmp95 [V107,T19] ( 3, 96 ) int -> rax "field V52._length (fldOffset=0x8)" P-INDEP
;*
V107 tmp95
[
V107
] ( 0, 0 ) ubyte -> zero-ref "V21.[008..009)"
; V108 tmp96
[V10
8,T09
] ( 3,
144 ) byref -> r14 "field V57._reference (fldOffset=0x0)" P-INDEP
;*
V108 tmp96
[
V108
] ( 0, 0 ) long -> zero-ref "V21.[016..024)"
; V109 tmp97 [V109,T08] ( 4,160
) int ->
r13
"field V5
7
._length (fldOffset=0x8)" P-INDEP
; V1
09 tmp97
[V1
09
,T4
4
] ( 4, 4 ) long ->
r15
"V03.[000..008)"
;* V110 tmp98 [V110 ] ( 0, 0 ) byref -> zero-ref "field V61._reference (fldOffset=0x0)" P-INDEP
; V1
10
tmp
98
[V1
10
,T4
5
] ( 4, 4 ) ubyte -> r1
4
"V03.[008..009)"
;* V111 tmp99 [V111 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP
;
V111 tmp99
[
V111,T46
] ( 4, 4 ) long -> r1
3
"V03.[016..024)"
;* V112 tmp100 [V112
] ( 0, 0 ) ubyte -> zero-ref "field V6
7
.hasValue (fldOffset=0x0)" P-INDEP
; V
112
tmp1
00
[V
112,T38
] ( 4, 8 ) byref -> rdi single-def "Spilling address for field-by-field copy"
;*
V113
tmp
101
[
V113
] ( 0, 0 ) long -> zero-ref "field V6
7
.value (fldOffset=0x8)" P-INDEP
;
V113
tmp1
01
[
V113,T39
] ( 4, 8 ) byref -> rdi single-def "Spilling address for field-by-field copy"
;*
V114
tmp
102
[V114
] ( 0, 0 ) long -> zero-ref "V14.[000..008)"
;
V114
tmp1
02
[
V114,T47
] ( 2, 4 ) ref -> rsi "argument with side effect"
;*
V115 tmp103
[
V115
] ( 0, 0 ) ubyte -> zero-ref "V14.[008..009)"
;
V115
cse0 [
V115
,T5
5
] ( 3, 3 ) ref -> r12 "CSE #12: conservative"
;*
V116 tmp104
[
V116
] ( 0, 0 ) long -> zero-ref "V14.[016..024)"
;
V116
cse1 [
V116
,T5
7
] ( 3, 3 ) int -> rsi "CSE #13: conservative"
;*
V117 tmp105
[
V117
] ( 0, 0 ) long -> zero-ref "V21.[000..008)"
;
V117
cse2 [
V117,T15
] ( 3,
24
) int -> rax "CSE #04:
moderate
"
;*
V118 tmp106
[
V118
] ( 0, 0 ) ubyte -> zero-ref "V21.[008..009)"
;
V118
cse3 [
V118,T36
] (
4, 11
) byref ->
r12
"CSE #
14
: moderate"
;*
V119 tmp107
[
V119
] ( 0, 0 ) long -> zero-ref "V21.[016..024)"
; V1
19
cse
4
[V1
19,T35
] (
3, 12
)
int
->
rcx
"CSE #
03: moderate
"
; V1
20 tmp108
[V1
20
,T4
8
] ( 4, 4 ) long ->
rbx
"V03.[000..008)"
; V1
21
tmp
109
[V1
21
,T4
9
] ( 4, 4 ) ubyte -> r1
5
"V03.[008..009)"
;
V122 tmp110
[
V122,T50
] ( 4, 4 ) long -> r1
4
"V03.[016..024)"
; V
123
tmp1
11
[V
123,T45
] ( 4, 8 ) byref -> rdi single-def "Spilling address for field-by-field copy"
;
V124
tmp1
12
[
V124,T46
] ( 4, 8 ) byref -> rdi single-def "Spilling address for field-by-field copy"
;
V125
tmp1
13
[
V125,T51
] ( 2, 4 ) ref -> rsi "argument with side effect"
;
V126
cse0 [
V126
,T5
7
] ( 3, 3 ) ref -> r12 "CSE #12: conservative"
;
V127
cse1 [
V127
,T5
9
] ( 3, 3 ) int -> rsi "CSE #13: conservative"
;
V128
cse2 [
V128,T06
] ( 3,
192
) int -> rax "CSE #04:
aggressive
"
;
V129
cse3 [
V129,T03
] (
9,243
) byref ->
registers multi-def "CSE #03: aggressive"
; V130 cse4 [V130,T32] ( 3, 48 ) int -> rcx
"CSE #
02
: moderate"
; V1
31
cse
5
[V1
31,T43
] (
4, 11
)
byref
->
r12
"CSE #
14: conservative
"
;
;
コピー
コピー済み
コピー
コピー済み
; Lcl frame size = 1
20
; Lcl frame size = 1
04
G_M49016_IG01:
G_M49016_IG01:
push rbp
push rbp
push r15
push r15
push r14
push r14
push r13
push r13
push r12
push r12
push rbx
push rbx
コピー
コピー済み
コピー
コピー済み
sub rsp, 1
20
sub rsp, 1
04
lea rbp, [rsp+0x
A0]
lea rbp, [rsp+0x
90]
xor eax, eax
mov qword ptr [rbp-0x68], rax
vxorps xmm8, xmm8, xmm8
vxorps xmm8, xmm8, xmm8
コピー
コピー済み
コピー
コピー済み
vmovdqu ymmword ptr [rbp-0x
6
0], ymm8
vmovdqu ymmword ptr [rbp-0x
7
0], ymm8
mov q
word ptr [rbp-0x
4
0],
rax
vmovdqa xmm
word ptr [rbp-0x
5
0],
xmm8
mov bword ptr [rbp-
0x90
], rdi
mov bword ptr [rbp-
0x88
], rdi
mov rdx, rdi
mov rdx, rdi
コピー
コピー済み
コピー
コピー済み
;; size=
52
bbWeight=1 PerfScore 12.
58
;; size=
47
bbWeight=1 PerfScore 12.
33
G_M49016_IG02:
G_M49016_IG02:
mov esi, dword ptr [rdx+0x08]
mov esi, dword ptr [rdx+0x08]
mov rbx, gword ptr [rdx]
mov rbx, gword ptr [rdx]
;; size=6 bbWeight=1 PerfScore 4.00
;; size=6 bbWeight=1 PerfScore 4.00
G_M49016_IG03:
G_M49016_IG03:
test esi, esi
test esi, esi
jne G_M49016_IG12
jne G_M49016_IG12
;; size=8 bbWeight=1 PerfScore 1.25
;; size=8 bbWeight=1 PerfScore 1.25
G_M49016_IG04:
G_M49016_IG04:
vmovdqu xmm0, xmmword ptr [rdx+0x30]
vmovdqu xmm0, xmmword ptr [rdx+0x30]
コピー
コピー済み
コピー
コピー済み
vmovdqu xmmword ptr [rbp-
0x48
], xmm0
vmovdqu xmmword ptr [rbp-
0x50
], xmm0
;; size=10 bbWeight=1 PerfScore 5.00
;; size=10 bbWeight=1 PerfScore 5.00
G_M49016_IG05:
G_M49016_IG05:
xor esi, esi
xor esi, esi
mov qword ptr [rdx+0x30], rsi
mov qword ptr [rdx+0x30], rsi
mov qword ptr [rdx+0x38], rsi
mov qword ptr [rdx+0x38], rsi
mov dword ptr [rdx+0x08], -1
mov dword ptr [rdx+0x08], -1
コピー
コピー済み
コピー
コピー済み
jmp G_M49016_IG2
4
jmp G_M49016_IG2
2
align [0 bytes for IG3
5
]
align [0 bytes for IG3
3
]
;; size=22 bbWeight=1 PerfScore 5.25
;; size=22 bbWeight=1 PerfScore 5.25
G_M49016_IG06:
G_M49016_IG06:
mov edi, dword ptr [r14+0x34]
mov edi, dword ptr [r14+0x34]
and edi, 0xD1FFAB1E
and edi, 0xD1FFAB1E
cmp edi, 0xD1FFAB1E
cmp edi, 0xD1FFAB1E
je SHORT G_M49016_IG07
je SHORT G_M49016_IG07
mov rdi, r14
mov rdi, r14
xor esi, esi
xor esi, esi
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)
call [rax]System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)
call [rax]System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)
コピー
コピー済み
コピー
コピー済み
;; size=35 bbWeight=
16
PerfScore
116
.00
;; size=35 bbWeight=
4
PerfScore
29
.00
G_M49016_IG07:
G_M49016_IG07:
mov eax, dword ptr [r14+0x38]
mov eax, dword ptr [r14+0x38]
jmp SHORT G_M49016_IG09
jmp SHORT G_M49016_IG09
コピー
コピー済み
コピー
コピー済み
;; size=6 bbWeight=
16
PerfScore
64
.00
;; size=6 bbWeight=
4
PerfScore
16
.00
G_M49016_IG08:
G_M49016_IG08:
コピー
コピー済み
コピー
コピー済み
mov eax, dword ptr [rbp-0x4
0
]
mov eax, dword ptr [rbp-0x4
8
]
;; size=3 bbWeight=
16
PerfScore
16
.00
;; size=3 bbWeight=
4
PerfScore
4
.00
G_M49016_IG09:
G_M49016_IG09:
コピー
コピー済み
コピー
コピー済み
test
eax
, eax
mov
dword ptr [rbp-0x40]
, eax
cmp dword ptr [rbp-0x40], 0
jne SHORT G_M49016_IG11
jne SHORT G_M49016_IG11
コピー
コピー済み
コピー
コピー済み
;; size=
4
bbWeight=
16
PerfScore
20
.00
;; size=
9
bbWeight=
4
PerfScore
16
.00
G_M49016_IG10:
G_M49016_IG10:
cmp byte ptr [rbx], bl
cmp byte ptr [rbx], bl
コピー
コピー済み
コピー
コピー済み
add rbx, 24
lea
rdi,
bword ptr [
rbx
+0x18]
mov
rdi,
rbx
mov rax, 0xD1FFAB1E ; code for System.Net.ArrayBuffer:get_ActiveLength():int:this
mov rax, 0xD1FFAB1E ; code for System.Net.ArrayBuffer:get_ActiveLength():int:this
call [rax]System.Net.ArrayBuffer:get_ActiveLength():int:this
call [rax]System.Net.ArrayBuffer:get_ActiveLength():int:this
test eax, eax
test eax, eax
コピー
コピー済み
コピー
コピー済み
jne G_M49016_
IG31
jne G_M49016_
IG29
xor ebx, ebx
xor r15d, r15d
xor r15d, r15d
xor r14d, r14d
xor r14d, r14d
コピー
コピー済み
コピー
コピー済み
jmp G_M49016_IG3
2
xor r13d, r13d
;; size=
42
bbWeight=1 PerfScore 10.75
jmp G_M49016_IG3
0
;; size=
40
bbWeight=1 PerfScore 10.75
G_M49016_IG11:
G_M49016_IG11:
lea rdi, bword ptr [rbx+0x18]
lea rdi, bword ptr [rbx+0x18]
コピー
コピー済み
コピー
コピー済み
mov
r15, rdi
mov
esi, dword ptr [rbp-0x40]
add dword ptr [
r15
+0x0C],
eax
add dword ptr [
rdi
+0x0C],
esi
;; size=
11
bbWeight=
16
PerfScore
60
.00
;; size=
10
bbWeight=
4
PerfScore
18
.00
G_M49016_IG12:
G_M49016_IG12:
コピー
コピー済み
コピー
コピー済み
lea
r15
, bword ptr [rbx+0x18]
lea
rdi
, bword ptr [rbx+0x18]
mov rdi, r15
mov rsi, gword ptr [rdi]
mov rsi, gword ptr [rdi]
mov eax, dword ptr [rdi+0x08]
mov eax, dword ptr [rdi+0x08]
mov ecx, eax
mov ecx, eax
mov edi, dword ptr [rdi+0x0C]
mov edi, dword ptr [rdi+0x0C]
sub edi, eax
sub edi, eax
test rsi, rsi
test rsi, rsi
je SHORT G_M49016_IG14
je SHORT G_M49016_IG14
コピー
コピー済み
コピー
コピー済み
;; size=
25
bbWeight=
64
PerfScore
544
.00
;; size=
22
bbWeight=
8
PerfScore
66
.00
G_M49016_IG13:
G_M49016_IG13:
mov eax, ecx
mov eax, ecx
mov r8d, edi
mov r8d, edi
add rax, r8
add rax, r8
mov r8d, dword ptr [rsi+0x08]
mov r8d, dword ptr [rsi+0x08]
cmp rax, r8
cmp rax, r8
コピー
コピー済み
コピー
コピー済み
ja G_M49016_
IG30
ja G_M49016_
IG28
mov ecx, ecx
mov ecx, ecx
lea rsi, bword ptr [rsi+rcx+0x10]
lea rsi, bword ptr [rsi+rcx+0x10]
mov eax, edi
mov eax, edi
jmp SHORT G_M49016_IG15
jmp SHORT G_M49016_IG15
コピー
コピー済み
コピー
コピー済み
;; size=32 bbWeight=
16
PerfScore
120
.00
;; size=32 bbWeight=
4
PerfScore
30
.00
G_M49016_IG14:
G_M49016_IG14:
or ecx, edi
or ecx, edi
コピー
コピー済み
コピー
コピー済み
jne G_M49016_
IG30
jne G_M49016_
IG28
xor rsi, rsi
xor rsi, rsi
xor eax, eax
xor eax, eax
コピー
コピー済み
コピー
コピー済み
;; size=12 bbWeight=
16
PerfScore
28
.00
;; size=12 bbWeight=
4
PerfScore
7
.00
G_M49016_IG15:
G_M49016_IG15:
mov rdi, rsi
mov rdi, rsi
mov esi, eax
mov esi, eax
mov rax, 0xD1FFAB1E ; code for System.Span`1[ubyte]:op_Implicit(System.Span`1[ubyte]):System.ReadOnlySpan`1[ubyte]
mov rax, 0xD1FFAB1E ; code for System.Span`1[ubyte]:op_Implicit(System.Span`1[ubyte]):System.ReadOnlySpan`1[ubyte]
call [rax]System.Span`1[ubyte]:op_Implicit(System.Span`1[ubyte]):System.ReadOnlySpan`1[ubyte]
call [rax]System.Span`1[ubyte]:op_Implicit(System.Span`1[ubyte]):System.ReadOnlySpan`1[ubyte]
コピー
コピー済み
コピー
コピー済み
mov r14, rax
mov rdi,
rax
mov r13d, edx
mov esi,
edx
mov rdi,
r14
mov esi,
r13d
lea rdx, [rbp-0x30]
lea rdx, [rbp-0x30]
コピー
コピー済み
コピー
コピー済み
lea rcx, [rbp-
0x70
]
lea rcx, [rbp-
0x38]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.
VariableLengthIntegerHelper:TryRead
(System.ReadOnlySpan`1[ubyte]
,byref,byref):ubyte
lea r8, [rbp-0x40
]
call [rax]System.Net.Http.
VariableLengthIntegerHelper:TryRead
(System.ReadOnlySpan`1[ubyte]
,byref,byref):ubyte
mov rax, 0xD1FFAB1E ; code for System.Net.Http.
Http3Frame:TryReadIntegerPair
(System.ReadOnlySpan`1[ubyte]
,byref
,byref,byref):ubyte
call [rax]System.Net.Http.
Http3Frame:TryReadIntegerPair
(System.ReadOnlySpan`1[ubyte]
,byref
,byref,byref):ubyte
test eax, eax
test eax, eax
コピー
コピー済み
コピー
コピー済み
j
e
SHORT
G_M49016_
IG17
j
n
e
G_M49016_
IG25
;; size=
53
bbWeight=
64
PerfScore
656
.00
;; size=
54
bbWeight=
8
PerfScore
82
.00
G_M49016_IG16:
G_M49016_IG16:
コピー
コピー済み
コピー
コピー済み
mov edi, dword ptr [rbp-0x70]
lea rdi, bword ptr [rbx+0x18]
cmp edi, r13d
ja G_M49016_IG30
mov esi, edi
add rsi, r14
sub r13d, edi
mov rdi, rsi
mov esi, r13d
lea rdx, [rbp-0x38]
lea rcx, [rbp-0x78]
mov rax, 0xD1FFAB1E ; code for System.Net.Http.VariableLengthIntegerHelper:TryRead(System.ReadOnlySpan`1[ubyte],byref,byref):ubyte
call [rax]System.Net.Http.VariableLengthIntegerHelper:TryRead(System.ReadOnlySpan`1[ubyte],byref,byref):ubyte
test eax, eax
jne G_M49016_IG27
;; size=54 bbWeight=16 PerfScore 144.00
G_M49016_IG17:
xor edi, edi
mov qword ptr [rbp-0x38], rdi
mov rdi, r15
mov rsi, gword ptr [rdi]
mov rsi, gword ptr [rdi]
mov esi, dword ptr [rsi+0x08]
mov esi, dword ptr [rsi+0x08]
sub esi, dword ptr [rdi+0x0C]
sub esi, dword ptr [rdi+0x0C]
cmp esi, 16
cmp esi, 16
コピー
コピー済み
コピー
コピー済み
jge SHORT G_M49016_IG1
9
jge SHORT G_M49016_IG1
7
;; size=23 bbWeight=64 PerfScore 624.00
G_M49016_IG18:
mov esi, 16
mov esi, 16
mov rax, 0xD1FFAB1E ; code for System.Net.ArrayBuffer:EnsureAvailableSpaceCore(int):this
mov rax, 0xD1FFAB1E ; code for System.Net.ArrayBuffer:EnsureAvailableSpaceCore(int):this
call [rax]System.Net.ArrayBuffer:EnsureAvailableSpaceCore(int):this
call [rax]System.Net.ArrayBuffer:EnsureAvailableSpaceCore(int):this
コピー
コピー済み
コピー
コピー済み
;; size=
17
bbWeight=4 PerfScore
14
.00
;; size=
35
bbWeight=4 PerfScore
49
.00
G_M49016_IG1
9
:
G_M49016_IG1
7
:
mov rdi, gword ptr [rbx+0x08]
mov rdi, gword ptr [rbx+0x08]
コピー
コピー済み
コピー
コピー済み
mov
rsi,
r15
lea
rsi,
bword ptr [rbx+0x18]
mov rdx, gword ptr [rsi]
mov rdx, gword ptr [rsi]
mov esi, dword ptr [rsi+0x0C]
mov esi, dword ptr [rsi+0x0C]
test rdx, rdx
test rdx, rdx
コピー
コピー済み
コピー
コピー済み
je SHORT G_M49016_
IG20
je SHORT G_M49016_
IG18
mov ecx, dword ptr [rdx+0x08]
mov ecx, dword ptr [rdx+0x08]
cmp ecx, esi
cmp ecx, esi
コピー
コピー済み
コピー
コピー済み
jb G_M49016_
IG30
jb G_M49016_
IG28
mov gword ptr [rbp-
0x68
], rdx
mov gword ptr [rbp-
0x70
], rdx
mov dword ptr [rbp-0x6
0
], esi
mov dword ptr [rbp-0x6
8
], esi
sub ecx, esi
sub ecx, esi
コピー
コピー済み
コピー
コピー済み
mov dword ptr [rbp-
0x5C
], ecx
mov dword ptr [rbp-
0x64
], ecx
jmp SHORT G_M49016_IG2
3
jmp SHORT G_M49016_IG2
1
;; size=
43
bbWeight=
16
PerfScore
256
.00
;; size=
44
bbWeight=
4
PerfScore
65
.00
G_M49016_
IG20
:
G_M49016_
IG18
:
test esi, esi
test esi, esi
コピー
コピー済み
コピー
コピー済み
jne G_M49016_
IG30
jne G_M49016_
IG28
xor rsi, rsi
xor rsi, rsi
コピー
コピー済み
コピー
コピー済み
mov gword ptr [rbp-
0x68
], rsi
mov gword ptr [rbp-
0x70
], rsi
;; size=14 bbWeight=
16 PerfScore 40.00
;; size=14 bbWeight=
4 PerfScore 10.00
G_M49016_IG19:
mov dword ptr [rbp-0x68], esi
;; size=3 bbWeight=4 PerfScore 4.00
G_M49016_IG20:
mov dword ptr [rbp-0x64], esi
;; size=3 bbWeight=4 PerfScore 4.00
G_M49016_IG21:
G_M49016_IG21:
コピー
コピー済み
コピー
コピー済み
mov dword ptr [rbp-0x60], esi
mov rsi, gword ptr [rbp-
0x70
]
;; size=3 bbWeight=16 PerfScore 16.00
mov rdx, qword ptr [rbp-0x6
8
]
G_M49016_IG22:
mov dword ptr [rbp-0x5C], esi
;; size=3 bbWeight=16 PerfScore 16.00
G_M49016_IG23:
mov rsi, gword ptr [rbp-
0x68
]
mov rdx, qword ptr [rbp-0x6
0
]
xor rcx, rcx
xor rcx, rcx
mov rax, 0xD1FFAB1E ; code for System.Net.Quic.QuicStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this
mov rax, 0xD1FFAB1E ; code for System.Net.Quic.QuicStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this
cmp dword ptr [rdi], edi
cmp dword ptr [rdi], edi
call [rax]System.Net.Quic.QuicStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this
call [rax]System.Net.Quic.QuicStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this
コピー
コピー済み
コピー
コピー済み
mov gword ptr [rbp-
0x58
], rax
mov gword ptr [rbp-
0x60
], rax
mov qword ptr [rbp-0x5
0
], rdx
mov qword ptr [rbp-0x5
8
], rdx
mov rsi, gword ptr [rbp-
0x58
]
mov rsi, gword ptr [rbp-
0x60
]
mov edi, dword ptr [rbp-0x5
0
]
mov edi, dword ptr [rbp-0x5
8
]
movsx rax, word ptr [rbp-0x
4C
]
movsx rax, word ptr [rbp-0x
54
]
mov gword ptr [rbp-
0x48
], rsi
mov gword ptr [rbp-
0x50
], rsi
mov dword ptr [rbp-0x4
0
], edi
mov dword ptr [rbp-0x4
8
], edi
mov word ptr [rbp-
0x3C
], ax
mov word ptr [rbp-
0x44
], ax
mov byte ptr [rbp-
0x3A
], 0
mov byte ptr [rbp-
0x42
], 0
mov r15, gword ptr [rbp-
0x48
]
mov r15, gword ptr [rbp-
0x50
]
test r15, r15
test r15, r15
コピー
コピー済み
コピー
コピー済み
je SHORT G_M49016_IG2
4
je SHORT G_M49016_IG2
2
mov rsi, r15
mov rsi, r15
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task`1[int]
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task`1[int]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
test rax, rax
test rax, rax
コピー
コピー済み
コピー
コピー済み
jne SHORT G_M49016_IG2
5
jne SHORT G_M49016_IG2
3
mov rdi, r15
mov rdi, r15
コピー
コピー済み
コピー
コピー済み
movsx rsi, word ptr [rbp-
0x3C
]
movsx rsi, word ptr [rbp-
0x44
]
mov r11, 0xD1FFAB1E ; code for System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetStatus(short):int:this
mov r11, 0xD1FFAB1E ; code for System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetStatus(short):int:this
call [r11]System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetStatus(short):int:this
call [r11]System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetStatus(short):int:this
test eax, eax
test eax, eax
コピー
コピー済み
コピー
コピー済み
je SHORT G_M49016_IG2
6
je SHORT G_M49016_IG2
4
;; size=123 bbWeight=
16
PerfScore
552
.00
;; size=123 bbWeight=
4
PerfScore
138
.00
G_M49016_IG2
4
:
G_M49016_IG2
2
:
mov r15, gword ptr [rbp-
0x48
]
mov r15, gword ptr [rbp-
0x50
]
test r15, r15
test r15, r15
je G_M49016_IG08
je G_M49016_IG08
mov rsi, r15
mov rsi, r15
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task`1[int]
mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task`1[int]
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
call [rax]CORINFO_HELP_ISINSTANCEOFCLASS
mov r14, rax
mov r14, rax
test r14, r14
test r14, r14
jne G_M49016_IG06
jne G_M49016_IG06
mov rdi, r15
mov rdi, r15
コピー
コピー済み
コピー
コピー済み
movsx rsi, word ptr [rbp-
0x3C
]
movsx rsi, word ptr [rbp-
0x44
]
mov r11, 0xD1FFAB1E ; code for System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetResult(short):int:this
mov r11, 0xD1FFAB1E ; code for System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetResult(short):int:this
call [r11]System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetResult(short):int:this
call [r11]System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetResult(short):int:this
jmp G_M49016_IG09
jmp G_M49016_IG09
コピー
コピー済み
コピー
コピー済み
;; size=76 bbWeight=
16
PerfScore
256
.00
;; size=76 bbWeight=
4
PerfScore
64
.00
G_M49016_IG2
5
:
G_M49016_IG2
3
:
test dword ptr [rax+0x34], 0xD1FFAB1E
test dword ptr [rax+0x34], 0xD1FFAB1E
コピー
コピー済み
コピー
コピー済み
jne SHORT G_M49016_IG2
4
jne SHORT G_M49016_IG2
2
;; size=9 bbWeight=16 PerfScore 64.00
;; size=9 bbWeight=4 PerfScore 16.00
G_M49
G_M49016_IG24:
xor edi, edi
mov rdx, bword ptr [rbp-0x88]
mov dword ptr [rdx+0x08], edi
lea rdi, bword ptr [rdx+0x30]
lea rsi, bword ptr [rbp-0x50]
call CORINFO_HELP_ASSIGN_BYREF
movsq
lea rsi, bword ptr [rdx+0x10]
mov rdi, rdx
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.ValueTuple`2[System.Nullable`1[long],long]]:GetStateMachineBox[System.Net.Http.Http3Connection+<>c__DisplayClass47_0+<<ProcessServerControlStreamAsync>g__ReadFrameEnvelopeAsync|0>d](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox
call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.ValueTuple`2[System.Nullable`1[long],long]]:GetStateMachineBox[System.Net.Http.Http3Connection+<>c__DisplayClass47_0+<<ProcessServerControlStreamAsync>g__ReadFrameEnvelopeAsync|0>d](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox
mov rsi, rax
lea rdi, [rbp-0x50]
mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.ValueTuple`2[System.Nullable`1[long],long]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)
call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.ValueTuple`2[System.Nullable`1[long],long]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)
jmp G_M49016_IG41
;; size=70 bbWeight=1 PerfScore 15.25
G_M49016_IG25:
lea rdi, bword ptr [rbx+0x18]
mov eax, dword ptr [rbp-0x40]
add dword ptr [rdi+0x08], eax
mov eax, dword ptr [rdi+0x08]
cmp eax, dword ptr [rdi+0x0C]
jne SHORT G_M49016_IG27
xor eax, eax
mov dword ptr [rdi+0x08], eax
;; size=23 bbWeight=1 PerfScore 11.75
G_M49016_IG26:
mov dword ptr [rdi+0x0C], eax
;; si
保存された差分
原文
ファイルを開く
; Assembly listing for method System.Net.Http.Http3Connection+<>c__DisplayClass47_0+<<ProcessServerControlStreamAsync>g__ReadFrameEnvelopeAsync|0>d:MoveNext():this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 27 single block inlinees; 17 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T40] ( 15, 13 ) byref -> [rbp-0x90] this EH-live single-def ; V01 loc0 [V01,T60] ( 2, 2 ) int -> rsi ; V02 loc1 [V02,T12] ( 6, 99 ) ref -> rbx class-hnd exact single-def <System.Net.Http.Http3Connection+<>c__DisplayClass47_0> ;* V03 loc2 [V03 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] <System.ValueTuple`2[System.Nullable`1[long],long]> ; V04 loc3 [V04 ] ( 2, 65 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op ; V05 loc4 [V05 ] ( 3, 81 ) long -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op ; V06 loc5 [V06,T61] ( 2, 2 ) int -> rdi ld-addr-op ; V07 loc6 [V07 ] ( 12,147 ) struct (16) [rbp-0x48] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]> ; V08 loc7 [V08,T24] ( 4, 64 ) struct (16) [rbp-0x58] do-not-enreg[SFRM] multireg-ret multireg-dest must-init ld-addr-op <System.Threading.Tasks.ValueTask`1[int]> ;* V09 loc8 [V09 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1[int]> ;* V10 loc9 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Nullable`1[long]> ;* V11 loc10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Exception> ; V12 OutArgs [V12 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED> ;* V13 tmp1 [V13 ] ( 0, 0 ) int -> zero-ref "dup spill" ;* V14 tmp2 [V14 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Nullable`1[long],long]> ;* V15 tmp3 [V15 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]> ;* V16 tmp4 [V16 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBRM] multireg-ret multireg-dest "Return value temp for multireg return" <System.ReadOnlySpan`1[ubyte]> ; V17 tmp5 [V17,T25] ( 2, 64 ) ref -> rdi class-hnd exact "impAppendStmt" <System.Net.Quic.QuicStream> ;* V18 tmp6 [V18 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Memory`1[ubyte]> ;* V19 tmp7 [V19 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Threading.CancellationToken> ;* V20 tmp8 [V20 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[long]> ;* V21 tmp9 [V21 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Nullable`1[long],long]> ; V22 tmp10 [V22,T64] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <System.Exception> ; V23 tmp11 [V23,T01] ( 4,392 ) byref -> rdi "Inlining Arg" ; V24 tmp12 [V24,T16] ( 3, 96 ) byref -> rsi "Inlining Arg" ; V25 tmp13 [V25,T10] ( 4,128 ) ref -> rdx class-hnd "Inlining Arg" <ubyte[]> ; V26 tmp14 [V26,T07] ( 5,160 ) int -> rsi "Inlining Arg" ; V27 tmp15 [V27 ] ( 8,256 ) struct (16) [rbp-0x68] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]> ;* V28 tmp16 [V28 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken> ;* V29 tmp17 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]> ;* V30 tmp18 [V30 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "Inline stloc first use temp" <System.Threading.Tasks.ValueTask`1[int]> ;* V31 tmp19 [V31 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1[int]> ; V32 tmp20 [V32,T26] ( 2, 64 ) ref -> rsi class-hnd "Inlining Arg" <System.Object> ; V33 tmp21 [V33,T28] ( 2, 64 ) int -> rdi "Inlining Arg" ; V34 tmp22 [V34,T29] ( 2, 64 ) short -> rax "Inlining Arg" ;* V35 tmp23 [V35 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]> ;* V36 tmp24 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ; V37 tmp25 [V37,T22] ( 4, 64 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.Object> ; V38 tmp26 [V38,T31] ( 3, 48 ) ref -> rax class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]> ;* V39 tmp27 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[int]> ;* V40 tmp28 [V40 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V41 tmp29 [V41 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V42 tmp30 [V42 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V43 tmp31 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox> ; V44 tmp32 [V44,T21] ( 5, 80 ) int -> rax "Inline return value spill temp" ; V45 tmp33 [V45,T23] ( 4, 64 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.Object> ; V46 tmp34 [V46,T20] ( 5, 80 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]> ;* V47 tmp35 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[int]> ; V48 tmp36 [V48,T17] ( 3, 96 ) byref -> r15 "Inlining Arg" ;* V49 tmp37 [V49 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V50 tmp38 [V50 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Nullable`1[long]> ; V51 tmp39 [V51,T00] ( 4,512 ) byref -> rdi "Inlining Arg" ;* V52 tmp40 [V52 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]> ; V53 tmp41 [V53,T02] ( 4,320 ) ref -> rsi class-hnd "Inlining Arg" <ubyte[]> ; V54 tmp42 [V54,T04] ( 4,224 ) int -> rcx "Inlining Arg" ; V55 tmp43 [V55,T05] ( 4,224 ) int -> rdi "Inlining Arg" ;* V56 tmp44 [V56 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V57 tmp45 [V57 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret multireg-dest ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]> ; V58 tmp46 [V58 ] ( 3, 81 ) int -> [rbp-0x70] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" ; V59 tmp47 [V59 ] ( 2, 17 ) int -> [rbp-0x78] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" ; V60 tmp48 [V60,T11] ( 4,128 ) int -> rdi "Inlining Arg" ;* V61 tmp49 [V61 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]> ; V62 tmp50 [V62,T27] ( 2, 64 ) byref -> rsi "Inlining Arg" ; V63 tmp51 [V63,T30] ( 2, 64 ) int -> r13 "Inlining Arg" ; V64 tmp52 [V64,T41] ( 7, 14 ) byref -> rax "Inlining Arg" ;* V65 tmp53 [V65 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ; V66 tmp54 [V66,T52] ( 2, 4 ) long -> r14 "Inlining Arg" ;* V67 tmp55 [V67 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Nullable`1[long]> ; V68 tmp56 [V68,T53] ( 2, 4 ) long -> rbx "Inlining Arg" ; V69 tmp57 [V69,T44] ( 5, 10 ) byref -> r13 single-def "Inlining Arg" ; V70 tmp58 [V70,T38] ( 10, 20 ) ref -> r13 class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[System.ValueTuple`2[System.Nullable`1[long],long]]> ; V71 tmp59 [V71,T42] ( 6, 12 ) ref -> r12 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TplEventSource> ;* V72 tmp60 [V72 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.TplEventSource> ; V73 tmp61 [V73,T54] ( 2, 4 ) int -> [rbp-0x7C] spill-single-def "Inlining Arg" ;* V74 tmp62 [V74 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V75 tmp63 [V75 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V76 tmp64 [V76,T63] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" ; V77 tmp65 [V77,T55] ( 3, 3 ) ref -> rbx class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task+ContingentProperties> ; V78 tmp66 [V78,T62] ( 2, 2 ) ubyte -> rdi "Inline return value spill temp" ; V79 tmp67 [V79,T47] ( 5, 5 ) int -> [rbp-0x80] spill-single-def "Inline stloc first use temp" ; V80 tmp68 [V80,T58] ( 3, 3 ) ubyte -> rdi "Inline return value spill temp" ; V81 tmp69 [V81,T33] ( 6, 41 ) int -> [rbp-0x84] "Inline stloc first use temp" ; V82 tmp70 [V82,T37] ( 3, 24 ) int -> rax "Inline stloc first use temp" ; V83 tmp71 [V83,T56] ( 3, 3 ) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.Threading.ManualResetEventSlim> ;* V84 tmp72 [V84 ] ( 0, 0 ) ubyte -> zero-ref "field V10.hasValue (fldOffset=0x0)" P-INDEP ;* V85 tmp73 [V85 ] ( 0, 0 ) long -> zero-ref "field V10.value (fldOffset=0x8)" P-INDEP ;* V86 tmp74 [V86 ] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP ;* V87 tmp75 [V87 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP ;* V88 tmp76 [V88 ] ( 0, 0 ) byref -> zero-ref "field V16._reference (fldOffset=0x0)" P-DEP ;* V89 tmp77 [V89 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-DEP ;* V90 tmp78 [V90 ] ( 0, 0 ) ref -> zero-ref "field V18._object (fldOffset=0x0)" P-INDEP ;* V91 tmp79 [V91 ] ( 0, 0 ) int -> zero-ref "field V18._index (fldOffset=0x8)" P-INDEP ;* V92 tmp80 [V92 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0xc)" P-INDEP ;* V93 tmp81 [V93 ] ( 0, 0 ) ref -> zero-ref "field V19._source (fldOffset=0x0)" P-INDEP ;* V94 tmp82 [V94 ] ( 0, 0 ) ubyte -> zero-ref "field V20.hasValue (fldOffset=0x0)" P-INDEP ;* V95 tmp83 [V95 ] ( 0, 0 ) long -> zero-ref "field V20.value (fldOffset=0x8)" P-INDEP ; V96 tmp84 [V96,T13] ( 4, 96 ) ref -> [rbp-0x68] do-not-enreg[] "field V27._object (fldOffset=0x0)" P-DEP ; V97 tmp85 [V97,T14] ( 4, 96 ) int -> [rbp-0x60] do-not-enreg[] "field V27._index (fldOffset=0x8)" P-DEP ; V98 tmp86 [V98,T15] ( 4, 96 ) int -> [rbp-0x5C] do-not-enreg[] "field V27._length (fldOffset=0xc)" P-DEP ;* V99 tmp87 [V99 ] ( 0, 0 ) ref -> zero-ref "field V28._source (fldOffset=0x0)" P-INDEP ; V100 tmp88 [V100,T34] ( 2, 32 ) ref -> rsi "field V29._obj (fldOffset=0x0)" P-INDEP ; V101 tmp89 [V101,T35] ( 2, 32 ) int -> rdi "field V29._result (fldOffset=0x8)" P-INDEP ; V102 tmp90 [V102,T36] ( 2, 32 ) short -> rax "field V29._token (fldOffset=0xc)" P-INDEP ;* V103 tmp91 [V103,T39] ( 0, 0 ) ubyte -> zero-ref "field V29._continueOnCapturedContext (fldOffset=0xe)" P-INDEP ;* V104 tmp92 [V104 ] ( 0, 0 ) ubyte -> zero-ref "field V50.hasValue (fldOffset=0x0)" P-INDEP ;* V105 tmp93 [V105 ] ( 0, 0 ) long -> zero-ref "field V50.value (fldOffset=0x8)" P-INDEP ; V106 tmp94 [V106,T18] ( 3, 96 ) byref -> rsi "field V52._reference (fldOffset=0x0)" P-INDEP ; V107 tmp95 [V107,T19] ( 3, 96 ) int -> rax "field V52._length (fldOffset=0x8)" P-INDEP ; V108 tmp96 [V108,T09] ( 3,144 ) byref -> r14 "field V57._reference (fldOffset=0x0)" P-INDEP ; V109 tmp97 [V109,T08] ( 4,160 ) int -> r13 "field V57._length (fldOffset=0x8)" P-INDEP ;* V110 tmp98 [V110 ] ( 0, 0 ) byref -> zero-ref "field V61._reference (fldOffset=0x0)" P-INDEP ;* V111 tmp99 [V111 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP ;* V112 tmp100 [V112 ] ( 0, 0 ) ubyte -> zero-ref "field V67.hasValue (fldOffset=0x0)" P-INDEP ;* V113 tmp101 [V113 ] ( 0, 0 ) long -> zero-ref "field V67.value (fldOffset=0x8)" P-INDEP ;* V114 tmp102 [V114 ] ( 0, 0 ) long -> zero-ref "V14.[000..008)" ;* V115 tmp103 [V115 ] ( 0, 0 ) ubyte -> zero-ref "V14.[008..009)" ;* V116 tmp104 [V116 ] ( 0, 0 ) long -> zero-ref "V14.[016..024)" ;* V117 tmp105 [V117 ] ( 0, 0 ) long -> zero-ref "V21.[000..008)" ;* V118 tmp106 [V118 ] ( 0, 0 ) ubyte -> zero-ref "V21.[008..009)" ;* V119 tmp107 [V119 ] ( 0, 0 ) long -> zero-ref "V21.[016..024)" ; V120 tmp108 [V120,T48] ( 4, 4 ) long -> rbx "V03.[000..008)" ; V121 tmp109 [V121,T49] ( 4, 4 ) ubyte -> r15 "V03.[008..009)" ; V122 tmp110 [V122,T50] ( 4, 4 ) long -> r14 "V03.[016..024)" ; V123 tmp111 [V123,T45] ( 4, 8 ) byref -> rdi single-def "Spilling address for field-by-field copy" ; V124 tmp112 [V124,T46] ( 4, 8 ) byref -> rdi single-def "Spilling address for field-by-field copy" ; V125 tmp113 [V125,T51] ( 2, 4 ) ref -> rsi "argument with side effect" ; V126 cse0 [V126,T57] ( 3, 3 ) ref -> r12 "CSE #12: conservative" ; V127 cse1 [V127,T59] ( 3, 3 ) int -> rsi "CSE #13: conservative" ; V128 cse2 [V128,T06] ( 3,192 ) int -> rax "CSE #04: aggressive" ; V129 cse3 [V129,T03] ( 9,243 ) byref -> registers multi-def "CSE #03: aggressive" ; V130 cse4 [V130,T32] ( 3, 48 ) int -> rcx "CSE #02: moderate" ; V131 cse5 [V131,T43] ( 4, 11 ) byref -> r12 "CSE #14: conservative" ; ; Lcl frame size = 120 G_M49016_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 120 lea rbp, [rsp+0xA0] xor eax, eax mov qword ptr [rbp-0x68], rax vxorps xmm8, xmm8, xmm8 vmovdqu ymmword ptr [rbp-0x60], ymm8 mov qword ptr [rbp-0x40], rax mov bword ptr [rbp-0x90], rdi mov rdx, rdi ;; size=52 bbWeight=1 PerfScore 12.58 G_M49016_IG02: mov esi, dword ptr [rdx+0x08] mov rbx, gword ptr [rdx] ;; size=6 bbWeight=1 PerfScore 4.00 G_M49016_IG03: test esi, esi jne G_M49016_IG12 ;; size=8 bbWeight=1 PerfScore 1.25 G_M49016_IG04: vmovdqu xmm0, xmmword ptr [rdx+0x30] vmovdqu xmmword ptr [rbp-0x48], xmm0 ;; size=10 bbWeight=1 PerfScore 5.00 G_M49016_IG05: xor esi, esi mov qword ptr [rdx+0x30], rsi mov qword ptr [rdx+0x38], rsi mov dword ptr [rdx+0x08], -1 jmp G_M49016_IG24 align [0 bytes for IG35] ;; size=22 bbWeight=1 PerfScore 5.25 G_M49016_IG06: mov edi, dword ptr [r14+0x34] and edi, 0xD1FFAB1E cmp edi, 0xD1FFAB1E je SHORT G_M49016_IG07 mov rdi, r14 xor esi, esi mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int) call [rax]System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int) ;; size=35 bbWeight=16 PerfScore 116.00 G_M49016_IG07: mov eax, dword ptr [r14+0x38] jmp SHORT G_M49016_IG09 ;; size=6 bbWeight=16 PerfScore 64.00 G_M49016_IG08: mov eax, dword ptr [rbp-0x40] ;; size=3 bbWeight=16 PerfScore 16.00 G_M49016_IG09: test eax, eax jne SHORT G_M49016_IG11 ;; size=4 bbWeight=16 PerfScore 20.00 G_M49016_IG10: cmp byte ptr [rbx], bl add rbx, 24 mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Net.ArrayBuffer:get_ActiveLength():int:this call [rax]System.Net.ArrayBuffer:get_ActiveLength():int:this test eax, eax jne G_M49016_IG31 xor ebx, ebx xor r15d, r15d xor r14d, r14d jmp G_M49016_IG32 ;; size=42 bbWeight=1 PerfScore 10.75 G_M49016_IG11: lea rdi, bword ptr [rbx+0x18] mov r15, rdi add dword ptr [r15+0x0C], eax ;; size=11 bbWeight=16 PerfScore 60.00 G_M49016_IG12: lea r15, bword ptr [rbx+0x18] mov rdi, r15 mov rsi, gword ptr [rdi] mov eax, dword ptr [rdi+0x08] mov ecx, eax mov edi, dword ptr [rdi+0x0C] sub edi, eax test rsi, rsi je SHORT G_M49016_IG14 ;; size=25 bbWeight=64 PerfScore 544.00 G_M49016_IG13: mov eax, ecx mov r8d, edi add rax, r8 mov r8d, dword ptr [rsi+0x08] cmp rax, r8 ja G_M49016_IG30 mov ecx, ecx lea rsi, bword ptr [rsi+rcx+0x10] mov eax, edi jmp SHORT G_M49016_IG15 ;; size=32 bbWeight=16 PerfScore 120.00 G_M49016_IG14: or ecx, edi jne G_M49016_IG30 xor rsi, rsi xor eax, eax ;; size=12 bbWeight=16 PerfScore 28.00 G_M49016_IG15: mov rdi, rsi mov esi, eax mov rax, 0xD1FFAB1E ; code for System.Span`1[ubyte]:op_Implicit(System.Span`1[ubyte]):System.ReadOnlySpan`1[ubyte] call [rax]System.Span`1[ubyte]:op_Implicit(System.Span`1[ubyte]):System.ReadOnlySpan`1[ubyte] mov r14, rax mov r13d, edx mov rdi, r14 mov esi, r13d lea rdx, [rbp-0x30] lea rcx, [rbp-0x70] mov rax, 0xD1FFAB1E ; code for System.Net.Http.VariableLengthIntegerHelper:TryRead(System.ReadOnlySpan`1[ubyte],byref,byref):ubyte call [rax]System.Net.Http.VariableLengthIntegerHelper:TryRead(System.ReadOnlySpan`1[ubyte],byref,byref):ubyte test eax, eax je SHORT G_M49016_IG17 ;; size=53 bbWeight=64 PerfScore 656.00 G_M49016_IG16: mov edi, dword ptr [rbp-0x70] cmp edi, r13d ja G_M49016_IG30 mov esi, edi add rsi, r14 sub r13d, edi mov rdi, rsi mov esi, r13d lea rdx, [rbp-0x38] lea rcx, [rbp-0x78] mov rax, 0xD1FFAB1E ; code for System.Net.Http.VariableLengthIntegerHelper:TryRead(System.ReadOnlySpan`1[ubyte],byref,byref):ubyte call [rax]System.Net.Http.VariableLengthIntegerHelper:TryRead(System.ReadOnlySpan`1[ubyte],byref,byref):ubyte test eax, eax jne G_M49016_IG27 ;; size=54 bbWeight=16 PerfScore 144.00 G_M49016_IG17: xor edi, edi mov qword ptr [rbp-0x38], rdi mov rdi, r15 mov rsi, gword ptr [rdi] mov esi, dword ptr [rsi+0x08] sub esi, dword ptr [rdi+0x0C] cmp esi, 16 jge SHORT G_M49016_IG19 ;; size=23 bbWeight=64 PerfScore 624.00 G_M49016_IG18: mov esi, 16 mov rax, 0xD1FFAB1E ; code for System.Net.ArrayBuffer:EnsureAvailableSpaceCore(int):this call [rax]System.Net.ArrayBuffer:EnsureAvailableSpaceCore(int):this ;; size=17 bbWeight=4 PerfScore 14.00 G_M49016_IG19: mov rdi, gword ptr [rbx+0x08] mov rsi, r15 mov rdx, gword ptr [rsi] mov esi, dword ptr [rsi+0x0C] test rdx, rdx je SHORT G_M49016_IG20 mov ecx, dword ptr [rdx+0x08] cmp ecx, esi jb G_M49016_IG30 mov gword ptr [rbp-0x68], rdx mov dword ptr [rbp-0x60], esi sub ecx, esi mov dword ptr [rbp-0x5C], ecx jmp SHORT G_M49016_IG23 ;; size=43 bbWeight=16 PerfScore 256.00 G_M49016_IG20: test esi, esi jne G_M49016_IG30 xor rsi, rsi mov gword ptr [rbp-0x68], rsi ;; size=14 bbWeight=16 PerfScore 40.00 G_M49016_IG21: mov dword ptr [rbp-0x60], esi ;; size=3 bbWeight=16 PerfScore 16.00 G_M49016_IG22: mov dword ptr [rbp-0x5C], esi ;; size=3 bbWeight=16 PerfScore 16.00 G_M49016_IG23: mov rsi, gword ptr [rbp-0x68] mov rdx, qword ptr [rbp-0x60] xor rcx, rcx mov rax, 0xD1FFAB1E ; code for System.Net.Quic.QuicStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this cmp dword ptr [rdi], edi call [rax]System.Net.Quic.QuicStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this mov gword ptr [rbp-0x58], rax mov qword ptr [rbp-0x50], rdx mov rsi, gword ptr [rbp-0x58] mov edi, dword ptr [rbp-0x50] movsx rax, word ptr [rbp-0x4C] mov gword ptr [rbp-0x48], rsi mov dword ptr [rbp-0x40], edi mov word ptr [rbp-0x3C], ax mov byte ptr [rbp-0x3A], 0 mov r15, gword ptr [rbp-0x48] test r15, r15 je SHORT G_M49016_IG24 mov rsi, r15 mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task`1[int] mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS call [rax]CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax jne SHORT G_M49016_IG25 mov rdi, r15 movsx rsi, word ptr [rbp-0x3C] mov r11, 0xD1FFAB1E ; code for System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetStatus(short):int:this call [r11]System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetStatus(short):int:this test eax, eax je SHORT G_M49016_IG26 ;; size=123 bbWeight=16 PerfScore 552.00 G_M49016_IG24: mov r15, gword ptr [rbp-0x48] test r15, r15 je G_M49016_IG08 mov rsi, r15 mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task`1[int] mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS call [rax]CORINFO_HELP_ISINSTANCEOFCLASS mov r14, rax test r14, r14 jne G_M49016_IG06 mov rdi, r15 movsx rsi, word ptr [rbp-0x3C] mov r11, 0xD1FFAB1E ; code for System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetResult(short):int:this call [r11]System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetResult(short):int:this jmp G_M49016_IG09 ;; size=76 bbWeight=16 PerfScore 256.00 G_M49016_IG25: test dword ptr [rax+0x34], 0xD1FFAB1E jne SHORT G_M49016_IG24 ;; size=9 bbWeight=16 PerfScore 64.00 G_M49016_IG26: xor edi, edi mov rdx, bword ptr [rbp-0x90] mov dword ptr [rdx+0x08], edi lea rdi, bword ptr [rdx+0x30] lea rsi, bword ptr [rbp-0x48] call CORINFO_HELP_ASSIGN_BYREF movsq lea rsi, bword ptr [rdx+0x10] mov rdi, rdx mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.ValueTuple`2[System.Nullable`1[long],long]]:GetStateMachineBox[System.Net.Http.Http3Connection+<>c__DisplayClass47_0+<<ProcessServerControlStreamAsync>g__ReadFrameEnvelopeAsync|0>d](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.ValueTuple`2[System.Nullable`1[long],long]]:GetStateMachineBox[System.Net.Http.Http3Connection+<>c__DisplayClass47_0+<<ProcessServerControlStreamAsync>g__ReadFrameEnvelopeAsync|0>d](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox mov rsi, rax lea rdi, [rbp-0x48] mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.ValueTuple`2[System.Nullable`1[long],long]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox) call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.ValueTuple`2[System.Nullable`1[long],long]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox) jmp G_M49016_IG43 ;; size=70 bbWeight=1 PerfScore 15.25 G_M49016_IG27: mov edi, dword ptr [rbp-0x70] add edi, dword ptr [rbp-0x78] mov rax, r15 add dword ptr [rax+0x08], edi mov edi, dword ptr [rax+0x08] cmp edi, dword ptr [rax+0x0C] jne SHORT G_M49016_IG29 xor edi, edi mov dword ptr [rax+0x08], edi ;; size=25 bbWeight=1 PerfScore 13.50 G_M49016_IG28: mov dword ptr [rax+0x0C], edi ;; size=3 bbWeight=1 PerfScore 1.00 G_M49016_IG29: mov r14, qword ptr [rbp-0x30] mov rbx, qword ptr [rbp-0x38] mov r15d, 1 jmp SHORT G_M49016_IG32 ;; size=16 bbWeight=1 PerfScore 4.25 G_M49016_IG30: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException() call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException() int3 ;; size=13 bbWeight=1 PerfScore 3.50 G_M49016_IG31: mov edi, 262 xor rsi, rsi mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpProtocolException:CreateHttp3ConnectionException(long,System.String):System.Net.Http.HttpProtocolException call [rax]System.Net.Http.HttpProtocolException:CreateHttp3ConnectionException(long,System.String):System.Net.Http.HttpProtocolException mov rdi, rax call CORINFO_HELP_THROW int3 ;; size=28 bbWeight=0 PerfScore 0.00 G_M49016_IG32: mov rdi, bword ptr [rbp-0x90] mov dword ptr [rdi+0x08], -2 lea r13, bword ptr [rdi+0x10] cmp gword ptr [r13], 0 je G_M49016_IG45 mov r13, gword ptr [r13] mov rdi, 0xD1FFAB1E ; global ptr test byte ptr [rdi], 1 je G_M49016_IG48 ;; size=52 bbWeight=1 PerfScore 12.75 G_M49016_IG33: mov rdi, 0xD1FFAB1E ; data for System.Threading.Tasks.TplEventSource:Log mov r12, gword ptr [rdi] cmp byte ptr [r12+0x9D], 0 je SHORT G_M49016_IG34 mov rdi, r13 mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:get_Id():int:this cmp dword ptr [rdi], edi call [rax]System.Threading.Tasks.Task:get_Id():int:this mov dword ptr [rbp-0x7C], eax movzx rsi, byte ptr [r12+0x9D] test esi, esi je SHORT G_M49016_IG34 xor ecx, ecx mov dword ptr [rsp], ecx mov rcx, qword ptr [r12+0x80] mov edx, dword ptr [r12+0x98] mov rdi, r12 mov r8d, 4 mov r9d, 8 mov r10, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this call [r10]System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this test eax, eax je SHORT G_M49016_IG34 mov rdi, r12 mov edx, dword ptr [rbp-0x7C] mov esi, 15 mov ecx, 1 mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int):this call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int):this ;; size=138 bbWeight=1 PerfScore 32.50 G_M49016_IG34: mov eax, dword ptr [r13+0x34] mov dword ptr [rbp-0x80], eax test eax, 0xD1FFAB1E jne SHORT G_M49016_IG40 lea r12, bword ptr [r13+0x34] mov edi, eax or edi, 0xD1FFAB1E lock cmpxchg dword ptr [r12], edi cmp eax, dword ptr [rbp-0x80] je SHORT G_M49016_IG41 mov eax, dword ptr [r13+0x34] jmp SHORT G_M49016_IG36 ;; size=43 bbWeight=1 PerfScore 30.25 G_M49016_IG35: mov edi, eax mov eax, edi ;; size=4 bbWeight=8 PerfScore 4.00 G_M49016_IG36: test eax, 0xD1FFAB1E jne SHORT G_M49016_IG38 mov edi, eax or edi, 0xD1FFAB1E mov dword ptr [rbp-0x84], eax lock cmpxchg dword ptr [r12], edi mov edi, dword ptr [rbp-0x84] cmp eax, edi jne SHORT G_M49016_IG35 ;; size=37 bbWeight=8 PerfScore 184.00 G_M49016_IG37: mov edi, 1 jmp SHORT G_M49016_IG39 ;; size=7 bbWeight=1 PerfScore 2.25 G_M49016_IG38: xor edi, edi ;; size=2 bbWeight=1 PerfScore 0.25 G_M49016_IG39: test edi, edi jne SHORT G_M49016_IG41 ;; size=4 bbWeight=1 PerfScore 1.25 G_M49016_IG40: mov edi, 24 mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException(int) call [rax]System.ThrowHelper:ThrowInvalidOperationException(int) int3 ;; size=18 bbWeight=1 PerfScore 3.75 G_M49016_IG41: lea rdi, bword ptr [r13+0x38] mov qword ptr [rdi], rbx mov byte ptr [rdi+0x08], r15b mov qword ptr [rdi+0x10], r14 mov edi, dword ptr [r13+0x34] or edi, 0xD1FFAB1E xchg dword ptr [r12], edi mov rbx, gword ptr [r13+0x28] test rbx, rbx je SHORT G_M49016_IG42 mov rdi, r13 mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:NotifyParentIfPotentiallyAttachedTask():this call [rax]System.Threading.Tasks.Task:NotifyParentIfPotentiallyAttachedTask():this mov rdi, gword ptr [rbx+0x10] test rdi, rdi je SHORT G_M49016_IG42 mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task+ContingentProperties:SetEvent(System.Threading.ManualResetEventSlim) call [rax]System.Threading.Tasks.Task+ContingentProperties:SetEvent(System.Threading.ManualResetEventSlim) ;; size=74 bbWeight=1 PerfScore 39.00 G_M49016_IG42: mov rdi, r13 mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:FinishContinuations():this call [rax]System.Threading.Tasks.Task:FinishContinuations():this ;; size=15 bbWeight=1 PerfScore 3.50 G_M49016_IG43: nop ;; size=1 bbWeight=1 PerfScore 0.25 G_M49016_IG44: add rsp, 120 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25 G_M49016_IG45: lea rdi, bword ptr [r13+0x08] mov qword ptr [rdi], rbx mov byte ptr [rdi+0x08], r15b mov qword ptr [rdi+0x10], r14 mov rdi, 0xD1FFAB1E ; global ptr test byte ptr [rdi], 1 je SHORT G_M49016_IG47 ;; size=30 bbWeight=1 PerfScore 7.75 G_M49016_IG46: mov rdi, 0xD1FFAB1E ; data for System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1[System.ValueTuple`2[System.Nullable`1[long],long]]:s_syncSuccessSentinel mov rsi, gword ptr [rdi] mov rdi, r13 call CORINFO_HELP_CHECKED_ASSIGN_REF jmp SHORT G_M49016_IG43 ;; size=23 bbWeight=1 PerfScore 5.50 G_M49016_IG47: mov rdi, 0xD1FFAB1E ; System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1[System.ValueTuple`2[System.Nullable`1[long],long]] mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_GET_GCSTATIC_BASE call [rax]CORINFO_HELP_GET_GCSTATIC_BASE jmp SHORT G_M49016_IG46 ;; size=24 bbWeight=0 PerfScore 0.00 G_M49016_IG48: mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.TplEventSource mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_GET_GCSTATIC_BASE call [rax]CORINFO_HELP_GET_GCSTATIC_BASE jmp G_M49016_IG33 ;; size=27 bbWeight=0 PerfScore 0.00 G_M49016_IG49: push rbp push r15 push r14 push r13 push r12 push rbx push rax ;; size=11 bbWeight=0 PerfScore 0.00 G_M49016_IG50: mov rsi, rdi mov rdi, bword ptr [rbp-0x90] mov dword ptr [rdi+0x08], -2 add rdi, 16 mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1[System.ValueTuple`2[System.Nullable`1[long],long]]:SetException(System.Exception):this call [rax]System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1[System.ValueTuple`2[System.Nullable`1[long],long]]:SetException(System.Exception):this lea rax, G_M49016_IG43 ;; size=40 bbWeight=0 PerfScore 0.00 G_M49016_IG51: add rsp, 8 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0 PerfScore 0.00 ; Total bytes of code 1421, prolog size 52, PerfScore 4013.58, instruction count 367, allocated bytes for code 1421 (MethodHash=8ddb4087) for method System.Net.Http.Http3Connection+<>c__DisplayClass47_0+<<ProcessServerControlStreamAsync>g__ReadFrameEnvelopeAsync|0>d:MoveNext():this (FullOpts) ; ============================================================
変更されたテキスト
ファイルを開く
; Assembly listing for method System.Net.Http.Http3Connection+<>c__DisplayClass47_0+<<ProcessServerControlStreamAsync>g__ReadFrameEnvelopeAsync|0>d:MoveNext():this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 27 single block inlinees; 16 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T31] ( 15, 13 ) byref -> [rbp-0x88] this EH-live single-def ; V01 loc0 [V01,T58] ( 2, 2 ) int -> rsi ; V02 loc1 [V02,T08] ( 9, 28 ) ref -> rbx class-hnd exact single-def <System.Net.Http.Http3Connection+<>c__DisplayClass47_0> ;* V03 loc2 [V03 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[S] <System.ValueTuple`2[System.Nullable`1[long],long]> ; V04 loc3 [V04 ] ( 2, 9 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op ; V05 loc4 [V05 ] ( 2, 9 ) long -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op ; V06 loc5 [V06 ] ( 5, 21 ) int -> [rbp-0x40] do-not-enreg[X] addr-exposed ld-addr-op ; V07 loc6 [V07 ] ( 12, 39 ) struct (16) [rbp-0x50] do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]> ; V08 loc7 [V08,T20] ( 4, 16 ) struct (16) [rbp-0x60] do-not-enreg[SFRM] multireg-ret multireg-dest must-init ld-addr-op <System.Threading.Tasks.ValueTask`1[int]> ;* V09 loc8 [V09 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1[int]> ;* V10 loc9 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op <System.Nullable`1[long]> ;* V11 loc10 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def <System.Exception> ; V12 OutArgs [V12 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED> ;* V13 tmp1 [V13 ] ( 0, 0 ) int -> zero-ref "dup spill" ;* V14 tmp2 [V14 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Nullable`1[long],long]> ;* V15 tmp3 [V15 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" <System.Span`1[ubyte]> ;* V16 tmp4 [V16 ] ( 0, 0 ) struct (16) zero-ref multireg-arg multireg-ret multireg-dest "Return value temp for multireg return" <System.ReadOnlySpan`1[ubyte]> ; V17 tmp5 [V17,T24] ( 2, 16 ) ref -> rdi class-hnd exact "impAppendStmt" <System.Net.Quic.QuicStream> ;* V18 tmp6 [V18 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" <System.Memory`1[ubyte]> ;* V19 tmp7 [V19 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" <System.Threading.CancellationToken> ;* V20 tmp8 [V20 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Nullable`1[long]> ;* V21 tmp9 [V21 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[System.Nullable`1[long],long]> ; V22 tmp10 [V22,T61] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" <System.Exception> ; V23 tmp11 [V23,T06] ( 4, 32 ) byref -> rdi "Inlining Arg" ; V24 tmp12 [V24,T12] ( 3, 24 ) byref -> rsi "Inlining Arg" ; V25 tmp13 [V25,T07] ( 4, 32 ) ref -> rdx class-hnd "Inlining Arg" <ubyte[]> ; V26 tmp14 [V26,T03] ( 5, 40 ) int -> rsi "Inlining Arg" ; V27 tmp15 [V27 ] ( 8, 64 ) struct (16) [rbp-0x70] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]> ;* V28 tmp16 [V28 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken> ;* V29 tmp17 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]> ;* V30 tmp18 [V30 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "Inline stloc first use temp" <System.Threading.Tasks.ValueTask`1[int]> ;* V31 tmp19 [V31 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1[int]> ; V32 tmp20 [V32,T25] ( 2, 16 ) ref -> rsi class-hnd "Inlining Arg" <System.Object> ; V33 tmp21 [V33,T27] ( 2, 16 ) int -> rdi "Inlining Arg" ; V34 tmp22 [V34,T28] ( 2, 16 ) short -> rax "Inlining Arg" ;* V35 tmp23 [V35 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]> ;* V36 tmp24 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ; V37 tmp25 [V37,T18] ( 4, 16 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.Object> ; V38 tmp26 [V38,T34] ( 3, 12 ) ref -> rax class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]> ;* V39 tmp27 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[int]> ;* V40 tmp28 [V40 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V41 tmp29 [V41 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V42 tmp30 [V42 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V43 tmp31 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox> ; V44 tmp32 [V44,T21] ( 4, 16 ) int -> rax "Inline return value spill temp" ; V45 tmp33 [V45,T19] ( 4, 16 ) ref -> r15 class-hnd "Inline stloc first use temp" <System.Object> ; V46 tmp34 [V46,T17] ( 5, 20 ) ref -> r14 class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]> ;* V47 tmp35 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[int]> ; V48 tmp36 [V48,T13] ( 3, 24 ) byref -> rdi "Inlining Arg" ; V49 tmp37 [V49,T29] ( 2, 16 ) int -> rsi "Inlining Arg" ;* V50 tmp38 [V50 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Nullable`1[long]> ; V51 tmp39 [V51,T00] ( 4, 64 ) byref -> rdi "Inlining Arg" ;* V52 tmp40 [V52 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]> ; V53 tmp41 [V53,T01] ( 4, 48 ) ref -> rsi class-hnd "Inlining Arg" <ubyte[]> ; V54 tmp42 [V54,T04] ( 4, 40 ) int -> rcx "Inlining Arg" ; V55 tmp43 [V55,T05] ( 4, 40 ) int -> rdi "Inlining Arg" ;* V56 tmp44 [V56 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ; V57 tmp45 [V57,T32] ( 7, 14 ) byref -> rdi single-def "Inlining Arg" ; V58 tmp46 [V58,T48] ( 2, 4 ) int -> rax "Inlining Arg" ; V59 tmp47 [V59,T49] ( 2, 4 ) long -> r13 "Inlining Arg" ;* V60 tmp48 [V60 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" <System.Nullable`1[long]> ; V61 tmp49 [V61,T50] ( 2, 4 ) long -> r15 "Inlining Arg" ; V62 tmp50 [V62,T37] ( 5, 10 ) byref -> rbx single-def "Inlining Arg" ; V63 tmp51 [V63,T16] ( 10, 20 ) ref -> rbx class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[System.ValueTuple`2[System.Nullable`1[long],long]]> ; V64 tmp52 [V64,T33] ( 6, 12 ) ref -> r12 class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TplEventSource> ;* V65 tmp53 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" <System.Threading.Tasks.TplEventSource> ; V66 tmp54 [V66,T51] ( 2, 4 ) int -> [rbp-0x74] spill-single-def "Inlining Arg" ;* V67 tmp55 [V67 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V68 tmp56 [V68 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V69 tmp57 [V69,T60] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" ; V70 tmp58 [V70,T53] ( 3, 3 ) ref -> r15 class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task+ContingentProperties> ; V71 tmp59 [V71,T59] ( 2, 2 ) ubyte -> rdi "Inline return value spill temp" ; V72 tmp60 [V72,T43] ( 5, 5 ) int -> [rbp-0x78] spill-single-def "Inline stloc first use temp" ; V73 tmp61 [V73,T56] ( 3, 3 ) ubyte -> rdi "Inline return value spill temp" ; V74 tmp62 [V74,T02] ( 6, 41 ) int -> [rbp-0x7C] "Inline stloc first use temp" ; V75 tmp63 [V75,T14] ( 3, 24 ) int -> rax "Inline stloc first use temp" ; V76 tmp64 [V76,T54] ( 3, 3 ) ref -> rdi class-hnd single-def "Inline stloc first use temp" <System.Threading.ManualResetEventSlim> ;* V77 tmp65 [V77 ] ( 0, 0 ) ubyte -> zero-ref "field V10.hasValue (fldOffset=0x0)" P-INDEP ;* V78 tmp66 [V78 ] ( 0, 0 ) long -> zero-ref "field V10.value (fldOffset=0x8)" P-INDEP ;* V79 tmp67 [V79 ] ( 0, 0 ) byref -> zero-ref "field V15._reference (fldOffset=0x0)" P-INDEP ;* V80 tmp68 [V80 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP ; V81 tmp69 [V81,T26] ( 2, 16 ) byref -> rdi "field V16._reference (fldOffset=0x0)" P-INDEP ; V82 tmp70 [V82,T30] ( 2, 16 ) int -> rsi "field V16._length (fldOffset=0x8)" P-INDEP ;* V83 tmp71 [V83 ] ( 0, 0 ) ref -> zero-ref "field V18._object (fldOffset=0x0)" P-INDEP ;* V84 tmp72 [V84 ] ( 0, 0 ) int -> zero-ref "field V18._index (fldOffset=0x8)" P-INDEP ;* V85 tmp73 [V85 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0xc)" P-INDEP ;* V86 tmp74 [V86 ] ( 0, 0 ) ref -> zero-ref "field V19._source (fldOffset=0x0)" P-INDEP ;* V87 tmp75 [V87 ] ( 0, 0 ) ubyte -> zero-ref "field V20.hasValue (fldOffset=0x0)" P-INDEP ;* V88 tmp76 [V88 ] ( 0, 0 ) long -> zero-ref "field V20.value (fldOffset=0x8)" P-INDEP ; V89 tmp77 [V89,T09] ( 4, 24 ) ref -> [rbp-0x70] do-not-enreg[] "field V27._object (fldOffset=0x0)" P-DEP ; V90 tmp78 [V90,T10] ( 4, 24 ) int -> [rbp-0x68] do-not-enreg[] "field V27._index (fldOffset=0x8)" P-DEP ; V91 tmp79 [V91,T11] ( 4, 24 ) int -> [rbp-0x64] do-not-enreg[] "field V27._length (fldOffset=0xc)" P-DEP ;* V92 tmp80 [V92 ] ( 0, 0 ) ref -> zero-ref "field V28._source (fldOffset=0x0)" P-INDEP ; V93 tmp81 [V93,T40] ( 2, 8 ) ref -> rsi "field V29._obj (fldOffset=0x0)" P-INDEP ; V94 tmp82 [V94,T41] ( 2, 8 ) int -> rdi "field V29._result (fldOffset=0x8)" P-INDEP ; V95 tmp83 [V95,T42] ( 2, 8 ) short -> rax "field V29._token (fldOffset=0xc)" P-INDEP ;* V96 tmp84 [V96,T52] ( 0, 0 ) ubyte -> zero-ref "field V29._continueOnCapturedContext (fldOffset=0xe)" P-INDEP ;* V97 tmp85 [V97 ] ( 0, 0 ) ubyte -> zero-ref "field V50.hasValue (fldOffset=0x0)" P-INDEP ;* V98 tmp86 [V98 ] ( 0, 0 ) long -> zero-ref "field V50.value (fldOffset=0x8)" P-INDEP ; V99 tmp87 [V99,T22] ( 3, 16 ) byref -> rsi "field V52._reference (fldOffset=0x0)" P-INDEP ; V100 tmp88 [V100,T23] ( 3, 16 ) int -> rax "field V52._length (fldOffset=0x8)" P-INDEP ;* V101 tmp89 [V101 ] ( 0, 0 ) ubyte -> zero-ref "field V60.hasValue (fldOffset=0x0)" P-INDEP ;* V102 tmp90 [V102 ] ( 0, 0 ) long -> zero-ref "field V60.value (fldOffset=0x8)" P-INDEP ;* V103 tmp91 [V103 ] ( 0, 0 ) long -> zero-ref "V14.[000..008)" ;* V104 tmp92 [V104 ] ( 0, 0 ) ubyte -> zero-ref "V14.[008..009)" ;* V105 tmp93 [V105 ] ( 0, 0 ) long -> zero-ref "V14.[016..024)" ;* V106 tmp94 [V106 ] ( 0, 0 ) long -> zero-ref "V21.[000..008)" ;* V107 tmp95 [V107 ] ( 0, 0 ) ubyte -> zero-ref "V21.[008..009)" ;* V108 tmp96 [V108 ] ( 0, 0 ) long -> zero-ref "V21.[016..024)" ; V109 tmp97 [V109,T44] ( 4, 4 ) long -> r15 "V03.[000..008)" ; V110 tmp98 [V110,T45] ( 4, 4 ) ubyte -> r14 "V03.[008..009)" ; V111 tmp99 [V111,T46] ( 4, 4 ) long -> r13 "V03.[016..024)" ; V112 tmp100 [V112,T38] ( 4, 8 ) byref -> rdi single-def "Spilling address for field-by-field copy" ; V113 tmp101 [V113,T39] ( 4, 8 ) byref -> rdi single-def "Spilling address for field-by-field copy" ; V114 tmp102 [V114,T47] ( 2, 4 ) ref -> rsi "argument with side effect" ; V115 cse0 [V115,T55] ( 3, 3 ) ref -> r12 "CSE #12: conservative" ; V116 cse1 [V116,T57] ( 3, 3 ) int -> rsi "CSE #13: conservative" ; V117 cse2 [V117,T15] ( 3, 24 ) int -> rax "CSE #04: moderate" ; V118 cse3 [V118,T36] ( 4, 11 ) byref -> r12 "CSE #14: moderate" ; V119 cse4 [V119,T35] ( 3, 12 ) int -> rcx "CSE #03: moderate" ; ; Lcl frame size = 104 G_M49016_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 104 lea rbp, [rsp+0x90] vxorps xmm8, xmm8, xmm8 vmovdqu ymmword ptr [rbp-0x70], ymm8 vmovdqa xmmword ptr [rbp-0x50], xmm8 mov bword ptr [rbp-0x88], rdi mov rdx, rdi ;; size=47 bbWeight=1 PerfScore 12.33 G_M49016_IG02: mov esi, dword ptr [rdx+0x08] mov rbx, gword ptr [rdx] ;; size=6 bbWeight=1 PerfScore 4.00 G_M49016_IG03: test esi, esi jne G_M49016_IG12 ;; size=8 bbWeight=1 PerfScore 1.25 G_M49016_IG04: vmovdqu xmm0, xmmword ptr [rdx+0x30] vmovdqu xmmword ptr [rbp-0x50], xmm0 ;; size=10 bbWeight=1 PerfScore 5.00 G_M49016_IG05: xor esi, esi mov qword ptr [rdx+0x30], rsi mov qword ptr [rdx+0x38], rsi mov dword ptr [rdx+0x08], -1 jmp G_M49016_IG22 align [0 bytes for IG33] ;; size=22 bbWeight=1 PerfScore 5.25 G_M49016_IG06: mov edi, dword ptr [r14+0x34] and edi, 0xD1FFAB1E cmp edi, 0xD1FFAB1E je SHORT G_M49016_IG07 mov rdi, r14 xor esi, esi mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int) call [rax]System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int) ;; size=35 bbWeight=4 PerfScore 29.00 G_M49016_IG07: mov eax, dword ptr [r14+0x38] jmp SHORT G_M49016_IG09 ;; size=6 bbWeight=4 PerfScore 16.00 G_M49016_IG08: mov eax, dword ptr [rbp-0x48] ;; size=3 bbWeight=4 PerfScore 4.00 G_M49016_IG09: mov dword ptr [rbp-0x40], eax cmp dword ptr [rbp-0x40], 0 jne SHORT G_M49016_IG11 ;; size=9 bbWeight=4 PerfScore 16.00 G_M49016_IG10: cmp byte ptr [rbx], bl lea rdi, bword ptr [rbx+0x18] mov rax, 0xD1FFAB1E ; code for System.Net.ArrayBuffer:get_ActiveLength():int:this call [rax]System.Net.ArrayBuffer:get_ActiveLength():int:this test eax, eax jne G_M49016_IG29 xor r15d, r15d xor r14d, r14d xor r13d, r13d jmp G_M49016_IG30 ;; size=40 bbWeight=1 PerfScore 10.75 G_M49016_IG11: lea rdi, bword ptr [rbx+0x18] mov esi, dword ptr [rbp-0x40] add dword ptr [rdi+0x0C], esi ;; size=10 bbWeight=4 PerfScore 18.00 G_M49016_IG12: lea rdi, bword ptr [rbx+0x18] mov rsi, gword ptr [rdi] mov eax, dword ptr [rdi+0x08] mov ecx, eax mov edi, dword ptr [rdi+0x0C] sub edi, eax test rsi, rsi je SHORT G_M49016_IG14 ;; size=22 bbWeight=8 PerfScore 66.00 G_M49016_IG13: mov eax, ecx mov r8d, edi add rax, r8 mov r8d, dword ptr [rsi+0x08] cmp rax, r8 ja G_M49016_IG28 mov ecx, ecx lea rsi, bword ptr [rsi+rcx+0x10] mov eax, edi jmp SHORT G_M49016_IG15 ;; size=32 bbWeight=4 PerfScore 30.00 G_M49016_IG14: or ecx, edi jne G_M49016_IG28 xor rsi, rsi xor eax, eax ;; size=12 bbWeight=4 PerfScore 7.00 G_M49016_IG15: mov rdi, rsi mov esi, eax mov rax, 0xD1FFAB1E ; code for System.Span`1[ubyte]:op_Implicit(System.Span`1[ubyte]):System.ReadOnlySpan`1[ubyte] call [rax]System.Span`1[ubyte]:op_Implicit(System.Span`1[ubyte]):System.ReadOnlySpan`1[ubyte] mov rdi, rax mov esi, edx lea rdx, [rbp-0x30] lea rcx, [rbp-0x38] lea r8, [rbp-0x40] mov rax, 0xD1FFAB1E ; code for System.Net.Http.Http3Frame:TryReadIntegerPair(System.ReadOnlySpan`1[ubyte],byref,byref,byref):ubyte call [rax]System.Net.Http.Http3Frame:TryReadIntegerPair(System.ReadOnlySpan`1[ubyte],byref,byref,byref):ubyte test eax, eax jne G_M49016_IG25 ;; size=54 bbWeight=8 PerfScore 82.00 G_M49016_IG16: lea rdi, bword ptr [rbx+0x18] mov rsi, gword ptr [rdi] mov esi, dword ptr [rsi+0x08] sub esi, dword ptr [rdi+0x0C] cmp esi, 16 jge SHORT G_M49016_IG17 mov esi, 16 mov rax, 0xD1FFAB1E ; code for System.Net.ArrayBuffer:EnsureAvailableSpaceCore(int):this call [rax]System.Net.ArrayBuffer:EnsureAvailableSpaceCore(int):this ;; size=35 bbWeight=4 PerfScore 49.00 G_M49016_IG17: mov rdi, gword ptr [rbx+0x08] lea rsi, bword ptr [rbx+0x18] mov rdx, gword ptr [rsi] mov esi, dword ptr [rsi+0x0C] test rdx, rdx je SHORT G_M49016_IG18 mov ecx, dword ptr [rdx+0x08] cmp ecx, esi jb G_M49016_IG28 mov gword ptr [rbp-0x70], rdx mov dword ptr [rbp-0x68], esi sub ecx, esi mov dword ptr [rbp-0x64], ecx jmp SHORT G_M49016_IG21 ;; size=44 bbWeight=4 PerfScore 65.00 G_M49016_IG18: test esi, esi jne G_M49016_IG28 xor rsi, rsi mov gword ptr [rbp-0x70], rsi ;; size=14 bbWeight=4 PerfScore 10.00 G_M49016_IG19: mov dword ptr [rbp-0x68], esi ;; size=3 bbWeight=4 PerfScore 4.00 G_M49016_IG20: mov dword ptr [rbp-0x64], esi ;; size=3 bbWeight=4 PerfScore 4.00 G_M49016_IG21: mov rsi, gword ptr [rbp-0x70] mov rdx, qword ptr [rbp-0x68] xor rcx, rcx mov rax, 0xD1FFAB1E ; code for System.Net.Quic.QuicStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this cmp dword ptr [rdi], edi call [rax]System.Net.Quic.QuicStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this mov gword ptr [rbp-0x60], rax mov qword ptr [rbp-0x58], rdx mov rsi, gword ptr [rbp-0x60] mov edi, dword ptr [rbp-0x58] movsx rax, word ptr [rbp-0x54] mov gword ptr [rbp-0x50], rsi mov dword ptr [rbp-0x48], edi mov word ptr [rbp-0x44], ax mov byte ptr [rbp-0x42], 0 mov r15, gword ptr [rbp-0x50] test r15, r15 je SHORT G_M49016_IG22 mov rsi, r15 mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task`1[int] mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS call [rax]CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax jne SHORT G_M49016_IG23 mov rdi, r15 movsx rsi, word ptr [rbp-0x44] mov r11, 0xD1FFAB1E ; code for System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetStatus(short):int:this call [r11]System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetStatus(short):int:this test eax, eax je SHORT G_M49016_IG24 ;; size=123 bbWeight=4 PerfScore 138.00 G_M49016_IG22: mov r15, gword ptr [rbp-0x50] test r15, r15 je G_M49016_IG08 mov rsi, r15 mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task`1[int] mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS call [rax]CORINFO_HELP_ISINSTANCEOFCLASS mov r14, rax test r14, r14 jne G_M49016_IG06 mov rdi, r15 movsx rsi, word ptr [rbp-0x44] mov r11, 0xD1FFAB1E ; code for System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetResult(short):int:this call [r11]System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetResult(short):int:this jmp G_M49016_IG09 ;; size=76 bbWeight=4 PerfScore 64.00 G_M49016_IG23: test dword ptr [rax+0x34], 0xD1FFAB1E jne SHORT G_M49016_IG22 ;; size=9 bbWeight=4 PerfScore 16.00 G_M49016_IG24: xor edi, edi mov rdx, bword ptr [rbp-0x88] mov dword ptr [rdx+0x08], edi lea rdi, bword ptr [rdx+0x30] lea rsi, bword ptr [rbp-0x50] call CORINFO_HELP_ASSIGN_BYREF movsq lea rsi, bword ptr [rdx+0x10] mov rdi, rdx mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.ValueTuple`2[System.Nullable`1[long],long]]:GetStateMachineBox[System.Net.Http.Http3Connection+<>c__DisplayClass47_0+<<ProcessServerControlStreamAsync>g__ReadFrameEnvelopeAsync|0>d](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.ValueTuple`2[System.Nullable`1[long],long]]:GetStateMachineBox[System.Net.Http.Http3Connection+<>c__DisplayClass47_0+<<ProcessServerControlStreamAsync>g__ReadFrameEnvelopeAsync|0>d](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox mov rsi, rax lea rdi, [rbp-0x50] mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.ValueTuple`2[System.Nullable`1[long],long]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox) call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.ValueTuple`2[System.Nullable`1[long],long]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox) jmp G_M49016_IG41 ;; size=70 bbWeight=1 PerfScore 15.25 G_M49016_IG25: lea rdi, bword ptr [rbx+0x18] mov eax, dword ptr [rbp-0x40] add dword ptr [rdi+0x08], eax mov eax, dword ptr [rdi+0x08] cmp eax, dword ptr [rdi+0x0C] jne SHORT G_M49016_IG27 xor eax, eax mov dword ptr [rdi+0x08], eax ;; size=23 bbWeight=1 PerfScore 11.75 G_M49016_IG26: mov dword ptr [rdi+0x0C], eax ;; size=3 bbWeight=1 PerfScore 1.00 G_M49016_IG27: mov r13, qword ptr [rbp-0x30] mov r15, qword ptr [rbp-0x38] mov r14d, 1 jmp SHORT G_M49016_IG30 ;; size=16 bbWeight=1 PerfScore 4.25 G_M49016_IG28: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException() call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException() int3 ;; size=13 bbWeight=1 PerfScore 3.50 G_M49016_IG29: mov edi, 262 xor rsi, rsi mov rax, 0xD1FFAB1E ; code for System.Net.Http.HttpProtocolException:CreateHttp3ConnectionException(long,System.String):System.Net.Http.HttpProtocolException call [rax]System.Net.Http.HttpProtocolException:CreateHttp3ConnectionException(long,System.String):System.Net.Http.HttpProtocolException mov rdi, rax call CORINFO_HELP_THROW int3 ;; size=28 bbWeight=0 PerfScore 0.00 G_M49016_IG30: mov rdi, bword ptr [rbp-0x88] mov dword ptr [rdi+0x08], -2 lea rbx, bword ptr [rdi+0x10] cmp gword ptr [rbx], 0 je G_M49016_IG43 mov rbx, gword ptr [rbx] mov rdi, 0xD1FFAB1E ; global ptr test byte ptr [rdi], 1 je G_M49016_IG46 ;; size=50 bbWeight=1 PerfScore 12.75 G_M49016_IG31: mov rdi, 0xD1FFAB1E ; data for System.Threading.Tasks.TplEventSource:Log mov r12, gword ptr [rdi] cmp byte ptr [r12+0x9D], 0 je SHORT G_M49016_IG32 mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:get_Id():int:this cmp dword ptr [rdi], edi call [rax]System.Threading.Tasks.Task:get_Id():int:this mov dword ptr [rbp-0x74], eax movzx rsi, byte ptr [r12+0x9D] test esi, esi je SHORT G_M49016_IG32 xor ecx, ecx mov dword ptr [rsp], ecx mov rcx, qword ptr [r12+0x80] mov edx, dword ptr [r12+0x98] mov rdi, r12 mov r8d, 4 mov r9d, 8 mov r10, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this call [r10]System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this test eax, eax je SHORT G_M49016_IG32 mov rdi, r12 mov edx, dword ptr [rbp-0x74] mov esi, 15 mov ecx, 1 mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int):this call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int):this ;; size=138 bbWeight=1 PerfScore 32.50 G_M49016_IG32: mov eax, dword ptr [rbx+0x34] mov dword ptr [rbp-0x78], eax test eax, 0xD1FFAB1E jne SHORT G_M49016_IG38 lea r12, bword ptr [rbx+0x34] mov edi, eax or edi, 0xD1FFAB1E lock cmpxchg dword ptr [r12], edi cmp eax, dword ptr [rbp-0x78] je SHORT G_M49016_IG39 mov eax, dword ptr [rbx+0x34] jmp SHORT G_M49016_IG34 ;; size=41 bbWeight=1 PerfScore 30.25 G_M49016_IG33: mov edi, eax mov eax, edi ;; size=4 bbWeight=8 PerfScore 4.00 G_M49016_IG34: test eax, 0xD1FFAB1E jne SHORT G_M49016_IG36 mov edi, eax or edi, 0xD1FFAB1E mov dword ptr [rbp-0x7C], eax lock cmpxchg dword ptr [r12], edi mov edi, dword ptr [rbp-0x7C] cmp eax, edi jne SHORT G_M49016_IG33 ;; size=31 bbWeight=8 PerfScore 184.00 G_M49016_IG35: mov edi, 1 jmp SHORT G_M49016_IG37 ;; size=7 bbWeight=1 PerfScore 2.25 G_M49016_IG36: xor edi, edi ;; size=2 bbWeight=1 PerfScore 0.25 G_M49016_IG37: test edi, edi jne SHORT G_M49016_IG39 ;; size=4 bbWeight=1 PerfScore 1.25 G_M49016_IG38: mov edi, 24 mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException(int) call [rax]System.ThrowHelper:ThrowInvalidOperationException(int) int3 ;; size=18 bbWeight=1 PerfScore 3.75 G_M49016_IG39: lea rdi, bword ptr [rbx+0x38] mov qword ptr [rdi], r15 mov byte ptr [rdi+0x08], r14b mov qword ptr [rdi+0x10], r13 mov edi, dword ptr [rbx+0x34] or edi, 0xD1FFAB1E xchg dword ptr [r12], edi mov r15, gword ptr [rbx+0x28] test r15, r15 je SHORT G_M49016_IG40 mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:NotifyParentIfPotentiallyAttachedTask():this call [rax]System.Threading.Tasks.Task:NotifyParentIfPotentiallyAttachedTask():this mov rdi, gword ptr [r15+0x10] test rdi, rdi je SHORT G_M49016_IG40 mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task+ContingentProperties:SetEvent(System.Threading.ManualResetEventSlim) call [rax]System.Threading.Tasks.Task+ContingentProperties:SetEvent(System.Threading.ManualResetEventSlim) ;; size=73 bbWeight=1 PerfScore 39.00 G_M49016_IG40: mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:FinishContinuations():this call [rax]System.Threading.Tasks.Task:FinishContinuations():this ;; size=15 bbWeight=1 PerfScore 3.50 G_M49016_IG41: nop ;; size=1 bbWeight=1 PerfScore 0.25 G_M49016_IG42: add rsp, 104 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25 G_M49016_IG43: lea rdi, bword ptr [rbx+0x08] mov qword ptr [rdi], r15 mov byte ptr [rdi+0x08], r14b mov qword ptr [rdi+0x10], r13 mov rdi, 0xD1FFAB1E ; global ptr test byte ptr [rdi], 1 je SHORT G_M49016_IG45 ;; size=30 bbWeight=1 PerfScore 7.75 G_M49016_IG44: mov rdi, 0xD1FFAB1E ; data for System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1[System.ValueTuple`2[System.Nullable`1[long],long]]:s_syncSuccessSentinel mov rsi, gword ptr [rdi] mov rdi, rbx call CORINFO_HELP_CHECKED_ASSIGN_REF jmp SHORT G_M49016_IG41 ;; size=23 bbWeight=1 PerfScore 5.50 G_M49016_IG45: mov rdi, 0xD1FFAB1E ; System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1[System.ValueTuple`2[System.Nullable`1[long],long]] mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_GET_GCSTATIC_BASE call [rax]CORINFO_HELP_GET_GCSTATIC_BASE jmp SHORT G_M49016_IG44 ;; size=24 bbWeight=0 PerfScore 0.00 G_M49016_IG46: mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.TplEventSource mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_GET_GCSTATIC_BASE call [rax]CORINFO_HELP_GET_GCSTATIC_BASE jmp G_M49016_IG31 ;; size=27 bbWeight=0 PerfScore 0.00 G_M49016_IG47: push rbp push r15 push r14 push r13 push r12 push rbx push rax ;; size=11 bbWeight=0 PerfScore 0.00 G_M49016_IG48: mov rsi, rdi mov rdi, bword ptr [rbp-0x88] mov dword ptr [rdi+0x08], -2 add rdi, 16 mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1[System.ValueTuple`2[System.Nullable`1[long],long]]:SetException(System.Exception):this call [rax]System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1[System.ValueTuple`2[System.Nullable`1[long],long]]:SetException(System.Exception):this lea rax, G_M49016_IG41 ;; size=40 bbWeight=0 PerfScore 0.00 G_M49016_IG49: add rsp, 8 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0 PerfScore 0.00 ; Total bytes of code 1345, prolog size 47, PerfScore 1023.58, instruction count 346, allocated bytes for code 1345 (MethodHash=8ddb4087) for method System.Net.Http.Http3Connection+<>c__DisplayClass47_0+<<ProcessServerControlStreamAsync>g__ReadFrameEnvelopeAsync|0>d:MoveNext():this (FullOpts) ; ============================================================
違いを見つける