Untitled Diff
60 lines
; Assembly listing for method System.Composition.Hosting.Util.MethodInfoExtensions:CreateStaticDelegate[System.Numerics.Vector`1[float]](System.Reflection.MethodInfo):System.Numerics.Vector`1[float]
; Assembly listing for method System.Composition.Hosting.Util.MethodInfoExtensions:CreateStaticDelegate[System.Numerics.Vector`1[float]](System.Reflection.MethodInfo):System.Numerics.Vector`1[float]
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; Emitting BLENDED_CODE for X64 CPU with AVX - Windows
; optimized code
; optimized code
; rsp based frame
; rsp based frame
; partially interruptible
; partially interruptible
; No PGO data
; No PGO data
; Final local variable assignments
; Final local variable assignments
;
;
; V00 RetBuf [V00,T01] ( 4, 4 ) byref -> rsi single-def
; V00 RetBuf [V00,T01] ( 4, 4 ) byref -> rsi single-def
; V01 arg0 [V01,T02] ( 4, 4 ) ref -> rdi class-hnd single-def
; V01 arg0 [V01,T02] ( 4, 4 ) ref -> [rsp+48H] class-hnd single-def
; V02 OutArgs [V02 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace"
; V02 OutArgs [V02 ] ( 1, 1 ) lclBlk (32) [rsp+00H] "OutgoingArgSpace"
; V03 tmp1 [V03,T00] ( 4, 6.50) ref -> rdi single-def "inline UNBOX clone1"
; V03 tmp1 [V03,T00] ( 4, 6.50) ref -> rdi single-def "inline UNBOX clone1"
; V04 tmp2 [V04,T03] ( 2, 4 ) ref -> rdx single-def "argument with side effect"
; V05 cse0 [V05,T04] ( 4, 3.25) long -> rbx "CSE - aggressive"
;
;
; Lcl frame size = 32
; Lcl frame size = 40
G_M19887_IG01:
G_M19887_IG01:
push rdi
push rdi
push rsi
push rsi
push rbx
sub rsp, 40
sub rsp, 32
vzeroupper
vzeroupper
mov rsi, rcx
mov rsi, rcx
mov rdi, rdx
;; size=12 bbWeight=1 PerfScore 3.50
;; size=16 bbWeight=1 PerfScore 4.75
G_M19887_IG02:
G_M19887_IG02:
mov rbx, 0xD1FFAB1E ; System.Numerics.Vector`1[float]
mov gword ptr [rsp+48H], rdx
mov rcx, rbx
mov rcx, rdx
call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
mov rdx, 0xD1FFAB1E ; 'System.Numerics.Vector`1[System.Single]'
mov rdx, rax
mov rcx, rdi
mov rax, gword ptr [rsp+48H]
mov rax, qword ptr [rdi]
mov rax, qword ptr [rax]
mov rax, qword ptr [rax+68H]
mov rax, qword ptr [rax+68H]
call [rax+10H]System.Reflection.MethodInfo:CreateDelegate(System.Type):System.Delegate:this
call [rax+10H]System.Reflection.MethodInfo:CreateDelegate(System.Type):System.Delegate:this
mov rdi, rax
mov rdi, rax
cmp qword ptr [rdi], rbx
mov rdx, 0xD1FFAB1E ; System.Numerics.Vector`1[float]
cmp qword ptr [rdi], rdx
je SHORT G_M19887_IG04
je SHORT G_M19887_IG04
;; size=42 bbWeight=1 PerfScore 13.25
;; size=51 bbWeight=1 PerfScore 14.00
G_M19887_IG03:
G_M19887_IG03:
mov rdx, rdi
mov rdx, rdi
mov rcx, rbx
mov rcx, 0xD1FFAB1E ; System.Numerics.Vector`1[float]
call [CORINFO_HELP_UNBOX]
call [CORINFO_HELP_UNBOX]
;; size=12 bbWeight=0.25 PerfScore 0.88
;; size=19 bbWeight=0.25 PerfScore 0.88
G_M19887_IG04:
G_M19887_IG04:
vmovupd ymm0, ymmword ptr[rdi+08H]
vmovupd ymm0, ymmword ptr[rdi+08H]
vmovupd ymmword ptr[rsi], ymm0
vmovupd ymmword ptr[rsi], ymm0
mov rax, rsi
mov rax, rsi
;; size=12 bbWeight=1 PerfScore 7.25
;; size=12 bbWeight=1 PerfScore 7.25
G_M19887_IG05:
G_M19887_IG05:
vzeroupper
vzeroupper
add rsp, 32
add rsp, 40
pop rbx
pop rsi
pop rsi
pop rdi
pop rdi
ret
ret
;; size=11 bbWeight=1 PerfScore 3.75
;; size=10 bbWeight=1 PerfScore 3.25
; Total bytes of code 93, prolog size 10, PerfScore 39.38, instruction count 30, allocated bytes for code 95 (MethodHash=066eb250) for method System.Composition.Hosting.Util.MethodInfoExtensions:CreateStaticDelegate[System.Numerics.Vector`1[float]](System.Reflection.MethodInfo):System.Numerics.Vector`1[float]
; Total bytes of code 104, prolog size 9, PerfScore 39.48, instruction count 27, allocated bytes for code 106 (MethodHash=066eb250) for method System.Composition.Hosting.Util.MethodInfoExtensions:CreateStaticDelegate[System.Numerics.Vector`1[float]](System.Reflection.MethodInfo):System.Numerics.Vector`1[float]
; ============================================================
; ============================================================