Untitled Diff

Created Diff never expires
72 removals
65 lines
64 additions
57 lines
; Assembly listing for method System.HexConverter:EncodeToUtf16_Vector128(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],uint)
; Assembly listing for method System.HexConverter:EncodeToUtf16_Vector128(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],uint)
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; Tier-1 compilation
; Tier-1 compilation
; optimized code
; optimized code
; optimized using profile data
; optimized using profile data
; rsp based frame
; rsp based frame
; fully interruptible
; fully interruptible
; with Static PGO: edge weights are valid, and fgCalledCount is 240
; with Static PGO: edge weights are invalid, and fgCalledCount is 240
; 2 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data
; 0 inlinees with PGO data; 7 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0000H
G_M000_IG01: ;; offset=0000H
C5F877 vzeroupper
C5F877 vzeroupper


G_M000_IG02: ;; offset=0003H
G_M000_IG02: ;; offset=0003H
488B01 mov rax, bword ptr [rcx]
488B01 mov rax, bword ptr [rcx]
8B4908 mov ecx, dword ptr [rcx+08H]
8B4908 mov ecx, dword ptr [rcx+08H]
488B12 mov rdx, bword ptr [rdx]
4585C0 test r8d, r8d
4585C0 test r8d, r8d
7465 je SHORT G_M000_IG08
7550 jne SHORT G_M000_IG08


G_M000_IG03: ;; offset=000EH
G_M000_IG03: ;; offset=0011H
C5F810057A000000 vmovups xmm0, xmmword ptr [reloc @RWD00]
C5F8100557000000 vmovups xmm0, xmmword ptr [reloc @RWD00]


G_M000_IG04: ;; offset=0016H
G_M000_IG04: ;; offset=0019H
4533C0 xor r8d, r8d
4533C0 xor r8d, r8d
8BC9 mov ecx, ecx
448BC9 mov r9d, ecx
4C8D49FC lea r9, [rcx-04H]
4983C1FC add r9, -4
488B12 mov rdx, bword ptr [rdx]
C5F8100D76000000 vmovups xmm1, xmmword ptr [reloc @RWD16]
C5F810157E000000 vmovups xmm2, xmmword ptr [reloc @RWD32]


G_M000_IG05: ;; offset=0032H
G_M000_IG05: ;; offset=0023H
C4A1796E1C00 vmovd xmm3, dword ptr [rax+r8]
C4A1796E0C00 vmovd xmm1, xmmword ptr [rax+r8]
C4E261001D7F000000 vpshufb xmm3, xmm3, xmmword ptr [reloc @RWD48]
C5E973D104 vpsrlq xmm2, xmm1, 4
C5D973DB02 vpsrldq xmm4, xmm3, 2
C5E960C9 vpunpcklbw xmm1, xmm2, xmm1
C5D972D404 vpsrld xmm4, xmm4, 4
C5F1DB0D46000000 vpand xmm1, xmm1, xmmword ptr [reloc @RWD16]
C5E1EBDC vpor xmm3, xmm3, xmm4
C4E27900C9 vpshufb xmm1, xmm0, xmm1
C5E1DBD9 vpand xmm3, xmm3, xmm1
C4E27930C9 vpmovzxbw xmm1, xmm1
C4E27900DB vpshufb xmm3, xmm0, xmm3
C4A178110C82 vmovups xmmword ptr [rdx+4*r8], xmm1
C5E1DBDA vpand xmm3, xmm3, xmm2
C4A178111C82 vmovups xmmword ptr [rdx+4*r8], xmm3
4983C004 add r8, 4
4983C004 add r8, 4
4C3BC1 cmp r8, rcx
448BD1 mov r10d, ecx
7407 je SHORT G_M000_IG07
4D3BC2 cmp r8, r10

7501 jne SHORT G_M000_IG07
G_M000_IG06: ;; offset=006BH
4D3BC1 cmp r8, r9
770D ja SHORT G_M000_IG09
EBC0 jmp SHORT G_M000_IG05


G_M000_IG07: ;; offset=0072H
G_M000_IG06: ;; offset=0056H
C3 ret
C3 ret


G_M000_IG08: ;; offset=0073H
G_M000_IG07: ;; offset=0057H
C5F8100555000000 vmovups xmm0, xmmword ptr [reloc @RWD64]
4D3BC1 cmp r8, r9
EB99 jmp SHORT G_M000_IG04
76C7 jbe SHORT G_M000_IG05

G_M000_IG09: ;; offset=007DH
4D8BC1 mov r8, r9
4D8BC1 mov r8, r9
EBB0 jmp SHORT G_M000_IG05
EBC2 jmp SHORT G_M000_IG05


RWD00 dq 3736353433323130h, 6665646362613938h
G_M000_IG08: ;; offset=0061H
C5F8100527000000 vmovups xmm0, xmmword ptr [reloc @RWD32]
EBAE jmp SHORT G_M000_IG04

RWD00 dq 3736353433323130h, 4645444342413938h
RWD16 dq 0F0F0F0F0F0F0F0Fh, 0F0F0F0F0F0F0F0Fh
RWD16 dq 0F0F0F0F0F0F0F0Fh, 0F0F0F0F0F0F0F0Fh
RWD32 dq 00FF00FF00FF00FFh, 00FF00FF00FF00FFh
RWD32 dq 3736353433323130h, 6665646362613938h
RWD48 dq FF01FFFFFF00FFFFh, FF03FFFFFF02FFFFh
; Total bytes of code 107
RWD64 dq 3736353433323130h, 4645444342413938h
; Total bytes of code 130