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