xref: /freebsd/sys/crypto/openssl/amd64/vpaes-x86_64.S (revision c0855eaa3ee9614804b6bd6a255aa9f71e095f43)
1bc3d5698SJohn Baldwin/* Do not modify. This file is auto-generated from vpaes-x86_64.pl. */
2bc3d5698SJohn Baldwin.text
3bc3d5698SJohn Baldwin
4bc3d5698SJohn Baldwin
5bc3d5698SJohn Baldwin
6bc3d5698SJohn Baldwin
7bc3d5698SJohn Baldwin
8bc3d5698SJohn Baldwin
9bc3d5698SJohn Baldwin
10bc3d5698SJohn Baldwin
11bc3d5698SJohn Baldwin
12bc3d5698SJohn Baldwin
13bc3d5698SJohn Baldwin
14bc3d5698SJohn Baldwin
15bc3d5698SJohn Baldwin
16bc3d5698SJohn Baldwin
17bc3d5698SJohn Baldwin
18bc3d5698SJohn Baldwin
19bc3d5698SJohn Baldwin.type	_vpaes_encrypt_core,@function
20bc3d5698SJohn Baldwin.align	16
21bc3d5698SJohn Baldwin_vpaes_encrypt_core:
22bc3d5698SJohn Baldwin.cfi_startproc
23bc3d5698SJohn Baldwin	movq	%rdx,%r9
24bc3d5698SJohn Baldwin	movq	$16,%r11
25bc3d5698SJohn Baldwin	movl	240(%rdx),%eax
26bc3d5698SJohn Baldwin	movdqa	%xmm9,%xmm1
27bc3d5698SJohn Baldwin	movdqa	.Lk_ipt(%rip),%xmm2
28bc3d5698SJohn Baldwin	pandn	%xmm0,%xmm1
29bc3d5698SJohn Baldwin	movdqu	(%r9),%xmm5
30bc3d5698SJohn Baldwin	psrld	$4,%xmm1
31bc3d5698SJohn Baldwin	pand	%xmm9,%xmm0
32bc3d5698SJohn Baldwin.byte	102,15,56,0,208
33bc3d5698SJohn Baldwin	movdqa	.Lk_ipt+16(%rip),%xmm0
34bc3d5698SJohn Baldwin.byte	102,15,56,0,193
35bc3d5698SJohn Baldwin	pxor	%xmm5,%xmm2
36bc3d5698SJohn Baldwin	addq	$16,%r9
37bc3d5698SJohn Baldwin	pxor	%xmm2,%xmm0
38bc3d5698SJohn Baldwin	leaq	.Lk_mc_backward(%rip),%r10
39bc3d5698SJohn Baldwin	jmp	.Lenc_entry
40bc3d5698SJohn Baldwin
41bc3d5698SJohn Baldwin.align	16
42bc3d5698SJohn Baldwin.Lenc_loop:
43bc3d5698SJohn Baldwin
44bc3d5698SJohn Baldwin	movdqa	%xmm13,%xmm4
45bc3d5698SJohn Baldwin	movdqa	%xmm12,%xmm0
46bc3d5698SJohn Baldwin.byte	102,15,56,0,226
47bc3d5698SJohn Baldwin.byte	102,15,56,0,195
48bc3d5698SJohn Baldwin	pxor	%xmm5,%xmm4
49bc3d5698SJohn Baldwin	movdqa	%xmm15,%xmm5
50bc3d5698SJohn Baldwin	pxor	%xmm4,%xmm0
51bc3d5698SJohn Baldwin	movdqa	-64(%r11,%r10,1),%xmm1
52bc3d5698SJohn Baldwin.byte	102,15,56,0,234
53bc3d5698SJohn Baldwin	movdqa	(%r11,%r10,1),%xmm4
54bc3d5698SJohn Baldwin	movdqa	%xmm14,%xmm2
55bc3d5698SJohn Baldwin.byte	102,15,56,0,211
56bc3d5698SJohn Baldwin	movdqa	%xmm0,%xmm3
57bc3d5698SJohn Baldwin	pxor	%xmm5,%xmm2
58bc3d5698SJohn Baldwin.byte	102,15,56,0,193
59bc3d5698SJohn Baldwin	addq	$16,%r9
60bc3d5698SJohn Baldwin	pxor	%xmm2,%xmm0
61bc3d5698SJohn Baldwin.byte	102,15,56,0,220
62bc3d5698SJohn Baldwin	addq	$16,%r11
63bc3d5698SJohn Baldwin	pxor	%xmm0,%xmm3
64bc3d5698SJohn Baldwin.byte	102,15,56,0,193
65bc3d5698SJohn Baldwin	andq	$0x30,%r11
66bc3d5698SJohn Baldwin	subq	$1,%rax
67bc3d5698SJohn Baldwin	pxor	%xmm3,%xmm0
68bc3d5698SJohn Baldwin
69bc3d5698SJohn Baldwin.Lenc_entry:
70bc3d5698SJohn Baldwin
71bc3d5698SJohn Baldwin	movdqa	%xmm9,%xmm1
72bc3d5698SJohn Baldwin	movdqa	%xmm11,%xmm5
73bc3d5698SJohn Baldwin	pandn	%xmm0,%xmm1
74bc3d5698SJohn Baldwin	psrld	$4,%xmm1
75bc3d5698SJohn Baldwin	pand	%xmm9,%xmm0
76bc3d5698SJohn Baldwin.byte	102,15,56,0,232
77bc3d5698SJohn Baldwin	movdqa	%xmm10,%xmm3
78bc3d5698SJohn Baldwin	pxor	%xmm1,%xmm0
79bc3d5698SJohn Baldwin.byte	102,15,56,0,217
80bc3d5698SJohn Baldwin	movdqa	%xmm10,%xmm4
81bc3d5698SJohn Baldwin	pxor	%xmm5,%xmm3
82bc3d5698SJohn Baldwin.byte	102,15,56,0,224
83bc3d5698SJohn Baldwin	movdqa	%xmm10,%xmm2
84bc3d5698SJohn Baldwin	pxor	%xmm5,%xmm4
85bc3d5698SJohn Baldwin.byte	102,15,56,0,211
86bc3d5698SJohn Baldwin	movdqa	%xmm10,%xmm3
87bc3d5698SJohn Baldwin	pxor	%xmm0,%xmm2
88bc3d5698SJohn Baldwin.byte	102,15,56,0,220
89bc3d5698SJohn Baldwin	movdqu	(%r9),%xmm5
90bc3d5698SJohn Baldwin	pxor	%xmm1,%xmm3
91bc3d5698SJohn Baldwin	jnz	.Lenc_loop
92bc3d5698SJohn Baldwin
93bc3d5698SJohn Baldwin
94bc3d5698SJohn Baldwin	movdqa	-96(%r10),%xmm4
95bc3d5698SJohn Baldwin	movdqa	-80(%r10),%xmm0
96bc3d5698SJohn Baldwin.byte	102,15,56,0,226
97bc3d5698SJohn Baldwin	pxor	%xmm5,%xmm4
98bc3d5698SJohn Baldwin.byte	102,15,56,0,195
99bc3d5698SJohn Baldwin	movdqa	64(%r11,%r10,1),%xmm1
100bc3d5698SJohn Baldwin	pxor	%xmm4,%xmm0
101bc3d5698SJohn Baldwin.byte	102,15,56,0,193
102bc3d5698SJohn Baldwin	.byte	0xf3,0xc3
103bc3d5698SJohn Baldwin.cfi_endproc
104bc3d5698SJohn Baldwin.size	_vpaes_encrypt_core,.-_vpaes_encrypt_core
105bc3d5698SJohn Baldwin
106bc3d5698SJohn Baldwin
107bc3d5698SJohn Baldwin
108bc3d5698SJohn Baldwin
109bc3d5698SJohn Baldwin
110bc3d5698SJohn Baldwin
111bc3d5698SJohn Baldwin.type	_vpaes_decrypt_core,@function
112bc3d5698SJohn Baldwin.align	16
113bc3d5698SJohn Baldwin_vpaes_decrypt_core:
114bc3d5698SJohn Baldwin.cfi_startproc
115bc3d5698SJohn Baldwin	movq	%rdx,%r9
116bc3d5698SJohn Baldwin	movl	240(%rdx),%eax
117bc3d5698SJohn Baldwin	movdqa	%xmm9,%xmm1
118bc3d5698SJohn Baldwin	movdqa	.Lk_dipt(%rip),%xmm2
119bc3d5698SJohn Baldwin	pandn	%xmm0,%xmm1
120bc3d5698SJohn Baldwin	movq	%rax,%r11
121bc3d5698SJohn Baldwin	psrld	$4,%xmm1
122bc3d5698SJohn Baldwin	movdqu	(%r9),%xmm5
123bc3d5698SJohn Baldwin	shlq	$4,%r11
124bc3d5698SJohn Baldwin	pand	%xmm9,%xmm0
125bc3d5698SJohn Baldwin.byte	102,15,56,0,208
126bc3d5698SJohn Baldwin	movdqa	.Lk_dipt+16(%rip),%xmm0
127bc3d5698SJohn Baldwin	xorq	$0x30,%r11
128bc3d5698SJohn Baldwin	leaq	.Lk_dsbd(%rip),%r10
129bc3d5698SJohn Baldwin.byte	102,15,56,0,193
130bc3d5698SJohn Baldwin	andq	$0x30,%r11
131bc3d5698SJohn Baldwin	pxor	%xmm5,%xmm2
132bc3d5698SJohn Baldwin	movdqa	.Lk_mc_forward+48(%rip),%xmm5
133bc3d5698SJohn Baldwin	pxor	%xmm2,%xmm0
134bc3d5698SJohn Baldwin	addq	$16,%r9
135bc3d5698SJohn Baldwin	addq	%r10,%r11
136bc3d5698SJohn Baldwin	jmp	.Ldec_entry
137bc3d5698SJohn Baldwin
138bc3d5698SJohn Baldwin.align	16
139bc3d5698SJohn Baldwin.Ldec_loop:
140bc3d5698SJohn Baldwin
141bc3d5698SJohn Baldwin
142bc3d5698SJohn Baldwin
143bc3d5698SJohn Baldwin	movdqa	-32(%r10),%xmm4
144bc3d5698SJohn Baldwin	movdqa	-16(%r10),%xmm1
145bc3d5698SJohn Baldwin.byte	102,15,56,0,226
146bc3d5698SJohn Baldwin.byte	102,15,56,0,203
147bc3d5698SJohn Baldwin	pxor	%xmm4,%xmm0
148bc3d5698SJohn Baldwin	movdqa	0(%r10),%xmm4
149bc3d5698SJohn Baldwin	pxor	%xmm1,%xmm0
150bc3d5698SJohn Baldwin	movdqa	16(%r10),%xmm1
151bc3d5698SJohn Baldwin
152bc3d5698SJohn Baldwin.byte	102,15,56,0,226
153bc3d5698SJohn Baldwin.byte	102,15,56,0,197
154bc3d5698SJohn Baldwin.byte	102,15,56,0,203
155bc3d5698SJohn Baldwin	pxor	%xmm4,%xmm0
156bc3d5698SJohn Baldwin	movdqa	32(%r10),%xmm4
157bc3d5698SJohn Baldwin	pxor	%xmm1,%xmm0
158bc3d5698SJohn Baldwin	movdqa	48(%r10),%xmm1
159bc3d5698SJohn Baldwin
160bc3d5698SJohn Baldwin.byte	102,15,56,0,226
161bc3d5698SJohn Baldwin.byte	102,15,56,0,197
162bc3d5698SJohn Baldwin.byte	102,15,56,0,203
163bc3d5698SJohn Baldwin	pxor	%xmm4,%xmm0
164bc3d5698SJohn Baldwin	movdqa	64(%r10),%xmm4
165bc3d5698SJohn Baldwin	pxor	%xmm1,%xmm0
166bc3d5698SJohn Baldwin	movdqa	80(%r10),%xmm1
167bc3d5698SJohn Baldwin
168bc3d5698SJohn Baldwin.byte	102,15,56,0,226
169bc3d5698SJohn Baldwin.byte	102,15,56,0,197
170bc3d5698SJohn Baldwin.byte	102,15,56,0,203
171bc3d5698SJohn Baldwin	pxor	%xmm4,%xmm0
172bc3d5698SJohn Baldwin	addq	$16,%r9
173bc3d5698SJohn Baldwin.byte	102,15,58,15,237,12
174bc3d5698SJohn Baldwin	pxor	%xmm1,%xmm0
175bc3d5698SJohn Baldwin	subq	$1,%rax
176bc3d5698SJohn Baldwin
177bc3d5698SJohn Baldwin.Ldec_entry:
178bc3d5698SJohn Baldwin
179bc3d5698SJohn Baldwin	movdqa	%xmm9,%xmm1
180bc3d5698SJohn Baldwin	pandn	%xmm0,%xmm1
181bc3d5698SJohn Baldwin	movdqa	%xmm11,%xmm2
182bc3d5698SJohn Baldwin	psrld	$4,%xmm1
183bc3d5698SJohn Baldwin	pand	%xmm9,%xmm0
184bc3d5698SJohn Baldwin.byte	102,15,56,0,208
185bc3d5698SJohn Baldwin	movdqa	%xmm10,%xmm3
186bc3d5698SJohn Baldwin	pxor	%xmm1,%xmm0
187bc3d5698SJohn Baldwin.byte	102,15,56,0,217
188bc3d5698SJohn Baldwin	movdqa	%xmm10,%xmm4
189bc3d5698SJohn Baldwin	pxor	%xmm2,%xmm3
190bc3d5698SJohn Baldwin.byte	102,15,56,0,224
191bc3d5698SJohn Baldwin	pxor	%xmm2,%xmm4
192bc3d5698SJohn Baldwin	movdqa	%xmm10,%xmm2
193bc3d5698SJohn Baldwin.byte	102,15,56,0,211
194bc3d5698SJohn Baldwin	movdqa	%xmm10,%xmm3
195bc3d5698SJohn Baldwin	pxor	%xmm0,%xmm2
196bc3d5698SJohn Baldwin.byte	102,15,56,0,220
197bc3d5698SJohn Baldwin	movdqu	(%r9),%xmm0
198bc3d5698SJohn Baldwin	pxor	%xmm1,%xmm3
199bc3d5698SJohn Baldwin	jnz	.Ldec_loop
200bc3d5698SJohn Baldwin
201bc3d5698SJohn Baldwin
202bc3d5698SJohn Baldwin	movdqa	96(%r10),%xmm4
203bc3d5698SJohn Baldwin.byte	102,15,56,0,226
204bc3d5698SJohn Baldwin	pxor	%xmm0,%xmm4
205bc3d5698SJohn Baldwin	movdqa	112(%r10),%xmm0
206bc3d5698SJohn Baldwin	movdqa	-352(%r11),%xmm2
207bc3d5698SJohn Baldwin.byte	102,15,56,0,195
208bc3d5698SJohn Baldwin	pxor	%xmm4,%xmm0
209bc3d5698SJohn Baldwin.byte	102,15,56,0,194
210bc3d5698SJohn Baldwin	.byte	0xf3,0xc3
211bc3d5698SJohn Baldwin.cfi_endproc
212bc3d5698SJohn Baldwin.size	_vpaes_decrypt_core,.-_vpaes_decrypt_core
213bc3d5698SJohn Baldwin
214bc3d5698SJohn Baldwin
215bc3d5698SJohn Baldwin
216bc3d5698SJohn Baldwin
217bc3d5698SJohn Baldwin
218bc3d5698SJohn Baldwin
219bc3d5698SJohn Baldwin.type	_vpaes_schedule_core,@function
220bc3d5698SJohn Baldwin.align	16
221bc3d5698SJohn Baldwin_vpaes_schedule_core:
222bc3d5698SJohn Baldwin.cfi_startproc
223bc3d5698SJohn Baldwin
224bc3d5698SJohn Baldwin
225bc3d5698SJohn Baldwin
226bc3d5698SJohn Baldwin
227bc3d5698SJohn Baldwin
228bc3d5698SJohn Baldwin	call	_vpaes_preheat
229bc3d5698SJohn Baldwin	movdqa	.Lk_rcon(%rip),%xmm8
230bc3d5698SJohn Baldwin	movdqu	(%rdi),%xmm0
231bc3d5698SJohn Baldwin
232bc3d5698SJohn Baldwin
233bc3d5698SJohn Baldwin	movdqa	%xmm0,%xmm3
234bc3d5698SJohn Baldwin	leaq	.Lk_ipt(%rip),%r11
235bc3d5698SJohn Baldwin	call	_vpaes_schedule_transform
236bc3d5698SJohn Baldwin	movdqa	%xmm0,%xmm7
237bc3d5698SJohn Baldwin
238bc3d5698SJohn Baldwin	leaq	.Lk_sr(%rip),%r10
239bc3d5698SJohn Baldwin	testq	%rcx,%rcx
240bc3d5698SJohn Baldwin	jnz	.Lschedule_am_decrypting
241bc3d5698SJohn Baldwin
242bc3d5698SJohn Baldwin
243bc3d5698SJohn Baldwin	movdqu	%xmm0,(%rdx)
244bc3d5698SJohn Baldwin	jmp	.Lschedule_go
245bc3d5698SJohn Baldwin
246bc3d5698SJohn Baldwin.Lschedule_am_decrypting:
247bc3d5698SJohn Baldwin
248bc3d5698SJohn Baldwin	movdqa	(%r8,%r10,1),%xmm1
249bc3d5698SJohn Baldwin.byte	102,15,56,0,217
250bc3d5698SJohn Baldwin	movdqu	%xmm3,(%rdx)
251bc3d5698SJohn Baldwin	xorq	$0x30,%r8
252bc3d5698SJohn Baldwin
253bc3d5698SJohn Baldwin.Lschedule_go:
254bc3d5698SJohn Baldwin	cmpl	$192,%esi
255bc3d5698SJohn Baldwin	ja	.Lschedule_256
256bc3d5698SJohn Baldwin	je	.Lschedule_192
257bc3d5698SJohn Baldwin
258bc3d5698SJohn Baldwin
259bc3d5698SJohn Baldwin
260bc3d5698SJohn Baldwin
261bc3d5698SJohn Baldwin
262bc3d5698SJohn Baldwin
263bc3d5698SJohn Baldwin
264bc3d5698SJohn Baldwin
265bc3d5698SJohn Baldwin
266bc3d5698SJohn Baldwin
267bc3d5698SJohn Baldwin.Lschedule_128:
268bc3d5698SJohn Baldwin	movl	$10,%esi
269bc3d5698SJohn Baldwin
270bc3d5698SJohn Baldwin.Loop_schedule_128:
271bc3d5698SJohn Baldwin	call	_vpaes_schedule_round
272bc3d5698SJohn Baldwin	decq	%rsi
273bc3d5698SJohn Baldwin	jz	.Lschedule_mangle_last
274bc3d5698SJohn Baldwin	call	_vpaes_schedule_mangle
275bc3d5698SJohn Baldwin	jmp	.Loop_schedule_128
276bc3d5698SJohn Baldwin
277bc3d5698SJohn Baldwin
278bc3d5698SJohn Baldwin
279bc3d5698SJohn Baldwin
280bc3d5698SJohn Baldwin
281bc3d5698SJohn Baldwin
282bc3d5698SJohn Baldwin
283bc3d5698SJohn Baldwin
284bc3d5698SJohn Baldwin
285bc3d5698SJohn Baldwin
286bc3d5698SJohn Baldwin
287bc3d5698SJohn Baldwin
288bc3d5698SJohn Baldwin
289bc3d5698SJohn Baldwin
290bc3d5698SJohn Baldwin
291bc3d5698SJohn Baldwin
292bc3d5698SJohn Baldwin.align	16
293bc3d5698SJohn Baldwin.Lschedule_192:
294bc3d5698SJohn Baldwin	movdqu	8(%rdi),%xmm0
295bc3d5698SJohn Baldwin	call	_vpaes_schedule_transform
296bc3d5698SJohn Baldwin	movdqa	%xmm0,%xmm6
297bc3d5698SJohn Baldwin	pxor	%xmm4,%xmm4
298bc3d5698SJohn Baldwin	movhlps	%xmm4,%xmm6
299bc3d5698SJohn Baldwin	movl	$4,%esi
300bc3d5698SJohn Baldwin
301bc3d5698SJohn Baldwin.Loop_schedule_192:
302bc3d5698SJohn Baldwin	call	_vpaes_schedule_round
303bc3d5698SJohn Baldwin.byte	102,15,58,15,198,8
304bc3d5698SJohn Baldwin	call	_vpaes_schedule_mangle
305bc3d5698SJohn Baldwin	call	_vpaes_schedule_192_smear
306bc3d5698SJohn Baldwin	call	_vpaes_schedule_mangle
307bc3d5698SJohn Baldwin	call	_vpaes_schedule_round
308bc3d5698SJohn Baldwin	decq	%rsi
309bc3d5698SJohn Baldwin	jz	.Lschedule_mangle_last
310bc3d5698SJohn Baldwin	call	_vpaes_schedule_mangle
311bc3d5698SJohn Baldwin	call	_vpaes_schedule_192_smear
312bc3d5698SJohn Baldwin	jmp	.Loop_schedule_192
313bc3d5698SJohn Baldwin
314bc3d5698SJohn Baldwin
315bc3d5698SJohn Baldwin
316bc3d5698SJohn Baldwin
317bc3d5698SJohn Baldwin
318bc3d5698SJohn Baldwin
319bc3d5698SJohn Baldwin
320bc3d5698SJohn Baldwin
321bc3d5698SJohn Baldwin
322bc3d5698SJohn Baldwin
323bc3d5698SJohn Baldwin
324bc3d5698SJohn Baldwin.align	16
325bc3d5698SJohn Baldwin.Lschedule_256:
326bc3d5698SJohn Baldwin	movdqu	16(%rdi),%xmm0
327bc3d5698SJohn Baldwin	call	_vpaes_schedule_transform
328bc3d5698SJohn Baldwin	movl	$7,%esi
329bc3d5698SJohn Baldwin
330bc3d5698SJohn Baldwin.Loop_schedule_256:
331bc3d5698SJohn Baldwin	call	_vpaes_schedule_mangle
332bc3d5698SJohn Baldwin	movdqa	%xmm0,%xmm6
333bc3d5698SJohn Baldwin
334bc3d5698SJohn Baldwin
335bc3d5698SJohn Baldwin	call	_vpaes_schedule_round
336bc3d5698SJohn Baldwin	decq	%rsi
337bc3d5698SJohn Baldwin	jz	.Lschedule_mangle_last
338bc3d5698SJohn Baldwin	call	_vpaes_schedule_mangle
339bc3d5698SJohn Baldwin
340bc3d5698SJohn Baldwin
341bc3d5698SJohn Baldwin	pshufd	$0xFF,%xmm0,%xmm0
342bc3d5698SJohn Baldwin	movdqa	%xmm7,%xmm5
343bc3d5698SJohn Baldwin	movdqa	%xmm6,%xmm7
344bc3d5698SJohn Baldwin	call	_vpaes_schedule_low_round
345bc3d5698SJohn Baldwin	movdqa	%xmm5,%xmm7
346bc3d5698SJohn Baldwin
347bc3d5698SJohn Baldwin	jmp	.Loop_schedule_256
348bc3d5698SJohn Baldwin
349bc3d5698SJohn Baldwin
350bc3d5698SJohn Baldwin
351bc3d5698SJohn Baldwin
352bc3d5698SJohn Baldwin
353bc3d5698SJohn Baldwin
354bc3d5698SJohn Baldwin
355bc3d5698SJohn Baldwin
356bc3d5698SJohn Baldwin
357bc3d5698SJohn Baldwin
358bc3d5698SJohn Baldwin
359bc3d5698SJohn Baldwin
360bc3d5698SJohn Baldwin.align	16
361bc3d5698SJohn Baldwin.Lschedule_mangle_last:
362bc3d5698SJohn Baldwin
363bc3d5698SJohn Baldwin	leaq	.Lk_deskew(%rip),%r11
364bc3d5698SJohn Baldwin	testq	%rcx,%rcx
365bc3d5698SJohn Baldwin	jnz	.Lschedule_mangle_last_dec
366bc3d5698SJohn Baldwin
367bc3d5698SJohn Baldwin
368bc3d5698SJohn Baldwin	movdqa	(%r8,%r10,1),%xmm1
369bc3d5698SJohn Baldwin.byte	102,15,56,0,193
370bc3d5698SJohn Baldwin	leaq	.Lk_opt(%rip),%r11
371bc3d5698SJohn Baldwin	addq	$32,%rdx
372bc3d5698SJohn Baldwin
373bc3d5698SJohn Baldwin.Lschedule_mangle_last_dec:
374bc3d5698SJohn Baldwin	addq	$-16,%rdx
375bc3d5698SJohn Baldwin	pxor	.Lk_s63(%rip),%xmm0
376bc3d5698SJohn Baldwin	call	_vpaes_schedule_transform
377bc3d5698SJohn Baldwin	movdqu	%xmm0,(%rdx)
378bc3d5698SJohn Baldwin
379bc3d5698SJohn Baldwin
380bc3d5698SJohn Baldwin	pxor	%xmm0,%xmm0
381bc3d5698SJohn Baldwin	pxor	%xmm1,%xmm1
382bc3d5698SJohn Baldwin	pxor	%xmm2,%xmm2
383bc3d5698SJohn Baldwin	pxor	%xmm3,%xmm3
384bc3d5698SJohn Baldwin	pxor	%xmm4,%xmm4
385bc3d5698SJohn Baldwin	pxor	%xmm5,%xmm5
386bc3d5698SJohn Baldwin	pxor	%xmm6,%xmm6
387bc3d5698SJohn Baldwin	pxor	%xmm7,%xmm7
388bc3d5698SJohn Baldwin	.byte	0xf3,0xc3
389bc3d5698SJohn Baldwin.cfi_endproc
390bc3d5698SJohn Baldwin.size	_vpaes_schedule_core,.-_vpaes_schedule_core
391bc3d5698SJohn Baldwin
392bc3d5698SJohn Baldwin
393bc3d5698SJohn Baldwin
394bc3d5698SJohn Baldwin
395bc3d5698SJohn Baldwin
396bc3d5698SJohn Baldwin
397bc3d5698SJohn Baldwin
398bc3d5698SJohn Baldwin
399bc3d5698SJohn Baldwin
400bc3d5698SJohn Baldwin
401bc3d5698SJohn Baldwin
402bc3d5698SJohn Baldwin
403bc3d5698SJohn Baldwin
404bc3d5698SJohn Baldwin
405bc3d5698SJohn Baldwin
406bc3d5698SJohn Baldwin.type	_vpaes_schedule_192_smear,@function
407bc3d5698SJohn Baldwin.align	16
408bc3d5698SJohn Baldwin_vpaes_schedule_192_smear:
409bc3d5698SJohn Baldwin.cfi_startproc
410bc3d5698SJohn Baldwin	pshufd	$0x80,%xmm6,%xmm1
411bc3d5698SJohn Baldwin	pshufd	$0xFE,%xmm7,%xmm0
412bc3d5698SJohn Baldwin	pxor	%xmm1,%xmm6
413bc3d5698SJohn Baldwin	pxor	%xmm1,%xmm1
414bc3d5698SJohn Baldwin	pxor	%xmm0,%xmm6
415bc3d5698SJohn Baldwin	movdqa	%xmm6,%xmm0
416bc3d5698SJohn Baldwin	movhlps	%xmm1,%xmm6
417bc3d5698SJohn Baldwin	.byte	0xf3,0xc3
418bc3d5698SJohn Baldwin.cfi_endproc
419bc3d5698SJohn Baldwin.size	_vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear
420bc3d5698SJohn Baldwin
421bc3d5698SJohn Baldwin
422bc3d5698SJohn Baldwin
423bc3d5698SJohn Baldwin
424bc3d5698SJohn Baldwin
425bc3d5698SJohn Baldwin
426bc3d5698SJohn Baldwin
427bc3d5698SJohn Baldwin
428bc3d5698SJohn Baldwin
429bc3d5698SJohn Baldwin
430bc3d5698SJohn Baldwin
431bc3d5698SJohn Baldwin
432bc3d5698SJohn Baldwin
433bc3d5698SJohn Baldwin
434bc3d5698SJohn Baldwin
435bc3d5698SJohn Baldwin
436bc3d5698SJohn Baldwin
437bc3d5698SJohn Baldwin
438bc3d5698SJohn Baldwin
439bc3d5698SJohn Baldwin.type	_vpaes_schedule_round,@function
440bc3d5698SJohn Baldwin.align	16
441bc3d5698SJohn Baldwin_vpaes_schedule_round:
442bc3d5698SJohn Baldwin.cfi_startproc
443bc3d5698SJohn Baldwin
444bc3d5698SJohn Baldwin	pxor	%xmm1,%xmm1
445bc3d5698SJohn Baldwin.byte	102,65,15,58,15,200,15
446bc3d5698SJohn Baldwin.byte	102,69,15,58,15,192,15
447bc3d5698SJohn Baldwin	pxor	%xmm1,%xmm7
448bc3d5698SJohn Baldwin
449bc3d5698SJohn Baldwin
450bc3d5698SJohn Baldwin	pshufd	$0xFF,%xmm0,%xmm0
451bc3d5698SJohn Baldwin.byte	102,15,58,15,192,1
452bc3d5698SJohn Baldwin
453bc3d5698SJohn Baldwin
454bc3d5698SJohn Baldwin
455bc3d5698SJohn Baldwin
456bc3d5698SJohn Baldwin_vpaes_schedule_low_round:
457bc3d5698SJohn Baldwin
458bc3d5698SJohn Baldwin	movdqa	%xmm7,%xmm1
459bc3d5698SJohn Baldwin	pslldq	$4,%xmm7
460bc3d5698SJohn Baldwin	pxor	%xmm1,%xmm7
461bc3d5698SJohn Baldwin	movdqa	%xmm7,%xmm1
462bc3d5698SJohn Baldwin	pslldq	$8,%xmm7
463bc3d5698SJohn Baldwin	pxor	%xmm1,%xmm7
464bc3d5698SJohn Baldwin	pxor	.Lk_s63(%rip),%xmm7
465bc3d5698SJohn Baldwin
466bc3d5698SJohn Baldwin
467bc3d5698SJohn Baldwin	movdqa	%xmm9,%xmm1
468bc3d5698SJohn Baldwin	pandn	%xmm0,%xmm1
469bc3d5698SJohn Baldwin	psrld	$4,%xmm1
470bc3d5698SJohn Baldwin	pand	%xmm9,%xmm0
471bc3d5698SJohn Baldwin	movdqa	%xmm11,%xmm2
472bc3d5698SJohn Baldwin.byte	102,15,56,0,208
473bc3d5698SJohn Baldwin	pxor	%xmm1,%xmm0
474bc3d5698SJohn Baldwin	movdqa	%xmm10,%xmm3
475bc3d5698SJohn Baldwin.byte	102,15,56,0,217
476bc3d5698SJohn Baldwin	pxor	%xmm2,%xmm3
477bc3d5698SJohn Baldwin	movdqa	%xmm10,%xmm4
478bc3d5698SJohn Baldwin.byte	102,15,56,0,224
479bc3d5698SJohn Baldwin	pxor	%xmm2,%xmm4
480bc3d5698SJohn Baldwin	movdqa	%xmm10,%xmm2
481bc3d5698SJohn Baldwin.byte	102,15,56,0,211
482bc3d5698SJohn Baldwin	pxor	%xmm0,%xmm2
483bc3d5698SJohn Baldwin	movdqa	%xmm10,%xmm3
484bc3d5698SJohn Baldwin.byte	102,15,56,0,220
485bc3d5698SJohn Baldwin	pxor	%xmm1,%xmm3
486bc3d5698SJohn Baldwin	movdqa	%xmm13,%xmm4
487bc3d5698SJohn Baldwin.byte	102,15,56,0,226
488bc3d5698SJohn Baldwin	movdqa	%xmm12,%xmm0
489bc3d5698SJohn Baldwin.byte	102,15,56,0,195
490bc3d5698SJohn Baldwin	pxor	%xmm4,%xmm0
491bc3d5698SJohn Baldwin
492bc3d5698SJohn Baldwin
493bc3d5698SJohn Baldwin	pxor	%xmm7,%xmm0
494bc3d5698SJohn Baldwin	movdqa	%xmm0,%xmm7
495bc3d5698SJohn Baldwin	.byte	0xf3,0xc3
496bc3d5698SJohn Baldwin.cfi_endproc
497bc3d5698SJohn Baldwin.size	_vpaes_schedule_round,.-_vpaes_schedule_round
498bc3d5698SJohn Baldwin
499bc3d5698SJohn Baldwin
500bc3d5698SJohn Baldwin
501bc3d5698SJohn Baldwin
502bc3d5698SJohn Baldwin
503bc3d5698SJohn Baldwin
504bc3d5698SJohn Baldwin
505bc3d5698SJohn Baldwin
506bc3d5698SJohn Baldwin
507bc3d5698SJohn Baldwin
508bc3d5698SJohn Baldwin.type	_vpaes_schedule_transform,@function
509bc3d5698SJohn Baldwin.align	16
510bc3d5698SJohn Baldwin_vpaes_schedule_transform:
511bc3d5698SJohn Baldwin.cfi_startproc
512bc3d5698SJohn Baldwin	movdqa	%xmm9,%xmm1
513bc3d5698SJohn Baldwin	pandn	%xmm0,%xmm1
514bc3d5698SJohn Baldwin	psrld	$4,%xmm1
515bc3d5698SJohn Baldwin	pand	%xmm9,%xmm0
516bc3d5698SJohn Baldwin	movdqa	(%r11),%xmm2
517bc3d5698SJohn Baldwin.byte	102,15,56,0,208
518bc3d5698SJohn Baldwin	movdqa	16(%r11),%xmm0
519bc3d5698SJohn Baldwin.byte	102,15,56,0,193
520bc3d5698SJohn Baldwin	pxor	%xmm2,%xmm0
521bc3d5698SJohn Baldwin	.byte	0xf3,0xc3
522bc3d5698SJohn Baldwin.cfi_endproc
523bc3d5698SJohn Baldwin.size	_vpaes_schedule_transform,.-_vpaes_schedule_transform
524bc3d5698SJohn Baldwin
525bc3d5698SJohn Baldwin
526bc3d5698SJohn Baldwin
527bc3d5698SJohn Baldwin
528bc3d5698SJohn Baldwin
529bc3d5698SJohn Baldwin
530bc3d5698SJohn Baldwin
531bc3d5698SJohn Baldwin
532bc3d5698SJohn Baldwin
533bc3d5698SJohn Baldwin
534bc3d5698SJohn Baldwin
535bc3d5698SJohn Baldwin
536bc3d5698SJohn Baldwin
537bc3d5698SJohn Baldwin
538bc3d5698SJohn Baldwin
539bc3d5698SJohn Baldwin
540bc3d5698SJohn Baldwin
541bc3d5698SJohn Baldwin
542bc3d5698SJohn Baldwin
543bc3d5698SJohn Baldwin
544bc3d5698SJohn Baldwin
545bc3d5698SJohn Baldwin
546bc3d5698SJohn Baldwin
547bc3d5698SJohn Baldwin
548bc3d5698SJohn Baldwin.type	_vpaes_schedule_mangle,@function
549bc3d5698SJohn Baldwin.align	16
550bc3d5698SJohn Baldwin_vpaes_schedule_mangle:
551bc3d5698SJohn Baldwin.cfi_startproc
552bc3d5698SJohn Baldwin	movdqa	%xmm0,%xmm4
553bc3d5698SJohn Baldwin	movdqa	.Lk_mc_forward(%rip),%xmm5
554bc3d5698SJohn Baldwin	testq	%rcx,%rcx
555bc3d5698SJohn Baldwin	jnz	.Lschedule_mangle_dec
556bc3d5698SJohn Baldwin
557bc3d5698SJohn Baldwin
558bc3d5698SJohn Baldwin	addq	$16,%rdx
559bc3d5698SJohn Baldwin	pxor	.Lk_s63(%rip),%xmm4
560bc3d5698SJohn Baldwin.byte	102,15,56,0,229
561bc3d5698SJohn Baldwin	movdqa	%xmm4,%xmm3
562bc3d5698SJohn Baldwin.byte	102,15,56,0,229
563bc3d5698SJohn Baldwin	pxor	%xmm4,%xmm3
564bc3d5698SJohn Baldwin.byte	102,15,56,0,229
565bc3d5698SJohn Baldwin	pxor	%xmm4,%xmm3
566bc3d5698SJohn Baldwin
567bc3d5698SJohn Baldwin	jmp	.Lschedule_mangle_both
568bc3d5698SJohn Baldwin.align	16
569bc3d5698SJohn Baldwin.Lschedule_mangle_dec:
570bc3d5698SJohn Baldwin
571bc3d5698SJohn Baldwin	leaq	.Lk_dksd(%rip),%r11
572bc3d5698SJohn Baldwin	movdqa	%xmm9,%xmm1
573bc3d5698SJohn Baldwin	pandn	%xmm4,%xmm1
574bc3d5698SJohn Baldwin	psrld	$4,%xmm1
575bc3d5698SJohn Baldwin	pand	%xmm9,%xmm4
576bc3d5698SJohn Baldwin
577bc3d5698SJohn Baldwin	movdqa	0(%r11),%xmm2
578bc3d5698SJohn Baldwin.byte	102,15,56,0,212
579bc3d5698SJohn Baldwin	movdqa	16(%r11),%xmm3
580bc3d5698SJohn Baldwin.byte	102,15,56,0,217
581bc3d5698SJohn Baldwin	pxor	%xmm2,%xmm3
582bc3d5698SJohn Baldwin.byte	102,15,56,0,221
583bc3d5698SJohn Baldwin
584bc3d5698SJohn Baldwin	movdqa	32(%r11),%xmm2
585bc3d5698SJohn Baldwin.byte	102,15,56,0,212
586bc3d5698SJohn Baldwin	pxor	%xmm3,%xmm2
587bc3d5698SJohn Baldwin	movdqa	48(%r11),%xmm3
588bc3d5698SJohn Baldwin.byte	102,15,56,0,217
589bc3d5698SJohn Baldwin	pxor	%xmm2,%xmm3
590bc3d5698SJohn Baldwin.byte	102,15,56,0,221
591bc3d5698SJohn Baldwin
592bc3d5698SJohn Baldwin	movdqa	64(%r11),%xmm2
593bc3d5698SJohn Baldwin.byte	102,15,56,0,212
594bc3d5698SJohn Baldwin	pxor	%xmm3,%xmm2
595bc3d5698SJohn Baldwin	movdqa	80(%r11),%xmm3
596bc3d5698SJohn Baldwin.byte	102,15,56,0,217
597bc3d5698SJohn Baldwin	pxor	%xmm2,%xmm3
598bc3d5698SJohn Baldwin.byte	102,15,56,0,221
599bc3d5698SJohn Baldwin
600bc3d5698SJohn Baldwin	movdqa	96(%r11),%xmm2
601bc3d5698SJohn Baldwin.byte	102,15,56,0,212
602bc3d5698SJohn Baldwin	pxor	%xmm3,%xmm2
603bc3d5698SJohn Baldwin	movdqa	112(%r11),%xmm3
604bc3d5698SJohn Baldwin.byte	102,15,56,0,217
605bc3d5698SJohn Baldwin	pxor	%xmm2,%xmm3
606bc3d5698SJohn Baldwin
607bc3d5698SJohn Baldwin	addq	$-16,%rdx
608bc3d5698SJohn Baldwin
609bc3d5698SJohn Baldwin.Lschedule_mangle_both:
610bc3d5698SJohn Baldwin	movdqa	(%r8,%r10,1),%xmm1
611bc3d5698SJohn Baldwin.byte	102,15,56,0,217
612bc3d5698SJohn Baldwin	addq	$-16,%r8
613bc3d5698SJohn Baldwin	andq	$0x30,%r8
614bc3d5698SJohn Baldwin	movdqu	%xmm3,(%rdx)
615bc3d5698SJohn Baldwin	.byte	0xf3,0xc3
616bc3d5698SJohn Baldwin.cfi_endproc
617bc3d5698SJohn Baldwin.size	_vpaes_schedule_mangle,.-_vpaes_schedule_mangle
618bc3d5698SJohn Baldwin
619bc3d5698SJohn Baldwin
620bc3d5698SJohn Baldwin
621bc3d5698SJohn Baldwin
622bc3d5698SJohn Baldwin.globl	vpaes_set_encrypt_key
623bc3d5698SJohn Baldwin.type	vpaes_set_encrypt_key,@function
624bc3d5698SJohn Baldwin.align	16
625bc3d5698SJohn Baldwinvpaes_set_encrypt_key:
626bc3d5698SJohn Baldwin.cfi_startproc
627*c0855eaaSJohn Baldwin.byte	243,15,30,250
628bc3d5698SJohn Baldwin	movl	%esi,%eax
629bc3d5698SJohn Baldwin	shrl	$5,%eax
630bc3d5698SJohn Baldwin	addl	$5,%eax
631bc3d5698SJohn Baldwin	movl	%eax,240(%rdx)
632bc3d5698SJohn Baldwin
633bc3d5698SJohn Baldwin	movl	$0,%ecx
634bc3d5698SJohn Baldwin	movl	$0x30,%r8d
635bc3d5698SJohn Baldwin	call	_vpaes_schedule_core
636bc3d5698SJohn Baldwin	xorl	%eax,%eax
637bc3d5698SJohn Baldwin	.byte	0xf3,0xc3
638bc3d5698SJohn Baldwin.cfi_endproc
639bc3d5698SJohn Baldwin.size	vpaes_set_encrypt_key,.-vpaes_set_encrypt_key
640bc3d5698SJohn Baldwin
641bc3d5698SJohn Baldwin.globl	vpaes_set_decrypt_key
642bc3d5698SJohn Baldwin.type	vpaes_set_decrypt_key,@function
643bc3d5698SJohn Baldwin.align	16
644bc3d5698SJohn Baldwinvpaes_set_decrypt_key:
645bc3d5698SJohn Baldwin.cfi_startproc
646*c0855eaaSJohn Baldwin.byte	243,15,30,250
647bc3d5698SJohn Baldwin	movl	%esi,%eax
648bc3d5698SJohn Baldwin	shrl	$5,%eax
649bc3d5698SJohn Baldwin	addl	$5,%eax
650bc3d5698SJohn Baldwin	movl	%eax,240(%rdx)
651bc3d5698SJohn Baldwin	shll	$4,%eax
652bc3d5698SJohn Baldwin	leaq	16(%rdx,%rax,1),%rdx
653bc3d5698SJohn Baldwin
654bc3d5698SJohn Baldwin	movl	$1,%ecx
655bc3d5698SJohn Baldwin	movl	%esi,%r8d
656bc3d5698SJohn Baldwin	shrl	$1,%r8d
657bc3d5698SJohn Baldwin	andl	$32,%r8d
658bc3d5698SJohn Baldwin	xorl	$32,%r8d
659bc3d5698SJohn Baldwin	call	_vpaes_schedule_core
660bc3d5698SJohn Baldwin	xorl	%eax,%eax
661bc3d5698SJohn Baldwin	.byte	0xf3,0xc3
662bc3d5698SJohn Baldwin.cfi_endproc
663bc3d5698SJohn Baldwin.size	vpaes_set_decrypt_key,.-vpaes_set_decrypt_key
664bc3d5698SJohn Baldwin
665bc3d5698SJohn Baldwin.globl	vpaes_encrypt
666bc3d5698SJohn Baldwin.type	vpaes_encrypt,@function
667bc3d5698SJohn Baldwin.align	16
668bc3d5698SJohn Baldwinvpaes_encrypt:
669bc3d5698SJohn Baldwin.cfi_startproc
670*c0855eaaSJohn Baldwin.byte	243,15,30,250
671bc3d5698SJohn Baldwin	movdqu	(%rdi),%xmm0
672bc3d5698SJohn Baldwin	call	_vpaes_preheat
673bc3d5698SJohn Baldwin	call	_vpaes_encrypt_core
674bc3d5698SJohn Baldwin	movdqu	%xmm0,(%rsi)
675bc3d5698SJohn Baldwin	.byte	0xf3,0xc3
676bc3d5698SJohn Baldwin.cfi_endproc
677bc3d5698SJohn Baldwin.size	vpaes_encrypt,.-vpaes_encrypt
678bc3d5698SJohn Baldwin
679bc3d5698SJohn Baldwin.globl	vpaes_decrypt
680bc3d5698SJohn Baldwin.type	vpaes_decrypt,@function
681bc3d5698SJohn Baldwin.align	16
682bc3d5698SJohn Baldwinvpaes_decrypt:
683bc3d5698SJohn Baldwin.cfi_startproc
684*c0855eaaSJohn Baldwin.byte	243,15,30,250
685bc3d5698SJohn Baldwin	movdqu	(%rdi),%xmm0
686bc3d5698SJohn Baldwin	call	_vpaes_preheat
687bc3d5698SJohn Baldwin	call	_vpaes_decrypt_core
688bc3d5698SJohn Baldwin	movdqu	%xmm0,(%rsi)
689bc3d5698SJohn Baldwin	.byte	0xf3,0xc3
690bc3d5698SJohn Baldwin.cfi_endproc
691bc3d5698SJohn Baldwin.size	vpaes_decrypt,.-vpaes_decrypt
692bc3d5698SJohn Baldwin.globl	vpaes_cbc_encrypt
693bc3d5698SJohn Baldwin.type	vpaes_cbc_encrypt,@function
694bc3d5698SJohn Baldwin.align	16
695bc3d5698SJohn Baldwinvpaes_cbc_encrypt:
696bc3d5698SJohn Baldwin.cfi_startproc
697*c0855eaaSJohn Baldwin.byte	243,15,30,250
698bc3d5698SJohn Baldwin	xchgq	%rcx,%rdx
699bc3d5698SJohn Baldwin	subq	$16,%rcx
700bc3d5698SJohn Baldwin	jc	.Lcbc_abort
701bc3d5698SJohn Baldwin	movdqu	(%r8),%xmm6
702bc3d5698SJohn Baldwin	subq	%rdi,%rsi
703bc3d5698SJohn Baldwin	call	_vpaes_preheat
704bc3d5698SJohn Baldwin	cmpl	$0,%r9d
705bc3d5698SJohn Baldwin	je	.Lcbc_dec_loop
706bc3d5698SJohn Baldwin	jmp	.Lcbc_enc_loop
707bc3d5698SJohn Baldwin.align	16
708bc3d5698SJohn Baldwin.Lcbc_enc_loop:
709bc3d5698SJohn Baldwin	movdqu	(%rdi),%xmm0
710bc3d5698SJohn Baldwin	pxor	%xmm6,%xmm0
711bc3d5698SJohn Baldwin	call	_vpaes_encrypt_core
712bc3d5698SJohn Baldwin	movdqa	%xmm0,%xmm6
713bc3d5698SJohn Baldwin	movdqu	%xmm0,(%rsi,%rdi,1)
714bc3d5698SJohn Baldwin	leaq	16(%rdi),%rdi
715bc3d5698SJohn Baldwin	subq	$16,%rcx
716bc3d5698SJohn Baldwin	jnc	.Lcbc_enc_loop
717bc3d5698SJohn Baldwin	jmp	.Lcbc_done
718bc3d5698SJohn Baldwin.align	16
719bc3d5698SJohn Baldwin.Lcbc_dec_loop:
720bc3d5698SJohn Baldwin	movdqu	(%rdi),%xmm0
721bc3d5698SJohn Baldwin	movdqa	%xmm0,%xmm7
722bc3d5698SJohn Baldwin	call	_vpaes_decrypt_core
723bc3d5698SJohn Baldwin	pxor	%xmm6,%xmm0
724bc3d5698SJohn Baldwin	movdqa	%xmm7,%xmm6
725bc3d5698SJohn Baldwin	movdqu	%xmm0,(%rsi,%rdi,1)
726bc3d5698SJohn Baldwin	leaq	16(%rdi),%rdi
727bc3d5698SJohn Baldwin	subq	$16,%rcx
728bc3d5698SJohn Baldwin	jnc	.Lcbc_dec_loop
729bc3d5698SJohn Baldwin.Lcbc_done:
730bc3d5698SJohn Baldwin	movdqu	%xmm6,(%r8)
731bc3d5698SJohn Baldwin.Lcbc_abort:
732bc3d5698SJohn Baldwin	.byte	0xf3,0xc3
733bc3d5698SJohn Baldwin.cfi_endproc
734bc3d5698SJohn Baldwin.size	vpaes_cbc_encrypt,.-vpaes_cbc_encrypt
735bc3d5698SJohn Baldwin
736bc3d5698SJohn Baldwin
737bc3d5698SJohn Baldwin
738bc3d5698SJohn Baldwin
739bc3d5698SJohn Baldwin
740bc3d5698SJohn Baldwin
741bc3d5698SJohn Baldwin.type	_vpaes_preheat,@function
742bc3d5698SJohn Baldwin.align	16
743bc3d5698SJohn Baldwin_vpaes_preheat:
744bc3d5698SJohn Baldwin.cfi_startproc
745bc3d5698SJohn Baldwin	leaq	.Lk_s0F(%rip),%r10
746bc3d5698SJohn Baldwin	movdqa	-32(%r10),%xmm10
747bc3d5698SJohn Baldwin	movdqa	-16(%r10),%xmm11
748bc3d5698SJohn Baldwin	movdqa	0(%r10),%xmm9
749bc3d5698SJohn Baldwin	movdqa	48(%r10),%xmm13
750bc3d5698SJohn Baldwin	movdqa	64(%r10),%xmm12
751bc3d5698SJohn Baldwin	movdqa	80(%r10),%xmm15
752bc3d5698SJohn Baldwin	movdqa	96(%r10),%xmm14
753bc3d5698SJohn Baldwin	.byte	0xf3,0xc3
754bc3d5698SJohn Baldwin.cfi_endproc
755bc3d5698SJohn Baldwin.size	_vpaes_preheat,.-_vpaes_preheat
756bc3d5698SJohn Baldwin
757bc3d5698SJohn Baldwin
758bc3d5698SJohn Baldwin
759bc3d5698SJohn Baldwin
760bc3d5698SJohn Baldwin
761bc3d5698SJohn Baldwin.type	_vpaes_consts,@object
762bc3d5698SJohn Baldwin.align	64
763bc3d5698SJohn Baldwin_vpaes_consts:
764bc3d5698SJohn Baldwin.Lk_inv:
765bc3d5698SJohn Baldwin.quad	0x0E05060F0D080180, 0x040703090A0B0C02
766bc3d5698SJohn Baldwin.quad	0x01040A060F0B0780, 0x030D0E0C02050809
767bc3d5698SJohn Baldwin
768bc3d5698SJohn Baldwin.Lk_s0F:
769bc3d5698SJohn Baldwin.quad	0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F
770bc3d5698SJohn Baldwin
771bc3d5698SJohn Baldwin.Lk_ipt:
772bc3d5698SJohn Baldwin.quad	0xC2B2E8985A2A7000, 0xCABAE09052227808
773bc3d5698SJohn Baldwin.quad	0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81
774bc3d5698SJohn Baldwin
775bc3d5698SJohn Baldwin.Lk_sb1:
776bc3d5698SJohn Baldwin.quad	0xB19BE18FCB503E00, 0xA5DF7A6E142AF544
777bc3d5698SJohn Baldwin.quad	0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF
778bc3d5698SJohn Baldwin.Lk_sb2:
779bc3d5698SJohn Baldwin.quad	0xE27A93C60B712400, 0x5EB7E955BC982FCD
780bc3d5698SJohn Baldwin.quad	0x69EB88400AE12900, 0xC2A163C8AB82234A
781bc3d5698SJohn Baldwin.Lk_sbo:
782bc3d5698SJohn Baldwin.quad	0xD0D26D176FBDC700, 0x15AABF7AC502A878
783bc3d5698SJohn Baldwin.quad	0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA
784bc3d5698SJohn Baldwin
785bc3d5698SJohn Baldwin.Lk_mc_forward:
786bc3d5698SJohn Baldwin.quad	0x0407060500030201, 0x0C0F0E0D080B0A09
787bc3d5698SJohn Baldwin.quad	0x080B0A0904070605, 0x000302010C0F0E0D
788bc3d5698SJohn Baldwin.quad	0x0C0F0E0D080B0A09, 0x0407060500030201
789bc3d5698SJohn Baldwin.quad	0x000302010C0F0E0D, 0x080B0A0904070605
790bc3d5698SJohn Baldwin
791bc3d5698SJohn Baldwin.Lk_mc_backward:
792bc3d5698SJohn Baldwin.quad	0x0605040702010003, 0x0E0D0C0F0A09080B
793bc3d5698SJohn Baldwin.quad	0x020100030E0D0C0F, 0x0A09080B06050407
794bc3d5698SJohn Baldwin.quad	0x0E0D0C0F0A09080B, 0x0605040702010003
795bc3d5698SJohn Baldwin.quad	0x0A09080B06050407, 0x020100030E0D0C0F
796bc3d5698SJohn Baldwin
797bc3d5698SJohn Baldwin.Lk_sr:
798bc3d5698SJohn Baldwin.quad	0x0706050403020100, 0x0F0E0D0C0B0A0908
799bc3d5698SJohn Baldwin.quad	0x030E09040F0A0500, 0x0B06010C07020D08
800bc3d5698SJohn Baldwin.quad	0x0F060D040B020900, 0x070E050C030A0108
801bc3d5698SJohn Baldwin.quad	0x0B0E0104070A0D00, 0x0306090C0F020508
802bc3d5698SJohn Baldwin
803bc3d5698SJohn Baldwin.Lk_rcon:
804bc3d5698SJohn Baldwin.quad	0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81
805bc3d5698SJohn Baldwin
806bc3d5698SJohn Baldwin.Lk_s63:
807bc3d5698SJohn Baldwin.quad	0x5B5B5B5B5B5B5B5B, 0x5B5B5B5B5B5B5B5B
808bc3d5698SJohn Baldwin
809bc3d5698SJohn Baldwin.Lk_opt:
810bc3d5698SJohn Baldwin.quad	0xFF9F4929D6B66000, 0xF7974121DEBE6808
811bc3d5698SJohn Baldwin.quad	0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0
812bc3d5698SJohn Baldwin
813bc3d5698SJohn Baldwin.Lk_deskew:
814bc3d5698SJohn Baldwin.quad	0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A
815bc3d5698SJohn Baldwin.quad	0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77
816bc3d5698SJohn Baldwin
817bc3d5698SJohn Baldwin
818bc3d5698SJohn Baldwin
819bc3d5698SJohn Baldwin
820bc3d5698SJohn Baldwin
821bc3d5698SJohn Baldwin.Lk_dksd:
822bc3d5698SJohn Baldwin.quad	0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9
823bc3d5698SJohn Baldwin.quad	0x41C277F4B5368300, 0x5FDC69EAAB289D1E
824bc3d5698SJohn Baldwin.Lk_dksb:
825bc3d5698SJohn Baldwin.quad	0x9A4FCA1F8550D500, 0x03D653861CC94C99
826bc3d5698SJohn Baldwin.quad	0x115BEDA7B6FC4A00, 0xD993256F7E3482C8
827bc3d5698SJohn Baldwin.Lk_dkse:
828bc3d5698SJohn Baldwin.quad	0xD5031CCA1FC9D600, 0x53859A4C994F5086
829bc3d5698SJohn Baldwin.quad	0xA23196054FDC7BE8, 0xCD5EF96A20B31487
830bc3d5698SJohn Baldwin.Lk_dks9:
831bc3d5698SJohn Baldwin.quad	0xB6116FC87ED9A700, 0x4AED933482255BFC
832bc3d5698SJohn Baldwin.quad	0x4576516227143300, 0x8BB89FACE9DAFDCE
833bc3d5698SJohn Baldwin
834bc3d5698SJohn Baldwin
835bc3d5698SJohn Baldwin
836bc3d5698SJohn Baldwin
837bc3d5698SJohn Baldwin
838bc3d5698SJohn Baldwin.Lk_dipt:
839bc3d5698SJohn Baldwin.quad	0x0F505B040B545F00, 0x154A411E114E451A
840bc3d5698SJohn Baldwin.quad	0x86E383E660056500, 0x12771772F491F194
841bc3d5698SJohn Baldwin
842bc3d5698SJohn Baldwin.Lk_dsb9:
843bc3d5698SJohn Baldwin.quad	0x851C03539A86D600, 0xCAD51F504F994CC9
844bc3d5698SJohn Baldwin.quad	0xC03B1789ECD74900, 0x725E2C9EB2FBA565
845bc3d5698SJohn Baldwin.Lk_dsbd:
846bc3d5698SJohn Baldwin.quad	0x7D57CCDFE6B1A200, 0xF56E9B13882A4439
847bc3d5698SJohn Baldwin.quad	0x3CE2FAF724C6CB00, 0x2931180D15DEEFD3
848bc3d5698SJohn Baldwin.Lk_dsbb:
849bc3d5698SJohn Baldwin.quad	0xD022649296B44200, 0x602646F6B0F2D404
850bc3d5698SJohn Baldwin.quad	0xC19498A6CD596700, 0xF3FF0C3E3255AA6B
851bc3d5698SJohn Baldwin.Lk_dsbe:
852bc3d5698SJohn Baldwin.quad	0x46F2929626D4D000, 0x2242600464B4F6B0
853bc3d5698SJohn Baldwin.quad	0x0C55A6CDFFAAC100, 0x9467F36B98593E32
854bc3d5698SJohn Baldwin.Lk_dsbo:
855bc3d5698SJohn Baldwin.quad	0x1387EA537EF94000, 0xC7AA6DB9D4943E2D
856bc3d5698SJohn Baldwin.quad	0x12D7560F93441D00, 0xCA4B8159D8C58E9C
857bc3d5698SJohn Baldwin.byte	86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0
858bc3d5698SJohn Baldwin.align	64
859bc3d5698SJohn Baldwin.size	_vpaes_consts,.-_vpaes_consts
860*c0855eaaSJohn Baldwin	.section ".note.gnu.property", "a"
861*c0855eaaSJohn Baldwin	.p2align 3
862*c0855eaaSJohn Baldwin	.long 1f - 0f
863*c0855eaaSJohn Baldwin	.long 4f - 1f
864*c0855eaaSJohn Baldwin	.long 5
865*c0855eaaSJohn Baldwin0:
866*c0855eaaSJohn Baldwin	# "GNU" encoded with .byte, since .asciz isn't supported
867*c0855eaaSJohn Baldwin	# on Solaris.
868*c0855eaaSJohn Baldwin	.byte 0x47
869*c0855eaaSJohn Baldwin	.byte 0x4e
870*c0855eaaSJohn Baldwin	.byte 0x55
871*c0855eaaSJohn Baldwin	.byte 0
872*c0855eaaSJohn Baldwin1:
873*c0855eaaSJohn Baldwin	.p2align 3
874*c0855eaaSJohn Baldwin	.long 0xc0000002
875*c0855eaaSJohn Baldwin	.long 3f - 2f
876*c0855eaaSJohn Baldwin2:
877*c0855eaaSJohn Baldwin	.long 3
878*c0855eaaSJohn Baldwin3:
879*c0855eaaSJohn Baldwin	.p2align 3
880*c0855eaaSJohn Baldwin4:
881