Untitled Diff

Created Diff never expires
31 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
60 lines
26 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
56 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]
; ============================================================
; ============================================================