Diff
checker
Texte
Texte
Images
Documents
Excel
Dossiers
Legal
Enterprise
Application de bureau
Prix
Se connecter
Télécharger Diffchecker Desktop
Comparer le texte
Trouver la différence entre deux fichiers texte
Outils
Historique
Éditeur live
Masquer les espaces
Cacher identiques
Sans retour à la ligne
Vue
Divisé
Unifié
Niveau de précision
Intelligent
Mot
Caractère
Styles de texte
Modifier l’apparence
Coloration syntaxique
Choisir la syntaxe
Ignorer
Transformer le texte
Aller au premier écart
Modifier l'entrée
Diffchecker Desktop
La façon la plus sécurisée d'utiliser Diffchecker. Obtenez l'application Diffchecker Desktop : vos diffs ne quittent jamais votre ordinateur !
Obtenir Desktop
Untitled Diff
Créé
il y a 5 ans
Le diff n'expire jamais
Effacer
Exporter
Partager
Expliquer
109 suppressions
Lignes
Total
Supprimé
Caractères
Total
Supprimé
Pour continuer à utiliser cette fonctionnalité, passez à
Diff
checker
Pro
Voir les prix
143 lignes
Copier tout
96 ajouts
Lignes
Total
Ajouté
Caractères
Total
Ajouté
Pour continuer à utiliser cette fonctionnalité, passez à
Diff
checker
Pro
Voir les prix
134 lignes
Copier tout
; Assembly listing for method Benchstone.BenchF.Simpsn:Test():bool:this
; Assembly listing for method Benchstone.BenchF.Simpsn:Test():bool:this
; 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
; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data
; Final local variable assignments
; Final local variable assignments
;
;
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def
;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def
;* V01 loc0 [V01,T12] ( 0, 0 ) double -> zero-ref
;* V01 loc0 [V01,T12] ( 0, 0 ) double -> zero-ref
;* V02 loc1 [V02,T13] ( 0, 0 ) double -> zero-ref
;* V02 loc1 [V02,T13] ( 0, 0 ) double -> zero-ref
Copier
Copié
Copier
Copié
; V03 loc2 [V03,T
08
] ( 3, 48 ) double -> [rbp-18H] spill-single-def
; V03 loc2 [V03,T
10
] ( 3, 48 ) double -> [rbp-18H] spill-single-def
; V04 loc3 [V04,T0
5
] ( 6, 84 ) double -> [rbp-20H]
; V04 loc3 [V04,T0
7
] ( 6, 84 ) double -> [rbp-20H]
;* V05 loc4 [V05 ] ( 0, 0 ) double -> zero-ref
;* V05 loc4 [V05 ] ( 0, 0 ) double -> zero-ref
;* V06 loc5 [V06,T14] ( 0, 0 ) double -> zero-ref
;* V06 loc5 [V06,T14] ( 0, 0 ) double -> zero-ref
;* V07 loc6 [V07,T15] ( 0, 0 ) double -> zero-ref
;* V07 loc6 [V07,T15] ( 0, 0 ) double -> zero-ref
Copier
Copié
Copier
Copié
; V08 loc7 [V08,T0
7
] ( 4, 52 ) double -> [rbp-28H]
; V08 loc7 [V08,T0
9
] ( 4, 52 ) double -> [rbp-28H]
; V09 loc8 [V09,
T09
] ( 2, 32 ) double -> mm
0
; V09 loc8 [V09,
T11
] ( 2, 32 ) double -> mm
1
;* V10 loc9 [V10,T04] ( 0, 0 ) int -> zero-ref single-def
;* V10 loc9 [V10,T04] ( 0, 0 ) int -> zero-ref single-def
;* V11 loc10 [V11,T02] ( 0, 0 ) int -> zero-ref
;* V11 loc10 [V11,T02] ( 0, 0 ) int -> zero-ref
;* V12 loc11 [V12,T03] ( 0, 0 ) int -> zero-ref
;* V12 loc11 [V12,T03] ( 0, 0 ) int -> zero-ref
; V13 loc12 [V13,T01] ( 4, 13 ) int -> rbx
; V13 loc12 [V13,T01] ( 4, 13 ) int -> rbx
; V14 loc13 [V14,T00] ( 5, 68 ) int -> r14
; V14 loc13 [V14,T00] ( 5, 68 ) int -> r14
;# V15 OutArgs [V15 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace"
;# V15 OutArgs [V15 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace"
Copier
Copié
Copier
Copié
; V16 tmp1 [V16,T0
6
] ( 2, 64 ) double -> mm
1
"impAppendStmt"
; V16 tmp1 [V16,T0
8
] ( 2, 64 ) double -> mm
0
"impAppendStmt"
;* V17 tmp2 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill"
;* V17 tmp2 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill"
;* V18 tmp3 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper"
;* V18 tmp3 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper"
;* V19 tmp4 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper"
;* V19 tmp4 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper"
;* V20 tmp5 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper"
;* V20 tmp5 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper"
;* V21 tmp6 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper"
;* V21 tmp6 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper"
Copier
Copié
Copier
Copié
;
V22 cse0 [V22,T1
0
] (
3, 36
) double ->
[rbp-30H]
spill-single-def
"CSE - aggressive"
;
*
V22 cse0 [V22,T1
6
] (
0, 0
) double ->
zero-ref
"CSE - aggressive"
;
V23 cse1 [V23,T1
1
] (
2, 17
) double ->
[rbp-38H]
"CSE - aggressive"
;
*
V23 cse1 [V23,T1
7
] (
0, 0
) double ->
zero-ref
"CSE - aggressive"
;* V24 cse2 [V24,T1
6
] ( 0, 0 ) double -> zero-ref "CSE -
aggressive"
;* V24 cse2 [V24,T1
8
] ( 0, 0 ) double -> zero-ref "CSE -
moderate"
; V25 rat0 [V25,T05] ( 3, 96 ) double -> mm3 "fgInsertCommaFormTemp is creating a new local variable"
; V26 rat1 [V26,T06] ( 3, 96 ) double -> mm1 "fgInsertCommaFormTemp is creating a new local variable"
;
;
Copier
Copié
Copier
Copié
; Lcl frame size =
48
; Lcl frame size =
32
G_M11360_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
G_M11360_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push rbp
push rbp
push r14
push r14
push rbx
push rbx
Copier
Copié
Copier
Copié
sub rsp,
48
sub rsp,
32
vzeroupper
vzeroupper
Copier
Copié
Copier
Copié
lea rbp, [rsp+
4
0H]
lea rbp, [rsp+
3
0H]
;; bbWeight=1 PerfScore 4.75
;; bbWeight=1 PerfScore 4.75
G_M11360_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M11360_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov ebx, 1
mov ebx, 1
Copier
Copié
Copier
Copié
vmovsd xmm0, qword ptr [reloc @RWD00]
;; bbWeight=1 PerfScore
0.25
vmovsd qword ptr [rbp-38H], xmm0
;; bbWeight=1 PerfScore
2.75
G_M11360_IG03: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M11360_IG03: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
Copier
Copié
Copier
Copié
vxorps xmm
1
, xmm
1
vxorps xmm
0
, xmm
0
vmovsd qword ptr [rbp-20H], xmm
1
vmovsd qword ptr [rbp-20H], xmm
0
vmovsd xmm
2
, qword ptr [reloc @
RWD08]
vmovsd xmm
1
, qword ptr [reloc @
RWD00
]
vmovsd qword ptr [rbp-30H], xmm2
vmovsd qword ptr [rbp-28H], xmm
1
vmovsd xmm3, qword ptr [reloc @RWD16
]
vmovsd qword ptr [rbp-28H], xmm
3
mov r14d, 1
mov r14d, 1
Copier
Copié
Copier
Copié
;; bbWeight=4 PerfScore
24
.33
;; bbWeight=4 PerfScore
14
.33
G_M11360_IG04: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
, isz
G_M11360_IG04: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
vxorps xmm
4
, xmm
4
vxorps xmm
2
, xmm
2
vcvtsi2sd xmm
4
, r14d
vcvtsi2sd xmm
2
, r14d
vmulsd xmm
4
, xmm
4
, qword ptr [reloc @
RWD24
]
vmulsd xmm
2
, xmm
2
, qword ptr [reloc @
RWD08
]
vxorps xmm
5
, xmm
5
vxorps xmm
3
, xmm
3
vaddsd xmm
4
, xmm
4
, xmm
5
vaddsd xmm
2
, xmm
2
, xmm
3
vmovsd qword ptr [rbp-18H], xmm
4
vmovsd qword ptr [rbp-18H], xmm
2
vxorps xmm
5
, xmm
4
, qword ptr [reloc @
RWD32
]
vxorps xmm
3
, xmm
2
, qword ptr [reloc @
RWD16
]
vmulsd
xmm0, xmm
5
, xmm
2
vaddsd
xmm0, xmm
3
, xmm
3
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcr arg pop 0
; gcr arg pop 0
Copier
Copié
Copier
Copié
vaddsd xmm
1
, xmm0, qword ptr [rbp-20H]
vaddsd xmm
0
, xmm0, qword ptr [rbp-20H]
vmovsd qword ptr [rbp-20H], xmm
1
vmovsd qword ptr [rbp-20H], xmm
0
vmovsd xmm
4
, qword ptr [rbp-18H]
vmovsd xmm
2
, qword ptr [rbp-18H]
vaddsd xmm
0
, xmm
4
, qword ptr [reloc @
RWD48
]
vaddsd xmm
1
, xmm
2
, qword ptr [reloc @
RWD32
]
vxorps xmm
0
, xmm
0
, qword ptr [reloc @
RWD32
]
vxorps xmm
1
, xmm
1
, qword ptr [reloc @
RWD16
]
vmulsd
xmm0, xmm
0, qword ptr [rbp-30H]
vaddsd
xmm0, xmm
1, xmm1
call hackishModuleName:hackishMethodName()
call hackishModuleName:hackishMethodName()
; gcr arg pop 0
; gcr arg pop 0
Copier
Copié
Copier
Copié
vaddsd xmm
3
, xmm0, qword ptr [rbp-28H]
vaddsd xmm
1
, xmm0, qword ptr [rbp-28H]
vmovsd xmm0, qword ptr [rbp-
38H
]
vmovsd xmm0, qword ptr [rbp-
20H
]
vmulsd
xmm
1
, xmm
3
, xmm0
vaddsd
xmm
0
, xmm
0
, xmm0
vaddsd
xmm
1
, xmm1, qword ptr [reloc @
RWD56]
vmulsd
xmm
2
, xmm1, qword ptr [reloc @
RWD40
]
vmovsd xmm2, qword ptr [rbp-20H
]
vaddsd xmm2, xmm2,
qword ptr [reloc @RWD48]
vaddsd xmm2, xmm2,
xmm2
vaddsd xmm
0
, xmm
0
, xmm2
vaddsd xmm
1
, xmm
1
, xmm2
vaddsd xmm
0
, xmm
0
, qword ptr [reloc @RWD
56
]
vaddsd xmm
1
, xmm
1
, qword ptr [reloc @RWD
64
]
vmulsd xmm
0
, xmm
0
, qword ptr [reloc @
RWD64
]
vmulsd xmm
2
, xmm
1
, qword ptr [reloc @
RWD72
]
inc r14d
inc r14d
cmp r14d, 99
cmp r14d, 99
Copier
Copié
Copier
Copié
vmovsd qword ptr [rbp-20H], xmm
2
vmovsd qword ptr [rbp-20H], xmm
0
vmovsd qword ptr [rbp-28H], xmm
3
vmovsd qword ptr [rbp-28H], xmm
1
vmovsd qword ptr [rbp-38H], xmm0
jle
G_M11360_IG0
4
jle
SHORT
G_M11360_IG0
8
;; bbWeight=16 PerfScore
1186
.67
;; bbWeight=16 PerfScore
1226
.67
G_M11360_IG05: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M11360_IG05: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
inc ebx
inc ebx
cmp ebx, 0x15F90
cmp ebx, 0x15F90
jle G_M11360_IG03
jle G_M11360_IG03
;; bbWeight=4 PerfScore 6.00
;; bbWeight=4 PerfScore 6.00
G_M11360_IG06: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
G_M11360_IG06: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
mov eax, 1
mov eax, 1
;; bbWeight=1 PerfScore 0.25
;; bbWeight=1 PerfScore 0.25
G_M11360_IG07: ; , epilog, nogc, extend
G_M11360_IG07: ; , epilog, nogc, extend
Copier
Copié
Copier
Copié
add rsp,
48
add rsp,
32
pop rbx
pop rbx
pop r14
pop r14
pop rbp
pop rbp
ret
ret
;; bbWeight=1 PerfScore 2.75
;; bbWeight=1 PerfScore 2.75
Copier
Copié
Copier
Copié
G_M11360_IG08: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
RWD00 dq
3FEFAE7CFD2B9CFEh ; 0.990049834
vmovsd xmm2, qword ptr [rbp-30H]
RWD08
dq 3F847AE147AE147Bh ; 0.01
jmp G_M11360_IG04
RWD16
dq 8000000000000000h ; -0
;; bbWeight=8 PerfScore 32.00
RWD00 dq 4010000000000000h ; 4
RWD08 dq 4000000000000000h ; 2
RWD16 dq
3FEFAE7CFD2B9CFEh ; 0.990049834
RWD24
dq 3F847AE147AE147Bh ; 0.01
RWD32
dq 8000000000000000h ; -0
dq 8000000000000000h ; -0
dq 8000000000000000h ; -0
Copier
Copié
Copier
Copié
RWD48
dq 3F747AE147AE147Bh ; 0.005
RWD32
dq 3F747AE147AE147Bh ; 0.005
RWD56
dq 3FF0000000000000h ; 1
RWD40 dq 4010000000000000h ; 4
RWD
64
dq 3FC152AAA3BF81CCh ; 0.135335283
RWD48
dq 3FF0000000000000h ; 1
RWD72
dq 3F5B4E81B4E81B4Fh ; 0.00166666667
RWD
56
dq 3FC152AAA3BF81CCh ; 0.135335283
RWD64
dq 3F5B4E81B4E81B4Fh ; 0.00166666667
Copier
Copié
Copier
Copié
; Total bytes of code 2
76
, prolog size 16, PerfScore
1330.50
, instruction count
58
, allocated bytes for code
310
(MethodHash=46bbd39f) for method Benchstone.BenchF.Simpsn:Test():bool:this
; Total bytes of code 2
37
, prolog size 16, PerfScore
1241.40
, instruction count
50
, allocated bytes for code
264
(MethodHash=46bbd39f) for method Benchstone.BenchF.Simpsn:Test():bool:this
; ============================================================
; ============================================================
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 :
Copier
Copié
Copier
Copié
CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo:
5
* 8 + 8 =
48
= 0x
3
0
CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo:
3
* 8 + 8 =
32
= 0x
2
0
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)
Différences enregistrées
Texte d'origine
Ouvrir un fichier
; Assembly listing for method Benchstone.BenchF.Simpsn:Test():bool:this ; Emitting BLENDED_CODE for X64 CPU with AVX - Unix ; optimized code ; rbp based frame ; fully interruptible ; No matching PGO data ; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def ;* V01 loc0 [V01,T12] ( 0, 0 ) double -> zero-ref ;* V02 loc1 [V02,T13] ( 0, 0 ) double -> zero-ref ; V03 loc2 [V03,T08] ( 3, 48 ) double -> [rbp-18H] spill-single-def ; V04 loc3 [V04,T05] ( 6, 84 ) double -> [rbp-20H] ;* V05 loc4 [V05 ] ( 0, 0 ) double -> zero-ref ;* V06 loc5 [V06,T14] ( 0, 0 ) double -> zero-ref ;* V07 loc6 [V07,T15] ( 0, 0 ) double -> zero-ref ; V08 loc7 [V08,T07] ( 4, 52 ) double -> [rbp-28H] ; V09 loc8 [V09,T09] ( 2, 32 ) double -> mm0 ;* V10 loc9 [V10,T04] ( 0, 0 ) int -> zero-ref single-def ;* V11 loc10 [V11,T02] ( 0, 0 ) int -> zero-ref ;* V12 loc11 [V12,T03] ( 0, 0 ) int -> zero-ref ; V13 loc12 [V13,T01] ( 4, 13 ) int -> rbx ; V14 loc13 [V14,T00] ( 5, 68 ) int -> r14 ;# V15 OutArgs [V15 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace" ; V16 tmp1 [V16,T06] ( 2, 64 ) double -> mm1 "impAppendStmt" ;* V17 tmp2 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" ;* V18 tmp3 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper" ;* V19 tmp4 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper" ;* V20 tmp5 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper" ;* V21 tmp6 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper" ; V22 cse0 [V22,T10] ( 3, 36 ) double -> [rbp-30H] spill-single-def "CSE - aggressive" ; V23 cse1 [V23,T11] ( 2, 17 ) double -> [rbp-38H] "CSE - aggressive" ;* V24 cse2 [V24,T16] ( 0, 0 ) double -> zero-ref "CSE - aggressive" ; ; Lcl frame size = 48 G_M11360_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push rbp push r14 push rbx sub rsp, 48 vzeroupper lea rbp, [rsp+40H] ;; bbWeight=1 PerfScore 4.75 G_M11360_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref mov ebx, 1 vmovsd xmm0, qword ptr [reloc @RWD00] vmovsd qword ptr [rbp-38H], xmm0 ;; bbWeight=1 PerfScore 2.75 G_M11360_IG03: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref vxorps xmm1, xmm1 vmovsd qword ptr [rbp-20H], xmm1 vmovsd xmm2, qword ptr [reloc @RWD08] vmovsd qword ptr [rbp-30H], xmm2 vmovsd xmm3, qword ptr [reloc @RWD16] vmovsd qword ptr [rbp-28H], xmm3 mov r14d, 1 ;; bbWeight=4 PerfScore 24.33 G_M11360_IG04: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, isz vxorps xmm4, xmm4 vcvtsi2sd xmm4, r14d vmulsd xmm4, xmm4, qword ptr [reloc @RWD24] vxorps xmm5, xmm5 vaddsd xmm4, xmm4, xmm5 vmovsd qword ptr [rbp-18H], xmm4 vxorps xmm5, xmm4, qword ptr [reloc @RWD32] vmulsd xmm0, xmm5, xmm2 call hackishModuleName:hackishMethodName() ; gcr arg pop 0 vaddsd xmm1, xmm0, qword ptr [rbp-20H] vmovsd qword ptr [rbp-20H], xmm1 vmovsd xmm4, qword ptr [rbp-18H] vaddsd xmm0, xmm4, qword ptr [reloc @RWD48] vxorps xmm0, xmm0, qword ptr [reloc @RWD32] vmulsd xmm0, xmm0, qword ptr [rbp-30H] call hackishModuleName:hackishMethodName() ; gcr arg pop 0 vaddsd xmm3, xmm0, qword ptr [rbp-28H] vmovsd xmm0, qword ptr [rbp-38H] vmulsd xmm1, xmm3, xmm0 vaddsd xmm1, xmm1, qword ptr [reloc @RWD56] vmovsd xmm2, qword ptr [rbp-20H] vaddsd xmm2, xmm2, xmm2 vaddsd xmm1, xmm1, xmm2 vaddsd xmm1, xmm1, qword ptr [reloc @RWD64] vmulsd xmm2, xmm1, qword ptr [reloc @RWD72] inc r14d cmp r14d, 99 vmovsd qword ptr [rbp-20H], xmm2 vmovsd qword ptr [rbp-28H], xmm3 vmovsd qword ptr [rbp-38H], xmm0 jle SHORT G_M11360_IG08 ;; bbWeight=16 PerfScore 1226.67 G_M11360_IG05: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref inc ebx cmp ebx, 0x15F90 jle G_M11360_IG03 ;; bbWeight=4 PerfScore 6.00 G_M11360_IG06: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref mov eax, 1 ;; bbWeight=1 PerfScore 0.25 G_M11360_IG07: ; , epilog, nogc, extend add rsp, 48 pop rbx pop r14 pop rbp ret ;; bbWeight=1 PerfScore 2.75 G_M11360_IG08: ; gcVars= {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref vmovsd xmm2, qword ptr [rbp-30H] jmp G_M11360_IG04 ;; bbWeight=8 PerfScore 32.00 RWD00 dq 4010000000000000h ; 4 RWD08 dq 4000000000000000h ; 2 RWD16 dq 3FEFAE7CFD2B9CFEh ; 0.990049834 RWD24 dq 3F847AE147AE147Bh ; 0.01 RWD32 dq 8000000000000000h ; -0 dq 8000000000000000h ; -0 RWD48 dq 3F747AE147AE147Bh ; 0.005 RWD56 dq 3FF0000000000000h ; 1 RWD64 dq 3FC152AAA3BF81CCh ; 0.135335283 RWD72 dq 3F5B4E81B4E81B4Fh ; 0.00166666667 ; Total bytes of code 276, prolog size 16, PerfScore 1330.50, instruction count 58, allocated bytes for code 310 (MethodHash=46bbd39f) for method Benchstone.BenchF.Simpsn:Test():bool:this ; ============================================================ 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: 5 * 8 + 8 = 48 = 0x30 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)
Texte modifié
Ouvrir un fichier
; Assembly listing for method Benchstone.BenchF.Simpsn:Test():bool:this ; Emitting BLENDED_CODE for X64 CPU with AVX - Unix ; optimized code ; rbp based frame ; fully interruptible ; No matching PGO data ; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def ;* V01 loc0 [V01,T12] ( 0, 0 ) double -> zero-ref ;* V02 loc1 [V02,T13] ( 0, 0 ) double -> zero-ref ; V03 loc2 [V03,T10] ( 3, 48 ) double -> [rbp-18H] spill-single-def ; V04 loc3 [V04,T07] ( 6, 84 ) double -> [rbp-20H] ;* V05 loc4 [V05 ] ( 0, 0 ) double -> zero-ref ;* V06 loc5 [V06,T14] ( 0, 0 ) double -> zero-ref ;* V07 loc6 [V07,T15] ( 0, 0 ) double -> zero-ref ; V08 loc7 [V08,T09] ( 4, 52 ) double -> [rbp-28H] ; V09 loc8 [V09,T11] ( 2, 32 ) double -> mm1 ;* V10 loc9 [V10,T04] ( 0, 0 ) int -> zero-ref single-def ;* V11 loc10 [V11,T02] ( 0, 0 ) int -> zero-ref ;* V12 loc11 [V12,T03] ( 0, 0 ) int -> zero-ref ; V13 loc12 [V13,T01] ( 4, 13 ) int -> rbx ; V14 loc13 [V14,T00] ( 5, 68 ) int -> r14 ;# V15 OutArgs [V15 ] ( 1, 1 ) lclBlk ( 0) [rsp+00H] "OutgoingArgSpace" ; V16 tmp1 [V16,T08] ( 2, 64 ) double -> mm0 "impAppendStmt" ;* V17 tmp2 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" ;* V18 tmp3 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper" ;* V19 tmp4 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper" ;* V20 tmp5 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper" ;* V21 tmp6 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Single-def Box Helper" ;* V22 cse0 [V22,T16] ( 0, 0 ) double -> zero-ref "CSE - aggressive" ;* V23 cse1 [V23,T17] ( 0, 0 ) double -> zero-ref "CSE - aggressive" ;* V24 cse2 [V24,T18] ( 0, 0 ) double -> zero-ref "CSE - moderate" ; V25 rat0 [V25,T05] ( 3, 96 ) double -> mm3 "fgInsertCommaFormTemp is creating a new local variable" ; V26 rat1 [V26,T06] ( 3, 96 ) double -> mm1 "fgInsertCommaFormTemp is creating a new local variable" ; ; Lcl frame size = 32 G_M11360_IG01: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG push rbp push r14 push rbx sub rsp, 32 vzeroupper lea rbp, [rsp+30H] ;; bbWeight=1 PerfScore 4.75 G_M11360_IG02: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref mov ebx, 1 ;; bbWeight=1 PerfScore 0.25 G_M11360_IG03: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref vxorps xmm0, xmm0 vmovsd qword ptr [rbp-20H], xmm0 vmovsd xmm1, qword ptr [reloc @RWD00] vmovsd qword ptr [rbp-28H], xmm1 mov r14d, 1 ;; bbWeight=4 PerfScore 14.33 G_M11360_IG04: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref vxorps xmm2, xmm2 vcvtsi2sd xmm2, r14d vmulsd xmm2, xmm2, qword ptr [reloc @RWD08] vxorps xmm3, xmm3 vaddsd xmm2, xmm2, xmm3 vmovsd qword ptr [rbp-18H], xmm2 vxorps xmm3, xmm2, qword ptr [reloc @RWD16] vaddsd xmm0, xmm3, xmm3 call hackishModuleName:hackishMethodName() ; gcr arg pop 0 vaddsd xmm0, xmm0, qword ptr [rbp-20H] vmovsd qword ptr [rbp-20H], xmm0 vmovsd xmm2, qword ptr [rbp-18H] vaddsd xmm1, xmm2, qword ptr [reloc @RWD32] vxorps xmm1, xmm1, qword ptr [reloc @RWD16] vaddsd xmm0, xmm1, xmm1 call hackishModuleName:hackishMethodName() ; gcr arg pop 0 vaddsd xmm1, xmm0, qword ptr [rbp-28H] vmovsd xmm0, qword ptr [rbp-20H] vaddsd xmm0, xmm0, xmm0 vmulsd xmm2, xmm1, qword ptr [reloc @RWD40] vaddsd xmm2, xmm2, qword ptr [reloc @RWD48] vaddsd xmm0, xmm0, xmm2 vaddsd xmm0, xmm0, qword ptr [reloc @RWD56] vmulsd xmm0, xmm0, qword ptr [reloc @RWD64] inc r14d cmp r14d, 99 vmovsd qword ptr [rbp-20H], xmm0 vmovsd qword ptr [rbp-28H], xmm1 jle G_M11360_IG04 ;; bbWeight=16 PerfScore 1186.67 G_M11360_IG05: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref inc ebx cmp ebx, 0x15F90 jle G_M11360_IG03 ;; bbWeight=4 PerfScore 6.00 G_M11360_IG06: ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref mov eax, 1 ;; bbWeight=1 PerfScore 0.25 G_M11360_IG07: ; , epilog, nogc, extend add rsp, 32 pop rbx pop r14 pop rbp ret ;; bbWeight=1 PerfScore 2.75 RWD00 dq 3FEFAE7CFD2B9CFEh ; 0.990049834 RWD08 dq 3F847AE147AE147Bh ; 0.01 RWD16 dq 8000000000000000h ; -0 dq 8000000000000000h ; -0 RWD32 dq 3F747AE147AE147Bh ; 0.005 RWD40 dq 4010000000000000h ; 4 RWD48 dq 3FF0000000000000h ; 1 RWD56 dq 3FC152AAA3BF81CCh ; 0.135335283 RWD64 dq 3F5B4E81B4E81B4Fh ; 0.00166666667 ; Total bytes of code 237, prolog size 16, PerfScore 1241.40, instruction count 50, allocated bytes for code 264 (MethodHash=46bbd39f) for method Benchstone.BenchF.Simpsn:Test():bool:this ; ============================================================ 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: 3 * 8 + 8 = 32 = 0x20 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)
Trouver la différence