Untitled Diff
52 lines
; Assembly listing for method System.Buffers.Binary.BinaryPrimitives:TryWriteHalfBigEndian(System.Span`1[ubyte],System.Half):bool
; Assembly listing for method System.Buffers.Binary.BinaryPrimitives:TryWriteHalfBigEndian(System.Span`1[ubyte],System.Half):bool
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; Tier-0 compilation
; Tier-0 compilation
; MinOpts code
; MinOpts code
; rbp based frame
; rbp based frame
; partially interruptible
; partially interruptible
; Final local variable assignments
; Final local variable assignments
;
;
; V00 arg0 [V00 ] ( 1, 1 ) byref -> [rbp+10H] do-not-enreg[]
; V00 arg0 [V00 ] ( 1, 1 ) byref -> [rbp+10H] do-not-enreg[]
; V01 arg1 [V01 ] ( 1, 1 ) struct ( 8) [rbp+18H] do-not-enreg[S]
; V01 arg1 [V01 ] ( 1, 1 ) struct ( 8) [rbp+18H] do-not-enreg[S]
; V02 loc0 [V02 ] ( 1, 1 ) short -> [rbp-08H] do-not-enreg[X] addr-exposed ld-addr-op
; V02 loc0 [V02 ] ( 1, 1 ) short -> [rbp-08H] do-not-enreg[X] addr-exposed ld-addr-op
; V03 OutArgs [V03 ] ( 1, 1 ) lclBlk (32) [rsp+00H] do-not-enreg[] "OutgoingArgSpace"
; V03 OutArgs [V03 ] ( 1, 1 ) lclBlk (32) [rsp+00H] do-not-enreg[] "OutgoingArgSpace"
; V04 tmp1 [V04 ] ( 1, 1 ) struct (16) [rbp-18H] do-not-enreg[XS] must-init addr-exposed "by-value struct argument"
; V04 tmp1 [V04 ] ( 1, 1 ) struct (16) [rbp-18H] do-not-enreg[XS] must-init addr-exposed "by-value struct argument"
;
;
; Lcl frame size = 64
; Lcl frame size = 64
G_M50704_IG01:
G_M50704_IG01:
push rbp
push rbp
sub rsp, 64
sub rsp, 64
vzeroupper
vzeroupper
lea rbp, [rsp+40H]
lea rbp, [rsp+40H]
xor eax, eax
xor eax, eax
mov qword ptr [rbp-18H], rax
mov qword ptr [rbp-18H], rax
mov bword ptr [rbp+10H], rcx
mov bword ptr [rbp+10H], rcx
mov qword ptr [rbp+18H], rdx
mov qword ptr [rbp+18H], rdx
;; size=27 bbWeight=1 PerfScore 6.00
;; size=27 bbWeight=1 PerfScore 6.00
G_M50704_IG02:
G_M50704_IG02:
movsx rcx, word ptr [rbp+18H]
movsx rcx, word ptr [rbp+18H]
call [System.BitConverter:HalfToInt16Bits(System.Half):short]
call [System.BitConverter:HalfToInt16Bits(System.Half):short]
mov ecx, eax
mov ecx, eax
call [System.Buffers.Binary.BinaryPrimitives:ReverseEndianness(short):short]
ror cx, 8
mov dword ptr [rbp-08H], eax
movzx rcx, cx
movsx rcx, cx
mov dword ptr [rbp-08H], ecx
mov rcx, bword ptr [rbp+10H]
mov rcx, bword ptr [rbp+10H]
;; size=26 bbWeight=1 PerfScore 11.25
;; size=31 bbWeight=1 PerfScore 9.25
G_M50704_IG03:
G_M50704_IG03:
vmovdqu xmm0, xmmword ptr [rcx]
vmovdqu xmm0, xmmword ptr [rcx]
vmovdqu xmmword ptr [rbp-18H], xmm0
vmovdqu xmmword ptr [rbp-18H], xmm0
;; size=9 bbWeight=1 PerfScore 5.00
;; size=9 bbWeight=1 PerfScore 5.00
G_M50704_IG04:
G_M50704_IG04:
lea rcx, [rbp-18H]
lea rcx, [rbp-18H]
lea rdx, [rbp-08H]
lea rdx, [rbp-08H]
call [System.Runtime.InteropServices.MemoryMarshal:TryWrite[short](System.Span`1[ubyte],byref):bool]
call [System.Runtime.InteropServices.MemoryMarshal:TryWrite[short](System.Span`1[ubyte],byref):bool]
nop
nop
;; size=15 bbWeight=1 PerfScore 4.25
;; size=15 bbWeight=1 PerfScore 4.25
G_M50704_IG05:
G_M50704_IG05:
add rsp, 64
add rsp, 64
pop rbp
pop rbp
ret
ret
;; size=6 bbWeight=1 PerfScore 1.75
;; size=6 bbWeight=1 PerfScore 1.75
; Total bytes of code 83, prolog size 19, PerfScore 36.55, instruction count 23, allocated bytes for code 83 (MethodHash=a8ef39ef) for method System.Buffers.Binary.BinaryPrimitives:TryWriteHalfBigEndian(System.Span`1[ubyte],System.Half):bool
; Total bytes of code 88, prolog size 19, PerfScore 35.05, instruction count 25, allocated bytes for code 88 (MethodHash=a8ef39ef) for method System.Buffers.Binary.BinaryPrimitives:TryWriteHalfBigEndian(System.Span`1[ubyte],System.Half):bool
; ============================================================
; ============================================================