Function index_many::_doc_assembly::result_kind [−][src]
pub unsafe fn result_kind(
slice: &mut [Elem],
indices: [usize; 3]
) -> Result<[&mut Elem; 3], GetManyErrorKind>
Expand description
Body: { simple_result::get_many_mut(slice, indices).map_err(|e| e.kind()) }
Assembly (x86_64)
codegen_crate::result_kind:
sub rsp, 40
mov rax, rcx
mov rcx, qword, ptr, [r9]
mov r10, qword, ptr, [r9, +, 8]
mov r9, qword, ptr, [r9, +, 16]
cmp r9, r8
jae .LBB0_4
cmp rcx, r10
jae .LBB0_4
cmp r10, r9
jae .LBB0_4
lea rcx, [rdx, +, 8*rcx]
lea r8, [rdx, +, 8*r10]
lea rdx, [rdx, +, 8*r9]
mov qword, ptr, [rax, +, 8], rcx
mov qword, ptr, [rax, +, 16], r8
mov qword, ptr, [rax, +, 24], rdx
xor ecx, ecx
mov qword, ptr, [rax], rcx
add rsp, 40
ret
.LBB0_4:
cmp rcx, r10
jne .LBB0_9
xor edx, edx
.LBB0_6:
lea r10, [rdx, +, 1]
mov ecx, 2
jmp .LBB0_12
.LBB0_9:
cmp rcx, r10
jbe .LBB0_17
xor edx, edx
.LBB0_11:
lea r10, [rdx, +, 1]
mov ecx, 1
.LBB0_12:
mov qword, ptr, [rax, +, 8], rcx
mov qword, ptr, [rax, +, 16], rdx
mov qword, ptr, [rax, +, 24], r10
mov qword, ptr, [rax, +, 32], r8
mov ecx, 1
mov qword, ptr, [rax], rcx
add rsp, 40
ret
.LBB0_17:
mov edx, 1
cmp r10, r9
je .LBB0_6
mov edx, 1
ja .LBB0_11
cmp rcx, r8
jae .LBB0_8
cmp r10, r8
mov edx, 2
adc rdx, -1
xor ecx, ecx
cmp r10, r8
cmovb r10, r9
jae .LBB0_12
cmp r9, r8
jae .LBB0_12
lea rcx, [rip, +, __unnamed_1]
lea r8, [rip, +, __unnamed_2]
mov edx, 40
call core::panicking::panic
ud2
.LBB0_8:
xor edx, edx
mov r10, rcx
xor ecx, ecx
jmp .LBB0_12