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