Untitled diff

Created Diff never expires
87 removals
Words removed137
Total words326
Words removed (%)42.02
70 lines
79 additions
Words added130
Total words319
Words added (%)40.75
61 lines
; Assembly listing for method Program:EqualsLoop(ubyte[],ubyte[]):ubyte (Tier1-OSR)
; Assembly listing for method Program:EqualsLoop(ubyte[],ubyte[]):ubyte (Tier1)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; Tier1-OSR code
; Tier1 code
; OSR variant for entry point 0x1c
; optimized code
; optimized code
; optimized using Synthesized PGO
; optimized using Synthesized PGO
; rsp based frame
; rsp based frame
; fully interruptible
; fully interruptible
; with Synthesized PGO: fgCalledCount is 1.99
; with Synthesized PGO: fgCalledCount is 100
; Final local variable assignments
; Final local variable assignments
;
;
; V00 arg0 [V00,T04] ( 4, 94.03) ref -> rcx class-hnd single-def <ubyte[]>
; V00 arg0 [V00,T02] ( 4, 75.82) ref -> rcx class-hnd single-def <ubyte[]>
; V01 arg1 [V01,T02] ( 4,184.06) ref -> rax class-hnd single-def <ubyte[]>
; V01 arg1 [V01,T03] ( 4, 75.82) ref -> rdx class-hnd single-def <ubyte[]>
; V02 loc0 [V02,T00] ( 7,545.80) int -> rdx
; V02 loc0 [V02,T00] ( 5,291.00) int -> r8
; V03 OutArgs [V03 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
; V04 cse0 [V04,T03] ( 4,183.60) int -> r8 "CSE #01: aggressive"
; V04 cse0 [V04,T04] ( 4, 75.26) int -> rax "CSE #01: aggressive"
; V05 cse1 [V05,T01] ( 3,273.08) long -> r10 "CSE #02: aggressive"
; V05 cse1 [V05,T05] ( 2, 2 ) int -> r8 "CSE #03: aggressive"
; V06 cse2 [V06,T01] ( 3,218.47) long -> r10 "CSE #02: aggressive"
;* V07 cse3 [V07,T06] ( 0, 0 ) long -> zero-ref "CSE #04: aggressive"
;
;
; Lcl frame size = 40
; Lcl frame size = 0


G_M45663_IG01: ;; offset=0x0000
G_M45663_IG01: ;; offset=0x0000
sub rsp, 40
;; size=0 bbWeight=1 PerfScore 0.00
mov rcx, gword ptr [rsp+0xB0]
G_M45663_IG02: ;; offset=0x0000
mov rax, gword ptr [rsp+0xB8]
mov eax, dword ptr [rcx+0x08]
mov edx, dword ptr [rsp+0x64]
mov r8d, dword ptr [rdx+0x08]
;; size=24 bbWeight=1 PerfScore 6.25
cmp eax, r8d
G_M45663_IG02: ;; offset=0x0018
jne SHORT G_M45663_IG08
mov r8d, dword ptr [rcx+0x08]
;; size=12 bbWeight=1 PerfScore 5.25
cmp r8d, edx
G_M45663_IG03: ;; offset=0x000C
jle SHORT G_M45663_IG05
xor r8d, r8d
align [0 bytes for IG03]
test eax, eax
;; size=9 bbWeight=1 PerfScore 3.25
jle SHORT G_M45663_IG06
G_M45663_IG03: ;; offset=0x0021
align [13 bytes for IG04]
cmp edx, r8d
;; size=20 bbWeight=0.80 PerfScore 1.40
jae SHORT G_M45663_IG09
G_M45663_IG04: ;; offset=0x0020
mov r10d, edx
mov r10d, r8d
movzx r9, byte ptr [rcx+r10+0x10]
movzx r9, byte ptr [rcx+r10+0x10]
cmp edx, dword ptr [rax+0x08]
cmp r9b, byte ptr [rdx+r10+0x10]
jae SHORT G_M45663_IG09
jne SHORT G_M45663_IG08
cmp r9b, byte ptr [rax+r10+0x10]
;; size=16 bbWeight=72.82 PerfScore 455.14
jne SHORT G_M45663_IG07
G_M45663_IG05: ;; offset=0x0030
;; size=26 bbWeight=91.03 PerfScore 1046.82
inc r8d
G_M45663_IG04: ;; offset=0x003B
cmp eax, r8d
inc edx
jg SHORT G_M45663_IG04
cmp r8d, edx
;; size=8 bbWeight=72.46 PerfScore 108.69
jg SHORT G_M45663_IG03
G_M45663_IG06: ;; offset=0x0038
;; size=7 bbWeight=90.57 PerfScore 135.86
G_M45663_IG05: ;; offset=0x0042
mov eax, 1
mov eax, 1
;; size=5 bbWeight=0.54 PerfScore 0.14
;; size=5 bbWeight=0.44 PerfScore 0.11
G_M45663_IG06: ;; offset=0x0047
G_M45663_IG07: ;; offset=0x003D
add rsp, 160
pop rbp
ret
ret
;; size=9 bbWeight=0.54 PerfScore 0.95
;; size=1 bbWeight=0.44 PerfScore 0.44
G_M45663_IG07: ;; offset=0x0050
G_M45663_IG08: ;; offset=0x003E
xor eax, eax
xor eax, eax
;; size=2 bbWeight=0.46 PerfScore 0.11
;; size=2 bbWeight=0.56 PerfScore 0.14
G_M45663_IG08: ;; offset=0x0052
G_M45663_IG09: ;; offset=0x0040
add rsp, 160
pop rbp
ret
ret
;; size=9 bbWeight=0.46 PerfScore 0.80
;; size=1 bbWeight=0.56 PerfScore 0.56
G_M45663_IG09: ;; offset=0x005B
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00


; Total bytes of code 97, prolog size 24, PerfScore 1194.18, instruction count 29, allocated bytes for code 97 (MethodHash=5b564da0) for method Program:EqualsLoop(ubyte[],ubyte[]):ubyte (Tier1-OSR)
; Total bytes of code 65, prolog size 0, PerfScore 571.73, instruction count 19, allocated bytes for code 65 (MethodHash=5b564da0) for method Program:EqualsLoop(ubyte[],ubyte[]):ubyte (Tier1)
; ============================================================
; ============================================================