Function index_many::_doc_assembly::option_range_trait[][src]

pub unsafe fn option_range_trait(
    slice: &mut [Elem],
    indices: [Range<usize>; 3]
) -> Option<[&mut [Elem]; 3]>
Expand description

Body: { slice_index::get_many_mut(slice, indices) }

Assembly (x86_64)

codegen_crate::option_range_trait:
 push    rsi
 push    rdi
 push    rbx
 mov     rax, rcx
 mov     rcx, qword, ptr, [r9, +, 40]
 cmp     rcx, r8
 ja      .LBB0_6
 mov     r10, qword, ptr, [r9]
 mov     rsi, qword, ptr, [r9, +, 8]
 mov     r8, rsi
 sub     r8, r10
 jb      .LBB0_6
 mov     r11, qword, ptr, [r9, +, 16]
 cmp     rsi, r11
 ja      .LBB0_6
 mov     rbx, qword, ptr, [r9, +, 24]
 mov     rdi, rbx
 sub     rdi, r11
 jb      .LBB0_6
 mov     rsi, qword, ptr, [r9, +, 32]
 cmp     rbx, rsi
 ja      .LBB0_6
 sub     rcx, rsi
 jb      .LBB0_6
 lea     rbx, [rdx, +, 8*r10]
 lea     r9, [rdx, +, 8*r11]
 lea     rdx, [rdx, +, 8*rsi]
 mov     qword, ptr, [rax], rbx
 mov     qword, ptr, [rax, +, 8], r8
 mov     qword, ptr, [rax, +, 16], r9
 mov     qword, ptr, [rax, +, 24], rdi
 mov     qword, ptr, [rax, +, 32], rdx
 mov     qword, ptr, [rax, +, 40], rcx
 jmp     .LBB0_8
.LBB0_6:
 mov     qword, ptr, [rax], 0
.LBB0_8:
 pop     rbx
 pop     rdi
 pop     rsi
 ret