Untitled diff

Created Diff never expires
123 removals
110 lines
82 additions
75 lines
; Method Program:DangerousMakeOnesComplement(System.Span`1[nuint]) (FullOpts)
; Method Program:DangerousMakeOnesComplement2(System.Span`1[nuint]) (FullOpts)
G_M50784_IG01: ;; offset=0x0000
G_M34898_IG01: ;; offset=0x0000
sub rsp, 40
;; size=0 bbWeight=1 PerfScore 0.00
;; size=4 bbWeight=1 PerfScore 0.25


G_M50784_IG02: ;; offset=0x0004
G_M34898_IG02: ;; offset=0x0000
mov rax, bword ptr [rcx]
mov rax, bword ptr [rcx]
mov ecx, dword ptr [rcx+0x08]
mov ecx, dword ptr [rcx+0x08]
mov edx, ecx
xor r8d, r8d
cmp ecx, 8
cmp ecx, 8
jl SHORT G_M50784_IG04
jl SHORT G_M34898_IG04
align [12 bytes for IG03]
align [5 bytes for IG03]
;; size=28 bbWeight=1 PerfScore 6.00
;; size=16 bbWeight=1 PerfScore 5.50


G_M50784_IG03: ;; offset=0x0020
G_M34898_IG03: ;; offset=0x0010
movsxd rcx, r8d
vpternlogq zmm0, zmm0, zmmword ptr [rax], 85
vpternlogq zmm0, zmm0, zmmword ptr [rax+8*rcx], 85
vmovups zmmword ptr [rax], zmm0
vmovups zmmword ptr [rax+8*rcx], zmm0
add rax, 64
add r8d, 8
add ecx, -8
mov ecx, edx
sub ecx, r8d
cmp ecx, 8
cmp ecx, 8
jge SHORT G_M50784_IG03
jge SHORT G_M34898_IG03
;; size=32 bbWeight=4 PerfScore 37.00
;; size=25 bbWeight=4 PerfScore 35.00


G_M50784_IG04: ;; offset=0x0040
G_M34898_IG04: ;; offset=0x0029
mov ecx, edx
sub ecx, r8d
cmp ecx, 4
cmp ecx, 4
jl SHORT G_M50784_IG06
jl SHORT G_M34898_IG06
align [6 bytes for IG05]
align [2 bytes for IG05]
;; size=16 bbWeight=0.50 PerfScore 1.00
;; size=7 bbWeight=0.50 PerfScore 0.75


G_M50784_IG05: ;; offset=0x0050
G_M34898_IG05: ;; offset=0x0030
movsxd rcx, r8d
vpternlogq ymm0, ymm0, ymmword ptr [rax], 85
vpternlogq ymm0, ymm0, ymmword ptr [rax+8*rcx], 85
vmovups ymmword ptr [rax], ymm0
vmovups ymmword ptr [rax+8*rcx], ymm0
add rax, 32
add r8d, 4
add ecx, -4
mov ecx, edx
sub ecx, r8d
cmp ecx, 4
cmp ecx, 4
jge SHORT G_M50784_IG05
jge SHORT G_M34898_IG05
;; size=30 bbWeight=4 PerfScore 29.00
;; size=23 bbWeight=4 PerfScore 27.00


G_M50784_IG06: ;; offset=0x006E
G_M34898_IG06: ;; offset=0x0047
mov ecx, edx
sub ecx, r8d
cmp ecx, 2
cmp ecx, 2
jl SHORT G_M50784_IG08
jl SHORT G_M34898_IG08
align [8 bytes for IG07]
align [4 bytes for IG07]
;; size=18 bbWeight=0.50 PerfScore 1.00
;; size=9 bbWeight=0.50 PerfScore 0.75


G_M50784_IG07: ;; offset=0x0080
G_M34898_IG07: ;; offset=0x0050
movsxd rcx, r8d
vpternlogq xmm0, xmm0, xmmword ptr [rax], 85
vpternlogq xmm0, xmm0, xmmword ptr [rax+8*rcx], 85
vmovups xmmword ptr [rax], xmm0
vmovups xmmword ptr [rax+8*rcx], xmm0
add rax, 16
add r8d, 2
add ecx, -2
mov ecx, edx
sub ecx, r8d
cmp ecx, 2
cmp ecx, 2
jge SHORT G_M50784_IG07
jge SHORT G_M34898_IG07
;; size=30 bbWeight=4 PerfScore 25.00
;; size=23 bbWeight=4 PerfScore 23.00


G_M50784_IG08: ;; offset=0x009E
G_M34898_IG08: ;; offset=0x0067
cmp r8d, edx
test ecx, ecx
jge SHORT G_M50784_IG11
je SHORT G_M34898_IG11
;; size=5 bbWeight=0.50 PerfScore 0.62
;; size=4 bbWeight=1 PerfScore 1.25


G_M50784_IG09: ;; offset=0x00A3
G_M34898_IG09: ;; offset=0x006B
test r8d, r8d
xor edx, edx
jl SHORT G_M50784_IG12
align [0 bytes for IG10]
align [0 bytes for IG10]
;; size=5 bbWeight=0.25 PerfScore 0.31
;; size=2 bbWeight=0.50 PerfScore 0.12


G_M50784_IG10: ;; offset=0x00A8
G_M34898_IG10: ;; offset=0x006D
mov ecx, r8d
not qword ptr [rax+rdx]
not qword ptr [rax+8*rcx]
add rdx, 8
inc r8d
dec ecx
cmp r8d, edx
jne SHORT G_M34898_IG10
jl SHORT G_M50784_IG10
;; size=12 bbWeight=3.96 PerfScore 17.82
;; size=15 bbWeight=3.96 PerfScore 18.81


G_M50784_IG11: ;; offset=0x00B7
G_M34898_IG11: ;; offset=0x0079
vzeroupper
vzeroupper
add rsp, 40
ret
ret
;; size=8 bbWeight=1 PerfScore 2.25
;; size=4 bbWeight=1 PerfScore 2.00

; Total bytes of code: 125
G_M50784_IG12: ;; offset=0x00BF
cmp r8d, edx
jae SHORT G_M50784_IG13
mov ecx, r8d
mov r10d, r8d
mov r10, qword ptr [rax+8*r10]
not r10
mov qword ptr [rax+8*rcx], r10
inc r8d
cmp r8d, edx
jl SHORT G_M50784_IG12
jmp SHORT G_M50784_IG11
;; size=32 bbWeight=0.04 PerfScore 0.34

G_M50784_IG13: ;; offset=0x00DF
call CORINFO_HELP_RNGCHKFAIL
int3
;; size=6 bbWeight=0 PerfScore 0.00
; Total bytes of code: 229