Function index_many::_doc_assembly::checked_range_trait [−][src]
pub unsafe fn checked_range_trait(
slice: &mut [Elem],
indices: [Range<usize>; 3]
) -> [&mut [Elem]; 3]
Expand description
Body: { slice_index::index_many_mut(slice, indices) }
Assembly (x86_64)
codegen_crate::checked_range_trait:
push rsi
push rdi
push rbx
sub rsp, 80
movups xmm0, xmmword, ptr, [r9]
movups xmm1, xmmword, ptr, [r9, +, 16]
movups xmm2, xmmword, ptr, [r9, +, 32]
movaps xmmword, ptr, [rsp, +, 32], xmm0
movaps xmmword, ptr, [rsp, +, 48], xmm1
movaps xmmword, ptr, [rsp, +, 64], xmm2
mov r11, qword, ptr, [rsp, +, 72]
cmp r11, r8
ja .LBB0_6
mov r10, qword, ptr, [rsp, +, 32]
mov rsi, qword, ptr, [rsp, +, 40]
mov r9, rsi
sub r9, r10
jb .LBB0_6
mov rax, qword, ptr, [rsp, +, 48]
cmp rsi, rax
ja .LBB0_6
mov rbx, qword, ptr, [rsp, +, 56]
mov rsi, rbx
sub rsi, rax
jb .LBB0_6
mov rdi, qword, ptr, [rsp, +, 64]
cmp rbx, rdi
ja .LBB0_6
sub r11, rdi
jb .LBB0_6
lea rbx, [rdx, +, 8*r10]
lea rax, [rdx, +, 8*rax]
lea rdx, [rdx, +, 8*rdi]
mov qword, ptr, [rcx], rbx
mov qword, ptr, [rcx, +, 8], r9
mov qword, ptr, [rcx, +, 16], rax
mov qword, ptr, [rcx, +, 24], rsi
mov qword, ptr, [rcx, +, 32], rdx
mov qword, ptr, [rcx, +, 40], r11
mov rax, rcx
add rsp, 80
pop rbx
pop rdi
pop rsi
ret
.LBB0_6:
lea r9, [rip, +, __unnamed_1]
lea rcx, [rsp, +, 32]
mov edx, 3
call index_many::slice_index::ranges::range_check_fail
ud2