xref: /linux/rust/zerocopy/benches/insert_vec_zeroed.x86-64 (revision b079329b8691768962aa514b8f8c9077ca352459)
1*c3739801SMiguel Ojedabench_insert_vec_zeroed:
2*c3739801SMiguel Ojeda	push rbp
3*c3739801SMiguel Ojeda	push r15
4*c3739801SMiguel Ojeda	push r14
5*c3739801SMiguel Ojeda	push r13
6*c3739801SMiguel Ojeda	push r12
7*c3739801SMiguel Ojeda	push rbx
8*c3739801SMiguel Ojeda	sub rsp, 24
9*c3739801SMiguel Ojeda	mov r12, qword ptr [rdi + 16]
10*c3739801SMiguel Ojeda	mov r13, r12
11*c3739801SMiguel Ojeda	sub r13, rsi
12*c3739801SMiguel Ojeda	jb .LBB6_10
13*c3739801SMiguel Ojeda	mov rbx, rdi
14*c3739801SMiguel Ojeda	mov rax, qword ptr [rdi]
15*c3739801SMiguel Ojeda	mov rcx, rax
16*c3739801SMiguel Ojeda	sub rcx, r12
17*c3739801SMiguel Ojeda	cmp rdx, rcx
18*c3739801SMiguel Ojeda	jbe .LBB6_4
19*c3739801SMiguel Ojeda	add r12, rdx
20*c3739801SMiguel Ojeda	jae .LBB6_7
21*c3739801SMiguel Ojeda.LBB6_3:
22*c3739801SMiguel Ojeda	xor eax, eax
23*c3739801SMiguel Ojeda	jmp .LBB6_6
24*c3739801SMiguel Ojeda.LBB6_4:
25*c3739801SMiguel Ojeda	mov rax, qword ptr [rbx + 8]
26*c3739801SMiguel Ojeda	add r12, rdx
27*c3739801SMiguel Ojeda.LBB6_5:
28*c3739801SMiguel Ojeda	lea rcx, [rsi + 2*rsi]
29*c3739801SMiguel Ojeda	lea r14, [rax + 2*rcx]
30*c3739801SMiguel Ojeda	add rdx, rdx
31*c3739801SMiguel Ojeda	lea r15, [rdx + 2*rdx]
32*c3739801SMiguel Ojeda	lea rdi, [r14 + r15]
33*c3739801SMiguel Ojeda	add r13, r13
34*c3739801SMiguel Ojeda	lea rdx, [2*r13]
35*c3739801SMiguel Ojeda	add rdx, r13
36*c3739801SMiguel Ojeda	mov rsi, r14
37*c3739801SMiguel Ojeda	call qword ptr [rip + memmove@GOTPCREL]
38*c3739801SMiguel Ojeda	mov rdi, r14
39*c3739801SMiguel Ojeda	xor esi, esi
40*c3739801SMiguel Ojeda	mov rdx, r15
41*c3739801SMiguel Ojeda	call qword ptr [rip + memset@GOTPCREL]
42*c3739801SMiguel Ojeda	mov qword ptr [rbx + 16], r12
43*c3739801SMiguel Ojeda	mov al, 1
44*c3739801SMiguel Ojeda.LBB6_6:
45*c3739801SMiguel Ojeda	add rsp, 24
46*c3739801SMiguel Ojeda	pop rbx
47*c3739801SMiguel Ojeda	pop r12
48*c3739801SMiguel Ojeda	pop r13
49*c3739801SMiguel Ojeda	pop r14
50*c3739801SMiguel Ojeda	pop r15
51*c3739801SMiguel Ojeda	pop rbp
52*c3739801SMiguel Ojeda	ret
53*c3739801SMiguel Ojeda.LBB6_7:
54*c3739801SMiguel Ojeda	mov r15, rsi
55*c3739801SMiguel Ojeda	mov rbp, rdx
56*c3739801SMiguel Ojeda	lea rcx, [rax + rax]
57*c3739801SMiguel Ojeda	cmp r12, rcx
58*c3739801SMiguel Ojeda	cmova rcx, r12
59*c3739801SMiguel Ojeda	cmp rcx, 5
60*c3739801SMiguel Ojeda	mov r14d, 4
61*c3739801SMiguel Ojeda	cmovae r14, rcx
62*c3739801SMiguel Ojeda	mov rdx, qword ptr [rbx + 8]
63*c3739801SMiguel Ojeda	mov rdi, rsp
64*c3739801SMiguel Ojeda	mov rsi, rax
65*c3739801SMiguel Ojeda	mov rcx, r14
66*c3739801SMiguel Ojeda	call <alloc::raw_vec::RawVecInner>::finish_grow
67*c3739801SMiguel Ojeda	cmp dword ptr [rsp], 1
68*c3739801SMiguel Ojeda	je .LBB6_3
69*c3739801SMiguel Ojeda	mov rax, qword ptr [rsp + 8]
70*c3739801SMiguel Ojeda	mov qword ptr [rbx + 8], rax
71*c3739801SMiguel Ojeda	mov qword ptr [rbx], r14
72*c3739801SMiguel Ojeda	mov rdx, rbp
73*c3739801SMiguel Ojeda	mov rsi, r15
74*c3739801SMiguel Ojeda	jmp .LBB6_5
75*c3739801SMiguel Ojeda.LBB6_10:
76*c3739801SMiguel Ojeda	lea rdi, [rip + .Lanon.HASH.1]
77*c3739801SMiguel Ojeda	lea rdx, [rip + .Lanon.HASH.3]
78*c3739801SMiguel Ojeda	mov esi, 37
79*c3739801SMiguel Ojeda	call qword ptr [rip + core::panicking::panic@GOTPCREL]
80