Untitled diff

Creato Il diff non scade mai
147 rimozioni
187 linee
149 aggiunte
178 linee
; Method System.HashCode:AddBytes(System.ReadOnlySpan`1[byte]):this (FullOpts)
; Method System.HashCode2:AddBytes(System.ReadOnlySpan`1[byte]):this (FullOpts)
G_M7565_IG01: ;; offset=0x0000
G_M63263_IG01: ;; offset=0x0000
push r15
push r15
push r14
push r14
push rdi
push rdi
push rsi
push rsi
push rbp
push rbp
push rbx
push rbx
sub rsp, 40
sub rsp, 40
mov rbx, rcx
mov rbx, rcx
;; size=15 bbWeight=1 PerfScore 6.50
;; size=15 bbWeight=1 PerfScore 6.50


G_M7565_IG02: ;; offset=0x000F
G_M63263_IG02: ;; offset=0x000F
mov rsi, bword ptr [rdx]
mov rsi, bword ptr [rdx]
mov edx, dword ptr [rdx+0x08]
mov edi, dword ptr [rdx+0x08]
mov rdi, rsi
cmp edi, 16
mov ebp, edx
jl G_M63263_IG12
add rbp, rdi
;; size=15 bbWeight=1 PerfScore 5.25
cmp edx, 16
jl G_M7565_IG12
;; size=23 bbWeight=1 PerfScore 6.00


G_M7565_IG03: ;; offset=0x0026
G_M63263_IG03: ;; offset=0x001E
mov edx, dword ptr [rbx+0x1C]
mov edx, dword ptr [rbx+0x1C]
test edx, edx
test edx, edx
je SHORT G_M7565_IG08
je SHORT G_M63263_IG08
and edx, 3
and edx, 3
dec edx
dec edx
cmp edx, 2
cmp edx, 2
ja G_M7565_IG10
ja G_M63263_IG11
;; size=21 bbWeight=0.50 PerfScore 2.50
;; size=21 bbWeight=0.50 PerfScore 2.50


G_M7565_IG04: ;; offset=0x003B
G_M63263_IG04: ;; offset=0x0033
mov edx, edx
mov edx, edx
lea rcx, [reloc @RWD00]
lea rcx, [reloc @RWD00]
mov ecx, dword ptr [rcx+4*rdx]
mov ecx, dword ptr [rcx+4*rdx]
lea rax, G_M7565_IG02
lea rax, G_M63263_IG02
add rcx, rax
add rcx, rax
jmp rcx
jmp rcx
;; size=24 bbWeight=0.38 PerfScore 2.25
;; size=24 bbWeight=0.38 PerfScore 2.25


G_M7565_IG05: ;; offset=0x0053
G_M63263_IG05: ;; offset=0x004B
mov edx, dword ptr [rsi]
mov edx, dword ptr [rsi]
mov rcx, rbx
mov rcx, rbx
call [System.HashCode:Add(int):this]
call [System.HashCode2:Add(int):this]
lea rdi, bword ptr [rsi+0x04]
add rsi, 4
;; size=15 bbWeight=0.50 PerfScore 2.88
add edi, -4
;; size=18 bbWeight=0.50 PerfScore 2.88


G_M7565_IG06: ;; offset=0x0062
G_M63263_IG06: ;; offset=0x005D
mov edx, dword ptr [rdi]
mov edx, dword ptr [rsi]
mov rcx, rbx
mov rcx, rbx
call [System.HashCode:Add(int):this]
call [System.HashCode2:Add(int):this]
add rdi, 4
add rsi, 4
;; size=15 bbWeight=0.50 PerfScore 2.75
add edi, -4
;; size=18 bbWeight=0.50 PerfScore 2.88


G_M7565_IG07: ;; offset=0x0071
G_M63263_IG07: ;; offset=0x006F
mov edx, dword ptr [rdi]
mov edx, dword ptr [rsi]
mov rcx, rbx
mov rcx, rbx
call [System.HashCode:Add(int):this]
call [System.HashCode2:Add(int):this]
add rdi, 4
add rsi, 4
jmp SHORT G_M7565_IG10
add edi, -4
align [0 bytes for IG11]
jmp G_M63263_IG11
;; size=17 bbWeight=0.50 PerfScore 3.75
align [0 bytes for IG10]
;; size=23 bbWeight=0.50 PerfScore 3.88


G_M7565_IG08: ;; offset=0x0082
G_M63263_IG08: ;; offset=0x0086
lea rsi, bword ptr [rbx+0x04]
lea rbp, bword ptr [rbx+0x04]
lea r14, bword ptr [rbx+0x08]
lea r14, bword ptr [rbx+0x08]
lea r15, bword ptr [rbx+0x0C]
lea r15, bword ptr [rbx+0x0C]
test byte ptr [(reloc 0x7ffc953aea50)], 1 ; global ptr
test byte ptr [(reloc 0x7ffc953aea58)], 1 ; global ptr
je G_M7565_IG17
je G_M63263_IG17
;; size=25 bbWeight=0.50 PerfScore 2.25
;; size=25 bbWeight=0.50 PerfScore 2.25


G_M7565_IG09: ;; offset=0x009B
G_M63263_IG09: ;; offset=0x009F
mov rdx, 0x7FFC94B0B200 ; data for System.HashCode:s_seed
mov rdx, 0x7FFC94B0B200 ; data for System.HashCode2:s_seed
mov ecx, dword ptr [rdx]
mov ecx, dword ptr [rdx]
add ecx, 0x24234428
add ecx, 0x24234428
mov dword ptr [rbx], ecx
mov dword ptr [rbx], ecx
mov ecx, dword ptr [rdx]
mov ecx, dword ptr [rdx]
add ecx, 0xFFFFFFFF85EBCA77
add ecx, 0xFFFFFFFF85EBCA77
mov dword ptr [rsi], ecx
mov dword ptr [rbp], ecx
mov ecx, dword ptr [rdx]
mov ecx, dword ptr [rdx]
mov dword ptr [r14], ecx
mov dword ptr [r14], ecx
mov edx, dword ptr [rdx]
mov edx, dword ptr [rdx]
add edx, 0x61C8864F
add edx, 0x61C8864F
mov dword ptr [r15], edx
mov dword ptr [r15], edx
;; size=46 bbWeight=0.50 PerfScore 6.50
jmp SHORT G_M63263_IG11

;; size=49 bbWeight=0.50 PerfScore 7.50
G_M7565_IG10: ;; offset=0x00C9
mov rdx, rbp
sub rdx, rdi
mov rcx, rdx
sar rcx, 63
and rcx, 15
add rcx, rdx
and rcx, -16
sub rdx, rcx
mov rcx, rbp
sub rcx, rdx
cmp rdi, rcx
jae SHORT G_M7565_IG12
;; size=38 bbWeight=0.50 PerfScore 2.00


G_M7565_IG11: ;; offset=0x00EF
G_M63263_IG10: ;; offset=0x00D0
mov edx, dword ptr [rbx]
mov edx, dword ptr [rbx]
imul eax, dword ptr [rdi], 0xFFFFFFFF85EBCA77
imul ecx, dword ptr [rsi], 0xFFFFFFFF85EBCA77
add edx, eax
add edx, ecx
rol edx, 13
rol edx, 13
imul edx, edx, 0xFFFFFFFF9E3779B1
imul edx, edx, 0xFFFFFFFF9E3779B1
mov dword ptr [rbx], edx
mov dword ptr [rbx], edx
mov edx, dword ptr [rbx+0x04]
mov edx, dword ptr [rbx+0x04]
imul eax, dword ptr [rdi+0x04], 0xFFFFFFFF85EBCA77
lea rcx, bword ptr [rsi+0x04]
add edx, eax
imul ecx, dword ptr [rcx], 0xFFFFFFFF85EBCA77
add edx, ecx
rol edx, 13
rol edx, 13
imul edx, edx, 0xFFFFFFFF9E3779B1
imul edx, edx, 0xFFFFFFFF9E3779B1
mov dword ptr [rbx+0x04], edx
mov dword ptr [rbx+0x04], edx
mov edx, dword ptr [rbx+0x08]
mov edx, dword ptr [rbx+0x08]
imul eax, dword ptr [rdi+0x08], 0xFFFFFFFF85EBCA77
lea rcx, bword ptr [rsi+0x08]
add edx, eax
imul ecx, dword ptr [rcx], 0xFFFFFFFF85EBCA77
add edx, ecx
rol edx, 13
rol edx, 13
imul edx, edx, 0xFFFFFFFF9E3779B1
imul edx, edx, 0xFFFFFFFF9E3779B1
mov dword ptr [rbx+0x08], edx
mov dword ptr [rbx+0x08], edx
mov edx, dword ptr [rbx+0x0C]
mov edx, dword ptr [rbx+0x0C]
imul eax, dword ptr [rdi+0x0C], 0xFFFFFFFF85EBCA77
lea rcx, bword ptr [rsi+0x0C]
add edx, eax
imul ecx, dword ptr [rcx], 0xFFFFFFFF85EBCA77
add edx, ecx
rol edx, 13
rol edx, 13
imul edx, edx, 0xFFFFFFFF9E3779B1
imul edx, edx, 0xFFFFFFFF9E3779B1
mov dword ptr [rbx+0x0C], edx
mov dword ptr [rbx+0x0C], edx
add dword ptr [rbx+0x1C], 4
add dword ptr [rbx+0x1C], 4
add rdi, 16
add rsi, 16
cmp rdi, rcx
add edi, -16
jb SHORT G_M7565_IG11
;; size=113 bbWeight=6 PerfScore 288.00
;; size=106 bbWeight=4 PerfScore 190.00


G_M7565_IG12: ;; offset=0x0159
G_M63263_IG11: ;; offset=0x0141
mov rdx, rbp
cmp edi, 16
sub rdx, rdi
jge SHORT G_M63263_IG10
cmp rdx, 4
;; size=5 bbWeight=4 PerfScore 5.00
jl SHORT G_M7565_IG14
;; size=12 bbWeight=1 PerfScore 1.75


G_M7565_IG13: ;; offset=0x0165
G_M63263_IG12: ;; offset=0x0146
mov edx, dword ptr [rdi]
cmp edi, 4
jl SHORT G_M63263_IG14
;; size=5 bbWeight=1 PerfScore 1.25

G_M63263_IG13: ;; offset=0x014B
mov edx, dword ptr [rsi]
mov rcx, rbx
mov rcx, rbx
call [System.HashCode:Add(int):this]
call [System.HashCode2:Add(int):this]
add rdi, 4
add rsi, 4
mov rdx, rbp
add edi, -4
sub rdx, rdi
cmp edi, 4
cmp rdx, 4
jge SHORT G_M63263_IG13
jge SHORT G_M7565_IG13
;; size=23 bbWeight=4 PerfScore 28.00
;; size=27 bbWeight=4 PerfScore 29.00


G_M7565_IG14: ;; offset=0x0180
G_M63263_IG14: ;; offset=0x0162
cmp rdi, rbp
xor ebp, ebp
jae SHORT G_M7565_IG16
test edi, edi
;; size=5 bbWeight=0.50 PerfScore 0.62
je SHORT G_M63263_IG16
;; size=6 bbWeight=1 PerfScore 1.50


G_M7565_IG15: ;; offset=0x0185
G_M63263_IG15: ;; offset=0x0168
movzx rdx, byte ptr [rdi]
movzx rdx, byte ptr [rsi+rbp]
mov rcx, rbx
mov rcx, rbx
call [System.HashCode:Add(int):this]
call [System.HashCode2:Add(int):this]
inc rdi
inc ebp
cmp rdi, rbp
cmp ebp, edi
jb SHORT G_M7565_IG15
jl SHORT G_M63263_IG15
;; size=20 bbWeight=4 PerfScore 27.00
;; size=19 bbWeight=3.96 PerfScore 26.73


G_M7565_IG16: ;; offset=0x0199
G_M63263_IG16: ;; offset=0x017B
add rsp, 40
add rsp, 40
pop rbx
pop rbx
pop rbp
pop rbp
pop rsi
pop rsi
pop rdi
pop rdi
pop r14
pop r14
pop r15
pop r15
ret
ret
;; size=13 bbWeight=1 PerfScore 4.25
;; size=13 bbWeight=1 PerfScore 4.25


G_M7565_IG17: ;; offset=0x01A6
G_M63263_IG17: ;; offset=0x0188
mov rcx, 0x7FFC953AE970 ; System.HashCode
mov rcx, 0x7FFC953AE978 ; System.HashCode2
call CORINFO_HELP_GET_NONGCSTATIC_BASE
call CORINFO_HELP_GET_NONGCSTATIC_BASE
jmp G_M7565_IG09
jmp G_M63263_IG09
;; size=20 bbWeight=0 PerfScore 0.00
;; size=20 bbWeight=0 PerfScore 0.00
RWD00 dd 00000044h ; case G_M7565_IG05
RWD00 dd 0000003Ch ; case G_M63263_IG05
dd 00000053h ; case G_M7565_IG06
dd 0000004Eh ; case G_M63263_IG06
dd 00000062h ; case G_M7565_IG07
dd 00000060h ; case G_M63263_IG07
; Total bytes of code: 442
; Total bytes of code: 412