Diff
checker
テキスト
テキスト
画像
ドキュメント
Excel
フォルダ
Legal
Enterprise
デスクトップ
料金
ログイン
Diffchecker デスクトップのダウンロード
テキスト比較
2 つのテキスト ファイルの違いを見つける
ツール
履歴
ライブエディター
空白の変更を非表示
未変更行を折りたたむ
折り返しなし
レイアウト
分割
統合
比較精度
スマート
単語
文字
テキストスタイル
外観を変更
シンタックスハイライト
構文を選択
無視
テキスト変換
最初の差分へ移動
入力を編集
Diffchecker Desktop
Diffcheckerを実行する最も安全な方法。Diffchecker Desktopアプリを入手:あなたの差分はコンピューターから出ることはありません!
Desktopを入手
Untitled Diff
作成日
5 年前
差分は期限切れになりません
クリア
エクスポート
共有
説明
17 削除
行
合計
削除
文字
合計
削除
この機能を引き続き使用するには、アップグレードしてください
Diff
checker
Pro
価格を見る
267 行
すべてコピー
11 追加
行
合計
追加
文字
合計
追加
この機能を引き続き使用するには、アップグレードしてください
Diff
checker
Pro
価格を見る
263 行
すべてコピー
; Assembly listing for method pow0:Main():int
; Assembly listing for method pow0:Main():int
; Emitting BLENDED_CODE for X64 CPU with AVX - Unix
; Emitting BLENDED_CODE for X64 CPU with AVX - Unix
; optimized code
; optimized code
; rbp based frame
; rbp based frame
; fully interruptible
; fully interruptible
; No matching PGO data
; No matching PGO data
; Final local variable assignments
; Final local variable assignments
;
;
; V00 loc0 [V00,T01] ( 4, 4 ) bool -> rbx
; V00 loc0 [V00,T01] ( 4, 4 ) bool -> rbx
; V01 loc1 [V01,T07] ( 9, 23.50) double -> [rbp-18H]
; V01 loc1 [V01,T07] ( 9, 23.50) double -> [rbp-18H]
; V02 loc2 [V02,T10] ( 5, 10.50) double -> [rbp-20H]
; V02 loc2 [V02,T10] ( 5, 10.50) double -> [rbp-20H]
コピー
コピー済み
コピー
コピー済み
; V03 loc3 [V03,T1
4
] ( 3, 2.50) double -> [rbp-28H] spill-single-def
; V03 loc3 [V03,T1
3
] ( 3, 2.50) double -> [rbp-28H] spill-single-def
; V04 loc4 [V04,T06] ( 24, 63.50) double -> [rbp-30H]
; V04 loc4 [V04,T06] ( 24, 63.50) double -> [rbp-30H]
;# V05 OutArgs [V05 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace"
;# V05 OutArgs [V05 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace"
; V06 tmp1 [V06,T08] ( 2, 16 ) double -> mm1 "dup spill"
; V06 tmp1 [V06,T08] ( 2, 16 ) double -> mm1 "dup spill"
; V07 tmp2 [V07,T00] ( 3, 12 ) ref -> rax class-hnd exact "Single-def Box Helper"
; V07 tmp2 [V07,T00] ( 3, 12 ) ref -> rax class-hnd exact "Single-def Box Helper"
; V08 tmp3 [V08,T02] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V08 tmp3 [V08,T02] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V09 tmp4 [V09,T03] ( 3, 3 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper"
; V09 tmp4 [V09,T03] ( 3, 3 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper"
; V10 tmp5 [V10,T04] ( 3, 3 ) ref -> r14 class-hnd exact single-def "Single-def Box Helper"
; V10 tmp5 [V10,T04] ( 3, 3 ) ref -> r14 class-hnd exact single-def "Single-def Box Helper"
; V11 tmp6 [V11,T05] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V11 tmp6 [V11,T05] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper"
; V12 cse0 [V12,T09] ( 5, 11 ) double -> [rbp-38H] "CSE - aggressive"
; V12 cse0 [V12,T09] ( 5, 11 ) double -> [rbp-38H] "CSE - aggressive"
; V13 cse1 [V13,T11] ( 2, 5 ) double -> [rbp-40H] "CSE - aggressive"
; V13 cse1 [V13,T11] ( 2, 5 ) double -> [rbp-40H] "CSE - aggressive"
; V14 cse2 [V14,T12] ( 2, 5 ) double -> [rbp-48H] "CSE - aggressive"
; V14 cse2 [V14,T12] ( 2, 5 ) double -> [rbp-48H] "CSE - aggressive"
コピー
コピー済み
コピー
コピー済み
; V15 cse3 [V15,T13] ( 2, 5 ) double -> [rbp-50H] "CSE - aggressive"
;
;
; Lcl frame size = 64
; Lcl frame size = 64
G_M29627_IG01: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
G_M29627_IG01: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG
push rbp
push rbp
push r14
push r14
push rbx
push rbx
sub rsp, 64
sub rsp, 64
vzeroupper
vzeroupper
lea rbp, [rsp+50H]
lea rbp, [rsp+50H]
;; bbWeight=1 PerfScore 4.75
;; bbWeight=1 PerfScore 4.75
G_M29627_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
G_M29627_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
mov ebx, 1
mov ebx, 1
vxorps xmm0, xmm0
vxorps xmm0, xmm0
vmovsd qword ptr [rbp-20H], xmm0
vmovsd qword ptr [rbp-20H], xmm0
vmovsd xmm1, qword ptr [reloc @RWD00]
vmovsd xmm1, qword ptr [reloc @RWD00]
vmovsd xmm2, qword ptr [reloc @RWD08]
vmovsd xmm2, qword ptr [reloc @RWD08]
vmovsd qword ptr [rbp-40H], xmm2
vmovsd qword ptr [rbp-40H], xmm2
vmovsd xmm3, qword ptr [reloc @RWD16]
vmovsd xmm3, qword ptr [reloc @RWD16]
align [0 bytes]
align [0 bytes]
;; bbWeight=1 PerfScore 7.58
;; bbWeight=1 PerfScore 7.58
G_M29627_IG03: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, loop=IG03, byref, isz
G_M29627_IG03: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, loop=IG03, byref, isz
vmovsd qword ptr [rbp-30H], xmm1
vmovsd qword ptr [rbp-30H], xmm1
vmovaps xmm0, xmm1
vmovaps xmm0, xmm1
vmovsd qword ptr [rbp-38H], xmm3
vmovsd qword ptr [rbp-38H], xmm3
vmovaps xmm1, xmm3
vmovaps xmm1, xmm3
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcr arg pop 0
; gcr arg pop 0
vaddsd xmm0, xmm0, qword ptr [rbp-20H]
vaddsd xmm0, xmm0, qword ptr [rbp-20H]
vmovsd xmm1, qword ptr [rbp-30H]
vmovsd xmm1, qword ptr [rbp-30H]
vaddsd xmm1, xmm1, qword ptr [reloc @RWD00]
vaddsd xmm1, xmm1, qword ptr [reloc @RWD00]
vmovsd xmm2, qword ptr [rbp-40H]
vmovsd xmm2, qword ptr [rbp-40H]
vucomisd xmm2, xmm1
vucomisd xmm2, xmm1
vmovsd qword ptr [rbp-20H], xmm0
vmovsd qword ptr [rbp-20H], xmm0
vmovsd qword ptr [rbp-40H], xmm2
vmovsd qword ptr [rbp-40H], xmm2
vmovsd xmm3, qword ptr [rbp-38H]
vmovsd xmm3, qword ptr [rbp-38H]
ja SHORT G_M29627_IG03
ja SHORT G_M29627_IG03
;; bbWeight=4 PerfScore 86.00
;; bbWeight=4 PerfScore 86.00
G_M29627_IG04: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
G_M29627_IG04: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
vsubsd xmm1, xmm1, qword ptr [reloc @RWD00]
vsubsd xmm1, xmm1, qword ptr [reloc @RWD00]
vaddsd xmm2, xmm1, qword ptr [reloc @RWD00]
vaddsd xmm2, xmm1, qword ptr [reloc @RWD00]
vmulsd xmm2, xmm1, xmm2
vmulsd xmm2, xmm1, xmm2
vmovsd qword ptr [rbp-30H], xmm1
vmovsd qword ptr [rbp-30H], xmm1
vaddsd xmm3, xmm1, xmm1
vaddsd xmm3, xmm1, xmm1
vaddsd xmm3, xmm3, qword ptr [reloc @RWD00]
vaddsd xmm3, xmm3, qword ptr [reloc @RWD00]
vmulsd xmm2, xmm2, xmm3
vmulsd xmm2, xmm2, xmm3
vdivsd xmm2, xmm2, qword ptr [reloc @RWD24]
vdivsd xmm2, xmm2, qword ptr [reloc @RWD24]
vmovsd qword ptr [rbp-28H], xmm2
vmovsd qword ptr [rbp-28H], xmm2
vmovsd xmm0, qword ptr [rbp-20H]
vmovsd xmm0, qword ptr [rbp-20H]
vucomisd xmm0, xmm2
vucomisd xmm0, xmm2
jp SHORT G_M29627_IG05
jp SHORT G_M29627_IG05
je SHORT G_M29627_IG06
je SHORT G_M29627_IG06
;; bbWeight=1 PerfScore 44.00
;; bbWeight=1 PerfScore 44.00
G_M29627_IG05: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M29627_IG05: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov rdi, 0xD1FFAB1E ; hackishClassName
mov rdi, 0xD1FFAB1E ; hackishClassName
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
; gcrRegs +[rax]
; gcr arg pop 0
; gcr arg pop 0
mov rbx, rax
mov rbx, rax
; gcrRegs +[rbx]
; gcrRegs +[rbx]
vmovsd xmm1, qword ptr [rbp-30H]
vmovsd xmm1, qword ptr [rbp-30H]
vmovsd qword ptr [rbx+8], xmm1
vmovsd qword ptr [rbx+8], xmm1
mov rdi, 0xD1FFAB1E ; hackishClassName
mov rdi, 0xD1FFAB1E ; hackishClassName
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
; gcr arg pop 0
; gcr arg pop 0
mov r14, rax
mov r14, rax
; gcrRegs +[r14]
; gcrRegs +[r14]
vmovsd xmm0, qword ptr [rbp-20H]
vmovsd xmm0, qword ptr [rbp-20H]
vmovsd qword ptr [r14+8], xmm0
vmovsd qword ptr [r14+8], xmm0
mov rdi, 0xD1FFAB1E ; hackishClassName
mov rdi, 0xD1FFAB1E ; hackishClassName
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
; gcr arg pop 0
; gcr arg pop 0
vmovsd xmm2, qword ptr [rbp-28H]
vmovsd xmm2, qword ptr [rbp-28H]
vmovsd qword ptr [rax+8], xmm2
vmovsd qword ptr [rax+8], xmm2
mov rsi, rbx
mov rsi, rbx
; gcrRegs +[rsi]
; gcrRegs +[rsi]
mov rdx, r14
mov rdx, r14
; gcrRegs +[rdx]
; gcrRegs +[rdx]
mov rcx, rax
mov rcx, rax
; gcrRegs +[rcx]
; gcrRegs +[rcx]
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, gword ptr [rdi]
mov rdi, gword ptr [rdi]
; gcrRegs +[rdi]
; gcrRegs +[rdi]
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcrRegs -[rax rcx rdx rbx rsi rdi r14]
; gcrRegs -[rax rcx rdx rbx rsi rdi r14]
; gcr arg pop 0
; gcr arg pop 0
xor ebx, ebx
xor ebx, ebx
;; bbWeight=0.50 PerfScore 8.00
;; bbWeight=0.50 PerfScore 8.00
G_M29627_IG06: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M29627_IG06: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
vmovsd xmm1, qword ptr [reloc @RWD00]
vmovsd xmm1, qword ptr [reloc @RWD00]
vmovsd qword ptr [rbp-18H], xmm1
vmovsd qword ptr [rbp-18H], xmm1
vmovsd xmm0, qword ptr [reloc @RWD00]
vmovsd xmm0, qword ptr [reloc @RWD00]
コピー
コピー済み
コピー
コピー済み
vmovsd xmm2, qword ptr [reloc @RWD32]
;; bbWeight=1 PerfScore
4.50
vmovsd qword ptr [rbp-50H], xmm2
;; bbWeight=1 PerfScore
7.00
G_M29627_IG07: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
G_M29627_IG07: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
vxorps xmm1, xmm1
vxorps xmm1, xmm1
vmovsd qword ptr [rbp-30H], xmm0
vmovsd qword ptr [rbp-30H], xmm0
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcr arg pop 0
; gcr arg pop 0
vaddsd xmm0, xmm0, qword ptr [rbp-30H]
vaddsd xmm0, xmm0, qword ptr [rbp-30H]
vmovsd xmm1, qword ptr [rbp-18H]
vmovsd xmm1, qword ptr [rbp-18H]
vaddsd xmm1, xmm1, qword ptr [reloc @RWD00]
vaddsd xmm1, xmm1, qword ptr [reloc @RWD00]
vmovsd qword ptr [rbp-30H], xmm0
vmovsd qword ptr [rbp-30H], xmm0
vmovsd qword ptr [rbp-18H], xmm1
vmovsd qword ptr [rbp-18H], xmm1
vucomisd xmm0, xmm1
vucomisd xmm0, xmm1
jp SHORT G_M29627_IG08
jp SHORT G_M29627_IG08
je SHORT G_M29627_IG09
je SHORT G_M29627_IG09
;; bbWeight=4 PerfScore 71.33
;; bbWeight=4 PerfScore 71.33
G_M29627_IG08: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M29627_IG08: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov rdi, 0xD1FFAB1E ; hackishClassName
mov rdi, 0xD1FFAB1E ; hackishClassName
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
; gcrRegs +[rax]
; gcr arg pop 0
; gcr arg pop 0
vmovsd xmm0, qword ptr [rbp-30H]
vmovsd xmm0, qword ptr [rbp-30H]
vmovsd qword ptr [rax+8], xmm0
vmovsd qword ptr [rax+8], xmm0
mov rsi, rax
mov rsi, rax
; gcrRegs +[rsi]
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, gword ptr [rdi]
mov rdi, gword ptr [rdi]
; gcrRegs +[rdi]
; gcrRegs +[rdi]
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcrRegs -[rax rsi rdi]
; gcrRegs -[rax rsi rdi]
; gcr arg pop 0
; gcr arg pop 0
xor ebx, ebx
xor ebx, ebx
;; bbWeight=2 PerfScore 15.00
;; bbWeight=2 PerfScore 15.00
G_M29627_IG09: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M29627_IG09: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
コピー
コピー済み
コピー
コピー済み
vmovsd xmm2, qword ptr [reloc @RWD32]
vmovsd xmm0, qword ptr [rbp-30H]
vmovsd xmm0, qword ptr [rbp-30H]
コピー
コピー済み
コピー
コピー済み
vmovsd xmm2, qword ptr [rbp-50H]
vucomisd xmm2, xmm0
vucomisd xmm2, xmm0
コピー
コピー済み
コピー
コピー済み
vmovsd qword ptr [rbp-50H], xmm2
ja
G_M29627_IG07
ja
SHORT
G_M29627_IG07
;; bbWeight=4 PerfScore
24
.00
;; bbWeight=4 PerfScore
26
.00
G_M29627_IG10: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
, align
G_M29627_IG10: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
vmovsd xmm3, qword ptr [reloc @RWD16]
vmovsd xmm3, qword ptr [reloc @RWD16]
vmovsd qword ptr [rbp-18H], xmm3
vmovsd qword ptr [rbp-18H], xmm3
vmovsd xmm0, qword ptr [reloc @RWD00]
vmovsd xmm0, qword ptr [reloc @RWD00]
vmovsd qword ptr [rbp-30H], xmm0
vmovsd qword ptr [rbp-30H], xmm0
vmovsd xmm2, qword ptr [reloc @RWD40]
vmovsd xmm2, qword ptr [reloc @RWD40]
vmovsd qword ptr [rbp-48H], xmm2
vmovsd qword ptr [rbp-48H], xmm2
コピー
コピー済み
コピー
コピー済み
align [
0
bytes]
align [
3
bytes]
;; bbWeight=1 PerfScore 7.
50
;; bbWeight=1 PerfScore 7.
75
G_M29627_IG11: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, loop=IG11, byref, isz
G_M29627_IG11: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, loop=IG11, byref, isz
vmovsd qword ptr [rbp-38H], xmm3
vmovsd qword ptr [rbp-38H], xmm3
vmovaps xmm0, xmm3
vmovaps xmm0, xmm3
vmovsd xmm1, qword ptr [rbp-30H]
vmovsd xmm1, qword ptr [rbp-30H]
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcr arg pop 0
; gcr arg pop 0
vmulsd xmm1, xmm0, qword ptr [rbp-18H]
vmulsd xmm1, xmm0, qword ptr [rbp-18H]
vmovsd xmm0, qword ptr [rbp-30H]
vmovsd xmm0, qword ptr [rbp-30H]
vaddsd xmm0, xmm0, qword ptr [reloc @RWD00]
vaddsd xmm0, xmm0, qword ptr [reloc @RWD00]
vmovsd xmm2, qword ptr [rbp-48H]
vmovsd xmm2, qword ptr [rbp-48H]
vucomisd xmm2, xmm0
vucomisd xmm2, xmm0
vmovsd qword ptr [rbp-30H], xmm0
vmovsd qword ptr [rbp-30H], xmm0
vmovsd qword ptr [rbp-18H], xmm1
vmovsd qword ptr [rbp-18H], xmm1
vmovsd qword ptr [rbp-48H], xmm2
vmovsd qword ptr [rbp-48H], xmm2
vmovsd xmm3, qword ptr [rbp-38H]
vmovsd xmm3, qword ptr [rbp-38H]
ja SHORT G_M29627_IG11
ja SHORT G_M29627_IG11
;; bbWeight=4 PerfScore 93.00
;; bbWeight=4 PerfScore 93.00
G_M29627_IG12: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
G_M29627_IG12: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
vmovsd xmm1, qword ptr [rbp-18H]
vmovsd xmm1, qword ptr [rbp-18H]
vucomisd xmm1, qword ptr [reloc @RWD48]
vucomisd xmm1, qword ptr [reloc @RWD48]
jp SHORT G_M29627_IG13
jp SHORT G_M29627_IG13
je SHORT G_M29627_IG14
je SHORT G_M29627_IG14
;; bbWeight=1 PerfScore 5.00
;; bbWeight=1 PerfScore 5.00
G_M29627_IG13: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
G_M29627_IG13: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
mov rdi, 0xD1FFAB1E ; hackishClassName
mov rdi, 0xD1FFAB1E ; hackishClassName
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
; gcrRegs +[rax]
; gcr arg pop 0
; gcr arg pop 0
vmovsd xmm1, qword ptr [rbp-18H]
vmovsd xmm1, qword ptr [rbp-18H]
vmovsd qword ptr [rax+8], xmm1
vmovsd qword ptr [rax+8], xmm1
mov rsi, rax
mov rsi, rax
; gcrRegs +[rsi]
; gcrRegs +[rsi]
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, gword ptr [rdi]
mov rdi, gword ptr [rdi]
; gcrRegs +[rdi]
; gcrRegs +[rdi]
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcrRegs -[rax rsi rdi]
; gcrRegs -[rax rsi rdi]
; gcr arg pop 0
; gcr arg pop 0
jmp SHORT G_M29627_IG16
jmp SHORT G_M29627_IG16
;; bbWeight=0.50 PerfScore 4.62
;; bbWeight=0.50 PerfScore 4.62
G_M29627_IG14: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
G_M29627_IG14: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz
test ebx, ebx
test ebx, ebx
je SHORT G_M29627_IG16
je SHORT G_M29627_IG16
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, gword ptr [rdi]
mov rdi, gword ptr [rdi]
; gcrRegs +[rdi]
; gcrRegs +[rdi]
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcrRegs -[rdi]
; gcrRegs -[rdi]
; gcr arg pop 0
; gcr arg pop 0
mov eax, 100
mov eax, 100
;; bbWeight=0.50 PerfScore 2.38
;; bbWeight=0.50 PerfScore 2.38
G_M29627_IG15: ; , epilog, nogc, extend
G_M29627_IG15: ; , epilog, nogc, extend
add rsp, 64
add rsp, 64
pop rbx
pop rbx
pop r14
pop r14
pop rbp
pop rbp
ret
ret
;; bbWeight=0.50 PerfScore 1.38
;; bbWeight=0.50 PerfScore 1.38
G_M29627_IG16: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
G_M29627_IG16: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, 0xD1FFAB1E ; string handle
mov rdi, gword ptr [rdi]
mov rdi, gword ptr [rdi]
; gcrRegs +[rdi]
; gcrRegs +[rdi]
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcrRegs -[rdi]
; gcrRegs -[rdi]
; gcr arg pop 0
; gcr arg pop 0
mov eax, 1
mov eax, 1
;; bbWeight=0.50 PerfScore 1.75
;; bbWeight=0.50 PerfScore 1.75
G_M29627_IG17: ; , epilog, nogc, extend
G_M29627_IG17: ; , epilog, nogc, extend
add rsp, 64
add rsp, 64
pop rbx
pop rbx
pop r14
pop r14
pop rbp
pop rbp
ret
ret
;; bbWeight=0.50 PerfScore 1.38
;; bbWeight=0.50 PerfScore 1.38
RWD00 dq 3FF0000000000000h ; 1
RWD00 dq 3FF0000000000000h ; 1
RWD08 dq 407F400000000000h ; 500
RWD08 dq 407F400000000000h ; 500
RWD16 dq 4000000000000000h ; 2
RWD16 dq 4000000000000000h ; 2
RWD24 dq 4018000000000000h ; 6
RWD24 dq 4018000000000000h ; 6
RWD32 dq 40F86A0000000000h ; 100000
RWD32 dq 40F86A0000000000h ; 100000
RWD40 dq 4034000000000000h ; 20
RWD40 dq 4034000000000000h ; 20
RWD48 dq 4BE0000000000000h ; 3.13855087e+57
RWD48 dq 4BE0000000000000h ; 3.13855087e+57
コピー
コピー済み
コピー
コピー済み
; Total bytes of code
697
, prolog size 16, PerfScore
464.27
, instruction count 14
6
, allocated bytes for code
776
(MethodHash=4bde8c44) for method pow0:Main():int
; Total bytes of code
745
, prolog size 16, PerfScore
458.52
, instruction count 14
3
, allocated bytes for code
761
(MethodHash=4bde8c44) for method pow0:Main():int
; ============================================================
; ============================================================
Unwind Info:
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Version : 1
Flags : 0x00
Flags : 0x00
SizeOfProlog : 0x08
SizeOfProlog : 0x08
CountOfUnwindCodes: 4
CountOfUnwindCodes: 4
FrameRegister : none (0)
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
UnwindCodes :
CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 7 * 8 + 8 = 64 = 0x40
CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 7 * 8 + 8 = 64 = 0x40
CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
保存された差分
原文
ファイルを開く
; Assembly listing for method pow0:Main():int ; Emitting BLENDED_CODE for X64 CPU with AVX - Unix ; optimized code ; rbp based frame ; fully interruptible ; No matching PGO data ; Final local variable assignments ; ; V00 loc0 [V00,T01] ( 4, 4 ) bool -> rbx ; V01 loc1 [V01,T07] ( 9, 23.50) double -> [rbp-18H] ; V02 loc2 [V02,T10] ( 5, 10.50) double -> [rbp-20H] ; V03 loc3 [V03,T14] ( 3, 2.50) double -> [rbp-28H] spill-single-def ; V04 loc4 [V04,T06] ( 24, 63.50) double -> [rbp-30H] ;# V05 OutArgs [V05 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace" ; V06 tmp1 [V06,T08] ( 2, 16 ) double -> mm1 "dup spill" ; V07 tmp2 [V07,T00] ( 3, 12 ) ref -> rax class-hnd exact "Single-def Box Helper" ; V08 tmp3 [V08,T02] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V09 tmp4 [V09,T03] ( 3, 3 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" ; V10 tmp5 [V10,T04] ( 3, 3 ) ref -> r14 class-hnd exact single-def "Single-def Box Helper" ; V11 tmp6 [V11,T05] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V12 cse0 [V12,T09] ( 5, 11 ) double -> [rbp-38H] "CSE - aggressive" ; V13 cse1 [V13,T11] ( 2, 5 ) double -> [rbp-40H] "CSE - aggressive" ; V14 cse2 [V14,T12] ( 2, 5 ) double -> [rbp-48H] "CSE - aggressive" ; V15 cse3 [V15,T13] ( 2, 5 ) double -> [rbp-50H] "CSE - aggressive" ; ; Lcl frame size = 64 G_M29627_IG01: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG push rbp push r14 push rbx sub rsp, 64 vzeroupper lea rbp, [rsp+50H] ;; bbWeight=1 PerfScore 4.75 G_M29627_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz mov ebx, 1 vxorps xmm0, xmm0 vmovsd qword ptr [rbp-20H], xmm0 vmovsd xmm1, qword ptr [reloc @RWD00] vmovsd xmm2, qword ptr [reloc @RWD08] vmovsd qword ptr [rbp-40H], xmm2 vmovsd xmm3, qword ptr [reloc @RWD16] align [0 bytes] ;; bbWeight=1 PerfScore 7.58 G_M29627_IG03: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, loop=IG03, byref, isz vmovsd qword ptr [rbp-30H], xmm1 vmovaps xmm0, xmm1 vmovsd qword ptr [rbp-38H], xmm3 vmovaps xmm1, xmm3 call hackishModuleName:hackishMethodName() ; gcr arg pop 0 vaddsd xmm0, xmm0, qword ptr [rbp-20H] vmovsd xmm1, qword ptr [rbp-30H] vaddsd xmm1, xmm1, qword ptr [reloc @RWD00] vmovsd xmm2, qword ptr [rbp-40H] vucomisd xmm2, xmm1 vmovsd qword ptr [rbp-20H], xmm0 vmovsd qword ptr [rbp-40H], xmm2 vmovsd xmm3, qword ptr [rbp-38H] ja SHORT G_M29627_IG03 ;; bbWeight=4 PerfScore 86.00 G_M29627_IG04: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz vsubsd xmm1, xmm1, qword ptr [reloc @RWD00] vaddsd xmm2, xmm1, qword ptr [reloc @RWD00] vmulsd xmm2, xmm1, xmm2 vmovsd qword ptr [rbp-30H], xmm1 vaddsd xmm3, xmm1, xmm1 vaddsd xmm3, xmm3, qword ptr [reloc @RWD00] vmulsd xmm2, xmm2, xmm3 vdivsd xmm2, xmm2, qword ptr [reloc @RWD24] vmovsd qword ptr [rbp-28H], xmm2 vmovsd xmm0, qword ptr [rbp-20H] vucomisd xmm0, xmm2 jp SHORT G_M29627_IG05 je SHORT G_M29627_IG06 ;; bbWeight=1 PerfScore 44.00 G_M29627_IG05: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ; gcr arg pop 0 mov rbx, rax ; gcrRegs +[rbx] vmovsd xmm1, qword ptr [rbp-30H] vmovsd qword ptr [rbx+8], xmm1 mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcr arg pop 0 mov r14, rax ; gcrRegs +[r14] vmovsd xmm0, qword ptr [rbp-20H] vmovsd qword ptr [r14+8], xmm0 mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcr arg pop 0 vmovsd xmm2, qword ptr [rbp-28H] vmovsd qword ptr [rax+8], xmm2 mov rsi, rbx ; gcrRegs +[rsi] mov rdx, r14 ; gcrRegs +[rdx] mov rcx, rax ; gcrRegs +[rcx] mov rdi, 0xD1FFAB1E ; string handle mov rdi, gword ptr [rdi] ; gcrRegs +[rdi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rcx rdx rbx rsi rdi r14] ; gcr arg pop 0 xor ebx, ebx ;; bbWeight=0.50 PerfScore 8.00 G_M29627_IG06: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref vmovsd xmm1, qword ptr [reloc @RWD00] vmovsd qword ptr [rbp-18H], xmm1 vmovsd xmm0, qword ptr [reloc @RWD00] vmovsd xmm2, qword ptr [reloc @RWD32] vmovsd qword ptr [rbp-50H], xmm2 ;; bbWeight=1 PerfScore 7.00 G_M29627_IG07: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz vxorps xmm1, xmm1 vmovsd qword ptr [rbp-30H], xmm0 call hackishModuleName:hackishMethodName() ; gcr arg pop 0 vaddsd xmm0, xmm0, qword ptr [rbp-30H] vmovsd xmm1, qword ptr [rbp-18H] vaddsd xmm1, xmm1, qword ptr [reloc @RWD00] vmovsd qword ptr [rbp-30H], xmm0 vmovsd qword ptr [rbp-18H], xmm1 vucomisd xmm0, xmm1 jp SHORT G_M29627_IG08 je SHORT G_M29627_IG09 ;; bbWeight=4 PerfScore 71.33 G_M29627_IG08: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ; gcr arg pop 0 vmovsd xmm0, qword ptr [rbp-30H] vmovsd qword ptr [rax+8], xmm0 mov rsi, rax ; gcrRegs +[rsi] mov rdi, 0xD1FFAB1E ; string handle mov rdi, gword ptr [rdi] ; gcrRegs +[rdi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rsi rdi] ; gcr arg pop 0 xor ebx, ebx ;; bbWeight=2 PerfScore 15.00 G_M29627_IG09: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref vmovsd xmm0, qword ptr [rbp-30H] vmovsd xmm2, qword ptr [rbp-50H] vucomisd xmm2, xmm0 vmovsd qword ptr [rbp-50H], xmm2 ja SHORT G_M29627_IG07 ;; bbWeight=4 PerfScore 26.00 G_M29627_IG10: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz vmovsd xmm3, qword ptr [reloc @RWD16] vmovsd qword ptr [rbp-18H], xmm3 vmovsd xmm0, qword ptr [reloc @RWD00] vmovsd qword ptr [rbp-30H], xmm0 vmovsd xmm2, qword ptr [reloc @RWD40] vmovsd qword ptr [rbp-48H], xmm2 align [0 bytes] ;; bbWeight=1 PerfScore 7.50 G_M29627_IG11: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, loop=IG11, byref, isz vmovsd qword ptr [rbp-38H], xmm3 vmovaps xmm0, xmm3 vmovsd xmm1, qword ptr [rbp-30H] call hackishModuleName:hackishMethodName() ; gcr arg pop 0 vmulsd xmm1, xmm0, qword ptr [rbp-18H] vmovsd xmm0, qword ptr [rbp-30H] vaddsd xmm0, xmm0, qword ptr [reloc @RWD00] vmovsd xmm2, qword ptr [rbp-48H] vucomisd xmm2, xmm0 vmovsd qword ptr [rbp-30H], xmm0 vmovsd qword ptr [rbp-18H], xmm1 vmovsd qword ptr [rbp-48H], xmm2 vmovsd xmm3, qword ptr [rbp-38H] ja SHORT G_M29627_IG11 ;; bbWeight=4 PerfScore 93.00 G_M29627_IG12: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz vmovsd xmm1, qword ptr [rbp-18H] vucomisd xmm1, qword ptr [reloc @RWD48] jp SHORT G_M29627_IG13 je SHORT G_M29627_IG14 ;; bbWeight=1 PerfScore 5.00 G_M29627_IG13: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ; gcr arg pop 0 vmovsd xmm1, qword ptr [rbp-18H] vmovsd qword ptr [rax+8], xmm1 mov rsi, rax ; gcrRegs +[rsi] mov rdi, 0xD1FFAB1E ; string handle mov rdi, gword ptr [rdi] ; gcrRegs +[rdi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rsi rdi] ; gcr arg pop 0 jmp SHORT G_M29627_IG16 ;; bbWeight=0.50 PerfScore 4.62 G_M29627_IG14: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz test ebx, ebx je SHORT G_M29627_IG16 mov rdi, 0xD1FFAB1E ; string handle mov rdi, gword ptr [rdi] ; gcrRegs +[rdi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rdi] ; gcr arg pop 0 mov eax, 100 ;; bbWeight=0.50 PerfScore 2.38 G_M29627_IG15: ; , epilog, nogc, extend add rsp, 64 pop rbx pop r14 pop rbp ret ;; bbWeight=0.50 PerfScore 1.38 G_M29627_IG16: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref mov rdi, 0xD1FFAB1E ; string handle mov rdi, gword ptr [rdi] ; gcrRegs +[rdi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rdi] ; gcr arg pop 0 mov eax, 1 ;; bbWeight=0.50 PerfScore 1.75 G_M29627_IG17: ; , epilog, nogc, extend add rsp, 64 pop rbx pop r14 pop rbp ret ;; bbWeight=0.50 PerfScore 1.38 RWD00 dq 3FF0000000000000h ; 1 RWD08 dq 407F400000000000h ; 500 RWD16 dq 4000000000000000h ; 2 RWD24 dq 4018000000000000h ; 6 RWD32 dq 40F86A0000000000h ; 100000 RWD40 dq 4034000000000000h ; 20 RWD48 dq 4BE0000000000000h ; 3.13855087e+57 ; Total bytes of code 697, prolog size 16, PerfScore 464.27, instruction count 146, allocated bytes for code 776 (MethodHash=4bde8c44) for method pow0:Main():int ; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x08 CountOfUnwindCodes: 4 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 7 * 8 + 8 = 64 = 0x40 CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
変更されたテキスト
ファイルを開く
; Assembly listing for method pow0:Main():int ; Emitting BLENDED_CODE for X64 CPU with AVX - Unix ; optimized code ; rbp based frame ; fully interruptible ; No matching PGO data ; Final local variable assignments ; ; V00 loc0 [V00,T01] ( 4, 4 ) bool -> rbx ; V01 loc1 [V01,T07] ( 9, 23.50) double -> [rbp-18H] ; V02 loc2 [V02,T10] ( 5, 10.50) double -> [rbp-20H] ; V03 loc3 [V03,T13] ( 3, 2.50) double -> [rbp-28H] spill-single-def ; V04 loc4 [V04,T06] ( 24, 63.50) double -> [rbp-30H] ;# V05 OutArgs [V05 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace" ; V06 tmp1 [V06,T08] ( 2, 16 ) double -> mm1 "dup spill" ; V07 tmp2 [V07,T00] ( 3, 12 ) ref -> rax class-hnd exact "Single-def Box Helper" ; V08 tmp3 [V08,T02] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V09 tmp4 [V09,T03] ( 3, 3 ) ref -> rbx class-hnd exact single-def "Single-def Box Helper" ; V10 tmp5 [V10,T04] ( 3, 3 ) ref -> r14 class-hnd exact single-def "Single-def Box Helper" ; V11 tmp6 [V11,T05] ( 3, 3 ) ref -> rax class-hnd exact single-def "Single-def Box Helper" ; V12 cse0 [V12,T09] ( 5, 11 ) double -> [rbp-38H] "CSE - aggressive" ; V13 cse1 [V13,T11] ( 2, 5 ) double -> [rbp-40H] "CSE - aggressive" ; V14 cse2 [V14,T12] ( 2, 5 ) double -> [rbp-48H] "CSE - aggressive" ; ; Lcl frame size = 64 G_M29627_IG01: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref, nogc <-- Prolog IG push rbp push r14 push rbx sub rsp, 64 vzeroupper lea rbp, [rsp+50H] ;; bbWeight=1 PerfScore 4.75 G_M29627_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz mov ebx, 1 vxorps xmm0, xmm0 vmovsd qword ptr [rbp-20H], xmm0 vmovsd xmm1, qword ptr [reloc @RWD00] vmovsd xmm2, qword ptr [reloc @RWD08] vmovsd qword ptr [rbp-40H], xmm2 vmovsd xmm3, qword ptr [reloc @RWD16] align [0 bytes] ;; bbWeight=1 PerfScore 7.58 G_M29627_IG03: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, loop=IG03, byref, isz vmovsd qword ptr [rbp-30H], xmm1 vmovaps xmm0, xmm1 vmovsd qword ptr [rbp-38H], xmm3 vmovaps xmm1, xmm3 call hackishModuleName:hackishMethodName() ; gcr arg pop 0 vaddsd xmm0, xmm0, qword ptr [rbp-20H] vmovsd xmm1, qword ptr [rbp-30H] vaddsd xmm1, xmm1, qword ptr [reloc @RWD00] vmovsd xmm2, qword ptr [rbp-40H] vucomisd xmm2, xmm1 vmovsd qword ptr [rbp-20H], xmm0 vmovsd qword ptr [rbp-40H], xmm2 vmovsd xmm3, qword ptr [rbp-38H] ja SHORT G_M29627_IG03 ;; bbWeight=4 PerfScore 86.00 G_M29627_IG04: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz vsubsd xmm1, xmm1, qword ptr [reloc @RWD00] vaddsd xmm2, xmm1, qword ptr [reloc @RWD00] vmulsd xmm2, xmm1, xmm2 vmovsd qword ptr [rbp-30H], xmm1 vaddsd xmm3, xmm1, xmm1 vaddsd xmm3, xmm3, qword ptr [reloc @RWD00] vmulsd xmm2, xmm2, xmm3 vdivsd xmm2, xmm2, qword ptr [reloc @RWD24] vmovsd qword ptr [rbp-28H], xmm2 vmovsd xmm0, qword ptr [rbp-20H] vucomisd xmm0, xmm2 jp SHORT G_M29627_IG05 je SHORT G_M29627_IG06 ;; bbWeight=1 PerfScore 44.00 G_M29627_IG05: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ; gcr arg pop 0 mov rbx, rax ; gcrRegs +[rbx] vmovsd xmm1, qword ptr [rbp-30H] vmovsd qword ptr [rbx+8], xmm1 mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcr arg pop 0 mov r14, rax ; gcrRegs +[r14] vmovsd xmm0, qword ptr [rbp-20H] vmovsd qword ptr [r14+8], xmm0 mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcr arg pop 0 vmovsd xmm2, qword ptr [rbp-28H] vmovsd qword ptr [rax+8], xmm2 mov rsi, rbx ; gcrRegs +[rsi] mov rdx, r14 ; gcrRegs +[rdx] mov rcx, rax ; gcrRegs +[rcx] mov rdi, 0xD1FFAB1E ; string handle mov rdi, gword ptr [rdi] ; gcrRegs +[rdi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rcx rdx rbx rsi rdi r14] ; gcr arg pop 0 xor ebx, ebx ;; bbWeight=0.50 PerfScore 8.00 G_M29627_IG06: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref vmovsd xmm1, qword ptr [reloc @RWD00] vmovsd qword ptr [rbp-18H], xmm1 vmovsd xmm0, qword ptr [reloc @RWD00] ;; bbWeight=1 PerfScore 4.50 G_M29627_IG07: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz vxorps xmm1, xmm1 vmovsd qword ptr [rbp-30H], xmm0 call hackishModuleName:hackishMethodName() ; gcr arg pop 0 vaddsd xmm0, xmm0, qword ptr [rbp-30H] vmovsd xmm1, qword ptr [rbp-18H] vaddsd xmm1, xmm1, qword ptr [reloc @RWD00] vmovsd qword ptr [rbp-30H], xmm0 vmovsd qword ptr [rbp-18H], xmm1 vucomisd xmm0, xmm1 jp SHORT G_M29627_IG08 je SHORT G_M29627_IG09 ;; bbWeight=4 PerfScore 71.33 G_M29627_IG08: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ; gcr arg pop 0 vmovsd xmm0, qword ptr [rbp-30H] vmovsd qword ptr [rax+8], xmm0 mov rsi, rax ; gcrRegs +[rsi] mov rdi, 0xD1FFAB1E ; string handle mov rdi, gword ptr [rdi] ; gcrRegs +[rdi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rsi rdi] ; gcr arg pop 0 xor ebx, ebx ;; bbWeight=2 PerfScore 15.00 G_M29627_IG09: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref vmovsd xmm2, qword ptr [reloc @RWD32] vmovsd xmm0, qword ptr [rbp-30H] vucomisd xmm2, xmm0 ja G_M29627_IG07 ;; bbWeight=4 PerfScore 24.00 G_M29627_IG10: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz, align vmovsd xmm3, qword ptr [reloc @RWD16] vmovsd qword ptr [rbp-18H], xmm3 vmovsd xmm0, qword ptr [reloc @RWD00] vmovsd qword ptr [rbp-30H], xmm0 vmovsd xmm2, qword ptr [reloc @RWD40] vmovsd qword ptr [rbp-48H], xmm2 align [3 bytes] ;; bbWeight=1 PerfScore 7.75 G_M29627_IG11: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, loop=IG11, byref, isz vmovsd qword ptr [rbp-38H], xmm3 vmovaps xmm0, xmm3 vmovsd xmm1, qword ptr [rbp-30H] call hackishModuleName:hackishMethodName() ; gcr arg pop 0 vmulsd xmm1, xmm0, qword ptr [rbp-18H] vmovsd xmm0, qword ptr [rbp-30H] vaddsd xmm0, xmm0, qword ptr [reloc @RWD00] vmovsd xmm2, qword ptr [rbp-48H] vucomisd xmm2, xmm0 vmovsd qword ptr [rbp-30H], xmm0 vmovsd qword ptr [rbp-18H], xmm1 vmovsd qword ptr [rbp-48H], xmm2 vmovsd xmm3, qword ptr [rbp-38H] ja SHORT G_M29627_IG11 ;; bbWeight=4 PerfScore 93.00 G_M29627_IG12: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz vmovsd xmm1, qword ptr [rbp-18H] vucomisd xmm1, qword ptr [reloc @RWD48] jp SHORT G_M29627_IG13 je SHORT G_M29627_IG14 ;; bbWeight=1 PerfScore 5.00 G_M29627_IG13: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz mov rdi, 0xD1FFAB1E ; hackishClassName call CORINFO_HELP_NEWSFAST ; gcrRegs +[rax] ; gcr arg pop 0 vmovsd xmm1, qword ptr [rbp-18H] vmovsd qword ptr [rax+8], xmm1 mov rsi, rax ; gcrRegs +[rsi] mov rdi, 0xD1FFAB1E ; string handle mov rdi, gword ptr [rdi] ; gcrRegs +[rdi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rax rsi rdi] ; gcr arg pop 0 jmp SHORT G_M29627_IG16 ;; bbWeight=0.50 PerfScore 4.62 G_M29627_IG14: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz test ebx, ebx je SHORT G_M29627_IG16 mov rdi, 0xD1FFAB1E ; string handle mov rdi, gword ptr [rdi] ; gcrRegs +[rdi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rdi] ; gcr arg pop 0 mov eax, 100 ;; bbWeight=0.50 PerfScore 2.38 G_M29627_IG15: ; , epilog, nogc, extend add rsp, 64 pop rbx pop r14 pop rbp ret ;; bbWeight=0.50 PerfScore 1.38 G_M29627_IG16: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref mov rdi, 0xD1FFAB1E ; string handle mov rdi, gword ptr [rdi] ; gcrRegs +[rdi] call hackishModuleName:hackishMethodName() ; gcrRegs -[rdi] ; gcr arg pop 0 mov eax, 1 ;; bbWeight=0.50 PerfScore 1.75 G_M29627_IG17: ; , epilog, nogc, extend add rsp, 64 pop rbx pop r14 pop rbp ret ;; bbWeight=0.50 PerfScore 1.38 RWD00 dq 3FF0000000000000h ; 1 RWD08 dq 407F400000000000h ; 500 RWD16 dq 4000000000000000h ; 2 RWD24 dq 4018000000000000h ; 6 RWD32 dq 40F86A0000000000h ; 100000 RWD40 dq 4034000000000000h ; 20 RWD48 dq 4BE0000000000000h ; 3.13855087e+57 ; Total bytes of code 745, prolog size 16, PerfScore 458.52, instruction count 143, allocated bytes for code 761 (MethodHash=4bde8c44) for method pow0:Main():int ; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00 SizeOfProlog : 0x08 CountOfUnwindCodes: 4 FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes : CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 7 * 8 + 8 = 64 = 0x40 CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3) CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: r14 (14) CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)
違いを見つける