Untitled Diff

Created Diff never expires
7 removals
167 lines
11 additions
170 lines
; Assembly listing for method SixLabors.ImageSharp.Color:ParseHex(System.String):SixLabors.ImageSharp.Color
; Assembly listing for method SixLabors.ImageSharp.Color:ParseHex(System.String):SixLabors.ImageSharp.Color


G_M46085_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
G_M46085_IG01: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
push rdi
push rdi
push rsi
push rsi
push rbx
push rbx
sub rsp, 80
sub rsp, 80
vzeroupper
vzeroupper
vxorps xmm4, xmm4
vxorps xmm4, xmm4
vmovdqa xmmword ptr [rsp+20H], xmm4
vmovdqa xmmword ptr [rsp+20H], 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
mov rbx, rcx
mov rbx, rcx
; byrRegs +[rbx]
; byrRegs +[rbx]
mov rsi, rdx
mov rsi, rdx
; gcrRegs +[rsi]
; gcrRegs +[rsi]
;; size=38 bbWeight=1 PerfScore 11.08
;; size=38 bbWeight=1 PerfScore 11.08
G_M46085_IG02: ; bbWeight=1, gcrefRegs=00000040 {rsi}, byrefRegs=00000008 {rbx}, byref, isz
G_M46085_IG02: ; bbWeight=1, gcrefRegs=00000040 {rsi}, byrefRegs=00000008 {rbx}, byref, isz
test rsi, rsi
test rsi, rsi
jne SHORT G_M46085_IG04
jne SHORT G_M46085_IG04
;; size=5 bbWeight=1 PerfScore 1.25
;; size=5 bbWeight=1 PerfScore 1.25
G_M46085_IG03: ; bbWeight=0.50, gcrefRegs=00000040 {rsi}, byrefRegs=00000008 {rbx}, byref
G_M46085_IG03: ; bbWeight=0.50, gcrefRegs=00000040 {rsi}, byrefRegs=00000008 {rbx}, byref
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
; gcrRegs +[rcx]
; gcrRegs +[rcx]
call [<unknown method>]
call [<unknown method>]
; gcrRegs -[rcx]
; gcrRegs -[rcx]
; gcr arg pop 0
; gcr arg pop 0
;; size=16 bbWeight=0.50 PerfScore 1.62
;; size=16 bbWeight=0.50 PerfScore 1.62
G_M46085_IG04: ; bbWeight=1, gcrefRegs=00000040 {rsi}, byrefRegs=00000008 {rbx}, byref
G_M46085_IG04: ; bbWeight=1, gcrefRegs=00000040 {rsi}, byrefRegs=00000008 {rbx}, byref
xor ecx, ecx
xor ecx, ecx
mov dword ptr [rsp+30H], ecx
mov dword ptr [rsp+30H], ecx
mov rcx, rsi
mov rcx, rsi
; gcrRegs +[rcx]
; gcrRegs +[rcx]
call [System.String:IsNullOrWhiteSpace(System.String):bool]
call [System.String:IsNullOrWhiteSpace(System.String):bool]
; gcrRegs -[rcx]
; gcrRegs -[rcx]
; gcr arg pop 0
; gcr arg pop 0
test eax, eax
test eax, eax
jne G_M46085_IG08
jne G_M46085_IG08
;; size=23 bbWeight=1 PerfScore 5.75
;; size=23 bbWeight=1 PerfScore 5.75
G_M46085_IG05: ; bbWeight=0.50, gcrefRegs=00000040 {rsi}, byrefRegs=00000008 {rbx}, byref
G_M46085_IG05: ; bbWeight=0.50, gcrefRegs=00000040 {rsi}, byrefRegs=00000008 {rbx}, byref
mov rcx, rsi
mov rcx, rsi
; gcrRegs +[rcx]
; gcrRegs +[rcx]
call [<unknown method>]
call [<unknown method>]
; gcrRegs -[rcx rsi] +[rax]
; gcrRegs -[rcx rsi] +[rax]
; gcr arg pop 0
; gcr arg pop 0
mov rsi, rax
mov rsi, rax
; gcrRegs +[rsi]
; gcrRegs +[rsi]
test rsi, rsi
test rsi, rsi
je G_M46085_IG08
je G_M46085_IG08
mov rcx, 0xD1FFAB1E ; const ptr
mov rcx, 0xD1FFAB1E ; const ptr
mov rcx, gword ptr [rcx]
mov rcx, gword ptr [rcx]
; gcrRegs +[rcx]
; gcrRegs +[rcx]
lea rdi, bword ptr [rsi+0CH]
lea rdi, bword ptr [rsi+0CH]
; byrRegs +[rdi]
; byrRegs +[rdi]
mov esi, dword ptr [rsi+08H]
mov esi, dword ptr [rsi+08H]
; gcrRegs -[rsi]
; gcrRegs -[rsi]
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]
; gcrRegs -[rcx]
; gcrRegs -[rcx]
; gcr arg pop 0
; gcr arg pop 0
mov bword ptr [rsp+20H], rdi
mov bword ptr [rsp+20H], rdi
mov dword ptr [rsp+28H], esi
mov dword ptr [rsp+28H], esi
lea rcx, [rsp+20H]
lea rcx, [rsp+20H]
lea r8, [rsp+30H]
lea r8, [rsp+30H]
mov edx, 515
mov edx, 515
call [<unknown method>]
call [<unknown method>]
; gcrRegs -[rax]
; gcrRegs -[rax]
; byrRegs -[rdi]
; byrRegs -[rdi]
; gcr arg pop 0
; gcr arg pop 0
test eax, eax
test eax, eax
jne G_M46085_IG08
sete al
;; size=85 bbWeight=0.50 PerfScore 10.00
movzx rax, al
test eax, eax
je G_M46085_IG08
;; size=93 bbWeight=0.50 PerfScore 10.75
G_M46085_IG06: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000008 {rbx}, byref
G_M46085_IG06: ; bbWeight=1, gcrefRegs=00000000 {}, byrefRegs=00000008 {rbx}, byref
movbe eax, dword ptr [rsp+30H]
movbe eax, dword ptr [rsp+30H]
mov dword ptr [rsp+30H], eax
mov dword ptr [rsp+30H], eax
mov eax, dword ptr [rsp+30H]
mov eax, dword ptr [rsp+30H]
mov dword ptr [rsp+38H], eax
mov dword ptr [rsp+38H], eax
vxorps xmm0, xmm0
vxorps xmm0, xmm0
vmovdqu xmmword ptr [rsp+40H], xmm0
vmovdqu xmmword ptr [rsp+40H], xmm0
movzx rax, byte ptr [rsp+38H]
movzx rax, byte ptr [rsp+38H]
movzx rdx, byte ptr [rsp+39H]
movzx rdx, byte ptr [rsp+39H]
movzx rcx, byte ptr [rsp+3AH]
movzx rcx, byte ptr [rsp+3AH]
movzx r8, byte ptr [rsp+3BH]
movzx r8, byte ptr [rsp+3BH]
mov r9d, eax
mov r9d, eax
shl r9d, 8
shl r9d, 8
add r9d, eax
add r9d, eax
mov eax, edx
mov eax, edx
shl eax, 8
shl eax, 8
add eax, edx
add eax, edx
mov edx, ecx
mov edx, ecx
shl edx, 8
shl edx, 8
add edx, ecx
add edx, ecx
mov ecx, r8d
mov ecx, r8d
shl ecx, 8
shl ecx, 8
add ecx, r8d
add ecx, r8d
mov word ptr [rsp+48H], r9w
mov word ptr [rsp+48H], r9w
mov word ptr [rsp+4AH], ax
mov word ptr [rsp+4AH], ax
mov word ptr [rsp+4CH], dx
mov word ptr [rsp+4CH], dx
mov word ptr [rsp+4EH], cx
mov word ptr [rsp+4EH], cx
mov rdi, rbx
mov rdi, rbx
; byrRegs +[rdi]
; byrRegs +[rdi]
lea rsi, bword ptr [rsp+40H]
lea rsi, bword ptr [rsp+40H]
; byrRegs +[rsi]
; byrRegs +[rsi]
call CORINFO_HELP_ASSIGN_BYREF
call CORINFO_HELP_ASSIGN_BYREF
movsq
movsq
mov rax, rbx
mov rax, rbx
; byrRegs +[rax]
; byrRegs +[rax]
;; size=121 bbWeight=1 PerfScore 21.33
;; size=121 bbWeight=1 PerfScore 21.33
G_M46085_IG07: ; bbWeight=1, epilog, nogc, extend
G_M46085_IG07: ; bbWeight=1, epilog, nogc, extend
add rsp, 80
add rsp, 80
pop rbx
pop rbx
pop rsi
pop rsi
pop rdi
pop rdi
ret
ret
;; size=8 bbWeight=1 PerfScore 2.75
;; size=8 bbWeight=1 PerfScore 2.75
G_M46085_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
G_M46085_IG08: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, gcvars, byref
; byrRegs -[rax rbx rsi rdi]
; byrRegs -[rax rbx rsi rdi]
mov rcx, 0xD1FFAB1E ; <unknown class>
mov rcx, 0xD1FFAB1E ; <unknown class>
call CORINFO_HELP_NEWSFAST
call CORINFO_HELP_NEWSFAST
; gcrRegs +[rax]
; gcrRegs +[rax]
; gcr arg pop 0
; gcr arg pop 0
mov rsi, rax
mov rsi, rax
; gcrRegs +[rsi]
; gcrRegs +[rsi]
mov ecx, 0x3312
mov ecx, 0x3312
mov rdx, 0xD1FFAB1E
mov rdx, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
call CORINFO_HELP_STRCNS
; gcr arg pop 0
; gcr arg pop 0
mov rdi, rax
mov rdi, rax
; gcrRegs +[rdi]
; gcrRegs +[rdi]
mov ecx, 0x330A
mov ecx, 0x330A
mov rdx, 0xD1FFAB1E
mov rdx, 0xD1FFAB1E
call CORINFO_HELP_STRCNS
call CORINFO_HELP_STRCNS
; gcr arg pop 0
; gcr arg pop 0
mov r8, rax
mov r8, rax
; gcrRegs +[r8]
; gcrRegs +[r8]
mov rdx, rdi
mov rdx, rdi
; gcrRegs +[rdx]
; gcrRegs +[rdx]
mov rcx, rsi
mov rcx, rsi
; gcrRegs +[rcx]
; gcrRegs +[rcx]
call [<unknown method>]
call [<unknown method>]
; gcrRegs -[rax rcx rdx rdi r8]
; gcrRegs -[rax rcx rdx rdi r8]
; gcr arg pop 0
; gcr arg pop 0
mov rcx, rsi
mov rcx, rsi
; gcrRegs +[rcx]
; gcrRegs +[rcx]
call CORINFO_HELP_THROW
call CORINFO_HELP_THROW
; gcrRegs -[rcx rsi]
; gcrRegs -[rcx rsi]
; gcr arg pop 0
; gcr arg pop 0
int3
int3
;; size=85 bbWeight=0 PerfScore 0.00
;; size=85 bbWeight=0 PerfScore 0.00


; Total bytes of code 381, prolog size 32, PerfScore 91.89, instruction count 92, allocated bytes for code 381 (MethodHash=52514bfa) for method SixLabors.ImageSharp.Color:ParseHex(System.String):SixLabors.ImageSharp.Color
; Total bytes of code 389, prolog size 32, PerfScore 93.44, instruction count 95, allocated bytes for code 389 (MethodHash=52514bfa) for method SixLabors.ImageSharp.Color:ParseHex(System.String):SixLabors.ImageSharp.Color
; ============================================================
; ============================================================


Unwind Info:
Unwind Info:
>> Start offset : 0x000000 (not in unwind data)
>> Start offset : 0x000000 (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
>> End offset : 0xd1ffab1e (not in unwind data)
Version : 1
Version : 1
Flags : 0x00
Flags : 0x00
SizeOfProlog : 0x07
SizeOfProlog : 0x07
CountOfUnwindCodes: 4
CountOfUnwindCodes: 4
FrameRegister : none (0)
FrameRegister : none (0)
FrameOffset : N/A (no FrameRegister) (Value=0)
FrameOffset : N/A (no FrameRegister) (Value=0)
UnwindCodes :
UnwindCodes :
CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 9 * 8 + 8 = 80 = 0x50
CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 9 * 8 + 8 = 80 = 0x50
CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rsi (6)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7)