Untitled Diff

Created Diff never expires
14 removals
237 lines
17 additions
239 lines
; Assembly listing for method System.Int128:TryFormat(System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):bool:this
; Assembly listing for method System.Int128:TryFormat(System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):bool:this


G_M16662_IG01:
G_M16662_IG01:
push r15
push r15
push r14
push r14
push r12
push r12
push rdi
push rdi
push rsi
push rsi
push rbp
push rbp
push rbx
push rbx
sub rsp, 160
sub rsp, 160
xor eax, eax
xor eax, eax
mov qword ptr [rsp+28H], rax
mov qword ptr [rsp+28H], rax
vxorps xmm4, xmm4
vxorps xmm4, xmm4
vmovdqa xmmword ptr [rsp+30H], xmm4
vmovdqa xmmword ptr [rsp+30H], xmm4
mov rax, -96
mov rax, -96
vmovdqa xmmword ptr [rsp+rax+A0H], xmm4
vmovdqa xmmword ptr [rsp+rax+A0H], xmm4
vmovdqa xmmword ptr [rsp+rax+B0H], xmm4
vmovdqa xmmword ptr [rsp+rax+B0H], xmm4
vmovdqa xmmword ptr [rsp+rax+C0H], xmm4
vmovdqa xmmword ptr [rsp+rax+C0H], xmm4
add rax, 48
add rax, 48
jne SHORT -5 instr
jne SHORT -5 instr
mov rsi, r8
mov rsi, r8
mov r8, gword ptr [rsp+100H]
mov r8, gword ptr [rsp+100H]
;; size=93 bbWeight=1 PerfScore 19.58
;; size=93 bbWeight=1 PerfScore 19.58
G_M16662_IG02:
G_M16662_IG02:
mov rdi, qword ptr [rcx]
mov rdi, qword ptr [rcx]
mov rbx, qword ptr [rcx+08H]
mov rbx, qword ptr [rcx+08H]
mov rbp, bword ptr [r9]
mov rbp, bword ptr [r9]
mov r14d, dword ptr [r9+08H]
mov r14d, dword ptr [r9+08H]
mov r15, bword ptr [rdx]
mov r15, bword ptr [rdx]
mov r12d, dword ptr [rdx+08H]
mov r12d, dword ptr [rdx+08H]
test r14d, r14d
test r14d, r14d
jne G_M16662_IG23
jne G_M16662_IG23
;; size=30 bbWeight=1 PerfScore 13.25
;; size=30 bbWeight=1 PerfScore 13.25
G_M16662_IG03:
G_M16662_IG03:
test rbx, rbx
test rbx, rbx
jge G_M16662_IG22
jge G_M16662_IG22
test r8, r8
test r8, r8
je SHORT G_M16662_IG04
je SHORT G_M16662_IG04
mov rcx, r8
mov rcx, r8
call [System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|44_0(System.IFormatProvider):System.Globalization.NumberFormatInfo]
call [System.Globalization.NumberFormatInfo:<GetInstance>g__GetProviderNonNull|44_0(System.IFormatProvider):System.Globalization.NumberFormatInfo]
jmp SHORT G_M16662_IG05
jmp SHORT G_M16662_IG05
align [2 bytes for IG17]
align [12 bytes for IG17]
;; size=27 bbWeight=0.50 PerfScore 3.88
;; size=37 bbWeight=0.50 PerfScore 3.88
G_M16662_IG04:
G_M16662_IG04:
call [System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo]
call [System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo]
;; size=6 bbWeight=0.50 PerfScore 1.50
;; size=6 bbWeight=0.50 PerfScore 1.50
G_M16662_IG05:
G_M16662_IG05:
mov rbp, gword ptr [rax+28H]
mov rbp, gword ptr [rax+28H]
mov r14, rdi
mov r14, rdi
neg r14
neg r14
jne SHORT G_M16662_IG06
jne SHORT G_M16662_IG06
xor ecx, ecx
xor edx, edx
jmp SHORT G_M16662_IG07
jmp SHORT G_M16662_IG07
;; size=16 bbWeight=0.50 PerfScore 2.88
;; size=16 bbWeight=0.50 PerfScore 2.88
G_M16662_IG06:
G_M16662_IG06:
mov ecx, 1
mov edx, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M16662_IG07:
G_M16662_IG07:
xor edi, edi
xor edi, edi
sub rdi, rbx
sub rdi, rbx
sub rdi, rcx
sub rdi, rdx
mov qword ptr [rsp+88H], r14
mov qword ptr [rsp+88H], r14
mov qword ptr [rsp+90H], rdi
mov qword ptr [rsp+90H], rdi
test rdi, rdi
test rdi, rdi
jne SHORT G_M16662_IG08
jne SHORT G_M16662_IG08
mov rcx, qword ptr [rsp+88H]
mov rdx, qword ptr [rsp+88H]
call [System.Numerics.BitOperations:Log2(ulong):int]
or rdx, 1
movsxd rdx, eax
lzcnt rdx, rdx
xor edx, 63
movsxd rdx, edx
mov r8, 0xD1FFAB1E ; static handle
mov r8, 0xD1FFAB1E ; static handle
movzx rax, byte ptr [rdx+r8]
movzx rax, byte ptr [rdx+r8]
mov rdx, qword ptr [rsp+88H]
mov rdx, qword ptr [rsp+88H]
lea r8d, [8*rax]
lea r8d, [8*rax]
mov rcx, 0xD1FFAB1E ; static handle
mov rcx, 0xD1FFAB1E ; static handle
cmp rdx, qword ptr [r8+rcx]
cmp rdx, qword ptr [r8+rcx]
setb dl
setb dl
movzx rdx, dl
movzx rdx, dl
sub eax, edx
sub eax, edx
jmp G_M16662_IG11
jmp G_M16662_IG11
;; size=104 bbWeight=0.50 PerfScore 9.38
;; size=110 bbWeight=0.50 PerfScore 9.12
G_M16662_IG08:
G_M16662_IG08:
mov ebx, 20
mov ebx, 20
cmp rdi, 5
cmp rdi, 5
jbe SHORT G_M16662_IG09
jbe SHORT G_M16662_IG09
vmovupd xmm0, xmmword ptr [rsp+88H]
vmovupd xmm0, xmmword ptr [rsp+88H]
vmovupd xmmword ptr [rsp+68H], xmm0
vmovupd xmmword ptr [rsp+68H], xmm0
mov rdx, 0xD1FFAB1E
mov rdx, 0xD1FFAB1E
mov qword ptr [rsp+58H], rdx
mov qword ptr [rsp+58H], rdx
mov qword ptr [rsp+60H], 5
mov qword ptr [rsp+60H], 5
lea rdx, [rsp+68H]
lea rdx, [rsp+68H]
lea r8, [rsp+58H]
lea r8, [rsp+58H]
lea rcx, bword ptr [rsp+88H]
lea rcx, bword ptr [rsp+88H]
call [System.UInt128:op_Division(System.UInt128,System.UInt128):System.UInt128]
call [System.UInt128:op_Division(System.UInt128,System.UInt128):System.UInt128]
mov rcx, qword ptr [rsp+88H]
mov rcx, qword ptr [rsp+88H]
call [System.Buffers.Text.FormattingHelpers:CountDigits(ulong):int]
call [System.Buffers.Text.FormattingHelpers:CountDigits(ulong):int]
lea ebx, [rax+14H]
lea ebx, [rax+14H]
jmp SHORT G_M16662_IG10
jmp SHORT G_M16662_IG10
;; size=95 bbWeight=0.50 PerfScore 9.38
;; size=95 bbWeight=0.50 PerfScore 9.38
G_M16662_IG09:
G_M16662_IG09:
cmp rdi, 5
cmp rdi, 5
jne SHORT G_M16662_IG10
jne SHORT G_M16662_IG10
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
cmp qword ptr [rsp+88H], rcx
cmp qword ptr [rsp+88H], rcx
jb SHORT G_M16662_IG10
jb SHORT G_M16662_IG10
mov ebx, 21
mov ebx, 21
;; size=31 bbWeight=0.50 PerfScore 2.38
;; size=31 bbWeight=0.50 PerfScore 2.38
G_M16662_IG10:
G_M16662_IG10:
mov eax, ebx
mov eax, ebx
;; size=2 bbWeight=0.50 PerfScore 0.12
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M16662_IG11:
G_M16662_IG11:
cmp eax, 1
cmp eax, 1
jle SHORT G_M16662_IG12
jle SHORT G_M16662_IG12
jmp SHORT G_M16662_IG13
jmp SHORT G_M16662_IG13
;; size=7 bbWeight=0.50 PerfScore 1.62
;; size=7 bbWeight=0.50 PerfScore 1.62
G_M16662_IG12:
G_M16662_IG12:
mov eax, 1
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M16662_IG13:
G_M16662_IG13:
mov ebx, dword ptr [rbp+08H]
mov ebx, dword ptr [rbp+08H]
add eax, ebx
add eax, ebx
cmp eax, r12d
cmp eax, r12d
jle SHORT G_M16662_IG14
jle SHORT G_M16662_IG14
xor eax, eax
xor eax, eax
mov dword ptr [rsi], eax
mov dword ptr [rsi], eax
jmp G_M16662_IG21
jmp G_M16662_IG21
;; size=19 bbWeight=0.50 PerfScore 3.38
;; size=19 bbWeight=0.50 PerfScore 3.38
G_M16662_IG14:
G_M16662_IG14:
mov dword ptr [rsi], eax
mov dword ptr [rsi], eax
mov bword ptr [rsp+98H], r15
mov bword ptr [rsp+98H], r15
movsxd rcx, eax
movsxd rcx, eax
lea rsi, [r15+2*rcx]
lea rsi, [r15+2*rcx]
mov qword ptr [rsp+78H], r14
mov qword ptr [rsp+78H], r14
mov qword ptr [rsp+80H], rdi
mov qword ptr [rsp+80H], rdi
mov edi, 1
mov edi, 1
cmp qword ptr [rsp+80H], 0
cmp qword ptr [rsp+80H], 0
je SHORT G_M16662_IG16
je SHORT G_M16662_IG16
;; size=46 bbWeight=0.50 PerfScore 4.00
;; size=46 bbWeight=0.50 PerfScore 4.00
G_M16662_IG15:
G_M16662_IG15:
lea rcx, bword ptr [rsp+78H]
lea rcx, bword ptr [rsp+78H]
call [System.Number:Int128DivMod1E19(byref):ulong]
call [System.Number:Int128DivMod1E19(byref):ulong]
mov rdx, rax
mov rdx, rax
mov rcx, rsi
mov rcx, rsi
mov r8d, 19
mov r8d, 19
call [System.Number:UInt64ToDecChars(ulong,ulong,int):ulong]
call [System.Number:UInt64ToDecChars(ulong,ulong,int):ulong]
mov rsi, rax
mov rsi, rax
add edi, -19
add edi, -19
cmp qword ptr [rsp+80H], 0
cmp qword ptr [rsp+80H], 0
jne SHORT G_M16662_IG15
jne SHORT G_M16662_IG15
;; size=46 bbWeight=4 PerfScore 43.00
;; size=46 bbWeight=4 PerfScore 43.00
G_M16662_IG16:
G_M16662_IG16:
mov rcx, rsi
mov rcx, rsi
mov rdx, qword ptr [rsp+78H]
mov rdx, qword ptr [rsp+78H]
mov r8d, edi
mov r8d, edi
call [System.Number:UInt64ToDecChars(ulong,ulong,int):ulong]
call [System.Number:UInt64ToDecChars(ulong,ulong,int):ulong]
lea ecx, [rbx-01H]
lea ecx, [rbx-01H]
test ecx, ecx
test ecx, ecx
jl SHORT G_M16662_IG20
jl SHORT G_M16662_IG20
cmp ebx, ecx
cmp ebx, ecx
jle SHORT G_M16662_IG19
jle SHORT G_M16662_IG19
;; size=28 bbWeight=0.50 PerfScore 3.75
;; size=28 bbWeight=0.50 PerfScore 3.75
G_M16662_IG17:
G_M16662_IG17:
add rax, -2
add rax, -2
mov r8d, ecx
mov r8d, ecx
movzx r8, word ptr [rbp+2*r8+0CH]
movzx r8, word ptr [rbp+2*r8+0CH]
mov word ptr [rax], r8w
mov word ptr [rax], r8w
dec ecx
dec ecx
jns SHORT G_M16662_IG17
jns SHORT G_M16662_IG17
;; size=21 bbWeight=3.96 PerfScore 18.81
;; size=21 bbWeight=3.96 PerfScore 18.81
G_M16662_IG18:
G_M16662_IG18:
jmp SHORT G_M16662_IG20
jmp SHORT G_M16662_IG20
;; size=2 bbWeight=0.50 PerfScore 1.00
;; size=2 bbWeight=0.50 PerfScore 1.00
G_M16662_IG19:
G_M16662_IG19:
add rax, -2
add rax, -2
cmp ecx, ebx
cmp ecx, ebx
jae G_M16662_IG26
jae G_M16662_IG26
mov r8d, ecx
mov r8d, ecx
movzx r8, word ptr [rbp+2*r8+0CH]
movzx r8, word ptr [rbp+2*r8+0CH]
mov word ptr [rax], r8w
mov word ptr [rax], r8w
dec ecx
dec ecx
jns SHORT G_M16662_IG19
jns SHORT G_M16662_IG19
;; size=29 bbWeight=0.04 PerfScore 0.24
;; size=29 bbWeight=0.04 PerfScore 0.24
G_M16662_IG20:
G_M16662_IG20:
xor ecx, ecx
xor ecx, ecx
mov bword ptr [rsp+98H], rcx
mov bword ptr [rsp+98H], rcx
mov eax, 1
mov eax, 1
;; size=15 bbWeight=0.50 PerfScore 0.75
;; size=15 bbWeight=0.50 PerfScore 0.75
G_M16662_IG21:
G_M16662_IG21:
jmp SHORT G_M16662_IG24
jmp SHORT G_M16662_IG24
;; size=2 bbWeight=0.50 PerfScore 1.00
;; size=2 bbWeight=0.50 PerfScore 1.00
G_M16662_IG22:
G_M16662_IG22:
mov rcx, rdi
mov rcx, rdi
mov r8, rbx
mov r8, rbx
mov qword ptr [rsp+68H], rcx
mov qword ptr [rsp+68H], rcx
mov qword ptr [rsp+70H], r8
mov qword ptr [rsp+70H], r8
mov bword ptr [rsp+48H], r15
mov bword ptr [rsp+48H], r15
mov dword ptr [rsp+50H], r12d
mov dword ptr [rsp+50H], r12d
lea rcx, [rsp+68H]
lea rcx, [rsp+68H]
lea r8, [rsp+48H]
lea r8, [rsp+48H]
mov r9, rsi
mov r9, rsi
mov edx, -1
mov edx, -1
call [System.Number:TryUInt128ToDecStr(System.UInt128,int,System.Span`1[ushort],byref):bool]
call [System.Number:TryUInt128ToDecStr(System.UInt128,int,System.Span`1[ushort],byref):bool]
jmp SHORT G_M16662_IG24
jmp SHORT G_M16662_IG24
;; size=52 bbWeight=0.50 PerfScore 5.50
;; size=52 bbWeight=0.50 PerfScore 5.50
G_M16662_IG23:
G_M16662_IG23:
mov qword ptr [rsp+38H], rdi
mov qword ptr [rsp+38H], rdi
mov qword ptr [rsp+40H], rbx
mov qword ptr [rsp+40H], rbx
mov bword ptr [rsp+28H], rbp
mov bword ptr [rsp+28H], rbp
mov dword ptr [rsp+30H], r14d
mov dword ptr [rsp+30H], r14d
mov bword ptr [rsp+48H], r15
mov bword ptr [rsp+48H], r15
mov dword ptr [rsp+50H], r12d
mov dword ptr [rsp+50H], r12d
mov bword ptr [rsp+20H], rsi
mov bword ptr [rsp+20H], rsi
lea rcx, [rsp+38H]
lea rcx, [rsp+38H]
lea rdx, [rsp+28H]
lea rdx, [rsp+28H]
lea r9, [rsp+48H]
lea r9, [rsp+48H]
call [System.Number:<TryFormatInt128>g__TryFormatInt128Slow|50_0(System.Int128,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.Span`1[ushort],byref):bool]
call [System.Number:<TryFormatInt128>g__TryFormatInt128Slow|50_0(System.Int128,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.Span`1[ushort],byref):bool]
;; size=56 bbWeight=0.50 PerfScore 5.75
;; size=56 bbWeight=0.50 PerfScore 5.75
G_M16662_IG24:
G_M16662_IG24:
nop
nop
;; size=1 bbWeight=1 PerfScore 0.25
;; size=1 bbWeight=1 PerfScore 0.25
G_M16662_IG25:
G_M16662_IG25:
add rsp, 160
add rsp, 160
pop rbx
pop rbx
pop rbp
pop rbp
pop rsi
pop rsi
pop rdi
pop rdi
pop r12
pop r12
pop r14
pop r14
pop r15
pop r15
ret
ret
;; size=18 bbWeight=1 PerfScore 4.75
;; size=18 bbWeight=1 PerfScore 4.75
G_M16662_IG26:
G_M16662_IG26:
call CORINFO_HELP_RNGCHKFAIL
call CORINFO_HELP_RNGCHKFAIL
int3
int3
;; size=6 bbWeight=0 PerfScore 0.00
;; size=6 bbWeight=0 PerfScore 0.00


; Total bytes of code 762, prolog size 93, PerfScore 232.58, instruction count 180, allocated bytes for code 762 (MethodHash=d514bee9) for method System.Int128:TryFormat(System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):bool:this
; Total bytes of code 778, prolog size 93, PerfScore 233.93, instruction count 182, allocated bytes for code 778 (MethodHash=d514bee9) for method System.Int128:TryFormat(System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):bool:this
; ============================================================
; ============================================================