1*33772c1eSriastradh#ifdef HAVE_AMD64_ASM
2*33772c1eSriastradh
3*33772c1eSriastradh.text
4*33772c1eSriastradh.p2align 5
5*33772c1eSriastradh
6*33772c1eSriastradh#ifdef ASM_HIDE_SYMBOL
7*33772c1eSriastradhASM_HIDE_SYMBOL stream_salsa20_xmm6
8*33772c1eSriastradhASM_HIDE_SYMBOL _stream_salsa20_xmm6
9*33772c1eSriastradh#endif
10*33772c1eSriastradh.globl  stream_salsa20_xmm6
11*33772c1eSriastradh.globl _stream_salsa20_xmm6
12*33772c1eSriastradh#ifdef __ELF__
13*33772c1eSriastradh.type  stream_salsa20_xmm6, @function
14*33772c1eSriastradh.type _stream_salsa20_xmm6, @function
15*33772c1eSriastradh#endif
16*33772c1eSriastradhstream_salsa20_xmm6:
17*33772c1eSriastradh_stream_salsa20_xmm6:
18*33772c1eSriastradhmov %rsp,%r11
19*33772c1eSriastradhand $31,%r11
20*33772c1eSriastradhadd $512,%r11
21*33772c1eSriastradhsub %r11,%rsp
22*33772c1eSriastradhmovq %r11,416(%rsp)
23*33772c1eSriastradhmovq %r12,424(%rsp)
24*33772c1eSriastradhmovq %r13,432(%rsp)
25*33772c1eSriastradhmovq %r14,440(%rsp)
26*33772c1eSriastradhmovq %r15,448(%rsp)
27*33772c1eSriastradhmovq %rbx,456(%rsp)
28*33772c1eSriastradhmovq %rbp,464(%rsp)
29*33772c1eSriastradhmov  %rsi,%r9
30*33772c1eSriastradhmov  %rdi,%rdi
31*33772c1eSriastradhmov  %rdi,%rsi
32*33772c1eSriastradhmov  %rdx,%rdx
33*33772c1eSriastradhmov  %rcx,%r10
34*33772c1eSriastradhcmp  $0,%r9
35*33772c1eSriastradhjbe ._done
36*33772c1eSriastradhmov  $0,%rax
37*33772c1eSriastradhmov  %r9,%rcx
38*33772c1eSriastradhrep stosb
39*33772c1eSriastradhsub  %r9,%rdi
40*33772c1eSriastradhmovq $0,472(%rsp)
41*33772c1eSriastradhjmp ._start
42*33772c1eSriastradh
43*33772c1eSriastradh.text
44*33772c1eSriastradh.p2align 5
45*33772c1eSriastradh
46*33772c1eSriastradh#ifdef ASM_HIDE_SYMBOL
47*33772c1eSriastradhASM_HIDE_SYMBOL stream_salsa20_xmm6_xor_ic
48*33772c1eSriastradhASM_HIDE_SYMBOL _stream_salsa20_xmm6_xor_ic
49*33772c1eSriastradh#endif
50*33772c1eSriastradh.globl  stream_salsa20_xmm6_xor_ic
51*33772c1eSriastradh.globl _stream_salsa20_xmm6_xor_ic
52*33772c1eSriastradh#ifdef __ELF__
53*33772c1eSriastradh.type  stream_salsa20_xmm6_xor_ic, @function
54*33772c1eSriastradh.type _stream_salsa20_xmm6_xor_ic, @function
55*33772c1eSriastradh#endif
56*33772c1eSriastradhstream_salsa20_xmm6_xor_ic:
57*33772c1eSriastradh_stream_salsa20_xmm6_xor_ic:
58*33772c1eSriastradh
59*33772c1eSriastradhmov %rsp,%r11
60*33772c1eSriastradhand $31,%r11
61*33772c1eSriastradhadd $512,%r11
62*33772c1eSriastradhsub %r11,%rsp
63*33772c1eSriastradhmovq %r11,416(%rsp)
64*33772c1eSriastradhmovq %r12,424(%rsp)
65*33772c1eSriastradhmovq %r13,432(%rsp)
66*33772c1eSriastradhmovq %r14,440(%rsp)
67*33772c1eSriastradhmovq %r15,448(%rsp)
68*33772c1eSriastradhmovq %rbx,456(%rsp)
69*33772c1eSriastradhmovq %rbp,464(%rsp)
70*33772c1eSriastradhmov  %rdi,%rdi
71*33772c1eSriastradhmov  %rsi,%rsi
72*33772c1eSriastradhmov  %r9,%r10
73*33772c1eSriastradhmovq %r8,472(%rsp)
74*33772c1eSriastradhmov  %rdx,%r9
75*33772c1eSriastradhmov  %rcx,%rdx
76*33772c1eSriastradhcmp  $0,%r9
77*33772c1eSriastradhjbe ._done
78*33772c1eSriastradh
79*33772c1eSriastradh._start:
80*33772c1eSriastradhmovl   20(%r10),%ecx
81*33772c1eSriastradhmovl   0(%r10),%r8d
82*33772c1eSriastradhmovl   0(%rdx),%eax
83*33772c1eSriastradhmovl   16(%r10),%r11d
84*33772c1eSriastradhmovl %ecx,64(%rsp)
85*33772c1eSriastradhmovl %r8d,4+64(%rsp)
86*33772c1eSriastradhmovl %eax,8+64(%rsp)
87*33772c1eSriastradhmovl %r11d,12+64(%rsp)
88*33772c1eSriastradhmovl   24(%r10),%r8d
89*33772c1eSriastradhmovl   4(%r10),%eax
90*33772c1eSriastradhmovl   4(%rdx),%edx
91*33772c1eSriastradhmovq 472(%rsp),%rcx
92*33772c1eSriastradhmovl %ecx,80(%rsp)
93*33772c1eSriastradhmovl %r8d,4+80(%rsp)
94*33772c1eSriastradhmovl %eax,8+80(%rsp)
95*33772c1eSriastradhmovl %edx,12+80(%rsp)
96*33772c1eSriastradhmovl   12(%r10),%edx
97*33772c1eSriastradhshr  $32,%rcx
98*33772c1eSriastradhmovl   28(%r10),%r8d
99*33772c1eSriastradhmovl   8(%r10),%eax
100*33772c1eSriastradhmovl %edx,96(%rsp)
101*33772c1eSriastradhmovl %ecx,4+96(%rsp)
102*33772c1eSriastradhmovl %r8d,8+96(%rsp)
103*33772c1eSriastradhmovl %eax,12+96(%rsp)
104*33772c1eSriastradhmov  $1634760805,%rdx
105*33772c1eSriastradhmov  $857760878,%rcx
106*33772c1eSriastradhmov  $2036477234,%r8
107*33772c1eSriastradhmov  $1797285236,%rax
108*33772c1eSriastradhmovl %edx,112(%rsp)
109*33772c1eSriastradhmovl %ecx,4+112(%rsp)
110*33772c1eSriastradhmovl %r8d,8+112(%rsp)
111*33772c1eSriastradhmovl %eax,12+112(%rsp)
112*33772c1eSriastradhcmp  $256,%r9
113*33772c1eSriastradhjb ._bytesbetween1and255
114*33772c1eSriastradhmovdqa 112(%rsp),%xmm0
115*33772c1eSriastradhpshufd $0x55,%xmm0,%xmm1
116*33772c1eSriastradhpshufd $0xaa,%xmm0,%xmm2
117*33772c1eSriastradhpshufd $0xff,%xmm0,%xmm3
118*33772c1eSriastradhpshufd $0x00,%xmm0,%xmm0
119*33772c1eSriastradhmovdqa %xmm1,128(%rsp)
120*33772c1eSriastradhmovdqa %xmm2,144(%rsp)
121*33772c1eSriastradhmovdqa %xmm3,160(%rsp)
122*33772c1eSriastradhmovdqa %xmm0,176(%rsp)
123*33772c1eSriastradhmovdqa 64(%rsp),%xmm0
124*33772c1eSriastradhpshufd $0xaa,%xmm0,%xmm1
125*33772c1eSriastradhpshufd $0xff,%xmm0,%xmm2
126*33772c1eSriastradhpshufd $0x00,%xmm0,%xmm3
127*33772c1eSriastradhpshufd $0x55,%xmm0,%xmm0
128*33772c1eSriastradhmovdqa %xmm1,192(%rsp)
129*33772c1eSriastradhmovdqa %xmm2,208(%rsp)
130*33772c1eSriastradhmovdqa %xmm3,224(%rsp)
131*33772c1eSriastradhmovdqa %xmm0,240(%rsp)
132*33772c1eSriastradhmovdqa 80(%rsp),%xmm0
133*33772c1eSriastradhpshufd $0xff,%xmm0,%xmm1
134*33772c1eSriastradhpshufd $0x55,%xmm0,%xmm2
135*33772c1eSriastradhpshufd $0xaa,%xmm0,%xmm0
136*33772c1eSriastradhmovdqa %xmm1,256(%rsp)
137*33772c1eSriastradhmovdqa %xmm2,272(%rsp)
138*33772c1eSriastradhmovdqa %xmm0,288(%rsp)
139*33772c1eSriastradhmovdqa 96(%rsp),%xmm0
140*33772c1eSriastradhpshufd $0x00,%xmm0,%xmm1
141*33772c1eSriastradhpshufd $0xaa,%xmm0,%xmm2
142*33772c1eSriastradhpshufd $0xff,%xmm0,%xmm0
143*33772c1eSriastradhmovdqa %xmm1,304(%rsp)
144*33772c1eSriastradhmovdqa %xmm2,320(%rsp)
145*33772c1eSriastradhmovdqa %xmm0,336(%rsp)
146*33772c1eSriastradh
147*33772c1eSriastradh.p2align 4
148*33772c1eSriastradh._bytesatleast256:
149*33772c1eSriastradhmovq 472(%rsp),%rdx
150*33772c1eSriastradhmov  %rdx,%rcx
151*33772c1eSriastradhshr  $32,%rcx
152*33772c1eSriastradhmovl %edx,352(%rsp)
153*33772c1eSriastradhmovl %ecx,368(%rsp)
154*33772c1eSriastradhadd  $1,%rdx
155*33772c1eSriastradhmov  %rdx,%rcx
156*33772c1eSriastradhshr  $32,%rcx
157*33772c1eSriastradhmovl %edx,4+352(%rsp)
158*33772c1eSriastradhmovl %ecx,4+368(%rsp)
159*33772c1eSriastradhadd  $1,%rdx
160*33772c1eSriastradhmov  %rdx,%rcx
161*33772c1eSriastradhshr  $32,%rcx
162*33772c1eSriastradhmovl %edx,8+352(%rsp)
163*33772c1eSriastradhmovl %ecx,8+368(%rsp)
164*33772c1eSriastradhadd  $1,%rdx
165*33772c1eSriastradhmov  %rdx,%rcx
166*33772c1eSriastradhshr  $32,%rcx
167*33772c1eSriastradhmovl %edx,12+352(%rsp)
168*33772c1eSriastradhmovl %ecx,12+368(%rsp)
169*33772c1eSriastradhadd  $1,%rdx
170*33772c1eSriastradhmov  %rdx,%rcx
171*33772c1eSriastradhshr  $32,%rcx
172*33772c1eSriastradhmovl %edx,80(%rsp)
173*33772c1eSriastradhmovl %ecx,4+96(%rsp)
174*33772c1eSriastradhmovq %rdx,472(%rsp)
175*33772c1eSriastradhmovq %r9,480(%rsp)
176*33772c1eSriastradhmov  $20,%rdx
177*33772c1eSriastradhmovdqa 128(%rsp),%xmm0
178*33772c1eSriastradhmovdqa 144(%rsp),%xmm1
179*33772c1eSriastradhmovdqa 160(%rsp),%xmm2
180*33772c1eSriastradhmovdqa 320(%rsp),%xmm3
181*33772c1eSriastradhmovdqa 336(%rsp),%xmm4
182*33772c1eSriastradhmovdqa 192(%rsp),%xmm5
183*33772c1eSriastradhmovdqa 208(%rsp),%xmm6
184*33772c1eSriastradhmovdqa 240(%rsp),%xmm7
185*33772c1eSriastradhmovdqa 256(%rsp),%xmm8
186*33772c1eSriastradhmovdqa 272(%rsp),%xmm9
187*33772c1eSriastradhmovdqa 288(%rsp),%xmm10
188*33772c1eSriastradhmovdqa 368(%rsp),%xmm11
189*33772c1eSriastradhmovdqa 176(%rsp),%xmm12
190*33772c1eSriastradhmovdqa 224(%rsp),%xmm13
191*33772c1eSriastradhmovdqa 304(%rsp),%xmm14
192*33772c1eSriastradhmovdqa 352(%rsp),%xmm15
193*33772c1eSriastradh
194*33772c1eSriastradh.p2align 4
195*33772c1eSriastradh._mainloop1:
196*33772c1eSriastradhmovdqa %xmm1,384(%rsp)
197*33772c1eSriastradhmovdqa %xmm2,400(%rsp)
198*33772c1eSriastradhmovdqa %xmm13,%xmm1
199*33772c1eSriastradhpaddd %xmm12,%xmm1
200*33772c1eSriastradhmovdqa %xmm1,%xmm2
201*33772c1eSriastradhpslld $7,%xmm1
202*33772c1eSriastradhpxor  %xmm1,%xmm14
203*33772c1eSriastradhpsrld $25,%xmm2
204*33772c1eSriastradhpxor  %xmm2,%xmm14
205*33772c1eSriastradhmovdqa %xmm7,%xmm1
206*33772c1eSriastradhpaddd %xmm0,%xmm1
207*33772c1eSriastradhmovdqa %xmm1,%xmm2
208*33772c1eSriastradhpslld $7,%xmm1
209*33772c1eSriastradhpxor  %xmm1,%xmm11
210*33772c1eSriastradhpsrld $25,%xmm2
211*33772c1eSriastradhpxor  %xmm2,%xmm11
212*33772c1eSriastradhmovdqa %xmm12,%xmm1
213*33772c1eSriastradhpaddd %xmm14,%xmm1
214*33772c1eSriastradhmovdqa %xmm1,%xmm2
215*33772c1eSriastradhpslld $9,%xmm1
216*33772c1eSriastradhpxor  %xmm1,%xmm15
217*33772c1eSriastradhpsrld $23,%xmm2
218*33772c1eSriastradhpxor  %xmm2,%xmm15
219*33772c1eSriastradhmovdqa %xmm0,%xmm1
220*33772c1eSriastradhpaddd %xmm11,%xmm1
221*33772c1eSriastradhmovdqa %xmm1,%xmm2
222*33772c1eSriastradhpslld $9,%xmm1
223*33772c1eSriastradhpxor  %xmm1,%xmm9
224*33772c1eSriastradhpsrld $23,%xmm2
225*33772c1eSriastradhpxor  %xmm2,%xmm9
226*33772c1eSriastradhmovdqa %xmm14,%xmm1
227*33772c1eSriastradhpaddd %xmm15,%xmm1
228*33772c1eSriastradhmovdqa %xmm1,%xmm2
229*33772c1eSriastradhpslld $13,%xmm1
230*33772c1eSriastradhpxor  %xmm1,%xmm13
231*33772c1eSriastradhpsrld $19,%xmm2
232*33772c1eSriastradhpxor  %xmm2,%xmm13
233*33772c1eSriastradhmovdqa %xmm11,%xmm1
234*33772c1eSriastradhpaddd %xmm9,%xmm1
235*33772c1eSriastradhmovdqa %xmm1,%xmm2
236*33772c1eSriastradhpslld $13,%xmm1
237*33772c1eSriastradhpxor  %xmm1,%xmm7
238*33772c1eSriastradhpsrld $19,%xmm2
239*33772c1eSriastradhpxor  %xmm2,%xmm7
240*33772c1eSriastradhmovdqa %xmm15,%xmm1
241*33772c1eSriastradhpaddd %xmm13,%xmm1
242*33772c1eSriastradhmovdqa %xmm1,%xmm2
243*33772c1eSriastradhpslld $18,%xmm1
244*33772c1eSriastradhpxor  %xmm1,%xmm12
245*33772c1eSriastradhpsrld $14,%xmm2
246*33772c1eSriastradhpxor  %xmm2,%xmm12
247*33772c1eSriastradhmovdqa 384(%rsp),%xmm1
248*33772c1eSriastradhmovdqa %xmm12,384(%rsp)
249*33772c1eSriastradhmovdqa %xmm9,%xmm2
250*33772c1eSriastradhpaddd %xmm7,%xmm2
251*33772c1eSriastradhmovdqa %xmm2,%xmm12
252*33772c1eSriastradhpslld $18,%xmm2
253*33772c1eSriastradhpxor  %xmm2,%xmm0
254*33772c1eSriastradhpsrld $14,%xmm12
255*33772c1eSriastradhpxor  %xmm12,%xmm0
256*33772c1eSriastradhmovdqa %xmm5,%xmm2
257*33772c1eSriastradhpaddd %xmm1,%xmm2
258*33772c1eSriastradhmovdqa %xmm2,%xmm12
259*33772c1eSriastradhpslld $7,%xmm2
260*33772c1eSriastradhpxor  %xmm2,%xmm3
261*33772c1eSriastradhpsrld $25,%xmm12
262*33772c1eSriastradhpxor  %xmm12,%xmm3
263*33772c1eSriastradhmovdqa 400(%rsp),%xmm2
264*33772c1eSriastradhmovdqa %xmm0,400(%rsp)
265*33772c1eSriastradhmovdqa %xmm6,%xmm0
266*33772c1eSriastradhpaddd %xmm2,%xmm0
267*33772c1eSriastradhmovdqa %xmm0,%xmm12
268*33772c1eSriastradhpslld $7,%xmm0
269*33772c1eSriastradhpxor  %xmm0,%xmm4
270*33772c1eSriastradhpsrld $25,%xmm12
271*33772c1eSriastradhpxor  %xmm12,%xmm4
272*33772c1eSriastradhmovdqa %xmm1,%xmm0
273*33772c1eSriastradhpaddd %xmm3,%xmm0
274*33772c1eSriastradhmovdqa %xmm0,%xmm12
275*33772c1eSriastradhpslld $9,%xmm0
276*33772c1eSriastradhpxor  %xmm0,%xmm10
277*33772c1eSriastradhpsrld $23,%xmm12
278*33772c1eSriastradhpxor  %xmm12,%xmm10
279*33772c1eSriastradhmovdqa %xmm2,%xmm0
280*33772c1eSriastradhpaddd %xmm4,%xmm0
281*33772c1eSriastradhmovdqa %xmm0,%xmm12
282*33772c1eSriastradhpslld $9,%xmm0
283*33772c1eSriastradhpxor  %xmm0,%xmm8
284*33772c1eSriastradhpsrld $23,%xmm12
285*33772c1eSriastradhpxor  %xmm12,%xmm8
286*33772c1eSriastradhmovdqa %xmm3,%xmm0
287*33772c1eSriastradhpaddd %xmm10,%xmm0
288*33772c1eSriastradhmovdqa %xmm0,%xmm12
289*33772c1eSriastradhpslld $13,%xmm0
290*33772c1eSriastradhpxor  %xmm0,%xmm5
291*33772c1eSriastradhpsrld $19,%xmm12
292*33772c1eSriastradhpxor  %xmm12,%xmm5
293*33772c1eSriastradhmovdqa %xmm4,%xmm0
294*33772c1eSriastradhpaddd %xmm8,%xmm0
295*33772c1eSriastradhmovdqa %xmm0,%xmm12
296*33772c1eSriastradhpslld $13,%xmm0
297*33772c1eSriastradhpxor  %xmm0,%xmm6
298*33772c1eSriastradhpsrld $19,%xmm12
299*33772c1eSriastradhpxor  %xmm12,%xmm6
300*33772c1eSriastradhmovdqa %xmm10,%xmm0
301*33772c1eSriastradhpaddd %xmm5,%xmm0
302*33772c1eSriastradhmovdqa %xmm0,%xmm12
303*33772c1eSriastradhpslld $18,%xmm0
304*33772c1eSriastradhpxor  %xmm0,%xmm1
305*33772c1eSriastradhpsrld $14,%xmm12
306*33772c1eSriastradhpxor  %xmm12,%xmm1
307*33772c1eSriastradhmovdqa 384(%rsp),%xmm0
308*33772c1eSriastradhmovdqa %xmm1,384(%rsp)
309*33772c1eSriastradhmovdqa %xmm4,%xmm1
310*33772c1eSriastradhpaddd %xmm0,%xmm1
311*33772c1eSriastradhmovdqa %xmm1,%xmm12
312*33772c1eSriastradhpslld $7,%xmm1
313*33772c1eSriastradhpxor  %xmm1,%xmm7
314*33772c1eSriastradhpsrld $25,%xmm12
315*33772c1eSriastradhpxor  %xmm12,%xmm7
316*33772c1eSriastradhmovdqa %xmm8,%xmm1
317*33772c1eSriastradhpaddd %xmm6,%xmm1
318*33772c1eSriastradhmovdqa %xmm1,%xmm12
319*33772c1eSriastradhpslld $18,%xmm1
320*33772c1eSriastradhpxor  %xmm1,%xmm2
321*33772c1eSriastradhpsrld $14,%xmm12
322*33772c1eSriastradhpxor  %xmm12,%xmm2
323*33772c1eSriastradhmovdqa 400(%rsp),%xmm12
324*33772c1eSriastradhmovdqa %xmm2,400(%rsp)
325*33772c1eSriastradhmovdqa %xmm14,%xmm1
326*33772c1eSriastradhpaddd %xmm12,%xmm1
327*33772c1eSriastradhmovdqa %xmm1,%xmm2
328*33772c1eSriastradhpslld $7,%xmm1
329*33772c1eSriastradhpxor  %xmm1,%xmm5
330*33772c1eSriastradhpsrld $25,%xmm2
331*33772c1eSriastradhpxor  %xmm2,%xmm5
332*33772c1eSriastradhmovdqa %xmm0,%xmm1
333*33772c1eSriastradhpaddd %xmm7,%xmm1
334*33772c1eSriastradhmovdqa %xmm1,%xmm2
335*33772c1eSriastradhpslld $9,%xmm1
336*33772c1eSriastradhpxor  %xmm1,%xmm10
337*33772c1eSriastradhpsrld $23,%xmm2
338*33772c1eSriastradhpxor  %xmm2,%xmm10
339*33772c1eSriastradhmovdqa %xmm12,%xmm1
340*33772c1eSriastradhpaddd %xmm5,%xmm1
341*33772c1eSriastradhmovdqa %xmm1,%xmm2
342*33772c1eSriastradhpslld $9,%xmm1
343*33772c1eSriastradhpxor  %xmm1,%xmm8
344*33772c1eSriastradhpsrld $23,%xmm2
345*33772c1eSriastradhpxor  %xmm2,%xmm8
346*33772c1eSriastradhmovdqa %xmm7,%xmm1
347*33772c1eSriastradhpaddd %xmm10,%xmm1
348*33772c1eSriastradhmovdqa %xmm1,%xmm2
349*33772c1eSriastradhpslld $13,%xmm1
350*33772c1eSriastradhpxor  %xmm1,%xmm4
351*33772c1eSriastradhpsrld $19,%xmm2
352*33772c1eSriastradhpxor  %xmm2,%xmm4
353*33772c1eSriastradhmovdqa %xmm5,%xmm1
354*33772c1eSriastradhpaddd %xmm8,%xmm1
355*33772c1eSriastradhmovdqa %xmm1,%xmm2
356*33772c1eSriastradhpslld $13,%xmm1
357*33772c1eSriastradhpxor  %xmm1,%xmm14
358*33772c1eSriastradhpsrld $19,%xmm2
359*33772c1eSriastradhpxor  %xmm2,%xmm14
360*33772c1eSriastradhmovdqa %xmm10,%xmm1
361*33772c1eSriastradhpaddd %xmm4,%xmm1
362*33772c1eSriastradhmovdqa %xmm1,%xmm2
363*33772c1eSriastradhpslld $18,%xmm1
364*33772c1eSriastradhpxor  %xmm1,%xmm0
365*33772c1eSriastradhpsrld $14,%xmm2
366*33772c1eSriastradhpxor  %xmm2,%xmm0
367*33772c1eSriastradhmovdqa 384(%rsp),%xmm1
368*33772c1eSriastradhmovdqa %xmm0,384(%rsp)
369*33772c1eSriastradhmovdqa %xmm8,%xmm0
370*33772c1eSriastradhpaddd %xmm14,%xmm0
371*33772c1eSriastradhmovdqa %xmm0,%xmm2
372*33772c1eSriastradhpslld $18,%xmm0
373*33772c1eSriastradhpxor  %xmm0,%xmm12
374*33772c1eSriastradhpsrld $14,%xmm2
375*33772c1eSriastradhpxor  %xmm2,%xmm12
376*33772c1eSriastradhmovdqa %xmm11,%xmm0
377*33772c1eSriastradhpaddd %xmm1,%xmm0
378*33772c1eSriastradhmovdqa %xmm0,%xmm2
379*33772c1eSriastradhpslld $7,%xmm0
380*33772c1eSriastradhpxor  %xmm0,%xmm6
381*33772c1eSriastradhpsrld $25,%xmm2
382*33772c1eSriastradhpxor  %xmm2,%xmm6
383*33772c1eSriastradhmovdqa 400(%rsp),%xmm2
384*33772c1eSriastradhmovdqa %xmm12,400(%rsp)
385*33772c1eSriastradhmovdqa %xmm3,%xmm0
386*33772c1eSriastradhpaddd %xmm2,%xmm0
387*33772c1eSriastradhmovdqa %xmm0,%xmm12
388*33772c1eSriastradhpslld $7,%xmm0
389*33772c1eSriastradhpxor  %xmm0,%xmm13
390*33772c1eSriastradhpsrld $25,%xmm12
391*33772c1eSriastradhpxor  %xmm12,%xmm13
392*33772c1eSriastradhmovdqa %xmm1,%xmm0
393*33772c1eSriastradhpaddd %xmm6,%xmm0
394*33772c1eSriastradhmovdqa %xmm0,%xmm12
395*33772c1eSriastradhpslld $9,%xmm0
396*33772c1eSriastradhpxor  %xmm0,%xmm15
397*33772c1eSriastradhpsrld $23,%xmm12
398*33772c1eSriastradhpxor  %xmm12,%xmm15
399*33772c1eSriastradhmovdqa %xmm2,%xmm0
400*33772c1eSriastradhpaddd %xmm13,%xmm0
401*33772c1eSriastradhmovdqa %xmm0,%xmm12
402*33772c1eSriastradhpslld $9,%xmm0
403*33772c1eSriastradhpxor  %xmm0,%xmm9
404*33772c1eSriastradhpsrld $23,%xmm12
405*33772c1eSriastradhpxor  %xmm12,%xmm9
406*33772c1eSriastradhmovdqa %xmm6,%xmm0
407*33772c1eSriastradhpaddd %xmm15,%xmm0
408*33772c1eSriastradhmovdqa %xmm0,%xmm12
409*33772c1eSriastradhpslld $13,%xmm0
410*33772c1eSriastradhpxor  %xmm0,%xmm11
411*33772c1eSriastradhpsrld $19,%xmm12
412*33772c1eSriastradhpxor  %xmm12,%xmm11
413*33772c1eSriastradhmovdqa %xmm13,%xmm0
414*33772c1eSriastradhpaddd %xmm9,%xmm0
415*33772c1eSriastradhmovdqa %xmm0,%xmm12
416*33772c1eSriastradhpslld $13,%xmm0
417*33772c1eSriastradhpxor  %xmm0,%xmm3
418*33772c1eSriastradhpsrld $19,%xmm12
419*33772c1eSriastradhpxor  %xmm12,%xmm3
420*33772c1eSriastradhmovdqa %xmm15,%xmm0
421*33772c1eSriastradhpaddd %xmm11,%xmm0
422*33772c1eSriastradhmovdqa %xmm0,%xmm12
423*33772c1eSriastradhpslld $18,%xmm0
424*33772c1eSriastradhpxor  %xmm0,%xmm1
425*33772c1eSriastradhpsrld $14,%xmm12
426*33772c1eSriastradhpxor  %xmm12,%xmm1
427*33772c1eSriastradhmovdqa %xmm9,%xmm0
428*33772c1eSriastradhpaddd %xmm3,%xmm0
429*33772c1eSriastradhmovdqa %xmm0,%xmm12
430*33772c1eSriastradhpslld $18,%xmm0
431*33772c1eSriastradhpxor  %xmm0,%xmm2
432*33772c1eSriastradhpsrld $14,%xmm12
433*33772c1eSriastradhpxor  %xmm12,%xmm2
434*33772c1eSriastradhmovdqa 384(%rsp),%xmm12
435*33772c1eSriastradhmovdqa 400(%rsp),%xmm0
436*33772c1eSriastradhsub  $2,%rdx
437*33772c1eSriastradhja ._mainloop1
438*33772c1eSriastradh
439*33772c1eSriastradhpaddd 176(%rsp),%xmm12
440*33772c1eSriastradhpaddd 240(%rsp),%xmm7
441*33772c1eSriastradhpaddd 288(%rsp),%xmm10
442*33772c1eSriastradhpaddd 336(%rsp),%xmm4
443*33772c1eSriastradhmovd   %xmm12,%rdx
444*33772c1eSriastradhmovd   %xmm7,%rcx
445*33772c1eSriastradhmovd   %xmm10,%r8
446*33772c1eSriastradhmovd   %xmm4,%r9
447*33772c1eSriastradhpshufd $0x39,%xmm12,%xmm12
448*33772c1eSriastradhpshufd $0x39,%xmm7,%xmm7
449*33772c1eSriastradhpshufd $0x39,%xmm10,%xmm10
450*33772c1eSriastradhpshufd $0x39,%xmm4,%xmm4
451*33772c1eSriastradhxorl 0(%rsi),%edx
452*33772c1eSriastradhxorl 4(%rsi),%ecx
453*33772c1eSriastradhxorl 8(%rsi),%r8d
454*33772c1eSriastradhxorl 12(%rsi),%r9d
455*33772c1eSriastradhmovl   %edx,0(%rdi)
456*33772c1eSriastradhmovl   %ecx,4(%rdi)
457*33772c1eSriastradhmovl   %r8d,8(%rdi)
458*33772c1eSriastradhmovl   %r9d,12(%rdi)
459*33772c1eSriastradhmovd   %xmm12,%rdx
460*33772c1eSriastradhmovd   %xmm7,%rcx
461*33772c1eSriastradhmovd   %xmm10,%r8
462*33772c1eSriastradhmovd   %xmm4,%r9
463*33772c1eSriastradhpshufd $0x39,%xmm12,%xmm12
464*33772c1eSriastradhpshufd $0x39,%xmm7,%xmm7
465*33772c1eSriastradhpshufd $0x39,%xmm10,%xmm10
466*33772c1eSriastradhpshufd $0x39,%xmm4,%xmm4
467*33772c1eSriastradhxorl 64(%rsi),%edx
468*33772c1eSriastradhxorl 68(%rsi),%ecx
469*33772c1eSriastradhxorl 72(%rsi),%r8d
470*33772c1eSriastradhxorl 76(%rsi),%r9d
471*33772c1eSriastradhmovl   %edx,64(%rdi)
472*33772c1eSriastradhmovl   %ecx,68(%rdi)
473*33772c1eSriastradhmovl   %r8d,72(%rdi)
474*33772c1eSriastradhmovl   %r9d,76(%rdi)
475*33772c1eSriastradhmovd   %xmm12,%rdx
476*33772c1eSriastradhmovd   %xmm7,%rcx
477*33772c1eSriastradhmovd   %xmm10,%r8
478*33772c1eSriastradhmovd   %xmm4,%r9
479*33772c1eSriastradhpshufd $0x39,%xmm12,%xmm12
480*33772c1eSriastradhpshufd $0x39,%xmm7,%xmm7
481*33772c1eSriastradhpshufd $0x39,%xmm10,%xmm10
482*33772c1eSriastradhpshufd $0x39,%xmm4,%xmm4
483*33772c1eSriastradhxorl 128(%rsi),%edx
484*33772c1eSriastradhxorl 132(%rsi),%ecx
485*33772c1eSriastradhxorl 136(%rsi),%r8d
486*33772c1eSriastradhxorl 140(%rsi),%r9d
487*33772c1eSriastradhmovl   %edx,128(%rdi)
488*33772c1eSriastradhmovl   %ecx,132(%rdi)
489*33772c1eSriastradhmovl   %r8d,136(%rdi)
490*33772c1eSriastradhmovl   %r9d,140(%rdi)
491*33772c1eSriastradhmovd   %xmm12,%rdx
492*33772c1eSriastradhmovd   %xmm7,%rcx
493*33772c1eSriastradhmovd   %xmm10,%r8
494*33772c1eSriastradhmovd   %xmm4,%r9
495*33772c1eSriastradhxorl 192(%rsi),%edx
496*33772c1eSriastradhxorl 196(%rsi),%ecx
497*33772c1eSriastradhxorl 200(%rsi),%r8d
498*33772c1eSriastradhxorl 204(%rsi),%r9d
499*33772c1eSriastradhmovl   %edx,192(%rdi)
500*33772c1eSriastradhmovl   %ecx,196(%rdi)
501*33772c1eSriastradhmovl   %r8d,200(%rdi)
502*33772c1eSriastradhmovl   %r9d,204(%rdi)
503*33772c1eSriastradhpaddd 304(%rsp),%xmm14
504*33772c1eSriastradhpaddd 128(%rsp),%xmm0
505*33772c1eSriastradhpaddd 192(%rsp),%xmm5
506*33772c1eSriastradhpaddd 256(%rsp),%xmm8
507*33772c1eSriastradhmovd   %xmm14,%rdx
508*33772c1eSriastradhmovd   %xmm0,%rcx
509*33772c1eSriastradhmovd   %xmm5,%r8
510*33772c1eSriastradhmovd   %xmm8,%r9
511*33772c1eSriastradhpshufd $0x39,%xmm14,%xmm14
512*33772c1eSriastradhpshufd $0x39,%xmm0,%xmm0
513*33772c1eSriastradhpshufd $0x39,%xmm5,%xmm5
514*33772c1eSriastradhpshufd $0x39,%xmm8,%xmm8
515*33772c1eSriastradhxorl 16(%rsi),%edx
516*33772c1eSriastradhxorl 20(%rsi),%ecx
517*33772c1eSriastradhxorl 24(%rsi),%r8d
518*33772c1eSriastradhxorl 28(%rsi),%r9d
519*33772c1eSriastradhmovl   %edx,16(%rdi)
520*33772c1eSriastradhmovl   %ecx,20(%rdi)
521*33772c1eSriastradhmovl   %r8d,24(%rdi)
522*33772c1eSriastradhmovl   %r9d,28(%rdi)
523*33772c1eSriastradhmovd   %xmm14,%rdx
524*33772c1eSriastradhmovd   %xmm0,%rcx
525*33772c1eSriastradhmovd   %xmm5,%r8
526*33772c1eSriastradhmovd   %xmm8,%r9
527*33772c1eSriastradhpshufd $0x39,%xmm14,%xmm14
528*33772c1eSriastradhpshufd $0x39,%xmm0,%xmm0
529*33772c1eSriastradhpshufd $0x39,%xmm5,%xmm5
530*33772c1eSriastradhpshufd $0x39,%xmm8,%xmm8
531*33772c1eSriastradhxorl 80(%rsi),%edx
532*33772c1eSriastradhxorl 84(%rsi),%ecx
533*33772c1eSriastradhxorl 88(%rsi),%r8d
534*33772c1eSriastradhxorl 92(%rsi),%r9d
535*33772c1eSriastradhmovl   %edx,80(%rdi)
536*33772c1eSriastradhmovl   %ecx,84(%rdi)
537*33772c1eSriastradhmovl   %r8d,88(%rdi)
538*33772c1eSriastradhmovl   %r9d,92(%rdi)
539*33772c1eSriastradhmovd   %xmm14,%rdx
540*33772c1eSriastradhmovd   %xmm0,%rcx
541*33772c1eSriastradhmovd   %xmm5,%r8
542*33772c1eSriastradhmovd   %xmm8,%r9
543*33772c1eSriastradhpshufd $0x39,%xmm14,%xmm14
544*33772c1eSriastradhpshufd $0x39,%xmm0,%xmm0
545*33772c1eSriastradhpshufd $0x39,%xmm5,%xmm5
546*33772c1eSriastradhpshufd $0x39,%xmm8,%xmm8
547*33772c1eSriastradhxorl 144(%rsi),%edx
548*33772c1eSriastradhxorl 148(%rsi),%ecx
549*33772c1eSriastradhxorl 152(%rsi),%r8d
550*33772c1eSriastradhxorl 156(%rsi),%r9d
551*33772c1eSriastradhmovl   %edx,144(%rdi)
552*33772c1eSriastradhmovl   %ecx,148(%rdi)
553*33772c1eSriastradhmovl   %r8d,152(%rdi)
554*33772c1eSriastradhmovl   %r9d,156(%rdi)
555*33772c1eSriastradhmovd   %xmm14,%rdx
556*33772c1eSriastradhmovd   %xmm0,%rcx
557*33772c1eSriastradhmovd   %xmm5,%r8
558*33772c1eSriastradhmovd   %xmm8,%r9
559*33772c1eSriastradhxorl 208(%rsi),%edx
560*33772c1eSriastradhxorl 212(%rsi),%ecx
561*33772c1eSriastradhxorl 216(%rsi),%r8d
562*33772c1eSriastradhxorl 220(%rsi),%r9d
563*33772c1eSriastradhmovl   %edx,208(%rdi)
564*33772c1eSriastradhmovl   %ecx,212(%rdi)
565*33772c1eSriastradhmovl   %r8d,216(%rdi)
566*33772c1eSriastradhmovl   %r9d,220(%rdi)
567*33772c1eSriastradhpaddd 352(%rsp),%xmm15
568*33772c1eSriastradhpaddd 368(%rsp),%xmm11
569*33772c1eSriastradhpaddd 144(%rsp),%xmm1
570*33772c1eSriastradhpaddd 208(%rsp),%xmm6
571*33772c1eSriastradhmovd   %xmm15,%rdx
572*33772c1eSriastradhmovd   %xmm11,%rcx
573*33772c1eSriastradhmovd   %xmm1,%r8
574*33772c1eSriastradhmovd   %xmm6,%r9
575*33772c1eSriastradhpshufd $0x39,%xmm15,%xmm15
576*33772c1eSriastradhpshufd $0x39,%xmm11,%xmm11
577*33772c1eSriastradhpshufd $0x39,%xmm1,%xmm1
578*33772c1eSriastradhpshufd $0x39,%xmm6,%xmm6
579*33772c1eSriastradhxorl 32(%rsi),%edx
580*33772c1eSriastradhxorl 36(%rsi),%ecx
581*33772c1eSriastradhxorl 40(%rsi),%r8d
582*33772c1eSriastradhxorl 44(%rsi),%r9d
583*33772c1eSriastradhmovl   %edx,32(%rdi)
584*33772c1eSriastradhmovl   %ecx,36(%rdi)
585*33772c1eSriastradhmovl   %r8d,40(%rdi)
586*33772c1eSriastradhmovl   %r9d,44(%rdi)
587*33772c1eSriastradhmovd   %xmm15,%rdx
588*33772c1eSriastradhmovd   %xmm11,%rcx
589*33772c1eSriastradhmovd   %xmm1,%r8
590*33772c1eSriastradhmovd   %xmm6,%r9
591*33772c1eSriastradhpshufd $0x39,%xmm15,%xmm15
592*33772c1eSriastradhpshufd $0x39,%xmm11,%xmm11
593*33772c1eSriastradhpshufd $0x39,%xmm1,%xmm1
594*33772c1eSriastradhpshufd $0x39,%xmm6,%xmm6
595*33772c1eSriastradhxorl 96(%rsi),%edx
596*33772c1eSriastradhxorl 100(%rsi),%ecx
597*33772c1eSriastradhxorl 104(%rsi),%r8d
598*33772c1eSriastradhxorl 108(%rsi),%r9d
599*33772c1eSriastradhmovl   %edx,96(%rdi)
600*33772c1eSriastradhmovl   %ecx,100(%rdi)
601*33772c1eSriastradhmovl   %r8d,104(%rdi)
602*33772c1eSriastradhmovl   %r9d,108(%rdi)
603*33772c1eSriastradhmovd   %xmm15,%rdx
604*33772c1eSriastradhmovd   %xmm11,%rcx
605*33772c1eSriastradhmovd   %xmm1,%r8
606*33772c1eSriastradhmovd   %xmm6,%r9
607*33772c1eSriastradhpshufd $0x39,%xmm15,%xmm15
608*33772c1eSriastradhpshufd $0x39,%xmm11,%xmm11
609*33772c1eSriastradhpshufd $0x39,%xmm1,%xmm1
610*33772c1eSriastradhpshufd $0x39,%xmm6,%xmm6
611*33772c1eSriastradhxorl 160(%rsi),%edx
612*33772c1eSriastradhxorl 164(%rsi),%ecx
613*33772c1eSriastradhxorl 168(%rsi),%r8d
614*33772c1eSriastradhxorl 172(%rsi),%r9d
615*33772c1eSriastradhmovl   %edx,160(%rdi)
616*33772c1eSriastradhmovl   %ecx,164(%rdi)
617*33772c1eSriastradhmovl   %r8d,168(%rdi)
618*33772c1eSriastradhmovl   %r9d,172(%rdi)
619*33772c1eSriastradhmovd   %xmm15,%rdx
620*33772c1eSriastradhmovd   %xmm11,%rcx
621*33772c1eSriastradhmovd   %xmm1,%r8
622*33772c1eSriastradhmovd   %xmm6,%r9
623*33772c1eSriastradhxorl 224(%rsi),%edx
624*33772c1eSriastradhxorl 228(%rsi),%ecx
625*33772c1eSriastradhxorl 232(%rsi),%r8d
626*33772c1eSriastradhxorl 236(%rsi),%r9d
627*33772c1eSriastradhmovl   %edx,224(%rdi)
628*33772c1eSriastradhmovl   %ecx,228(%rdi)
629*33772c1eSriastradhmovl   %r8d,232(%rdi)
630*33772c1eSriastradhmovl   %r9d,236(%rdi)
631*33772c1eSriastradhpaddd 224(%rsp),%xmm13
632*33772c1eSriastradhpaddd 272(%rsp),%xmm9
633*33772c1eSriastradhpaddd 320(%rsp),%xmm3
634*33772c1eSriastradhpaddd 160(%rsp),%xmm2
635*33772c1eSriastradhmovd   %xmm13,%rdx
636*33772c1eSriastradhmovd   %xmm9,%rcx
637*33772c1eSriastradhmovd   %xmm3,%r8
638*33772c1eSriastradhmovd   %xmm2,%r9
639*33772c1eSriastradhpshufd $0x39,%xmm13,%xmm13
640*33772c1eSriastradhpshufd $0x39,%xmm9,%xmm9
641*33772c1eSriastradhpshufd $0x39,%xmm3,%xmm3
642*33772c1eSriastradhpshufd $0x39,%xmm2,%xmm2
643*33772c1eSriastradhxorl 48(%rsi),%edx
644*33772c1eSriastradhxorl 52(%rsi),%ecx
645*33772c1eSriastradhxorl 56(%rsi),%r8d
646*33772c1eSriastradhxorl 60(%rsi),%r9d
647*33772c1eSriastradhmovl   %edx,48(%rdi)
648*33772c1eSriastradhmovl   %ecx,52(%rdi)
649*33772c1eSriastradhmovl   %r8d,56(%rdi)
650*33772c1eSriastradhmovl   %r9d,60(%rdi)
651*33772c1eSriastradhmovd   %xmm13,%rdx
652*33772c1eSriastradhmovd   %xmm9,%rcx
653*33772c1eSriastradhmovd   %xmm3,%r8
654*33772c1eSriastradhmovd   %xmm2,%r9
655*33772c1eSriastradhpshufd $0x39,%xmm13,%xmm13
656*33772c1eSriastradhpshufd $0x39,%xmm9,%xmm9
657*33772c1eSriastradhpshufd $0x39,%xmm3,%xmm3
658*33772c1eSriastradhpshufd $0x39,%xmm2,%xmm2
659*33772c1eSriastradhxorl 112(%rsi),%edx
660*33772c1eSriastradhxorl 116(%rsi),%ecx
661*33772c1eSriastradhxorl 120(%rsi),%r8d
662*33772c1eSriastradhxorl 124(%rsi),%r9d
663*33772c1eSriastradhmovl   %edx,112(%rdi)
664*33772c1eSriastradhmovl   %ecx,116(%rdi)
665*33772c1eSriastradhmovl   %r8d,120(%rdi)
666*33772c1eSriastradhmovl   %r9d,124(%rdi)
667*33772c1eSriastradhmovd   %xmm13,%rdx
668*33772c1eSriastradhmovd   %xmm9,%rcx
669*33772c1eSriastradhmovd   %xmm3,%r8
670*33772c1eSriastradhmovd   %xmm2,%r9
671*33772c1eSriastradhpshufd $0x39,%xmm13,%xmm13
672*33772c1eSriastradhpshufd $0x39,%xmm9,%xmm9
673*33772c1eSriastradhpshufd $0x39,%xmm3,%xmm3
674*33772c1eSriastradhpshufd $0x39,%xmm2,%xmm2
675*33772c1eSriastradhxorl 176(%rsi),%edx
676*33772c1eSriastradhxorl 180(%rsi),%ecx
677*33772c1eSriastradhxorl 184(%rsi),%r8d
678*33772c1eSriastradhxorl 188(%rsi),%r9d
679*33772c1eSriastradhmovl   %edx,176(%rdi)
680*33772c1eSriastradhmovl   %ecx,180(%rdi)
681*33772c1eSriastradhmovl   %r8d,184(%rdi)
682*33772c1eSriastradhmovl   %r9d,188(%rdi)
683*33772c1eSriastradhmovd   %xmm13,%rdx
684*33772c1eSriastradhmovd   %xmm9,%rcx
685*33772c1eSriastradhmovd   %xmm3,%r8
686*33772c1eSriastradhmovd   %xmm2,%r9
687*33772c1eSriastradhxorl 240(%rsi),%edx
688*33772c1eSriastradhxorl 244(%rsi),%ecx
689*33772c1eSriastradhxorl 248(%rsi),%r8d
690*33772c1eSriastradhxorl 252(%rsi),%r9d
691*33772c1eSriastradhmovl   %edx,240(%rdi)
692*33772c1eSriastradhmovl   %ecx,244(%rdi)
693*33772c1eSriastradhmovl   %r8d,248(%rdi)
694*33772c1eSriastradhmovl   %r9d,252(%rdi)
695*33772c1eSriastradhmovq 480(%rsp),%r9
696*33772c1eSriastradhsub  $256,%r9
697*33772c1eSriastradhadd  $256,%rsi
698*33772c1eSriastradhadd  $256,%rdi
699*33772c1eSriastradhcmp  $256,%r9
700*33772c1eSriastradhjae ._bytesatleast256
701*33772c1eSriastradh
702*33772c1eSriastradhcmp  $0,%r9
703*33772c1eSriastradhjbe ._done
704*33772c1eSriastradh
705*33772c1eSriastradh._bytesbetween1and255:
706*33772c1eSriastradhcmp  $64,%r9
707*33772c1eSriastradhjae ._nocopy
708*33772c1eSriastradh
709*33772c1eSriastradhmov  %rdi,%rdx
710*33772c1eSriastradhleaq 0(%rsp),%rdi
711*33772c1eSriastradhmov  %r9,%rcx
712*33772c1eSriastradhrep movsb
713*33772c1eSriastradhleaq 0(%rsp),%rdi
714*33772c1eSriastradhleaq 0(%rsp),%rsi
715*33772c1eSriastradh
716*33772c1eSriastradh._nocopy:
717*33772c1eSriastradhmovq %r9,480(%rsp)
718*33772c1eSriastradhmovdqa 112(%rsp),%xmm0
719*33772c1eSriastradhmovdqa 64(%rsp),%xmm1
720*33772c1eSriastradhmovdqa 80(%rsp),%xmm2
721*33772c1eSriastradhmovdqa 96(%rsp),%xmm3
722*33772c1eSriastradhmovdqa %xmm1,%xmm4
723*33772c1eSriastradhmov  $20,%rcx
724*33772c1eSriastradh
725*33772c1eSriastradh.p2align 4
726*33772c1eSriastradh._mainloop2:
727*33772c1eSriastradhpaddd %xmm0,%xmm4
728*33772c1eSriastradhmovdqa %xmm0,%xmm5
729*33772c1eSriastradhmovdqa %xmm4,%xmm6
730*33772c1eSriastradhpslld $7,%xmm4
731*33772c1eSriastradhpsrld $25,%xmm6
732*33772c1eSriastradhpxor  %xmm4,%xmm3
733*33772c1eSriastradhpxor  %xmm6,%xmm3
734*33772c1eSriastradhpaddd %xmm3,%xmm5
735*33772c1eSriastradhmovdqa %xmm3,%xmm4
736*33772c1eSriastradhmovdqa %xmm5,%xmm6
737*33772c1eSriastradhpslld $9,%xmm5
738*33772c1eSriastradhpsrld $23,%xmm6
739*33772c1eSriastradhpxor  %xmm5,%xmm2
740*33772c1eSriastradhpshufd $0x93,%xmm3,%xmm3
741*33772c1eSriastradhpxor  %xmm6,%xmm2
742*33772c1eSriastradhpaddd %xmm2,%xmm4
743*33772c1eSriastradhmovdqa %xmm2,%xmm5
744*33772c1eSriastradhmovdqa %xmm4,%xmm6
745*33772c1eSriastradhpslld $13,%xmm4
746*33772c1eSriastradhpsrld $19,%xmm6
747*33772c1eSriastradhpxor  %xmm4,%xmm1
748*33772c1eSriastradhpshufd $0x4e,%xmm2,%xmm2
749*33772c1eSriastradhpxor  %xmm6,%xmm1
750*33772c1eSriastradhpaddd %xmm1,%xmm5
751*33772c1eSriastradhmovdqa %xmm3,%xmm4
752*33772c1eSriastradhmovdqa %xmm5,%xmm6
753*33772c1eSriastradhpslld $18,%xmm5
754*33772c1eSriastradhpsrld $14,%xmm6
755*33772c1eSriastradhpxor  %xmm5,%xmm0
756*33772c1eSriastradhpshufd $0x39,%xmm1,%xmm1
757*33772c1eSriastradhpxor  %xmm6,%xmm0
758*33772c1eSriastradhpaddd %xmm0,%xmm4
759*33772c1eSriastradhmovdqa %xmm0,%xmm5
760*33772c1eSriastradhmovdqa %xmm4,%xmm6
761*33772c1eSriastradhpslld $7,%xmm4
762*33772c1eSriastradhpsrld $25,%xmm6
763*33772c1eSriastradhpxor  %xmm4,%xmm1
764*33772c1eSriastradhpxor  %xmm6,%xmm1
765*33772c1eSriastradhpaddd %xmm1,%xmm5
766*33772c1eSriastradhmovdqa %xmm1,%xmm4
767*33772c1eSriastradhmovdqa %xmm5,%xmm6
768*33772c1eSriastradhpslld $9,%xmm5
769*33772c1eSriastradhpsrld $23,%xmm6
770*33772c1eSriastradhpxor  %xmm5,%xmm2
771*33772c1eSriastradhpshufd $0x93,%xmm1,%xmm1
772*33772c1eSriastradhpxor  %xmm6,%xmm2
773*33772c1eSriastradhpaddd %xmm2,%xmm4
774*33772c1eSriastradhmovdqa %xmm2,%xmm5
775*33772c1eSriastradhmovdqa %xmm4,%xmm6
776*33772c1eSriastradhpslld $13,%xmm4
777*33772c1eSriastradhpsrld $19,%xmm6
778*33772c1eSriastradhpxor  %xmm4,%xmm3
779*33772c1eSriastradhpshufd $0x4e,%xmm2,%xmm2
780*33772c1eSriastradhpxor  %xmm6,%xmm3
781*33772c1eSriastradhpaddd %xmm3,%xmm5
782*33772c1eSriastradhmovdqa %xmm1,%xmm4
783*33772c1eSriastradhmovdqa %xmm5,%xmm6
784*33772c1eSriastradhpslld $18,%xmm5
785*33772c1eSriastradhpsrld $14,%xmm6
786*33772c1eSriastradhpxor  %xmm5,%xmm0
787*33772c1eSriastradhpshufd $0x39,%xmm3,%xmm3
788*33772c1eSriastradhpxor  %xmm6,%xmm0
789*33772c1eSriastradhpaddd %xmm0,%xmm4
790*33772c1eSriastradhmovdqa %xmm0,%xmm5
791*33772c1eSriastradhmovdqa %xmm4,%xmm6
792*33772c1eSriastradhpslld $7,%xmm4
793*33772c1eSriastradhpsrld $25,%xmm6
794*33772c1eSriastradhpxor  %xmm4,%xmm3
795*33772c1eSriastradhpxor  %xmm6,%xmm3
796*33772c1eSriastradhpaddd %xmm3,%xmm5
797*33772c1eSriastradhmovdqa %xmm3,%xmm4
798*33772c1eSriastradhmovdqa %xmm5,%xmm6
799*33772c1eSriastradhpslld $9,%xmm5
800*33772c1eSriastradhpsrld $23,%xmm6
801*33772c1eSriastradhpxor  %xmm5,%xmm2
802*33772c1eSriastradhpshufd $0x93,%xmm3,%xmm3
803*33772c1eSriastradhpxor  %xmm6,%xmm2
804*33772c1eSriastradhpaddd %xmm2,%xmm4
805*33772c1eSriastradhmovdqa %xmm2,%xmm5
806*33772c1eSriastradhmovdqa %xmm4,%xmm6
807*33772c1eSriastradhpslld $13,%xmm4
808*33772c1eSriastradhpsrld $19,%xmm6
809*33772c1eSriastradhpxor  %xmm4,%xmm1
810*33772c1eSriastradhpshufd $0x4e,%xmm2,%xmm2
811*33772c1eSriastradhpxor  %xmm6,%xmm1
812*33772c1eSriastradhpaddd %xmm1,%xmm5
813*33772c1eSriastradhmovdqa %xmm3,%xmm4
814*33772c1eSriastradhmovdqa %xmm5,%xmm6
815*33772c1eSriastradhpslld $18,%xmm5
816*33772c1eSriastradhpsrld $14,%xmm6
817*33772c1eSriastradhpxor  %xmm5,%xmm0
818*33772c1eSriastradhpshufd $0x39,%xmm1,%xmm1
819*33772c1eSriastradhpxor  %xmm6,%xmm0
820*33772c1eSriastradhpaddd %xmm0,%xmm4
821*33772c1eSriastradhmovdqa %xmm0,%xmm5
822*33772c1eSriastradhmovdqa %xmm4,%xmm6
823*33772c1eSriastradhpslld $7,%xmm4
824*33772c1eSriastradhpsrld $25,%xmm6
825*33772c1eSriastradhpxor  %xmm4,%xmm1
826*33772c1eSriastradhpxor  %xmm6,%xmm1
827*33772c1eSriastradhpaddd %xmm1,%xmm5
828*33772c1eSriastradhmovdqa %xmm1,%xmm4
829*33772c1eSriastradhmovdqa %xmm5,%xmm6
830*33772c1eSriastradhpslld $9,%xmm5
831*33772c1eSriastradhpsrld $23,%xmm6
832*33772c1eSriastradhpxor  %xmm5,%xmm2
833*33772c1eSriastradhpshufd $0x93,%xmm1,%xmm1
834*33772c1eSriastradhpxor  %xmm6,%xmm2
835*33772c1eSriastradhpaddd %xmm2,%xmm4
836*33772c1eSriastradhmovdqa %xmm2,%xmm5
837*33772c1eSriastradhmovdqa %xmm4,%xmm6
838*33772c1eSriastradhpslld $13,%xmm4
839*33772c1eSriastradhpsrld $19,%xmm6
840*33772c1eSriastradhpxor  %xmm4,%xmm3
841*33772c1eSriastradhpshufd $0x4e,%xmm2,%xmm2
842*33772c1eSriastradhpxor  %xmm6,%xmm3
843*33772c1eSriastradhsub  $4,%rcx
844*33772c1eSriastradhpaddd %xmm3,%xmm5
845*33772c1eSriastradhmovdqa %xmm1,%xmm4
846*33772c1eSriastradhmovdqa %xmm5,%xmm6
847*33772c1eSriastradhpslld $18,%xmm5
848*33772c1eSriastradhpxor   %xmm7,%xmm7
849*33772c1eSriastradhpsrld $14,%xmm6
850*33772c1eSriastradhpxor  %xmm5,%xmm0
851*33772c1eSriastradhpshufd $0x39,%xmm3,%xmm3
852*33772c1eSriastradhpxor  %xmm6,%xmm0
853*33772c1eSriastradhja ._mainloop2
854*33772c1eSriastradh
855*33772c1eSriastradhpaddd 112(%rsp),%xmm0
856*33772c1eSriastradhpaddd 64(%rsp),%xmm1
857*33772c1eSriastradhpaddd 80(%rsp),%xmm2
858*33772c1eSriastradhpaddd 96(%rsp),%xmm3
859*33772c1eSriastradhmovd   %xmm0,%rcx
860*33772c1eSriastradhmovd   %xmm1,%r8
861*33772c1eSriastradhmovd   %xmm2,%r9
862*33772c1eSriastradhmovd   %xmm3,%rax
863*33772c1eSriastradhpshufd $0x39,%xmm0,%xmm0
864*33772c1eSriastradhpshufd $0x39,%xmm1,%xmm1
865*33772c1eSriastradhpshufd $0x39,%xmm2,%xmm2
866*33772c1eSriastradhpshufd $0x39,%xmm3,%xmm3
867*33772c1eSriastradhxorl 0(%rsi),%ecx
868*33772c1eSriastradhxorl 48(%rsi),%r8d
869*33772c1eSriastradhxorl 32(%rsi),%r9d
870*33772c1eSriastradhxorl 16(%rsi),%eax
871*33772c1eSriastradhmovl   %ecx,0(%rdi)
872*33772c1eSriastradhmovl   %r8d,48(%rdi)
873*33772c1eSriastradhmovl   %r9d,32(%rdi)
874*33772c1eSriastradhmovl   %eax,16(%rdi)
875*33772c1eSriastradhmovd   %xmm0,%rcx
876*33772c1eSriastradhmovd   %xmm1,%r8
877*33772c1eSriastradhmovd   %xmm2,%r9
878*33772c1eSriastradhmovd   %xmm3,%rax
879*33772c1eSriastradhpshufd $0x39,%xmm0,%xmm0
880*33772c1eSriastradhpshufd $0x39,%xmm1,%xmm1
881*33772c1eSriastradhpshufd $0x39,%xmm2,%xmm2
882*33772c1eSriastradhpshufd $0x39,%xmm3,%xmm3
883*33772c1eSriastradhxorl 20(%rsi),%ecx
884*33772c1eSriastradhxorl 4(%rsi),%r8d
885*33772c1eSriastradhxorl 52(%rsi),%r9d
886*33772c1eSriastradhxorl 36(%rsi),%eax
887*33772c1eSriastradhmovl   %ecx,20(%rdi)
888*33772c1eSriastradhmovl   %r8d,4(%rdi)
889*33772c1eSriastradhmovl   %r9d,52(%rdi)
890*33772c1eSriastradhmovl   %eax,36(%rdi)
891*33772c1eSriastradhmovd   %xmm0,%rcx
892*33772c1eSriastradhmovd   %xmm1,%r8
893*33772c1eSriastradhmovd   %xmm2,%r9
894*33772c1eSriastradhmovd   %xmm3,%rax
895*33772c1eSriastradhpshufd $0x39,%xmm0,%xmm0
896*33772c1eSriastradhpshufd $0x39,%xmm1,%xmm1
897*33772c1eSriastradhpshufd $0x39,%xmm2,%xmm2
898*33772c1eSriastradhpshufd $0x39,%xmm3,%xmm3
899*33772c1eSriastradhxorl 40(%rsi),%ecx
900*33772c1eSriastradhxorl 24(%rsi),%r8d
901*33772c1eSriastradhxorl 8(%rsi),%r9d
902*33772c1eSriastradhxorl 56(%rsi),%eax
903*33772c1eSriastradhmovl   %ecx,40(%rdi)
904*33772c1eSriastradhmovl   %r8d,24(%rdi)
905*33772c1eSriastradhmovl   %r9d,8(%rdi)
906*33772c1eSriastradhmovl   %eax,56(%rdi)
907*33772c1eSriastradhmovd   %xmm0,%rcx
908*33772c1eSriastradhmovd   %xmm1,%r8
909*33772c1eSriastradhmovd   %xmm2,%r9
910*33772c1eSriastradhmovd   %xmm3,%rax
911*33772c1eSriastradhxorl 60(%rsi),%ecx
912*33772c1eSriastradhxorl 44(%rsi),%r8d
913*33772c1eSriastradhxorl 28(%rsi),%r9d
914*33772c1eSriastradhxorl 12(%rsi),%eax
915*33772c1eSriastradhmovl   %ecx,60(%rdi)
916*33772c1eSriastradhmovl   %r8d,44(%rdi)
917*33772c1eSriastradhmovl   %r9d,28(%rdi)
918*33772c1eSriastradhmovl   %eax,12(%rdi)
919*33772c1eSriastradhmovq 480(%rsp),%r9
920*33772c1eSriastradhmovq 472(%rsp),%rcx
921*33772c1eSriastradhadd  $1,%rcx
922*33772c1eSriastradhmov  %rcx,%r8
923*33772c1eSriastradhshr  $32,%r8
924*33772c1eSriastradhmovl %ecx,80(%rsp)
925*33772c1eSriastradhmovl %r8d,4+96(%rsp)
926*33772c1eSriastradhmovq %rcx,472(%rsp)
927*33772c1eSriastradhcmp  $64,%r9
928*33772c1eSriastradhja ._bytesatleast65
929*33772c1eSriastradhjae ._bytesatleast64
930*33772c1eSriastradh
931*33772c1eSriastradhmov  %rdi,%rsi
932*33772c1eSriastradhmov  %rdx,%rdi
933*33772c1eSriastradhmov  %r9,%rcx
934*33772c1eSriastradhrep movsb
935*33772c1eSriastradh
936*33772c1eSriastradh._bytesatleast64:
937*33772c1eSriastradh._done:
938*33772c1eSriastradhmovq 416(%rsp),%r11
939*33772c1eSriastradhmovq 424(%rsp),%r12
940*33772c1eSriastradhmovq 432(%rsp),%r13
941*33772c1eSriastradhmovq 440(%rsp),%r14
942*33772c1eSriastradhmovq 448(%rsp),%r15
943*33772c1eSriastradhmovq 456(%rsp),%rbx
944*33772c1eSriastradhmovq 464(%rsp),%rbp
945*33772c1eSriastradhadd %r11,%rsp
946*33772c1eSriastradhxor %rax,%rax
947*33772c1eSriastradhmov %rsi,%rdx
948*33772c1eSriastradhret
949*33772c1eSriastradh
950*33772c1eSriastradh._bytesatleast65:
951*33772c1eSriastradhsub  $64,%r9
952*33772c1eSriastradhadd  $64,%rdi
953*33772c1eSriastradhadd  $64,%rsi
954*33772c1eSriastradhjmp ._bytesbetween1and255
955*33772c1eSriastradh
956*33772c1eSriastradh#endif
957*33772c1eSriastradh
958*33772c1eSriastradh#if defined(__linux__) && defined(__ELF__)
959*33772c1eSriastradh.section .note.GNU-stack,"",%progbits
960*33772c1eSriastradh#endif
961