Untitled Diff
43 lines
; Method Program:Format(System.Span`1[Byte],int):bool
; Method Program:Format(System.Span`1[Byte],int):bool
G_M58631_IG01:
G_M58631_IG01:
push rdi
push rsi
push rbp
push rbx
sub rsp, 88
sub rsp, 88
vxorps xmm4, xmm4
vxorps xmm4, xmm4
vmovdqa xmmword ptr [rsp+30H], xmm4
vmovdqa xmmword ptr [rsp+30H], xmm4
vmovdqa xmmword ptr [rsp+40H], xmm4
vmovdqa xmmword ptr [rsp+40H], xmm4
xor eax, eax
xor eax, eax
mov qword ptr [rsp+50H], rax
mov qword ptr [rsp+50H], rax
;; bbWeight=1 PerfScore 3.83
mov rsi, rcx
mov edi, edx
;; bbWeight=1 PerfScore 8.33
G_M58631_IG02:
G_M58631_IG02:
mov r8, bword ptr [rcx]
mov word ptr [rsp+48H], 0
mov ecx, dword ptr [rcx+8]
lea rcx, bword ptr [rsp+48H]
movsxd rdx, edx
mov edx, 68
jmp SHORT G_M58631_IG04
mov r8d, 2
;; bbWeight=1 PerfScore 6.25
call System.Buffers.StandardFormat:.ctor(ushort,ubyte):this
mov rbx, bword ptr [rsi]
mov esi, dword ptr [rsi+8]
movzx rax, byte ptr [rsp+48H]
movzx rdx, byte ptr [rsp+49H]
movsxd rdi, edi
mov byte ptr [rsp+40H], al
mov byte ptr [rsp+41H], dl
cmp byte ptr [rsp+40H], 0
jne G_M58631_IG20
;; bbWeight=1 PerfScore 13.25
G_M58631_IG03:
G_M58631_IG03:
add rsp, 88
cmp byte ptr [rsp+41H], 0
ret
sete al
;; bbWeight=1 PerfScore 1.25
movzx rax, al
test eax, eax
je G_M58631_IG20
cmp rdi, 10
jae SHORT G_M58631_IG06
test esi, esi
jne SHORT G_M58631_IG04
xor eax, eax
mov dword ptr [rsp+50H], eax
jmp SHORT G_M58631_IG05
;; bbWeight=0.50 PerfScore 4.62
G_M58631_IG04:
G_M58631_IG04:
xor r9d, r9d
add edi, 48
test rdx, rdx
mov byte ptr [rbx], dil
jge SHORT G_M58631_IG05
mov dword ptr [rsp+50H], 1
mov r9d, 1
mov eax, 1
neg rdx
;; bbWeight=0.50 PerfScore 1.25
G_M58631_IG05:
jmp G_M58631_IG19
;; bbWeight=0.50 PerfScore 1.00
;; bbWeight=0.50 PerfScore 1.00
G_M58631_IG05:
G_M58631_IG06:
test rdi, rdi
jge G_M58631_IG18
neg rdi
mov ebp, 1
cmp rdi, 0xD1FFAB1E
jb SHORT G_M58631_IG08
mov rax, 0xD1FFAB1E
cmp rdi, rax
jb SHORT G_M58631_IG07
mov rdx, 0xD1FFAB1E
mov rax, rdi
mul rdx:rax, rdx
shr rdx, 42
mov ecx, edx
mov ebp, 15
jmp SHORT G_M58631_IG09
;; bbWeight=0.50 PerfScore 5.50
G_M58631_IG07:
mov rdx, 0xD1FFAB1E
mov rax, rdi
mul rdx:rax, rdx
shr rdx, 23
mov ecx, edx
mov ebp, 8
jmp SHORT G_M58631_IG09
;; bbWeight=0.50 PerfScore 3.25
G_M58631_IG08:
mov ecx, edi
;; bbWeight=0.50 PerfScore 0.12
G_M58631_IG09:
cmp ecx, 10
jb SHORT G_M58631_IG16
cmp ecx, 100
jae SHORT G_M58631_IG10
inc ebp
jmp SHORT G_M58631_IG16
;; bbWeight=0.50 PerfScore 2.38
G_M58631_IG10:
cmp ecx, 0x3E8
jae SHORT G_M58631_IG11
add ebp, 2
jmp SHORT G_M58631_IG16
;; bbWeight=0.50 PerfScore 1.75
G_M58631_IG11:
cmp ecx, 0x2710
jae SHORT G_M58631_IG12
add ebp, 3
jmp SHORT G_M58631_IG16
;; bbWeight=0.50 PerfScore 1.75
G_M58631_IG12:
cmp ecx, 0x186A0
jae SHORT G_M58631_IG13
add ebp, 4
jmp SHORT G_M58631_IG16
;; bbWeight=0.50 PerfScore 1.75
G_M58631_IG13:
cmp ecx, 0xD1FFAB1E
jae SHORT G_M58631_IG14
add ebp, 5
jmp SHORT G_M58631_IG16
;; bbWeight=0.50 PerfScore 1.75
G_M58631_IG14:
cmp ecx, 0xD1FFAB1E
setb cl
movzx rcx, cl
mov rdx, 0xD1FFAB1E
mov rdx, gword ptr [rdx]
test ecx, ecx
jne SHORT G_M58631_IG15
mov rcx, rdx
call System.Diagnostics.Debug:Fail(System.String,System.String)
;; bbWeight=0.50 PerfScore 3.12
G_M58631_IG15:
add ebp, 6
;; bbWeight=0.50 PerfScore 0.12
G_M58631_IG16:
cmp ebp, esi
jl SHORT G_M58631_IG17
xor ecx, ecx
mov dword ptr [rsp+50H], ecx
xor eax, eax
jmp SHORT G_M58631_IG19
;; bbWeight=0.50 PerfScore 2.38
G_M58631_IG17:
test esi, esi
je G_M58631_IG33
mov byte ptr [rbx], 45
lea ecx, [rbp+1]
mov dword ptr [rsp+50H], ecx
mov ecx, ebp
inc rcx
mov eax, esi
cmp rcx, rax
ja G_M58631_IG31
mov ecx, ebp
not ecx
shr ecx, 31
call System.Diagnostics.Debug:Assert(bool)
inc rbx
mov bword ptr [rsp+30H], rbx
mov dword ptr [rsp+38H], ebp
mov rcx, rdi
lea rdx, bword ptr [rsp+30H]
call System.Buffers.Text.FormattingHelpers:WriteDigits(long,System.Span`1[Byte])
mov eax, 1
jmp SHORT G_M58631_IG19
;; bbWeight=0.50 PerfScore 7.00
G_M58631_IG18:
mov rcx, rdi
mov bword ptr [rsp+30H], rbx
mov dword ptr [rsp+38H], esi
lea rdx, bword ptr [rsp+30H]
lea r8, [rsp+50H]
call System.Buffers.Text.Utf8Formatter:TryFormatUInt64MultipleDigits(long,System.Span`1[Byte],byref):bool
movzx rax, al
;; bbWeight=0.50 PerfScore 2.25
G_M58631_IG19:
jmp SHORT G_M58631_IG22
;; bbWeight=0.50 PerfScore 1.00
G_M58631_IG20:
mov ecx, dword ptr [rsp+40H]
movzx rbp, cl
cmp ebp, 88
ja G_M58631_IG24
cmp ebp, 71
ja SHORT G_M58631_IG23
cmp ebp, 68
je G_M58631_IG26
cmp ebp, 71
jne G_M58631_IG30
;; bbWeight=0.50 PerfScore 3.12
G_M58631_IG21:
lea rcx, bword ptr [rsp+40H]
call System.Buffers.StandardFormat:get_HasPrecision():bool:this
test eax, eax
jne G_M58631_IG32
mov rcx, rdi
mov edx, dword ptr [rsp+41H]
movzx rdx, dl
mov bword ptr [rsp+30H], rbx
mov dword ptr [rsp+38H], esi
lea r8, bword ptr [rsp+30H]
lea r9, [rsp+50H]
call System.Buffers.Text.Utf8Formatter:TryFormatInt64D(long,ubyte,System.Span`1[Byte],byref):bool
movzx rax, al
;; bbWeight=0.50 PerfScore 4.25
G_M58631_IG22:
add rsp, 88
pop rbx
pop rbp
pop rsi
pop rdi
ret
;; bbWeight=1 PerfScore 3.25
G_M58631_IG23:
cmp ebp, 78
je G_M58631_IG28
cmp ebp, 88
jne G_M58631_IG30
mov ecx, 0xD1FFAB1E
and rcx, rdi
mov edx, dword ptr [rsp+41H]
movzx rdx, dl
mov bword ptr [rsp+30H], rbx
mov dword ptr [rsp+38H], esi
lea r9, [rsp+50H]
mov qword ptr [rsp+20H], r9
lea r9, bword ptr [rsp+30H]
xor r8d, r8d
call System.Buffers.Text.Utf8Formatter:TryFormatUInt64X(long,ubyte,bool,System.Span`1[Byte],byref):bool
jmp SHORT G_M58631_IG22
;; bbWeight=0.50 PerfScore 5.75
G_M58631_IG24:
cmp ebp, 103
ja SHORT G_M58631_IG25
cmp ebp, 100
je SHORT G_M58631_IG26
cmp ebp, 103
jne G_M58631_IG30
jmp G_M58631_IG21
;; bbWeight=0.50 PerfScore 2.88
G_M58631_IG25:
cmp ebp, 110
je G_M58631_IG28
cmp ebp, 120
jne G_M58631_IG30
mov ecx, 0xD1FFAB1E
and rcx, rdi
mov edx, dword ptr [rsp+41H]
movzx rdx, dl
mov bword ptr [rsp+30H], rbx
mov dword ptr [rsp+38H], esi
lea r9, [rsp+50H]
mov qword ptr [rsp+20H], r9
lea r9, bword ptr [rsp+30H]
mov r8d, 1
call System.Buffers.Text.Utf8Formatter:TryFormatUInt64X(long,ubyte,bool,System.Span`1[Byte],byref):bool
jmp G_M58631_IG22
;; bbWeight=0.50 PerfScore 5.75
G_M58631_IG26:
mov rcx, rdi
mov edx, dword ptr [rsp+41H]
movzx rdx, dl
mov r8, rbx
mov r9d, esi
xor eax, eax
test rcx, rcx
jge SHORT G_M58631_IG27
mov eax, 1
neg rcx
;; bbWeight=0.50 PerfScore 2.00
G_M58631_IG27:
mov bword ptr [rsp+30H], r8
mov bword ptr [rsp+30H], r8
mov dword ptr [rsp+38H], ecx
mov dword ptr [rsp+38H], r9d
lea rcx, [rsp+50H]
lea r8, [rsp+50H]
mov qword ptr [rsp+20H], rcx
mov qword ptr [rsp+20H], r8
mov rcx, rdx
mov edx, 2
lea r8, bword ptr [rsp+30H]
lea r8, bword ptr [rsp+30H]
mov r9d, eax
call System.Buffers.Text.Utf8Formatter:TryFormatUInt64D(long,ubyte,System.Span`1[Byte],bool,byref):bool
call System.Buffers.Text.Utf8Formatter:TryFormatUInt64D(long,ubyte,System.Span`1[Byte],bool,byref):bool
movzx rax, al
movzx rax, al
jmp SHORT G_M58631_IG03
jmp G_M58631_IG22
;; bbWeight=0.50 PerfScore 3.88
;; bbWeight=0.50 PerfScore 3.75
; Total bytes of code: 102
G_M58631_IG28:
mov rcx, rdi
mov edx, dword ptr [rsp+41H]
movzx rdx, dl
mov r8, rbx
mov r9d, esi
xor eax, eax
test rcx, rcx
jge SHORT G_M58631_IG29
mov eax, 1
neg rcx
;; bbWeight=0.50 PerfScore 2.00
G_M58631_IG29:
mov bword ptr [rsp+30H], r8
mov dword ptr [rsp+38H], r9d
lea r8, [rsp+50H]
mov qword ptr [rsp+20H], r8
lea r8, bword ptr [rsp+30H]
mov r9d, eax
call System.Buffers.Text.Utf8Formatter:TryFormatUInt64N(long,ubyte,System.Span`1[Byte],bool,byref):bool
movzx rax, al
jmp G_M58631_IG22
;; bbWeight=0.50 PerfScore 3.75
G_M58631_IG30:
xor eax, eax
mov dword ptr [rsp+50H], eax
call System.ThrowHelper:ThrowFormatException_BadFormatSpecifier()
int3
;; bbWeight=0 PerfScore 0.00
G_M58631_IG31:
call System.ThrowHelper:ThrowArgumentOutOfRangeException()
int3
;; bbWeight=0 PerfScore 0.00
G_M58631_IG32:
mov rcx, 0xD1FFAB1E
call CORINFO_HELP_NEWSFAST
mov rsi, rax
call System.SR:get_Argument_GWithPrecisionNotSupported():System.String
mov rdx, rax
mov rcx, rsi
call System.NotSupportedException:.ctor(System.String):this
mov rcx, rsi
call CORINFO_HELP_THROW
int3
;; bbWeight=0 PerfScore 0.00
G_M58631_IG33:
call CORINFO_HELP_RNGCHKFAIL
int3
;; bbWeight=0 PerfScore 0.00
; Total bytes of code: 973