-
Notifications
You must be signed in to change notification settings - Fork 5.4k
Closed
Labels
area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIoptimization
Milestone
Description
Its mostly a wrapper on BufferMemmove with some checks
[FAILED: unprofitable inline] ReadOnlySpan`1:CopyTo(struct):this
First occurrence in System.Private.CoreLib.dasm
; Assembly listing for method ReadOnlySpan`1:CopyTo(struct):this
; Lcl frame size = 48
G_M47339_IG01:
push rdi
push rsi
push rbx
sub rsp, 48
mov qword ptr [rsp+28H], rdx
G_M47339_IG02:
mov eax, dword ptr [rcx+8]
mov r9d, eax
mov r10, qword ptr [rdx+48]
mov r10, qword ptr [r10]
cmp r9d, dword ptr [r8+8]
ja SHORT G_M47339_IG05
mov rsi, bword ptr [r8]
mov rcx, bword ptr [rcx]
mov rdi, rcx
movsxd rbx, eax
mov rcx, qword ptr [r10+64]
test rcx, rcx
jne SHORT G_M47339_IG03
mov rcx, rdx
lea rdx, [(reloc)]
call CORINFO_HELP_RUNTIMEHANDLE_CLASS
mov rcx, rax
G_M47339_IG03:
mov rdx, rsi
mov r8, rdi
mov r9, rbx
call Buffer:Memmove(byref,byref,long)
nop
G_M47339_IG04:
add rsp, 48
pop rbx
pop rsi
pop rdi
ret
G_M47339_IG05:
call ThrowHelper:ThrowArgumentException_DestinationTooShort()
int3
; Total bytes of code 99, prolog size 12 for method ReadOnlySpan`1:CopyTo(struct):thisSecond occurrence in System.Private.CoreLib.dasm
; Assembly listing for method ReadOnlySpan`1:CopyTo(struct):this
; Lcl frame size = 40
G_M648_IG01:
sub rsp, 40
nop
G_M648_IG02:
mov r8d, dword ptr [rcx+8]
mov eax, r8d
cmp eax, dword ptr [rdx+8]
ja SHORT G_M648_IG04
mov rdx, bword ptr [rdx]
mov rax, rdx
mov rdx, bword ptr [rcx]
movsxd r8, r8d
mov rcx, rax
shl r8, 1
call Buffer:Memmove(struct,struct,long)
nop
G_M648_IG03:
add rsp, 40
ret
G_M648_IG04:
call ThrowHelper:ThrowArgumentException_DestinationTooShort()
int3
; Total bytes of code 52, prolog size 5 for method ReadOnlySpan`1:CopyTo(struct):thisReactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIoptimization
