Diff
checker
Text
Text
Images
Documents
Excel
Folders
Legal
Enterprise
Desktop
Pricing
Sign in
Download Diffchecker Desktop
Compare text
Find the difference between two text files
Tools
History
Real-time editor
Hide whitespace changes
Hide unchanged lines
Disable line wrap
Layout
Split
Unified
Diff precision
Smart
Word
Char
Text styles
Change appearance
Syntax highlighting
Choose syntax
Ignore
Transform text
Go to first change
Edit input
Diffchecker Desktop
The most secure way to run Diffchecker. Get the Diffchecker Desktop app: your diffs never leave your computer!
Get Desktop
Untitled Diff
Created
5 years ago
Diff never expires
Clear
Export
Share
Explain
109 removals
Lines
Total
Removed
Characters
Total
Removed
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
143 lines
Copy
96 additions
Lines
Total
Added
Characters
Total
Added
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
134 lines
Copy
; 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
Copy
Copied
Copy
Copied
; 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
Copy
Copied
Copy
Copied
; 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"
Copy
Copied
Copy
Copied
; 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"
Copy
Copied
Copy
Copied
;
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"
;
;
Copy
Copied
Copy
Copied
; 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
Copy
Copied
Copy
Copied
sub rsp,
48
sub rsp,
32
vzeroupper
vzeroupper
Copy
Copied
Copy
Copied
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
Copy
Copied
Copy
Copied
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
Copy
Copied
Copy
Copied
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
Copy
Copied
Copy
Copied
;; 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
Copy
Copied
Copy
Copied
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
Copy
Copied
Copy
Copied
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
Copy
Copied
Copy
Copied
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
Copy
Copied
Copy
Copied
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
Copy
Copied
Copy
Copied
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
Copy
Copied
Copy
Copied
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
Copy
Copied
Copy
Copied
; 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 :
Copy
Copied
Copy
Copied
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)
Saved diffs
Original text
Open file
; 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)
Changed text
Open file
; 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)
Find difference