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 unchanged lines
Disable line wrap
Layout
Split
Unified
Diff precision
Smart
Word
Char
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
3 years ago
Diff never expires
Clear
Export
Share
Explain
14 removals
Lines
Total
Removed
Characters
Total
Removed
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
548 lines
Copy
18 additions
Lines
Total
Added
Characters
Total
Added
To continue using this feature, upgrade to
Diff
checker
Pro
View Pricing
553 lines
Copy
G_M60723_IG01:
G_M60723_IG01:
push rbp
push rbp
push r15
push r15
push r14
push r14
push r13
push r13
push r12
push r12
push rdi
push rdi
push rsi
push rsi
push rbx
push rbx
sub rsp, 200
sub rsp, 200
lea rbp, [rsp+20H]
lea rbp, [rsp+20H]
xor eax, eax
xor eax, eax
mov qword ptr [rbp+38H], rax
mov qword ptr [rbp+38H], rax
vxorps xmm4, xmm4
vxorps xmm4, xmm4
mov rax, -96
mov rax, -96
vmovdqa xmmword ptr [rbp+rax+A0H], xmm4
vmovdqa xmmword ptr [rbp+rax+A0H], xmm4
vmovdqa xmmword ptr [rbp+rax+B0H], xmm4
vmovdqa xmmword ptr [rbp+rax+B0H], xmm4
vmovdqa xmmword ptr [rbp+rax+C0H], xmm4
vmovdqa xmmword ptr [rbp+rax+C0H], xmm4
add rax, 48
add rax, 48
jne SHORT -5 instr
jne SHORT -5 instr
mov qword ptr [rbp+A0H], rax
mov qword ptr [rbp+A0H], rax
mov rax, 0xD1FFAB1E
mov rax, 0xD1FFAB1E
mov qword ptr [rbp+08H], rax
mov qword ptr [rbp+08H], rax
mov rsi, rcx
mov rsi, rcx
mov edi, r8d
mov edi, r8d
;; size=104 bbWeight=1 PerfScore 20.58
;; size=104 bbWeight=1 PerfScore 20.58
G_M60723_IG02:
G_M60723_IG02:
mov rbx, gword ptr [rdx]
mov rbx, gword ptr [rdx]
mov r14d, dword ptr [rdx+08H]
mov r14d, dword ptr [rdx+08H]
test edi, edi
test edi, edi
jne SHORT G_M60723_IG06
jne SHORT G_M60723_IG06
;; size=11 bbWeight=1 PerfScore 5.25
;; size=11 bbWeight=1 PerfScore 5.25
G_M60723_IG03:
G_M60723_IG03:
mov rcx, rsi
mov rcx, rsi
mov rdx, rbx
mov rdx, rbx
call CORINFO_HELP_CHECKED_ASSIGN_REF
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov dword ptr [rsi+08H], r14d
mov dword ptr [rsi+08H], r14d
mov rax, rsi
mov rax, rsi
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
cmp qword ptr [rbp+08H], rcx
cmp qword ptr [rbp+08H], rcx
je SHORT G_M60723_IG04
je SHORT G_M60723_IG04
call CORINFO_HELP_FAIL_FAST
call CORINFO_HELP_FAIL_FAST
;; size=39 bbWeight=0.50 PerfScore 3.50
;; size=39 bbWeight=0.50 PerfScore 3.50
G_M60723_IG04:
G_M60723_IG04:
nop
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M60723_IG05:
G_M60723_IG05:
lea rsp, [rbp+A8H]
lea rsp, [rbp+A8H]
pop rbx
pop rbx
pop rsi
pop rsi
pop rdi
pop rdi
pop r12
pop r12
pop r13
pop r13
pop r14
pop r14
pop r15
pop r15
pop rbp
pop rbp
ret
ret
;; size=20 bbWeight=0.50 PerfScore 2.75
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M60723_IG06:
G_M60723_IG06:
cmp edi, 0xD1FFAB1E
cmp edi, 0xD1FFAB1E
jne SHORT G_M60723_IG09
jne SHORT G_M60723_IG09
mov gword ptr [rbp+58H], rbx
mov gword ptr [rbp+58H], rbx
mov dword ptr [rbp+60H], r14d
mov dword ptr [rbp+60H], r14d
lea rdx, [rbp+58H]
lea rdx, [rbp+58H]
lea rcx, [rbp+78H]
lea rcx, [rbp+78H]
mov r8d, 0xD1FFAB1E
mov r8d, 0xD1FFAB1E
call [System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger]
call [System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger]
mov rcx, gword ptr [rbp+78H]
mov rcx, gword ptr [rbp+78H]
mov gword ptr [rbp+58H], rcx
mov gword ptr [rbp+58H], rcx
mov ecx, dword ptr [rbp+80H]
mov ecx, dword ptr [rbp+80H]
mov dword ptr [rbp+60H], ecx
mov dword ptr [rbp+60H], ecx
mov rcx, rsi
mov rcx, rsi
lea rdx, [rbp+58H]
lea rdx, [rbp+58H]
mov r8d, 1
mov r8d, 1
call [System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger]
call [System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger]
mov rax, rsi
mov rax, rsi
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
cmp qword ptr [rbp+08H], rcx
cmp qword ptr [rbp+08H], rcx
je SHORT G_M60723_IG07
je SHORT G_M60723_IG07
call CORINFO_HELP_FAIL_FAST
call CORINFO_HELP_FAIL_FAST
;; size=96 bbWeight=0.50 PerfScore 10.00
;; size=96 bbWeight=0.50 PerfScore 10.00
G_M60723_IG07:
G_M60723_IG07:
nop
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M60723_IG08:
G_M60723_IG08:
lea rsp, [rbp+A8H]
lea rsp, [rbp+A8H]
pop rbx
pop rbx
pop rsi
pop rsi
pop rdi
pop rdi
pop r12
pop r12
pop r13
pop r13
pop r14
pop r14
pop r15
pop r15
pop rbp
pop rbp
ret
ret
;; size=20 bbWeight=0.50 PerfScore 2.75
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M60723_IG09:
G_M60723_IG09:
test edi, edi
test edi, edi
jge SHORT G_M60723_IG12
jge SHORT G_M60723_IG12
mov gword ptr [rbp+58H], rbx
mov gword ptr [rbp+58H], rbx
mov dword ptr [rbp+60H], r14d
mov dword ptr [rbp+60H], r14d
mov rcx, rsi
mov rcx, rsi
lea rdx, [rbp+58H]
lea rdx, [rbp+58H]
mov r8d, edi
mov r8d, edi
neg r8d
neg r8d
call [System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger]
call [System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger]
mov rax, rsi
mov rax, rsi
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
cmp qword ptr [rbp+08H], rcx
cmp qword ptr [rbp+08H], rcx
je SHORT G_M60723_IG10
je SHORT G_M60723_IG10
call CORINFO_HELP_FAIL_FAST
call CORINFO_HELP_FAIL_FAST
;; size=55 bbWeight=0.50 PerfScore 6.00
;; size=55 bbWeight=0.50 PerfScore 6.00
G_M60723_IG10:
G_M60723_IG10:
nop
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M60723_IG11:
G_M60723_IG11:
lea rsp, [rbp+A8H]
lea rsp, [rbp+A8H]
pop rbx
pop rbx
pop rsi
pop rsi
pop rdi
pop rdi
pop r12
pop r12
pop r13
pop r13
pop r14
pop r14
pop r15
pop r15
pop rbp
pop rbp
ret
ret
;; size=20 bbWeight=0.50 PerfScore 2.75
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M60723_IG12:
G_M60723_IG12:
mov r15d, edi
mov r15d, edi
sar r15d, 31
sar r15d, 31
and r15d, 31
and r15d, 31
add r15d, edi
add r15d, edi
sar r15d, 5
sar r15d, 5
mov ecx, r15d
mov ecx, r15d
shl ecx, 5
shl ecx, 5
mov r12d, edi
mov r12d, edi
sub r12d, ecx
sub r12d, ecx
xor r13, r13
xor r13, r13
mov rcx, rbx
mov rcx, rbx
test rcx, rcx
test rcx, rcx
jne SHORT G_M60723_IG13
jne SHORT G_M60723_IG13
mov eax, 1
mov eax, 1
jmp SHORT G_M60723_IG14
jmp SHORT G_M60723_IG14
Copy
Copied
Copy
Copied
align [
3
bytes for IG36]
align [
0
bytes for IG36]
;; size=
51
bbWeight=0.50 PerfScore 3.50
;; size=
48
bbWeight=0.50 PerfScore 3.50
G_M60723_IG13:
G_M60723_IG13:
mov eax, dword ptr [rbx+08H]
mov eax, dword ptr [rbx+08H]
;; size=3 bbWeight=0.50 PerfScore 1.00
;; size=3 bbWeight=0.50 PerfScore 1.00
G_M60723_IG14:
G_M60723_IG14:
mov dword ptr [rbp+94H], eax
mov dword ptr [rbp+94H], eax
cmp eax, 64
cmp eax, 64
jg SHORT G_M60723_IG15
jg SHORT G_M60723_IG15
test dword ptr [rsp], esp
test dword ptr [rsp], esp
sub rsp, 256
sub rsp, 256
lea r8, [rsp+20H]
lea r8, [rsp+20H]
mov r9d, 64
mov r9d, 64
jmp SHORT G_M60723_IG17
jmp SHORT G_M60723_IG17
;; size=34 bbWeight=0.50 PerfScore 4.12
;; size=34 bbWeight=0.50 PerfScore 4.12
G_M60723_IG15:
G_M60723_IG15:
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov edx, 69
mov edx, 69
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rcx, gword ptr [rcx]
mov rcx, gword ptr [rcx]
mov edx, dword ptr [rbp+94H]
mov edx, dword ptr [rbp+94H]
cmp dword ptr [rcx], ecx
cmp dword ptr [rcx], ecx
call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Rent(int):uint[]:this]
call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Rent(int):uint[]:this]
mov r13, rax
mov r13, rax
test r13, r13
test r13, r13
jne SHORT G_M60723_IG16
jne SHORT G_M60723_IG16
xor r8, r8
xor r8, r8
xor r9d, r9d
xor r9d, r9d
jmp SHORT G_M60723_IG17
jmp SHORT G_M60723_IG17
;; size=63 bbWeight=0.50 PerfScore 7.38
;; size=63 bbWeight=0.50 PerfScore 7.38
G_M60723_IG16:
G_M60723_IG16:
lea r8, bword ptr [r13+10H]
lea r8, bword ptr [r13+10H]
mov gword ptr [rbp+28H], r13
mov gword ptr [rbp+28H], r13
mov r9d, dword ptr [r13+08H]
mov r9d, dword ptr [r13+08H]
mov r13, gword ptr [rbp+28H]
mov r13, gword ptr [rbp+28H]
;; size=16 bbWeight=0.50 PerfScore 2.25
;; size=16 bbWeight=0.50 PerfScore 2.25
G_M60723_IG17:
G_M60723_IG17:
mov eax, dword ptr [rbp+94H]
mov eax, dword ptr [rbp+94H]
cmp eax, r9d
cmp eax, r9d
ja G_M60723_IG56
ja G_M60723_IG56
mov r9, r8
mov r9, r8
mov bword ptr [rbp+18H], r9
mov bword ptr [rbp+18H], r9
mov dword ptr [rbp+6CH], eax
mov dword ptr [rbp+6CH], eax
test rbx, rbx
test rbx, rbx
jne SHORT G_M60723_IG20
jne SHORT G_M60723_IG20
test eax, eax
test eax, eax
je G_M60723_IG57
je G_M60723_IG57
test r14d, r14d
test r14d, r14d
jl SHORT G_M60723_IG18
jl SHORT G_M60723_IG18
mov r8d, r14d
mov r8d, r14d
jmp SHORT G_M60723_IG19
jmp SHORT G_M60723_IG19
;; size=48 bbWeight=0.50 PerfScore 5.25
;; size=48 bbWeight=0.50 PerfScore 5.25
G_M60723_IG18:
G_M60723_IG18:
mov r8d, r14d
mov r8d, r14d
neg r8d
neg r8d
;; size=6 bbWeight=0.50 PerfScore 0.25
;; size=6 bbWeight=0.50 PerfScore 0.25
G_M60723_IG19:
G_M60723_IG19:
mov dword ptr [r9], r8d
mov dword ptr [r9], r8d
jmp SHORT G_M60723_IG21
jmp SHORT G_M60723_IG21
;; size=5 bbWeight=0.50 PerfScore 1.50
;; size=5 bbWeight=0.50 PerfScore 1.50
G_M60723_IG20:
G_M60723_IG20:
lea rdx, bword ptr [rbx+10H]
lea rdx, bword ptr [rbx+10H]
mov r8d, dword ptr [rbx+08H]
mov r8d, dword ptr [rbx+08H]
cmp r8d, eax
cmp r8d, eax
ja G_M60723_IG55
ja G_M60723_IG55
mov r8d, r8d
mov r8d, r8d
shl r8, 2
shl r8, 2
mov rcx, r9
mov rcx, r9
call [System.Buffer:Memmove(byref,byref,ulong)]
call [System.Buffer:Memmove(byref,byref,ulong)]
mov eax, dword ptr [rbp+94H]
mov eax, dword ptr [rbp+94H]
mov r9, bword ptr [rbp+18H]
mov r9, bword ptr [rbp+18H]
;; size=43 bbWeight=0.50 PerfScore 4.88
;; size=43 bbWeight=0.50 PerfScore 4.88
G_M60723_IG21:
G_M60723_IG21:
mov ebx, r14d
mov ebx, r14d
shr ebx, 31
shr ebx, 31
xor r14d, r14d
xor r14d, r14d
test ebx, ebx
test ebx, ebx
Copy
Copied
Copy
Copied
je
SHORT
G_M60723_IG25
je
G_M60723_IG25
movsxd rcx, edi
movsxd rcx, edi
mov edx, eax
mov edx, eax
shl rdx, 5
shl rdx, 5
cmp rcx, rdx
cmp rcx, rdx
jl SHORT G_M60723_IG22
jl SHORT G_M60723_IG22
Copy
Copied
Copy
Copied
lea
rcx, [rbp+98H]
mov
r9, 0xD1FFAB1E
; box for
System.Numerics.BigInteger:
s_bnMinusOneInt
call [
System.Numerics.BigInteger:
get_MinusOne():System.Numerics.BigInteger]
mov rax, gword ptr [r9]
add rax, 8
mov rcx, gword ptr [rax]
mov gword ptr [rbp+98H], rcx
mov ecx, dword ptr [rax+08H]
mov dword ptr [rbp+A0H], ecx
jmp G_M60723_IG49
jmp G_M60723_IG49
Copy
Copied
Copy
Copied
;; size=
45
bbWeight=0.50 PerfScore
5.00
;; size=
72
bbWeight=0.50 PerfScore
7.50
G_M60723_IG22:
G_M60723_IG22:
mov bword ptr [rbp+48H], r9
mov bword ptr [rbp+48H], r9
mov dword ptr [rbp+50H], eax
mov dword ptr [rbp+50H], eax
lea rcx, [rbp+48H]
lea rcx, [rbp+48H]
call [System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])]
call [System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])]
test r12d, r12d
test r12d, r12d
jne SHORT G_M60723_IG23
jne SHORT G_M60723_IG23
mov r14d, dword ptr [rbp+94H]
mov r14d, dword ptr [rbp+94H]
lea edi, [r14-01H]
lea edi, [r14-01H]
cmp edi, r14d
cmp edi, r14d
jae G_M60723_IG57
jae G_M60723_IG57
mov ecx, edi
mov ecx, edi
mov rdi, bword ptr [rbp+18H]
mov rdi, bword ptr [rbp+18H]
cmp dword ptr [rdi+4*rcx], 0
cmp dword ptr [rdi+4*rcx], 0
sete cl
sete cl
movzx rcx, cl
movzx rcx, cl
jmp SHORT G_M60723_IG24
jmp SHORT G_M60723_IG24
;; size=60 bbWeight=0.50 PerfScore 8.50
;; size=60 bbWeight=0.50 PerfScore 8.50
G_M60723_IG23:
G_M60723_IG23:
xor ecx, ecx
xor ecx, ecx
;; size=2 bbWeight=0.50 PerfScore 0.12
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M60723_IG24:
G_M60723_IG24:
movzx r14, cl
movzx r14, cl
mov r9, bword ptr [rbp+18H]
mov r9, bword ptr [rbp+18H]
;; size=8 bbWeight=0.50 PerfScore 0.62
;; size=8 bbWeight=0.50 PerfScore 0.62
G_M60723_IG25:
G_M60723_IG25:
xor rdi, rdi
xor rdi, rdi
mov r10d, dword ptr [rbp+6CH]
mov r10d, dword ptr [rbp+6CH]
mov eax, r10d
mov eax, r10d
sub eax, r15d
sub eax, r15d
jns SHORT G_M60723_IG26
jns SHORT G_M60723_IG26
xor r8d, r8d
xor r8d, r8d
jmp SHORT G_M60723_IG27
jmp SHORT G_M60723_IG27
;; size=19 bbWeight=0.50 PerfScore 2.50
;; size=19 bbWeight=0.50 PerfScore 2.50
G_M60723_IG26:
G_M60723_IG26:
mov r8d, eax
mov r8d, eax
;; size=3 bbWeight=0.50 PerfScore 0.12
;; size=3 bbWeight=0.50 PerfScore 0.12
G_M60723_IG27:
G_M60723_IG27:
mov dword ptr [rbp+90H], r14d
mov dword ptr [rbp+90H], r14d
test r14d, r14d
test r14d, r14d
jne SHORT G_M60723_IG28
jne SHORT G_M60723_IG28
xor eax, eax
xor eax, eax
jmp SHORT G_M60723_IG29
jmp SHORT G_M60723_IG29
;; size=16 bbWeight=0.50 PerfScore 2.25
;; size=16 bbWeight=0.50 PerfScore 2.25
G_M60723_IG28:
G_M60723_IG28:
mov eax, 1
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M60723_IG29:
G_M60723_IG29:
add eax, r8d
add eax, r8d
mov dword ptr [rbp+8CH], eax
mov dword ptr [rbp+8CH], eax
cmp eax, 64
cmp eax, 64
ja SHORT G_M60723_IG30
ja SHORT G_M60723_IG30
test dword ptr [rsp], esp
test dword ptr [rsp], esp
sub rsp, 256
sub rsp, 256
lea r8, [rsp+20H]
lea r8, [rsp+20H]
mov r11d, 64
mov r11d, 64
jmp SHORT G_M60723_IG33
jmp SHORT G_M60723_IG33
;; size=37 bbWeight=0.50 PerfScore 4.25
;; size=37 bbWeight=0.50 PerfScore 4.25
G_M60723_IG30:
G_M60723_IG30:
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov edx, 69
mov edx, 69
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rcx, gword ptr [rcx]
mov rcx, gword ptr [rcx]
mov edx, dword ptr [rbp+8CH]
mov edx, dword ptr [rbp+8CH]
cmp dword ptr [rcx], ecx
cmp dword ptr [rcx], ecx
call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Rent(int):uint[]:this]
call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Rent(int):uint[]:this]
mov rdi, rax
mov rdi, rax
test rdi, rdi
test rdi, rdi
jne SHORT G_M60723_IG31
jne SHORT G_M60723_IG31
xor r8, r8
xor r8, r8
xor r11d, r11d
xor r11d, r11d
jmp SHORT G_M60723_IG32
jmp SHORT G_M60723_IG32
;; size=63 bbWeight=0.50 PerfScore 7.38
;; size=63 bbWeight=0.50 PerfScore 7.38
G_M60723_IG31:
G_M60723_IG31:
lea r8, bword ptr [rdi+10H]
lea r8, bword ptr [rdi+10H]
mov gword ptr [rbp+20H], rdi
mov gword ptr [rbp+20H], rdi
mov r11d, dword ptr [rdi+08H]
mov r11d, dword ptr [rdi+08H]
mov rdi, gword ptr [rbp+20H]
mov rdi, gword ptr [rbp+20H]
;; size=16 bbWeight=0.50 PerfScore 2.25
;; size=16 bbWeight=0.50 PerfScore 2.25
G_M60723_IG32:
G_M60723_IG32:
mov r9, bword ptr [rbp+18H]
mov r9, bword ptr [rbp+18H]
;; size=4 bbWeight=0.50 PerfScore 0.50
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M60723_IG33:
G_M60723_IG33:
mov eax, dword ptr [rbp+8CH]
mov eax, dword ptr [rbp+8CH]
cmp eax, r11d
cmp eax, r11d
ja G_M60723_IG56
ja G_M60723_IG56
mov r11, r8
mov r11, r8
mov rcx, r11
mov rcx, r11
mov bword ptr [rbp+10H], rcx
mov bword ptr [rbp+10H], rcx
mov dword ptr [rbp+68H], eax
mov dword ptr [rbp+68H], eax
mov edx, eax
mov edx, eax
shl rdx, 2
shl rdx, 2
mov qword ptr [rbp+70H], rdx
mov qword ptr [rbp+70H], rdx
test rdx, rdx
test rdx, rdx
je SHORT G_M60723_IG35
je SHORT G_M60723_IG35
cmp rdx, 768
cmp rdx, 768
ja SHORT G_M60723_IG34
ja SHORT G_M60723_IG34
xor edx, edx
xor edx, edx
mov r8d, dword ptr [rbp+70H]
mov r8d, dword ptr [rbp+70H]
call CORINFO_HELP_MEMSET
call CORINFO_HELP_MEMSET
mov rcx, bword ptr [rbp+10H]
mov rcx, bword ptr [rbp+10H]
mov r9, bword ptr [rbp+18H]
mov r9, bword ptr [rbp+18H]
jmp SHORT G_M60723_IG35
jmp SHORT G_M60723_IG35
;; size=73 bbWeight=0.50 PerfScore 7.62
;; size=73 bbWeight=0.50 PerfScore 7.62
G_M60723_IG34:
G_M60723_IG34:
mov rdx, qword ptr [rbp+70H]
mov rdx, qword ptr [rbp+70H]
call [System.Buffer:_ZeroMemory(byref,ulong)]
call [System.Buffer:_ZeroMemory(byref,ulong)]
mov rcx, bword ptr [rbp+10H]
mov rcx, bword ptr [rbp+10H]
mov r9, bword ptr [rbp+18H]
mov r9, bword ptr [rbp+18H]
;; size=18 bbWeight=0.50 PerfScore 3.00
;; size=18 bbWeight=0.50 PerfScore 3.00
G_M60723_IG35:
G_M60723_IG35:
test r12d, r12d
test r12d, r12d
jne SHORT G_M60723_IG39
jne SHORT G_M60723_IG39
mov r10d, dword ptr [rbp+6CH]
mov r10d, dword ptr [rbp+6CH]
lea edx, [r10-01H]
lea edx, [r10-01H]
cmp edx, r15d
cmp edx, r15d
jl SHORT G_M60723_IG38
jl SHORT G_M60723_IG38
;; size=18 bbWeight=0.50 PerfScore 2.00
;; size=18 bbWeight=0.50 PerfScore 2.00
G_M60723_IG36:
G_M60723_IG36:
mov r8d, edx
mov r8d, edx
sub r8d, r15d
sub r8d, r15d
mov eax, dword ptr [rbp+68H]
mov eax, dword ptr [rbp+68H]
cmp r8d, eax
cmp r8d, eax
jae G_M60723_IG57
jae G_M60723_IG57
mov r8d, r8d
mov r8d, r8d
cmp edx, r10d
cmp edx, r10d
jae G_M60723_IG57
jae G_M60723_IG57
mov r11d, edx
mov r11d, edx
mov r11d, dword ptr [r9+4*r11]
mov r11d, dword ptr [r9+4*r11]
mov dword ptr [rcx+4*r8], r11d
mov dword ptr [rcx+4*r8], r11d
dec edx
dec edx
cmp edx, r15d
cmp edx, r15d
jge SHORT G_M60723_IG36
jge SHORT G_M60723_IG36
;; size=48 bbWeight=4 PerfScore 36.00
;; size=48 bbWeight=4 PerfScore 36.00
G_M60723_IG37:
G_M60723_IG37:
mov gword ptr [rbp+28H], r13
mov gword ptr [rbp+28H], r13
mov gword ptr [rbp+20H], rdi
mov gword ptr [rbp+20H], rdi
mov eax, dword ptr [rbp+68H]
mov eax, dword ptr [rbp+68H]
jmp G_M60723_IG46
jmp G_M60723_IG46
;; size=16 bbWeight=0.50 PerfScore 2.50
;; size=16 bbWeight=0.50 PerfScore 2.50
G_M60723_IG38:
G_M60723_IG38:
mov gword ptr [rbp+28H], r13
mov gword ptr [rbp+28H], r13
mov gword ptr [rbp+20H], rdi
mov gword ptr [rbp+20H], rdi
mov eax, dword ptr [rbp+68H]
mov eax, dword ptr [rbp+68H]
jmp G_M60723_IG46
jmp G_M60723_IG46
align [0 bytes for IG40]
align [0 bytes for IG40]
;; size=16 bbWeight=0.25 PerfScore 1.25
;; size=16 bbWeight=0.25 PerfScore 1.25
G_M60723_IG39:
G_M60723_IG39:
mov edx, r12d
mov edx, r12d
neg edx
neg edx
add edx, 32
add edx, 32
xor r8d, r8d
xor r8d, r8d
mov r10d, dword ptr [rbp+6CH]
mov r10d, dword ptr [rbp+6CH]
lea r11d, [r10-01H]
lea r11d, [r10-01H]
mov r14d, r11d
mov r14d, r11d
cmp r14d, r15d
cmp r14d, r15d
mov gword ptr [rbp+28H], r13
mov gword ptr [rbp+28H], r13
jl SHORT G_M60723_IG43
jl SHORT G_M60723_IG43
;; size=31 bbWeight=0.50 PerfScore 2.50
;; size=31 bbWeight=0.50 PerfScore 2.50
G_M60723_IG40:
G_M60723_IG40:
cmp r14d, r10d
cmp r14d, r10d
jae G_M60723_IG57
jae G_M60723_IG57
mov r13d, r14d
mov r13d, r14d
mov r13d, dword ptr [r9+4*r13]
mov r13d, dword ptr [r9+4*r13]
test ebx, ebx
test ebx, ebx
je SHORT G_M60723_IG42
je SHORT G_M60723_IG42
;; size=20 bbWeight=4 PerfScore 19.00
;; size=20 bbWeight=4 PerfScore 19.00
G_M60723_IG41:
G_M60723_IG41:
mov dword ptr [rbp+34H], r11d
mov dword ptr [rbp+34H], r11d
cmp r14d, r11d
cmp r14d, r11d
mov gword ptr [rbp+20H], rdi
mov gword ptr [rbp+20H], rdi
jne SHORT G_M60723_IG44
jne SHORT G_M60723_IG44
mov r8d, r14d
mov r8d, r14d
sub r8d, r15d
sub r8d, r15d
mov eax, dword ptr [rbp+68H]
mov eax, dword ptr [rbp+68H]
cmp r8d, eax
cmp r8d, eax
jae G_M60723_IG57
jae G_M60723_IG57
mov r8d, r8d
mov r8d, r8d
shrx edi, r13d, r12d
shrx edi, r13d, r12d
mov r11d, -1
mov r11d, -1
shlx r11d, r11d, edx
shlx r11d, r11d, edx
or r11d, edi
or r11d, edi
mov dword ptr [rcx+4*r8], r11d
mov dword ptr [rcx+4*r8], r11d
jmp SHORT G_M60723_IG45
jmp SHORT G_M60723_IG45
;; size=59 bbWeight=2 PerfScore 21.50
;; size=59 bbWeight=2 PerfScore 21.50
G_M60723_IG42:
G_M60723_IG42:
mov dword ptr [rbp+34H], r11d
mov dword ptr [rbp+34H], r11d
mov gword ptr [rbp+20H], rdi
mov gword ptr [rbp+20H], rdi
jmp SHORT G_M60723_IG44
jmp SHORT G_M60723_IG44
;; size=10 bbWeight=2 PerfScore 8.00
;; size=10 bbWeight=2 PerfScore 8.00
G_M60723_IG43:
G_M60723_IG43:
mov gword ptr [rbp+20H], rdi
mov gword ptr [rbp+20H], rdi
mov eax, dword ptr [rbp+68H]
mov eax, dword ptr [rbp+68H]
jmp SHORT G_M60723_IG46
jmp SHORT G_M60723_IG46
;; size=9 bbWeight=0.25 PerfScore 1.00
;; size=9 bbWeight=0.25 PerfScore 1.00
G_M60723_IG44:
G_M60723_IG44:
mov edi, r14d
mov edi, r14d
sub edi, r15d
sub edi, r15d
mov eax, dword ptr [rbp+68H]
mov eax, dword ptr [rbp+68H]
cmp edi, eax
cmp edi, eax
jae G_M60723_IG57
jae G_M60723_IG57
mov edi, edi
mov edi, edi
shrx r11d, r13d, r12d
shrx r11d, r13d, r12d
or r8d, r11d
or r8d, r11d
mov dword ptr [rcx+4*rdi], r8d
mov dword ptr [rcx+4*rdi], r8d
;; size=31 bbWeight=2 PerfScore 9.50
;; size=31 bbWeight=2 PerfScore 9.50
G_M60723_IG45:
G_M60723_IG45:
shlx r8d, r13d, edx
shlx r8d, r13d, edx
dec r14d
dec r14d
cmp r14d, r15d
cmp r14d, r15d
mov r11d, dword ptr [rbp+34H]
mov r11d, dword ptr [rbp+34H]
jge G_M60723_IG54
jge G_M60723_IG54
;; size=21 bbWeight=4 PerfScore 12.00
;; size=21 bbWeight=4 PerfScore 12.00
G_M60723_IG46:
G_M60723_IG46:
test ebx, ebx
test ebx, ebx
je SHORT G_M60723_IG48
je SHORT G_M60723_IG48
cmp dword ptr [rbp+90H], 0
cmp dword ptr [rbp+90H], 0
je SHORT G_M60723_IG47
je SHORT G_M60723_IG47
lea edx, [rax-01H]
lea edx, [rax-01H]
cmp edx, eax
cmp edx, eax
jae G_M60723_IG57
jae G_M60723_IG57
mov edx, edx
mov edx, edx
mov dword ptr [rcx+4*rdx], -1
mov dword ptr [rcx+4*rdx], -1
;; size=33 bbWeight=0.50 PerfScore 3.62
;; size=33 bbWeight=0.50 PerfScore 3.62
G_M60723_IG47:
G_M60723_IG47:
mov bword ptr [rbp+48H], rcx
mov bword ptr [rbp+48H], rcx
mov dword ptr [rbp+50H], eax
mov dword ptr [rbp+50H], eax
lea rcx, [rbp+48H]
lea rcx, [rbp+48H]
call [System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])]
call [System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])]
mov eax, dword ptr [rbp+68H]
mov eax, dword ptr [rbp+68H]
mov rcx, bword ptr [rbp+10H]
mov rcx, bword ptr [rbp+10H]
;; size=24 bbWeight=0.50 PerfScore 3.75
;; size=24 bbWeight=0.50 PerfScore 3.75
G_M60723_IG48:
G_M60723_IG48:
mov bword ptr [rbp+38H], rcx
mov bword ptr [rbp+38H], rcx
mov dword ptr [rbp+40H], eax
mov dword ptr [rbp+40H], eax
lea rdx, [rbp+38H]
lea rdx, [rbp+38H]
lea rcx, [rbp+98H]
lea rcx, [rbp+98H]
mov r8d, ebx
mov r8d, ebx
call [System.Numerics.BigInteger:.ctor(System.ReadOnlySpan`1[uint],bool):this]
call [System.Numerics.BigInteger:.ctor(System.ReadOnlySpan`1[uint],bool):this]
mov rdi, gword ptr [rbp+20H]
mov rdi, gword ptr [rbp+20H]
test rdi, rdi
test rdi, rdi
je G_M60723_IG53
je G_M60723_IG53
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov edx, 69
mov edx, 69
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rcx, gword ptr [rcx]
mov rcx, gword ptr [rcx]
mov rdx, rdi
mov rdx, rdi
xor r8d, r8d
xor r8d, r8d
cmp dword ptr [rcx], ecx
cmp dword ptr [rcx], ecx
call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Return(uint[],bool):this]
call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Return(uint[],bool):this]
mov r13, gword ptr [rbp+28H]
mov r13, gword ptr [rbp+28H]
;; size=91 bbWeight=0.50 PerfScore 9.88
;; size=91 bbWeight=0.50 PerfScore 9.88
G_M60723_IG49:
G_M60723_IG49:
test r13, r13
test r13, r13
je SHORT G_M60723_IG50
je SHORT G_M60723_IG50
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov edx, 69
mov edx, 69
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rcx, gword ptr [rcx]
mov rcx, gword ptr [rcx]
mov rdx, r13
mov rdx, r13
xor r8d, r8d
xor r8d, r8d
cmp dword ptr [rcx], ecx
cmp dword ptr [rcx], ecx
call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Return(uint[],bool):this]
call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Return(uint[],bool):this]
;; size=52 bbWeight=0.50 PerfScore 5.75
;; size=52 bbWeight=0.50 PerfScore 5.75
G_M60723_IG50:
G_M60723_IG50:
mov rdx, gword ptr [rbp+98H]
mov rdx, gword ptr [rbp+98H]
mov rcx, rsi
mov rcx, rsi
call CORINFO_HELP_CHECKED_ASSIGN_REF
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov eax, dword ptr [rbp+A0H]
mov eax, dword ptr [rbp+A0H]
mov dword ptr [rsi+08H], eax
mov dword ptr [rsi+08H], eax
mov rax, rsi
mov rax, rsi
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
cmp qword ptr [rbp+08H], rcx
cmp qword ptr [rbp+08H], rcx
je SHORT G_M60723_IG51
je SHORT G_M60723_IG51
call CORINFO_HELP_FAIL_FAST
call CORINFO_HELP_FAIL_FAST
;; size=48 bbWeight=0.50 PerfScore 4.38
;; size=48 bbWeight=0.50 PerfScore 4.38
G_M60723_IG51:
G_M60723_IG51:
nop
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M60723_IG52:
G_M60723_IG52:
lea rsp, [rbp+A8H]
lea rsp, [rbp+A8H]
pop rbx
pop rbx
pop rsi
pop rsi
pop rdi
pop rdi
pop r12
pop r12
pop r13
pop r13
pop r14
pop r14
pop r15
pop r15
pop rbp
pop rbp
ret
ret
;; size=20 bbWeight=0.50 PerfScore 2.75
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M60723_IG53:
G_M60723_IG53:
mov r13, gword ptr [rbp+28H]
mov r13, gword ptr [rbp+28H]
jmp SHORT G_M60723_IG49
jmp SHORT G_M60723_IG49
;; size=6 bbWeight=0.25 PerfScore 0.75
;; size=6 bbWeight=0.25 PerfScore 0.75
G_M60723_IG54:
G_M60723_IG54:
mov rdi, gword ptr [rbp+20H]
mov rdi, gword ptr [rbp+20H]
jmp G_M60723_IG40
jmp G_M60723_IG40
;; size=9 bbWeight=2 PerfScore 6.00
;; size=9 bbWeight=2 PerfScore 6.00
G_M60723_IG55:
G_M60723_IG55:
call [System.ThrowHelper:ThrowArgumentException_DestinationTooShort()]
call [System.ThrowHelper:ThrowArgumentException_DestinationTooShort()]
int3
int3
;; size=7 bbWeight=0 PerfScore 0.00
;; size=7 bbWeight=0 PerfScore 0.00
G_M60723_IG56:
G_M60723_IG56:
call [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
call [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
int3
int3
;; size=7 bbWeight=0 PerfScore 0.00
;; size=7 bbWeight=0 PerfScore 0.00
G_M60723_IG57:
G_M60723_IG57:
call CORINFO_HELP_RNGCHKFAIL
call CORINFO_HELP_RNGCHKFAIL
int3
int3
;; size=6 bbWeight=0 PerfScore 0.00
;; size=6 bbWeight=0 PerfScore 0.00
Copy
Copied
Copy
Copied
; Total bytes of code
1589
, prolog size 104, PerfScore
439.48
, instruction count 43
1
, allocated bytes for code
1589
(MethodHash=874c12cc) for method System.Numerics.BigInteger:op_RightShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger
; Total bytes of code
1613
, prolog size 104, PerfScore
444.38
, instruction count 43
6
, allocated bytes for code
1613
(MethodHash=874c12cc) for method System.Numerics.BigInteger:op_RightShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger
; ============================================================
; ============================================================
Saved diffs
Original text
Open file
G_M60723_IG01: push rbp push r15 push r14 push r13 push r12 push rdi push rsi push rbx sub rsp, 200 lea rbp, [rsp+20H] xor eax, eax mov qword ptr [rbp+38H], rax vxorps xmm4, xmm4 mov rax, -96 vmovdqa xmmword ptr [rbp+rax+A0H], xmm4 vmovdqa xmmword ptr [rbp+rax+B0H], xmm4 vmovdqa xmmword ptr [rbp+rax+C0H], xmm4 add rax, 48 jne SHORT -5 instr mov qword ptr [rbp+A0H], rax mov rax, 0xD1FFAB1E mov qword ptr [rbp+08H], rax mov rsi, rcx mov edi, r8d ;; size=104 bbWeight=1 PerfScore 20.58 G_M60723_IG02: mov rbx, gword ptr [rdx] mov r14d, dword ptr [rdx+08H] test edi, edi jne SHORT G_M60723_IG06 ;; size=11 bbWeight=1 PerfScore 5.25 G_M60723_IG03: mov rcx, rsi mov rdx, rbx call CORINFO_HELP_CHECKED_ASSIGN_REF mov dword ptr [rsi+08H], r14d mov rax, rsi mov rcx, 0xD1FFAB1E cmp qword ptr [rbp+08H], rcx je SHORT G_M60723_IG04 call CORINFO_HELP_FAIL_FAST ;; size=39 bbWeight=0.50 PerfScore 3.50 G_M60723_IG04: nop ;; size=1 bbWeight=0.50 PerfScore 0.12 G_M60723_IG05: lea rsp, [rbp+A8H] pop rbx pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=20 bbWeight=0.50 PerfScore 2.75 G_M60723_IG06: cmp edi, 0xD1FFAB1E jne SHORT G_M60723_IG09 mov gword ptr [rbp+58H], rbx mov dword ptr [rbp+60H], r14d lea rdx, [rbp+58H] lea rcx, [rbp+78H] mov r8d, 0xD1FFAB1E call [System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger] mov rcx, gword ptr [rbp+78H] mov gword ptr [rbp+58H], rcx mov ecx, dword ptr [rbp+80H] mov dword ptr [rbp+60H], ecx mov rcx, rsi lea rdx, [rbp+58H] mov r8d, 1 call [System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger] mov rax, rsi mov rcx, 0xD1FFAB1E cmp qword ptr [rbp+08H], rcx je SHORT G_M60723_IG07 call CORINFO_HELP_FAIL_FAST ;; size=96 bbWeight=0.50 PerfScore 10.00 G_M60723_IG07: nop ;; size=1 bbWeight=0.50 PerfScore 0.12 G_M60723_IG08: lea rsp, [rbp+A8H] pop rbx pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=20 bbWeight=0.50 PerfScore 2.75 G_M60723_IG09: test edi, edi jge SHORT G_M60723_IG12 mov gword ptr [rbp+58H], rbx mov dword ptr [rbp+60H], r14d mov rcx, rsi lea rdx, [rbp+58H] mov r8d, edi neg r8d call [System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger] mov rax, rsi mov rcx, 0xD1FFAB1E cmp qword ptr [rbp+08H], rcx je SHORT G_M60723_IG10 call CORINFO_HELP_FAIL_FAST ;; size=55 bbWeight=0.50 PerfScore 6.00 G_M60723_IG10: nop ;; size=1 bbWeight=0.50 PerfScore 0.12 G_M60723_IG11: lea rsp, [rbp+A8H] pop rbx pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=20 bbWeight=0.50 PerfScore 2.75 G_M60723_IG12: mov r15d, edi sar r15d, 31 and r15d, 31 add r15d, edi sar r15d, 5 mov ecx, r15d shl ecx, 5 mov r12d, edi sub r12d, ecx xor r13, r13 mov rcx, rbx test rcx, rcx jne SHORT G_M60723_IG13 mov eax, 1 jmp SHORT G_M60723_IG14 align [3 bytes for IG36] ;; size=51 bbWeight=0.50 PerfScore 3.50 G_M60723_IG13: mov eax, dword ptr [rbx+08H] ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M60723_IG14: mov dword ptr [rbp+94H], eax cmp eax, 64 jg SHORT G_M60723_IG15 test dword ptr [rsp], esp sub rsp, 256 lea r8, [rsp+20H] mov r9d, 64 jmp SHORT G_M60723_IG17 ;; size=34 bbWeight=0.50 PerfScore 4.12 G_M60723_IG15: mov rcx, 0xD1FFAB1E mov edx, 69 call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared mov rcx, gword ptr [rcx] mov edx, dword ptr [rbp+94H] cmp dword ptr [rcx], ecx call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Rent(int):uint[]:this] mov r13, rax test r13, r13 jne SHORT G_M60723_IG16 xor r8, r8 xor r9d, r9d jmp SHORT G_M60723_IG17 ;; size=63 bbWeight=0.50 PerfScore 7.38 G_M60723_IG16: lea r8, bword ptr [r13+10H] mov gword ptr [rbp+28H], r13 mov r9d, dword ptr [r13+08H] mov r13, gword ptr [rbp+28H] ;; size=16 bbWeight=0.50 PerfScore 2.25 G_M60723_IG17: mov eax, dword ptr [rbp+94H] cmp eax, r9d ja G_M60723_IG56 mov r9, r8 mov bword ptr [rbp+18H], r9 mov dword ptr [rbp+6CH], eax test rbx, rbx jne SHORT G_M60723_IG20 test eax, eax je G_M60723_IG57 test r14d, r14d jl SHORT G_M60723_IG18 mov r8d, r14d jmp SHORT G_M60723_IG19 ;; size=48 bbWeight=0.50 PerfScore 5.25 G_M60723_IG18: mov r8d, r14d neg r8d ;; size=6 bbWeight=0.50 PerfScore 0.25 G_M60723_IG19: mov dword ptr [r9], r8d jmp SHORT G_M60723_IG21 ;; size=5 bbWeight=0.50 PerfScore 1.50 G_M60723_IG20: lea rdx, bword ptr [rbx+10H] mov r8d, dword ptr [rbx+08H] cmp r8d, eax ja G_M60723_IG55 mov r8d, r8d shl r8, 2 mov rcx, r9 call [System.Buffer:Memmove(byref,byref,ulong)] mov eax, dword ptr [rbp+94H] mov r9, bword ptr [rbp+18H] ;; size=43 bbWeight=0.50 PerfScore 4.88 G_M60723_IG21: mov ebx, r14d shr ebx, 31 xor r14d, r14d test ebx, ebx je SHORT G_M60723_IG25 movsxd rcx, edi mov edx, eax shl rdx, 5 cmp rcx, rdx jl SHORT G_M60723_IG22 lea rcx, [rbp+98H] call [System.Numerics.BigInteger:get_MinusOne():System.Numerics.BigInteger] jmp G_M60723_IG49 ;; size=45 bbWeight=0.50 PerfScore 5.00 G_M60723_IG22: mov bword ptr [rbp+48H], r9 mov dword ptr [rbp+50H], eax lea rcx, [rbp+48H] call [System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])] test r12d, r12d jne SHORT G_M60723_IG23 mov r14d, dword ptr [rbp+94H] lea edi, [r14-01H] cmp edi, r14d jae G_M60723_IG57 mov ecx, edi mov rdi, bword ptr [rbp+18H] cmp dword ptr [rdi+4*rcx], 0 sete cl movzx rcx, cl jmp SHORT G_M60723_IG24 ;; size=60 bbWeight=0.50 PerfScore 8.50 G_M60723_IG23: xor ecx, ecx ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M60723_IG24: movzx r14, cl mov r9, bword ptr [rbp+18H] ;; size=8 bbWeight=0.50 PerfScore 0.62 G_M60723_IG25: xor rdi, rdi mov r10d, dword ptr [rbp+6CH] mov eax, r10d sub eax, r15d jns SHORT G_M60723_IG26 xor r8d, r8d jmp SHORT G_M60723_IG27 ;; size=19 bbWeight=0.50 PerfScore 2.50 G_M60723_IG26: mov r8d, eax ;; size=3 bbWeight=0.50 PerfScore 0.12 G_M60723_IG27: mov dword ptr [rbp+90H], r14d test r14d, r14d jne SHORT G_M60723_IG28 xor eax, eax jmp SHORT G_M60723_IG29 ;; size=16 bbWeight=0.50 PerfScore 2.25 G_M60723_IG28: mov eax, 1 ;; size=5 bbWeight=0.50 PerfScore 0.12 G_M60723_IG29: add eax, r8d mov dword ptr [rbp+8CH], eax cmp eax, 64 ja SHORT G_M60723_IG30 test dword ptr [rsp], esp sub rsp, 256 lea r8, [rsp+20H] mov r11d, 64 jmp SHORT G_M60723_IG33 ;; size=37 bbWeight=0.50 PerfScore 4.25 G_M60723_IG30: mov rcx, 0xD1FFAB1E mov edx, 69 call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared mov rcx, gword ptr [rcx] mov edx, dword ptr [rbp+8CH] cmp dword ptr [rcx], ecx call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Rent(int):uint[]:this] mov rdi, rax test rdi, rdi jne SHORT G_M60723_IG31 xor r8, r8 xor r11d, r11d jmp SHORT G_M60723_IG32 ;; size=63 bbWeight=0.50 PerfScore 7.38 G_M60723_IG31: lea r8, bword ptr [rdi+10H] mov gword ptr [rbp+20H], rdi mov r11d, dword ptr [rdi+08H] mov rdi, gword ptr [rbp+20H] ;; size=16 bbWeight=0.50 PerfScore 2.25 G_M60723_IG32: mov r9, bword ptr [rbp+18H] ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M60723_IG33: mov eax, dword ptr [rbp+8CH] cmp eax, r11d ja G_M60723_IG56 mov r11, r8 mov rcx, r11 mov bword ptr [rbp+10H], rcx mov dword ptr [rbp+68H], eax mov edx, eax shl rdx, 2 mov qword ptr [rbp+70H], rdx test rdx, rdx je SHORT G_M60723_IG35 cmp rdx, 768 ja SHORT G_M60723_IG34 xor edx, edx mov r8d, dword ptr [rbp+70H] call CORINFO_HELP_MEMSET mov rcx, bword ptr [rbp+10H] mov r9, bword ptr [rbp+18H] jmp SHORT G_M60723_IG35 ;; size=73 bbWeight=0.50 PerfScore 7.62 G_M60723_IG34: mov rdx, qword ptr [rbp+70H] call [System.Buffer:_ZeroMemory(byref,ulong)] mov rcx, bword ptr [rbp+10H] mov r9, bword ptr [rbp+18H] ;; size=18 bbWeight=0.50 PerfScore 3.00 G_M60723_IG35: test r12d, r12d jne SHORT G_M60723_IG39 mov r10d, dword ptr [rbp+6CH] lea edx, [r10-01H] cmp edx, r15d jl SHORT G_M60723_IG38 ;; size=18 bbWeight=0.50 PerfScore 2.00 G_M60723_IG36: mov r8d, edx sub r8d, r15d mov eax, dword ptr [rbp+68H] cmp r8d, eax jae G_M60723_IG57 mov r8d, r8d cmp edx, r10d jae G_M60723_IG57 mov r11d, edx mov r11d, dword ptr [r9+4*r11] mov dword ptr [rcx+4*r8], r11d dec edx cmp edx, r15d jge SHORT G_M60723_IG36 ;; size=48 bbWeight=4 PerfScore 36.00 G_M60723_IG37: mov gword ptr [rbp+28H], r13 mov gword ptr [rbp+20H], rdi mov eax, dword ptr [rbp+68H] jmp G_M60723_IG46 ;; size=16 bbWeight=0.50 PerfScore 2.50 G_M60723_IG38: mov gword ptr [rbp+28H], r13 mov gword ptr [rbp+20H], rdi mov eax, dword ptr [rbp+68H] jmp G_M60723_IG46 align [0 bytes for IG40] ;; size=16 bbWeight=0.25 PerfScore 1.25 G_M60723_IG39: mov edx, r12d neg edx add edx, 32 xor r8d, r8d mov r10d, dword ptr [rbp+6CH] lea r11d, [r10-01H] mov r14d, r11d cmp r14d, r15d mov gword ptr [rbp+28H], r13 jl SHORT G_M60723_IG43 ;; size=31 bbWeight=0.50 PerfScore 2.50 G_M60723_IG40: cmp r14d, r10d jae G_M60723_IG57 mov r13d, r14d mov r13d, dword ptr [r9+4*r13] test ebx, ebx je SHORT G_M60723_IG42 ;; size=20 bbWeight=4 PerfScore 19.00 G_M60723_IG41: mov dword ptr [rbp+34H], r11d cmp r14d, r11d mov gword ptr [rbp+20H], rdi jne SHORT G_M60723_IG44 mov r8d, r14d sub r8d, r15d mov eax, dword ptr [rbp+68H] cmp r8d, eax jae G_M60723_IG57 mov r8d, r8d shrx edi, r13d, r12d mov r11d, -1 shlx r11d, r11d, edx or r11d, edi mov dword ptr [rcx+4*r8], r11d jmp SHORT G_M60723_IG45 ;; size=59 bbWeight=2 PerfScore 21.50 G_M60723_IG42: mov dword ptr [rbp+34H], r11d mov gword ptr [rbp+20H], rdi jmp SHORT G_M60723_IG44 ;; size=10 bbWeight=2 PerfScore 8.00 G_M60723_IG43: mov gword ptr [rbp+20H], rdi mov eax, dword ptr [rbp+68H] jmp SHORT G_M60723_IG46 ;; size=9 bbWeight=0.25 PerfScore 1.00 G_M60723_IG44: mov edi, r14d sub edi, r15d mov eax, dword ptr [rbp+68H] cmp edi, eax jae G_M60723_IG57 mov edi, edi shrx r11d, r13d, r12d or r8d, r11d mov dword ptr [rcx+4*rdi], r8d ;; size=31 bbWeight=2 PerfScore 9.50 G_M60723_IG45: shlx r8d, r13d, edx dec r14d cmp r14d, r15d mov r11d, dword ptr [rbp+34H] jge G_M60723_IG54 ;; size=21 bbWeight=4 PerfScore 12.00 G_M60723_IG46: test ebx, ebx je SHORT G_M60723_IG48 cmp dword ptr [rbp+90H], 0 je SHORT G_M60723_IG47 lea edx, [rax-01H] cmp edx, eax jae G_M60723_IG57 mov edx, edx mov dword ptr [rcx+4*rdx], -1 ;; size=33 bbWeight=0.50 PerfScore 3.62 G_M60723_IG47: mov bword ptr [rbp+48H], rcx mov dword ptr [rbp+50H], eax lea rcx, [rbp+48H] call [System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])] mov eax, dword ptr [rbp+68H] mov rcx, bword ptr [rbp+10H] ;; size=24 bbWeight=0.50 PerfScore 3.75 G_M60723_IG48: mov bword ptr [rbp+38H], rcx mov dword ptr [rbp+40H], eax lea rdx, [rbp+38H] lea rcx, [rbp+98H] mov r8d, ebx call [System.Numerics.BigInteger:.ctor(System.ReadOnlySpan`1[uint],bool):this] mov rdi, gword ptr [rbp+20H] test rdi, rdi je G_M60723_IG53 mov rcx, 0xD1FFAB1E mov edx, 69 call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared mov rcx, gword ptr [rcx] mov rdx, rdi xor r8d, r8d cmp dword ptr [rcx], ecx call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Return(uint[],bool):this] mov r13, gword ptr [rbp+28H] ;; size=91 bbWeight=0.50 PerfScore 9.88 G_M60723_IG49: test r13, r13 je SHORT G_M60723_IG50 mov rcx, 0xD1FFAB1E mov edx, 69 call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared mov rcx, gword ptr [rcx] mov rdx, r13 xor r8d, r8d cmp dword ptr [rcx], ecx call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Return(uint[],bool):this] ;; size=52 bbWeight=0.50 PerfScore 5.75 G_M60723_IG50: mov rdx, gword ptr [rbp+98H] mov rcx, rsi call CORINFO_HELP_CHECKED_ASSIGN_REF mov eax, dword ptr [rbp+A0H] mov dword ptr [rsi+08H], eax mov rax, rsi mov rcx, 0xD1FFAB1E cmp qword ptr [rbp+08H], rcx je SHORT G_M60723_IG51 call CORINFO_HELP_FAIL_FAST ;; size=48 bbWeight=0.50 PerfScore 4.38 G_M60723_IG51: nop ;; size=1 bbWeight=0.50 PerfScore 0.12 G_M60723_IG52: lea rsp, [rbp+A8H] pop rbx pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=20 bbWeight=0.50 PerfScore 2.75 G_M60723_IG53: mov r13, gword ptr [rbp+28H] jmp SHORT G_M60723_IG49 ;; size=6 bbWeight=0.25 PerfScore 0.75 G_M60723_IG54: mov rdi, gword ptr [rbp+20H] jmp G_M60723_IG40 ;; size=9 bbWeight=2 PerfScore 6.00 G_M60723_IG55: call [System.ThrowHelper:ThrowArgumentException_DestinationTooShort()] int3 ;; size=7 bbWeight=0 PerfScore 0.00 G_M60723_IG56: call [System.ThrowHelper:ThrowArgumentOutOfRangeException()] int3 ;; size=7 bbWeight=0 PerfScore 0.00 G_M60723_IG57: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 ; Total bytes of code 1589, prolog size 104, PerfScore 439.48, instruction count 431, allocated bytes for code 1589 (MethodHash=874c12cc) for method System.Numerics.BigInteger:op_RightShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger ; ============================================================
Changed text
Open file
G_M60723_IG01: push rbp push r15 push r14 push r13 push r12 push rdi push rsi push rbx sub rsp, 200 lea rbp, [rsp+20H] xor eax, eax mov qword ptr [rbp+38H], rax vxorps xmm4, xmm4 mov rax, -96 vmovdqa xmmword ptr [rbp+rax+A0H], xmm4 vmovdqa xmmword ptr [rbp+rax+B0H], xmm4 vmovdqa xmmword ptr [rbp+rax+C0H], xmm4 add rax, 48 jne SHORT -5 instr mov qword ptr [rbp+A0H], rax mov rax, 0xD1FFAB1E mov qword ptr [rbp+08H], rax mov rsi, rcx mov edi, r8d ;; size=104 bbWeight=1 PerfScore 20.58 G_M60723_IG02: mov rbx, gword ptr [rdx] mov r14d, dword ptr [rdx+08H] test edi, edi jne SHORT G_M60723_IG06 ;; size=11 bbWeight=1 PerfScore 5.25 G_M60723_IG03: mov rcx, rsi mov rdx, rbx call CORINFO_HELP_CHECKED_ASSIGN_REF mov dword ptr [rsi+08H], r14d mov rax, rsi mov rcx, 0xD1FFAB1E cmp qword ptr [rbp+08H], rcx je SHORT G_M60723_IG04 call CORINFO_HELP_FAIL_FAST ;; size=39 bbWeight=0.50 PerfScore 3.50 G_M60723_IG04: nop ;; size=1 bbWeight=0.50 PerfScore 0.12 G_M60723_IG05: lea rsp, [rbp+A8H] pop rbx pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=20 bbWeight=0.50 PerfScore 2.75 G_M60723_IG06: cmp edi, 0xD1FFAB1E jne SHORT G_M60723_IG09 mov gword ptr [rbp+58H], rbx mov dword ptr [rbp+60H], r14d lea rdx, [rbp+58H] lea rcx, [rbp+78H] mov r8d, 0xD1FFAB1E call [System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger] mov rcx, gword ptr [rbp+78H] mov gword ptr [rbp+58H], rcx mov ecx, dword ptr [rbp+80H] mov dword ptr [rbp+60H], ecx mov rcx, rsi lea rdx, [rbp+58H] mov r8d, 1 call [System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger] mov rax, rsi mov rcx, 0xD1FFAB1E cmp qword ptr [rbp+08H], rcx je SHORT G_M60723_IG07 call CORINFO_HELP_FAIL_FAST ;; size=96 bbWeight=0.50 PerfScore 10.00 G_M60723_IG07: nop ;; size=1 bbWeight=0.50 PerfScore 0.12 G_M60723_IG08: lea rsp, [rbp+A8H] pop rbx pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=20 bbWeight=0.50 PerfScore 2.75 G_M60723_IG09: test edi, edi jge SHORT G_M60723_IG12 mov gword ptr [rbp+58H], rbx mov dword ptr [rbp+60H], r14d mov rcx, rsi lea rdx, [rbp+58H] mov r8d, edi neg r8d call [System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger] mov rax, rsi mov rcx, 0xD1FFAB1E cmp qword ptr [rbp+08H], rcx je SHORT G_M60723_IG10 call CORINFO_HELP_FAIL_FAST ;; size=55 bbWeight=0.50 PerfScore 6.00 G_M60723_IG10: nop ;; size=1 bbWeight=0.50 PerfScore 0.12 G_M60723_IG11: lea rsp, [rbp+A8H] pop rbx pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=20 bbWeight=0.50 PerfScore 2.75 G_M60723_IG12: mov r15d, edi sar r15d, 31 and r15d, 31 add r15d, edi sar r15d, 5 mov ecx, r15d shl ecx, 5 mov r12d, edi sub r12d, ecx xor r13, r13 mov rcx, rbx test rcx, rcx jne SHORT G_M60723_IG13 mov eax, 1 jmp SHORT G_M60723_IG14 align [0 bytes for IG36] ;; size=48 bbWeight=0.50 PerfScore 3.50 G_M60723_IG13: mov eax, dword ptr [rbx+08H] ;; size=3 bbWeight=0.50 PerfScore 1.00 G_M60723_IG14: mov dword ptr [rbp+94H], eax cmp eax, 64 jg SHORT G_M60723_IG15 test dword ptr [rsp], esp sub rsp, 256 lea r8, [rsp+20H] mov r9d, 64 jmp SHORT G_M60723_IG17 ;; size=34 bbWeight=0.50 PerfScore 4.12 G_M60723_IG15: mov rcx, 0xD1FFAB1E mov edx, 69 call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared mov rcx, gword ptr [rcx] mov edx, dword ptr [rbp+94H] cmp dword ptr [rcx], ecx call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Rent(int):uint[]:this] mov r13, rax test r13, r13 jne SHORT G_M60723_IG16 xor r8, r8 xor r9d, r9d jmp SHORT G_M60723_IG17 ;; size=63 bbWeight=0.50 PerfScore 7.38 G_M60723_IG16: lea r8, bword ptr [r13+10H] mov gword ptr [rbp+28H], r13 mov r9d, dword ptr [r13+08H] mov r13, gword ptr [rbp+28H] ;; size=16 bbWeight=0.50 PerfScore 2.25 G_M60723_IG17: mov eax, dword ptr [rbp+94H] cmp eax, r9d ja G_M60723_IG56 mov r9, r8 mov bword ptr [rbp+18H], r9 mov dword ptr [rbp+6CH], eax test rbx, rbx jne SHORT G_M60723_IG20 test eax, eax je G_M60723_IG57 test r14d, r14d jl SHORT G_M60723_IG18 mov r8d, r14d jmp SHORT G_M60723_IG19 ;; size=48 bbWeight=0.50 PerfScore 5.25 G_M60723_IG18: mov r8d, r14d neg r8d ;; size=6 bbWeight=0.50 PerfScore 0.25 G_M60723_IG19: mov dword ptr [r9], r8d jmp SHORT G_M60723_IG21 ;; size=5 bbWeight=0.50 PerfScore 1.50 G_M60723_IG20: lea rdx, bword ptr [rbx+10H] mov r8d, dword ptr [rbx+08H] cmp r8d, eax ja G_M60723_IG55 mov r8d, r8d shl r8, 2 mov rcx, r9 call [System.Buffer:Memmove(byref,byref,ulong)] mov eax, dword ptr [rbp+94H] mov r9, bword ptr [rbp+18H] ;; size=43 bbWeight=0.50 PerfScore 4.88 G_M60723_IG21: mov ebx, r14d shr ebx, 31 xor r14d, r14d test ebx, ebx je G_M60723_IG25 movsxd rcx, edi mov edx, eax shl rdx, 5 cmp rcx, rdx jl SHORT G_M60723_IG22 mov r9, 0xD1FFAB1E ; box for System.Numerics.BigInteger:s_bnMinusOneInt mov rax, gword ptr [r9] add rax, 8 mov rcx, gword ptr [rax] mov gword ptr [rbp+98H], rcx mov ecx, dword ptr [rax+08H] mov dword ptr [rbp+A0H], ecx jmp G_M60723_IG49 ;; size=72 bbWeight=0.50 PerfScore 7.50 G_M60723_IG22: mov bword ptr [rbp+48H], r9 mov dword ptr [rbp+50H], eax lea rcx, [rbp+48H] call [System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])] test r12d, r12d jne SHORT G_M60723_IG23 mov r14d, dword ptr [rbp+94H] lea edi, [r14-01H] cmp edi, r14d jae G_M60723_IG57 mov ecx, edi mov rdi, bword ptr [rbp+18H] cmp dword ptr [rdi+4*rcx], 0 sete cl movzx rcx, cl jmp SHORT G_M60723_IG24 ;; size=60 bbWeight=0.50 PerfScore 8.50 G_M60723_IG23: xor ecx, ecx ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M60723_IG24: movzx r14, cl mov r9, bword ptr [rbp+18H] ;; size=8 bbWeight=0.50 PerfScore 0.62 G_M60723_IG25: xor rdi, rdi mov r10d, dword ptr [rbp+6CH] mov eax, r10d sub eax, r15d jns SHORT G_M60723_IG26 xor r8d, r8d jmp SHORT G_M60723_IG27 ;; size=19 bbWeight=0.50 PerfScore 2.50 G_M60723_IG26: mov r8d, eax ;; size=3 bbWeight=0.50 PerfScore 0.12 G_M60723_IG27: mov dword ptr [rbp+90H], r14d test r14d, r14d jne SHORT G_M60723_IG28 xor eax, eax jmp SHORT G_M60723_IG29 ;; size=16 bbWeight=0.50 PerfScore 2.25 G_M60723_IG28: mov eax, 1 ;; size=5 bbWeight=0.50 PerfScore 0.12 G_M60723_IG29: add eax, r8d mov dword ptr [rbp+8CH], eax cmp eax, 64 ja SHORT G_M60723_IG30 test dword ptr [rsp], esp sub rsp, 256 lea r8, [rsp+20H] mov r11d, 64 jmp SHORT G_M60723_IG33 ;; size=37 bbWeight=0.50 PerfScore 4.25 G_M60723_IG30: mov rcx, 0xD1FFAB1E mov edx, 69 call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared mov rcx, gword ptr [rcx] mov edx, dword ptr [rbp+8CH] cmp dword ptr [rcx], ecx call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Rent(int):uint[]:this] mov rdi, rax test rdi, rdi jne SHORT G_M60723_IG31 xor r8, r8 xor r11d, r11d jmp SHORT G_M60723_IG32 ;; size=63 bbWeight=0.50 PerfScore 7.38 G_M60723_IG31: lea r8, bword ptr [rdi+10H] mov gword ptr [rbp+20H], rdi mov r11d, dword ptr [rdi+08H] mov rdi, gword ptr [rbp+20H] ;; size=16 bbWeight=0.50 PerfScore 2.25 G_M60723_IG32: mov r9, bword ptr [rbp+18H] ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M60723_IG33: mov eax, dword ptr [rbp+8CH] cmp eax, r11d ja G_M60723_IG56 mov r11, r8 mov rcx, r11 mov bword ptr [rbp+10H], rcx mov dword ptr [rbp+68H], eax mov edx, eax shl rdx, 2 mov qword ptr [rbp+70H], rdx test rdx, rdx je SHORT G_M60723_IG35 cmp rdx, 768 ja SHORT G_M60723_IG34 xor edx, edx mov r8d, dword ptr [rbp+70H] call CORINFO_HELP_MEMSET mov rcx, bword ptr [rbp+10H] mov r9, bword ptr [rbp+18H] jmp SHORT G_M60723_IG35 ;; size=73 bbWeight=0.50 PerfScore 7.62 G_M60723_IG34: mov rdx, qword ptr [rbp+70H] call [System.Buffer:_ZeroMemory(byref,ulong)] mov rcx, bword ptr [rbp+10H] mov r9, bword ptr [rbp+18H] ;; size=18 bbWeight=0.50 PerfScore 3.00 G_M60723_IG35: test r12d, r12d jne SHORT G_M60723_IG39 mov r10d, dword ptr [rbp+6CH] lea edx, [r10-01H] cmp edx, r15d jl SHORT G_M60723_IG38 ;; size=18 bbWeight=0.50 PerfScore 2.00 G_M60723_IG36: mov r8d, edx sub r8d, r15d mov eax, dword ptr [rbp+68H] cmp r8d, eax jae G_M60723_IG57 mov r8d, r8d cmp edx, r10d jae G_M60723_IG57 mov r11d, edx mov r11d, dword ptr [r9+4*r11] mov dword ptr [rcx+4*r8], r11d dec edx cmp edx, r15d jge SHORT G_M60723_IG36 ;; size=48 bbWeight=4 PerfScore 36.00 G_M60723_IG37: mov gword ptr [rbp+28H], r13 mov gword ptr [rbp+20H], rdi mov eax, dword ptr [rbp+68H] jmp G_M60723_IG46 ;; size=16 bbWeight=0.50 PerfScore 2.50 G_M60723_IG38: mov gword ptr [rbp+28H], r13 mov gword ptr [rbp+20H], rdi mov eax, dword ptr [rbp+68H] jmp G_M60723_IG46 align [0 bytes for IG40] ;; size=16 bbWeight=0.25 PerfScore 1.25 G_M60723_IG39: mov edx, r12d neg edx add edx, 32 xor r8d, r8d mov r10d, dword ptr [rbp+6CH] lea r11d, [r10-01H] mov r14d, r11d cmp r14d, r15d mov gword ptr [rbp+28H], r13 jl SHORT G_M60723_IG43 ;; size=31 bbWeight=0.50 PerfScore 2.50 G_M60723_IG40: cmp r14d, r10d jae G_M60723_IG57 mov r13d, r14d mov r13d, dword ptr [r9+4*r13] test ebx, ebx je SHORT G_M60723_IG42 ;; size=20 bbWeight=4 PerfScore 19.00 G_M60723_IG41: mov dword ptr [rbp+34H], r11d cmp r14d, r11d mov gword ptr [rbp+20H], rdi jne SHORT G_M60723_IG44 mov r8d, r14d sub r8d, r15d mov eax, dword ptr [rbp+68H] cmp r8d, eax jae G_M60723_IG57 mov r8d, r8d shrx edi, r13d, r12d mov r11d, -1 shlx r11d, r11d, edx or r11d, edi mov dword ptr [rcx+4*r8], r11d jmp SHORT G_M60723_IG45 ;; size=59 bbWeight=2 PerfScore 21.50 G_M60723_IG42: mov dword ptr [rbp+34H], r11d mov gword ptr [rbp+20H], rdi jmp SHORT G_M60723_IG44 ;; size=10 bbWeight=2 PerfScore 8.00 G_M60723_IG43: mov gword ptr [rbp+20H], rdi mov eax, dword ptr [rbp+68H] jmp SHORT G_M60723_IG46 ;; size=9 bbWeight=0.25 PerfScore 1.00 G_M60723_IG44: mov edi, r14d sub edi, r15d mov eax, dword ptr [rbp+68H] cmp edi, eax jae G_M60723_IG57 mov edi, edi shrx r11d, r13d, r12d or r8d, r11d mov dword ptr [rcx+4*rdi], r8d ;; size=31 bbWeight=2 PerfScore 9.50 G_M60723_IG45: shlx r8d, r13d, edx dec r14d cmp r14d, r15d mov r11d, dword ptr [rbp+34H] jge G_M60723_IG54 ;; size=21 bbWeight=4 PerfScore 12.00 G_M60723_IG46: test ebx, ebx je SHORT G_M60723_IG48 cmp dword ptr [rbp+90H], 0 je SHORT G_M60723_IG47 lea edx, [rax-01H] cmp edx, eax jae G_M60723_IG57 mov edx, edx mov dword ptr [rcx+4*rdx], -1 ;; size=33 bbWeight=0.50 PerfScore 3.62 G_M60723_IG47: mov bword ptr [rbp+48H], rcx mov dword ptr [rbp+50H], eax lea rcx, [rbp+48H] call [System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])] mov eax, dword ptr [rbp+68H] mov rcx, bword ptr [rbp+10H] ;; size=24 bbWeight=0.50 PerfScore 3.75 G_M60723_IG48: mov bword ptr [rbp+38H], rcx mov dword ptr [rbp+40H], eax lea rdx, [rbp+38H] lea rcx, [rbp+98H] mov r8d, ebx call [System.Numerics.BigInteger:.ctor(System.ReadOnlySpan`1[uint],bool):this] mov rdi, gword ptr [rbp+20H] test rdi, rdi je G_M60723_IG53 mov rcx, 0xD1FFAB1E mov edx, 69 call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared mov rcx, gword ptr [rcx] mov rdx, rdi xor r8d, r8d cmp dword ptr [rcx], ecx call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Return(uint[],bool):this] mov r13, gword ptr [rbp+28H] ;; size=91 bbWeight=0.50 PerfScore 9.88 G_M60723_IG49: test r13, r13 je SHORT G_M60723_IG50 mov rcx, 0xD1FFAB1E mov edx, 69 call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared mov rcx, gword ptr [rcx] mov rdx, r13 xor r8d, r8d cmp dword ptr [rcx], ecx call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Return(uint[],bool):this] ;; size=52 bbWeight=0.50 PerfScore 5.75 G_M60723_IG50: mov rdx, gword ptr [rbp+98H] mov rcx, rsi call CORINFO_HELP_CHECKED_ASSIGN_REF mov eax, dword ptr [rbp+A0H] mov dword ptr [rsi+08H], eax mov rax, rsi mov rcx, 0xD1FFAB1E cmp qword ptr [rbp+08H], rcx je SHORT G_M60723_IG51 call CORINFO_HELP_FAIL_FAST ;; size=48 bbWeight=0.50 PerfScore 4.38 G_M60723_IG51: nop ;; size=1 bbWeight=0.50 PerfScore 0.12 G_M60723_IG52: lea rsp, [rbp+A8H] pop rbx pop rsi pop rdi pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=20 bbWeight=0.50 PerfScore 2.75 G_M60723_IG53: mov r13, gword ptr [rbp+28H] jmp SHORT G_M60723_IG49 ;; size=6 bbWeight=0.25 PerfScore 0.75 G_M60723_IG54: mov rdi, gword ptr [rbp+20H] jmp G_M60723_IG40 ;; size=9 bbWeight=2 PerfScore 6.00 G_M60723_IG55: call [System.ThrowHelper:ThrowArgumentException_DestinationTooShort()] int3 ;; size=7 bbWeight=0 PerfScore 0.00 G_M60723_IG56: call [System.ThrowHelper:ThrowArgumentOutOfRangeException()] int3 ;; size=7 bbWeight=0 PerfScore 0.00 G_M60723_IG57: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 ; Total bytes of code 1613, prolog size 104, PerfScore 444.38, instruction count 436, allocated bytes for code 1613 (MethodHash=874c12cc) for method System.Numerics.BigInteger:op_RightShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger ; ============================================================
Find difference