Text file
src/crypto/sha1/sha1block_amd64.s
1 // Code generated by command: go run sha1block_amd64_asm.go -out ../sha1block_amd64.s -pkg sha1. DO NOT EDIT.
2
3 //go:build !purego
4
5 #include "textflag.h"
6
7 // func blockAMD64(dig *digest, p []byte)
8 TEXT ·blockAMD64(SB), NOSPLIT, $64-32
9 MOVQ dig+0(FP), BP
10 MOVQ p_base+8(FP), SI
11 MOVQ p_len+16(FP), DX
12 SHRQ $0x06, DX
13 SHLQ $0x06, DX
14 LEAQ (SI)(DX*1), DI
15 MOVL (BP), AX
16 MOVL 4(BP), BX
17 MOVL 8(BP), CX
18 MOVL 12(BP), DX
19 MOVL 16(BP), BP
20 CMPQ SI, DI
21 JEQ end
22
23 loop:
24 MOVL AX, R11
25 MOVL BX, R12
26 MOVL CX, R13
27 MOVL DX, R14
28 MOVL BP, R15
29 MOVL (SI), R10
30 BSWAPL R10
31 MOVL R10, (SP)
32 MOVL DX, R9
33 XORL CX, R9
34 ANDL BX, R9
35 XORL DX, R9
36 ROLL $0x1e, BX
37 ADDL R9, BP
38 MOVL AX, R8
39 ROLL $0x05, R8
40 LEAL 1518500249(BP)(R10*1), BP
41 ADDL R8, BP
42 MOVL 4(SI), R10
43 BSWAPL R10
44 MOVL R10, 4(SP)
45 MOVL CX, R9
46 XORL BX, R9
47 ANDL AX, R9
48 XORL CX, R9
49 ROLL $0x1e, AX
50 ADDL R9, DX
51 MOVL BP, R8
52 ROLL $0x05, R8
53 LEAL 1518500249(DX)(R10*1), DX
54 ADDL R8, DX
55 MOVL 8(SI), R10
56 BSWAPL R10
57 MOVL R10, 8(SP)
58 MOVL BX, R9
59 XORL AX, R9
60 ANDL BP, R9
61 XORL BX, R9
62 ROLL $0x1e, BP
63 ADDL R9, CX
64 MOVL DX, R8
65 ROLL $0x05, R8
66 LEAL 1518500249(CX)(R10*1), CX
67 ADDL R8, CX
68 MOVL 12(SI), R10
69 BSWAPL R10
70 MOVL R10, 12(SP)
71 MOVL AX, R9
72 XORL BP, R9
73 ANDL DX, R9
74 XORL AX, R9
75 ROLL $0x1e, DX
76 ADDL R9, BX
77 MOVL CX, R8
78 ROLL $0x05, R8
79 LEAL 1518500249(BX)(R10*1), BX
80 ADDL R8, BX
81 MOVL 16(SI), R10
82 BSWAPL R10
83 MOVL R10, 16(SP)
84 MOVL BP, R9
85 XORL DX, R9
86 ANDL CX, R9
87 XORL BP, R9
88 ROLL $0x1e, CX
89 ADDL R9, AX
90 MOVL BX, R8
91 ROLL $0x05, R8
92 LEAL 1518500249(AX)(R10*1), AX
93 ADDL R8, AX
94 MOVL 20(SI), R10
95 BSWAPL R10
96 MOVL R10, 20(SP)
97 MOVL DX, R9
98 XORL CX, R9
99 ANDL BX, R9
100 XORL DX, R9
101 ROLL $0x1e, BX
102 ADDL R9, BP
103 MOVL AX, R8
104 ROLL $0x05, R8
105 LEAL 1518500249(BP)(R10*1), BP
106 ADDL R8, BP
107 MOVL 24(SI), R10
108 BSWAPL R10
109 MOVL R10, 24(SP)
110 MOVL CX, R9
111 XORL BX, R9
112 ANDL AX, R9
113 XORL CX, R9
114 ROLL $0x1e, AX
115 ADDL R9, DX
116 MOVL BP, R8
117 ROLL $0x05, R8
118 LEAL 1518500249(DX)(R10*1), DX
119 ADDL R8, DX
120 MOVL 28(SI), R10
121 BSWAPL R10
122 MOVL R10, 28(SP)
123 MOVL BX, R9
124 XORL AX, R9
125 ANDL BP, R9
126 XORL BX, R9
127 ROLL $0x1e, BP
128 ADDL R9, CX
129 MOVL DX, R8
130 ROLL $0x05, R8
131 LEAL 1518500249(CX)(R10*1), CX
132 ADDL R8, CX
133 MOVL 32(SI), R10
134 BSWAPL R10
135 MOVL R10, 32(SP)
136 MOVL AX, R9
137 XORL BP, R9
138 ANDL DX, R9
139 XORL AX, R9
140 ROLL $0x1e, DX
141 ADDL R9, BX
142 MOVL CX, R8
143 ROLL $0x05, R8
144 LEAL 1518500249(BX)(R10*1), BX
145 ADDL R8, BX
146 MOVL 36(SI), R10
147 BSWAPL R10
148 MOVL R10, 36(SP)
149 MOVL BP, R9
150 XORL DX, R9
151 ANDL CX, R9
152 XORL BP, R9
153 ROLL $0x1e, CX
154 ADDL R9, AX
155 MOVL BX, R8
156 ROLL $0x05, R8
157 LEAL 1518500249(AX)(R10*1), AX
158 ADDL R8, AX
159 MOVL 40(SI), R10
160 BSWAPL R10
161 MOVL R10, 40(SP)
162 MOVL DX, R9
163 XORL CX, R9
164 ANDL BX, R9
165 XORL DX, R9
166 ROLL $0x1e, BX
167 ADDL R9, BP
168 MOVL AX, R8
169 ROLL $0x05, R8
170 LEAL 1518500249(BP)(R10*1), BP
171 ADDL R8, BP
172 MOVL 44(SI), R10
173 BSWAPL R10
174 MOVL R10, 44(SP)
175 MOVL CX, R9
176 XORL BX, R9
177 ANDL AX, R9
178 XORL CX, R9
179 ROLL $0x1e, AX
180 ADDL R9, DX
181 MOVL BP, R8
182 ROLL $0x05, R8
183 LEAL 1518500249(DX)(R10*1), DX
184 ADDL R8, DX
185 MOVL 48(SI), R10
186 BSWAPL R10
187 MOVL R10, 48(SP)
188 MOVL BX, R9
189 XORL AX, R9
190 ANDL BP, R9
191 XORL BX, R9
192 ROLL $0x1e, BP
193 ADDL R9, CX
194 MOVL DX, R8
195 ROLL $0x05, R8
196 LEAL 1518500249(CX)(R10*1), CX
197 ADDL R8, CX
198 MOVL 52(SI), R10
199 BSWAPL R10
200 MOVL R10, 52(SP)
201 MOVL AX, R9
202 XORL BP, R9
203 ANDL DX, R9
204 XORL AX, R9
205 ROLL $0x1e, DX
206 ADDL R9, BX
207 MOVL CX, R8
208 ROLL $0x05, R8
209 LEAL 1518500249(BX)(R10*1), BX
210 ADDL R8, BX
211 MOVL 56(SI), R10
212 BSWAPL R10
213 MOVL R10, 56(SP)
214 MOVL BP, R9
215 XORL DX, R9
216 ANDL CX, R9
217 XORL BP, R9
218 ROLL $0x1e, CX
219 ADDL R9, AX
220 MOVL BX, R8
221 ROLL $0x05, R8
222 LEAL 1518500249(AX)(R10*1), AX
223 ADDL R8, AX
224 MOVL 60(SI), R10
225 BSWAPL R10
226 MOVL R10, 60(SP)
227 MOVL DX, R9
228 XORL CX, R9
229 ANDL BX, R9
230 XORL DX, R9
231 ROLL $0x1e, BX
232 ADDL R9, BP
233 MOVL AX, R8
234 ROLL $0x05, R8
235 LEAL 1518500249(BP)(R10*1), BP
236 ADDL R8, BP
237 MOVL (SP), R10
238 XORL 52(SP), R10
239 XORL 32(SP), R10
240 XORL 8(SP), R10
241 ROLL $0x01, R10
242 MOVL R10, (SP)
243 MOVL CX, R9
244 XORL BX, R9
245 ANDL AX, R9
246 XORL CX, R9
247 ROLL $0x1e, AX
248 ADDL R9, DX
249 MOVL BP, R8
250 ROLL $0x05, R8
251 LEAL 1518500249(DX)(R10*1), DX
252 ADDL R8, DX
253 MOVL 4(SP), R10
254 XORL 56(SP), R10
255 XORL 36(SP), R10
256 XORL 12(SP), R10
257 ROLL $0x01, R10
258 MOVL R10, 4(SP)
259 MOVL BX, R9
260 XORL AX, R9
261 ANDL BP, R9
262 XORL BX, R9
263 ROLL $0x1e, BP
264 ADDL R9, CX
265 MOVL DX, R8
266 ROLL $0x05, R8
267 LEAL 1518500249(CX)(R10*1), CX
268 ADDL R8, CX
269 MOVL 8(SP), R10
270 XORL 60(SP), R10
271 XORL 40(SP), R10
272 XORL 16(SP), R10
273 ROLL $0x01, R10
274 MOVL R10, 8(SP)
275 MOVL AX, R9
276 XORL BP, R9
277 ANDL DX, R9
278 XORL AX, R9
279 ROLL $0x1e, DX
280 ADDL R9, BX
281 MOVL CX, R8
282 ROLL $0x05, R8
283 LEAL 1518500249(BX)(R10*1), BX
284 ADDL R8, BX
285 MOVL 12(SP), R10
286 XORL (SP), R10
287 XORL 44(SP), R10
288 XORL 20(SP), R10
289 ROLL $0x01, R10
290 MOVL R10, 12(SP)
291 MOVL BP, R9
292 XORL DX, R9
293 ANDL CX, R9
294 XORL BP, R9
295 ROLL $0x1e, CX
296 ADDL R9, AX
297 MOVL BX, R8
298 ROLL $0x05, R8
299 LEAL 1518500249(AX)(R10*1), AX
300 ADDL R8, AX
301 MOVL 16(SP), R10
302 XORL 4(SP), R10
303 XORL 48(SP), R10
304 XORL 24(SP), R10
305 ROLL $0x01, R10
306 MOVL R10, 16(SP)
307 MOVL BX, R9
308 XORL CX, R9
309 XORL DX, R9
310 ROLL $0x1e, BX
311 ADDL R9, BP
312 MOVL AX, R8
313 ROLL $0x05, R8
314 LEAL 1859775393(BP)(R10*1), BP
315 ADDL R8, BP
316 MOVL 20(SP), R10
317 XORL 8(SP), R10
318 XORL 52(SP), R10
319 XORL 28(SP), R10
320 ROLL $0x01, R10
321 MOVL R10, 20(SP)
322 MOVL AX, R9
323 XORL BX, R9
324 XORL CX, R9
325 ROLL $0x1e, AX
326 ADDL R9, DX
327 MOVL BP, R8
328 ROLL $0x05, R8
329 LEAL 1859775393(DX)(R10*1), DX
330 ADDL R8, DX
331 MOVL 24(SP), R10
332 XORL 12(SP), R10
333 XORL 56(SP), R10
334 XORL 32(SP), R10
335 ROLL $0x01, R10
336 MOVL R10, 24(SP)
337 MOVL BP, R9
338 XORL AX, R9
339 XORL BX, R9
340 ROLL $0x1e, BP
341 ADDL R9, CX
342 MOVL DX, R8
343 ROLL $0x05, R8
344 LEAL 1859775393(CX)(R10*1), CX
345 ADDL R8, CX
346 MOVL 28(SP), R10
347 XORL 16(SP), R10
348 XORL 60(SP), R10
349 XORL 36(SP), R10
350 ROLL $0x01, R10
351 MOVL R10, 28(SP)
352 MOVL DX, R9
353 XORL BP, R9
354 XORL AX, R9
355 ROLL $0x1e, DX
356 ADDL R9, BX
357 MOVL CX, R8
358 ROLL $0x05, R8
359 LEAL 1859775393(BX)(R10*1), BX
360 ADDL R8, BX
361 MOVL 32(SP), R10
362 XORL 20(SP), R10
363 XORL (SP), R10
364 XORL 40(SP), R10
365 ROLL $0x01, R10
366 MOVL R10, 32(SP)
367 MOVL CX, R9
368 XORL DX, R9
369 XORL BP, R9
370 ROLL $0x1e, CX
371 ADDL R9, AX
372 MOVL BX, R8
373 ROLL $0x05, R8
374 LEAL 1859775393(AX)(R10*1), AX
375 ADDL R8, AX
376 MOVL 36(SP), R10
377 XORL 24(SP), R10
378 XORL 4(SP), R10
379 XORL 44(SP), R10
380 ROLL $0x01, R10
381 MOVL R10, 36(SP)
382 MOVL BX, R9
383 XORL CX, R9
384 XORL DX, R9
385 ROLL $0x1e, BX
386 ADDL R9, BP
387 MOVL AX, R8
388 ROLL $0x05, R8
389 LEAL 1859775393(BP)(R10*1), BP
390 ADDL R8, BP
391 MOVL 40(SP), R10
392 XORL 28(SP), R10
393 XORL 8(SP), R10
394 XORL 48(SP), R10
395 ROLL $0x01, R10
396 MOVL R10, 40(SP)
397 MOVL AX, R9
398 XORL BX, R9
399 XORL CX, R9
400 ROLL $0x1e, AX
401 ADDL R9, DX
402 MOVL BP, R8
403 ROLL $0x05, R8
404 LEAL 1859775393(DX)(R10*1), DX
405 ADDL R8, DX
406 MOVL 44(SP), R10
407 XORL 32(SP), R10
408 XORL 12(SP), R10
409 XORL 52(SP), R10
410 ROLL $0x01, R10
411 MOVL R10, 44(SP)
412 MOVL BP, R9
413 XORL AX, R9
414 XORL BX, R9
415 ROLL $0x1e, BP
416 ADDL R9, CX
417 MOVL DX, R8
418 ROLL $0x05, R8
419 LEAL 1859775393(CX)(R10*1), CX
420 ADDL R8, CX
421 MOVL 48(SP), R10
422 XORL 36(SP), R10
423 XORL 16(SP), R10
424 XORL 56(SP), R10
425 ROLL $0x01, R10
426 MOVL R10, 48(SP)
427 MOVL DX, R9
428 XORL BP, R9
429 XORL AX, R9
430 ROLL $0x1e, DX
431 ADDL R9, BX
432 MOVL CX, R8
433 ROLL $0x05, R8
434 LEAL 1859775393(BX)(R10*1), BX
435 ADDL R8, BX
436 MOVL 52(SP), R10
437 XORL 40(SP), R10
438 XORL 20(SP), R10
439 XORL 60(SP), R10
440 ROLL $0x01, R10
441 MOVL R10, 52(SP)
442 MOVL CX, R9
443 XORL DX, R9
444 XORL BP, R9
445 ROLL $0x1e, CX
446 ADDL R9, AX
447 MOVL BX, R8
448 ROLL $0x05, R8
449 LEAL 1859775393(AX)(R10*1), AX
450 ADDL R8, AX
451 MOVL 56(SP), R10
452 XORL 44(SP), R10
453 XORL 24(SP), R10
454 XORL (SP), R10
455 ROLL $0x01, R10
456 MOVL R10, 56(SP)
457 MOVL BX, R9
458 XORL CX, R9
459 XORL DX, R9
460 ROLL $0x1e, BX
461 ADDL R9, BP
462 MOVL AX, R8
463 ROLL $0x05, R8
464 LEAL 1859775393(BP)(R10*1), BP
465 ADDL R8, BP
466 MOVL 60(SP), R10
467 XORL 48(SP), R10
468 XORL 28(SP), R10
469 XORL 4(SP), R10
470 ROLL $0x01, R10
471 MOVL R10, 60(SP)
472 MOVL AX, R9
473 XORL BX, R9
474 XORL CX, R9
475 ROLL $0x1e, AX
476 ADDL R9, DX
477 MOVL BP, R8
478 ROLL $0x05, R8
479 LEAL 1859775393(DX)(R10*1), DX
480 ADDL R8, DX
481 MOVL (SP), R10
482 XORL 52(SP), R10
483 XORL 32(SP), R10
484 XORL 8(SP), R10
485 ROLL $0x01, R10
486 MOVL R10, (SP)
487 MOVL BP, R9
488 XORL AX, R9
489 XORL BX, R9
490 ROLL $0x1e, BP
491 ADDL R9, CX
492 MOVL DX, R8
493 ROLL $0x05, R8
494 LEAL 1859775393(CX)(R10*1), CX
495 ADDL R8, CX
496 MOVL 4(SP), R10
497 XORL 56(SP), R10
498 XORL 36(SP), R10
499 XORL 12(SP), R10
500 ROLL $0x01, R10
501 MOVL R10, 4(SP)
502 MOVL DX, R9
503 XORL BP, R9
504 XORL AX, R9
505 ROLL $0x1e, DX
506 ADDL R9, BX
507 MOVL CX, R8
508 ROLL $0x05, R8
509 LEAL 1859775393(BX)(R10*1), BX
510 ADDL R8, BX
511 MOVL 8(SP), R10
512 XORL 60(SP), R10
513 XORL 40(SP), R10
514 XORL 16(SP), R10
515 ROLL $0x01, R10
516 MOVL R10, 8(SP)
517 MOVL CX, R9
518 XORL DX, R9
519 XORL BP, R9
520 ROLL $0x1e, CX
521 ADDL R9, AX
522 MOVL BX, R8
523 ROLL $0x05, R8
524 LEAL 1859775393(AX)(R10*1), AX
525 ADDL R8, AX
526 MOVL 12(SP), R10
527 XORL (SP), R10
528 XORL 44(SP), R10
529 XORL 20(SP), R10
530 ROLL $0x01, R10
531 MOVL R10, 12(SP)
532 MOVL BX, R9
533 XORL CX, R9
534 XORL DX, R9
535 ROLL $0x1e, BX
536 ADDL R9, BP
537 MOVL AX, R8
538 ROLL $0x05, R8
539 LEAL 1859775393(BP)(R10*1), BP
540 ADDL R8, BP
541 MOVL 16(SP), R10
542 XORL 4(SP), R10
543 XORL 48(SP), R10
544 XORL 24(SP), R10
545 ROLL $0x01, R10
546 MOVL R10, 16(SP)
547 MOVL AX, R9
548 XORL BX, R9
549 XORL CX, R9
550 ROLL $0x1e, AX
551 ADDL R9, DX
552 MOVL BP, R8
553 ROLL $0x05, R8
554 LEAL 1859775393(DX)(R10*1), DX
555 ADDL R8, DX
556 MOVL 20(SP), R10
557 XORL 8(SP), R10
558 XORL 52(SP), R10
559 XORL 28(SP), R10
560 ROLL $0x01, R10
561 MOVL R10, 20(SP)
562 MOVL BP, R9
563 XORL AX, R9
564 XORL BX, R9
565 ROLL $0x1e, BP
566 ADDL R9, CX
567 MOVL DX, R8
568 ROLL $0x05, R8
569 LEAL 1859775393(CX)(R10*1), CX
570 ADDL R8, CX
571 MOVL 24(SP), R10
572 XORL 12(SP), R10
573 XORL 56(SP), R10
574 XORL 32(SP), R10
575 ROLL $0x01, R10
576 MOVL R10, 24(SP)
577 MOVL DX, R9
578 XORL BP, R9
579 XORL AX, R9
580 ROLL $0x1e, DX
581 ADDL R9, BX
582 MOVL CX, R8
583 ROLL $0x05, R8
584 LEAL 1859775393(BX)(R10*1), BX
585 ADDL R8, BX
586 MOVL 28(SP), R10
587 XORL 16(SP), R10
588 XORL 60(SP), R10
589 XORL 36(SP), R10
590 ROLL $0x01, R10
591 MOVL R10, 28(SP)
592 MOVL CX, R9
593 XORL DX, R9
594 XORL BP, R9
595 ROLL $0x1e, CX
596 ADDL R9, AX
597 MOVL BX, R8
598 ROLL $0x05, R8
599 LEAL 1859775393(AX)(R10*1), AX
600 ADDL R8, AX
601 MOVL 32(SP), R10
602 XORL 20(SP), R10
603 XORL (SP), R10
604 XORL 40(SP), R10
605 ROLL $0x01, R10
606 MOVL R10, 32(SP)
607 MOVL BX, R8
608 ORL CX, R8
609 ANDL DX, R8
610 MOVL BX, R9
611 ANDL CX, R9
612 ORL R8, R9
613 ROLL $0x1e, BX
614 ADDL R9, BP
615 MOVL AX, R8
616 ROLL $0x05, R8
617 LEAL 2400959708(BP)(R10*1), BP
618 ADDL R8, BP
619 MOVL 36(SP), R10
620 XORL 24(SP), R10
621 XORL 4(SP), R10
622 XORL 44(SP), R10
623 ROLL $0x01, R10
624 MOVL R10, 36(SP)
625 MOVL AX, R8
626 ORL BX, R8
627 ANDL CX, R8
628 MOVL AX, R9
629 ANDL BX, R9
630 ORL R8, R9
631 ROLL $0x1e, AX
632 ADDL R9, DX
633 MOVL BP, R8
634 ROLL $0x05, R8
635 LEAL 2400959708(DX)(R10*1), DX
636 ADDL R8, DX
637 MOVL 40(SP), R10
638 XORL 28(SP), R10
639 XORL 8(SP), R10
640 XORL 48(SP), R10
641 ROLL $0x01, R10
642 MOVL R10, 40(SP)
643 MOVL BP, R8
644 ORL AX, R8
645 ANDL BX, R8
646 MOVL BP, R9
647 ANDL AX, R9
648 ORL R8, R9
649 ROLL $0x1e, BP
650 ADDL R9, CX
651 MOVL DX, R8
652 ROLL $0x05, R8
653 LEAL 2400959708(CX)(R10*1), CX
654 ADDL R8, CX
655 MOVL 44(SP), R10
656 XORL 32(SP), R10
657 XORL 12(SP), R10
658 XORL 52(SP), R10
659 ROLL $0x01, R10
660 MOVL R10, 44(SP)
661 MOVL DX, R8
662 ORL BP, R8
663 ANDL AX, R8
664 MOVL DX, R9
665 ANDL BP, R9
666 ORL R8, R9
667 ROLL $0x1e, DX
668 ADDL R9, BX
669 MOVL CX, R8
670 ROLL $0x05, R8
671 LEAL 2400959708(BX)(R10*1), BX
672 ADDL R8, BX
673 MOVL 48(SP), R10
674 XORL 36(SP), R10
675 XORL 16(SP), R10
676 XORL 56(SP), R10
677 ROLL $0x01, R10
678 MOVL R10, 48(SP)
679 MOVL CX, R8
680 ORL DX, R8
681 ANDL BP, R8
682 MOVL CX, R9
683 ANDL DX, R9
684 ORL R8, R9
685 ROLL $0x1e, CX
686 ADDL R9, AX
687 MOVL BX, R8
688 ROLL $0x05, R8
689 LEAL 2400959708(AX)(R10*1), AX
690 ADDL R8, AX
691 MOVL 52(SP), R10
692 XORL 40(SP), R10
693 XORL 20(SP), R10
694 XORL 60(SP), R10
695 ROLL $0x01, R10
696 MOVL R10, 52(SP)
697 MOVL BX, R8
698 ORL CX, R8
699 ANDL DX, R8
700 MOVL BX, R9
701 ANDL CX, R9
702 ORL R8, R9
703 ROLL $0x1e, BX
704 ADDL R9, BP
705 MOVL AX, R8
706 ROLL $0x05, R8
707 LEAL 2400959708(BP)(R10*1), BP
708 ADDL R8, BP
709 MOVL 56(SP), R10
710 XORL 44(SP), R10
711 XORL 24(SP), R10
712 XORL (SP), R10
713 ROLL $0x01, R10
714 MOVL R10, 56(SP)
715 MOVL AX, R8
716 ORL BX, R8
717 ANDL CX, R8
718 MOVL AX, R9
719 ANDL BX, R9
720 ORL R8, R9
721 ROLL $0x1e, AX
722 ADDL R9, DX
723 MOVL BP, R8
724 ROLL $0x05, R8
725 LEAL 2400959708(DX)(R10*1), DX
726 ADDL R8, DX
727 MOVL 60(SP), R10
728 XORL 48(SP), R10
729 XORL 28(SP), R10
730 XORL 4(SP), R10
731 ROLL $0x01, R10
732 MOVL R10, 60(SP)
733 MOVL BP, R8
734 ORL AX, R8
735 ANDL BX, R8
736 MOVL BP, R9
737 ANDL AX, R9
738 ORL R8, R9
739 ROLL $0x1e, BP
740 ADDL R9, CX
741 MOVL DX, R8
742 ROLL $0x05, R8
743 LEAL 2400959708(CX)(R10*1), CX
744 ADDL R8, CX
745 MOVL (SP), R10
746 XORL 52(SP), R10
747 XORL 32(SP), R10
748 XORL 8(SP), R10
749 ROLL $0x01, R10
750 MOVL R10, (SP)
751 MOVL DX, R8
752 ORL BP, R8
753 ANDL AX, R8
754 MOVL DX, R9
755 ANDL BP, R9
756 ORL R8, R9
757 ROLL $0x1e, DX
758 ADDL R9, BX
759 MOVL CX, R8
760 ROLL $0x05, R8
761 LEAL 2400959708(BX)(R10*1), BX
762 ADDL R8, BX
763 MOVL 4(SP), R10
764 XORL 56(SP), R10
765 XORL 36(SP), R10
766 XORL 12(SP), R10
767 ROLL $0x01, R10
768 MOVL R10, 4(SP)
769 MOVL CX, R8
770 ORL DX, R8
771 ANDL BP, R8
772 MOVL CX, R9
773 ANDL DX, R9
774 ORL R8, R9
775 ROLL $0x1e, CX
776 ADDL R9, AX
777 MOVL BX, R8
778 ROLL $0x05, R8
779 LEAL 2400959708(AX)(R10*1), AX
780 ADDL R8, AX
781 MOVL 8(SP), R10
782 XORL 60(SP), R10
783 XORL 40(SP), R10
784 XORL 16(SP), R10
785 ROLL $0x01, R10
786 MOVL R10, 8(SP)
787 MOVL BX, R8
788 ORL CX, R8
789 ANDL DX, R8
790 MOVL BX, R9
791 ANDL CX, R9
792 ORL R8, R9
793 ROLL $0x1e, BX
794 ADDL R9, BP
795 MOVL AX, R8
796 ROLL $0x05, R8
797 LEAL 2400959708(BP)(R10*1), BP
798 ADDL R8, BP
799 MOVL 12(SP), R10
800 XORL (SP), R10
801 XORL 44(SP), R10
802 XORL 20(SP), R10
803 ROLL $0x01, R10
804 MOVL R10, 12(SP)
805 MOVL AX, R8
806 ORL BX, R8
807 ANDL CX, R8
808 MOVL AX, R9
809 ANDL BX, R9
810 ORL R8, R9
811 ROLL $0x1e, AX
812 ADDL R9, DX
813 MOVL BP, R8
814 ROLL $0x05, R8
815 LEAL 2400959708(DX)(R10*1), DX
816 ADDL R8, DX
817 MOVL 16(SP), R10
818 XORL 4(SP), R10
819 XORL 48(SP), R10
820 XORL 24(SP), R10
821 ROLL $0x01, R10
822 MOVL R10, 16(SP)
823 MOVL BP, R8
824 ORL AX, R8
825 ANDL BX, R8
826 MOVL BP, R9
827 ANDL AX, R9
828 ORL R8, R9
829 ROLL $0x1e, BP
830 ADDL R9, CX
831 MOVL DX, R8
832 ROLL $0x05, R8
833 LEAL 2400959708(CX)(R10*1), CX
834 ADDL R8, CX
835 MOVL 20(SP), R10
836 XORL 8(SP), R10
837 XORL 52(SP), R10
838 XORL 28(SP), R10
839 ROLL $0x01, R10
840 MOVL R10, 20(SP)
841 MOVL DX, R8
842 ORL BP, R8
843 ANDL AX, R8
844 MOVL DX, R9
845 ANDL BP, R9
846 ORL R8, R9
847 ROLL $0x1e, DX
848 ADDL R9, BX
849 MOVL CX, R8
850 ROLL $0x05, R8
851 LEAL 2400959708(BX)(R10*1), BX
852 ADDL R8, BX
853 MOVL 24(SP), R10
854 XORL 12(SP), R10
855 XORL 56(SP), R10
856 XORL 32(SP), R10
857 ROLL $0x01, R10
858 MOVL R10, 24(SP)
859 MOVL CX, R8
860 ORL DX, R8
861 ANDL BP, R8
862 MOVL CX, R9
863 ANDL DX, R9
864 ORL R8, R9
865 ROLL $0x1e, CX
866 ADDL R9, AX
867 MOVL BX, R8
868 ROLL $0x05, R8
869 LEAL 2400959708(AX)(R10*1), AX
870 ADDL R8, AX
871 MOVL 28(SP), R10
872 XORL 16(SP), R10
873 XORL 60(SP), R10
874 XORL 36(SP), R10
875 ROLL $0x01, R10
876 MOVL R10, 28(SP)
877 MOVL BX, R8
878 ORL CX, R8
879 ANDL DX, R8
880 MOVL BX, R9
881 ANDL CX, R9
882 ORL R8, R9
883 ROLL $0x1e, BX
884 ADDL R9, BP
885 MOVL AX, R8
886 ROLL $0x05, R8
887 LEAL 2400959708(BP)(R10*1), BP
888 ADDL R8, BP
889 MOVL 32(SP), R10
890 XORL 20(SP), R10
891 XORL (SP), R10
892 XORL 40(SP), R10
893 ROLL $0x01, R10
894 MOVL R10, 32(SP)
895 MOVL AX, R8
896 ORL BX, R8
897 ANDL CX, R8
898 MOVL AX, R9
899 ANDL BX, R9
900 ORL R8, R9
901 ROLL $0x1e, AX
902 ADDL R9, DX
903 MOVL BP, R8
904 ROLL $0x05, R8
905 LEAL 2400959708(DX)(R10*1), DX
906 ADDL R8, DX
907 MOVL 36(SP), R10
908 XORL 24(SP), R10
909 XORL 4(SP), R10
910 XORL 44(SP), R10
911 ROLL $0x01, R10
912 MOVL R10, 36(SP)
913 MOVL BP, R8
914 ORL AX, R8
915 ANDL BX, R8
916 MOVL BP, R9
917 ANDL AX, R9
918 ORL R8, R9
919 ROLL $0x1e, BP
920 ADDL R9, CX
921 MOVL DX, R8
922 ROLL $0x05, R8
923 LEAL 2400959708(CX)(R10*1), CX
924 ADDL R8, CX
925 MOVL 40(SP), R10
926 XORL 28(SP), R10
927 XORL 8(SP), R10
928 XORL 48(SP), R10
929 ROLL $0x01, R10
930 MOVL R10, 40(SP)
931 MOVL DX, R8
932 ORL BP, R8
933 ANDL AX, R8
934 MOVL DX, R9
935 ANDL BP, R9
936 ORL R8, R9
937 ROLL $0x1e, DX
938 ADDL R9, BX
939 MOVL CX, R8
940 ROLL $0x05, R8
941 LEAL 2400959708(BX)(R10*1), BX
942 ADDL R8, BX
943 MOVL 44(SP), R10
944 XORL 32(SP), R10
945 XORL 12(SP), R10
946 XORL 52(SP), R10
947 ROLL $0x01, R10
948 MOVL R10, 44(SP)
949 MOVL CX, R8
950 ORL DX, R8
951 ANDL BP, R8
952 MOVL CX, R9
953 ANDL DX, R9
954 ORL R8, R9
955 ROLL $0x1e, CX
956 ADDL R9, AX
957 MOVL BX, R8
958 ROLL $0x05, R8
959 LEAL 2400959708(AX)(R10*1), AX
960 ADDL R8, AX
961 MOVL 48(SP), R10
962 XORL 36(SP), R10
963 XORL 16(SP), R10
964 XORL 56(SP), R10
965 ROLL $0x01, R10
966 MOVL R10, 48(SP)
967 MOVL BX, R9
968 XORL CX, R9
969 XORL DX, R9
970 ROLL $0x1e, BX
971 ADDL R9, BP
972 MOVL AX, R8
973 ROLL $0x05, R8
974 LEAL 3395469782(BP)(R10*1), BP
975 ADDL R8, BP
976 MOVL 52(SP), R10
977 XORL 40(SP), R10
978 XORL 20(SP), R10
979 XORL 60(SP), R10
980 ROLL $0x01, R10
981 MOVL R10, 52(SP)
982 MOVL AX, R9
983 XORL BX, R9
984 XORL CX, R9
985 ROLL $0x1e, AX
986 ADDL R9, DX
987 MOVL BP, R8
988 ROLL $0x05, R8
989 LEAL 3395469782(DX)(R10*1), DX
990 ADDL R8, DX
991 MOVL 56(SP), R10
992 XORL 44(SP), R10
993 XORL 24(SP), R10
994 XORL (SP), R10
995 ROLL $0x01, R10
996 MOVL R10, 56(SP)
997 MOVL BP, R9
998 XORL AX, R9
999 XORL BX, R9
1000 ROLL $0x1e, BP
1001 ADDL R9, CX
1002 MOVL DX, R8
1003 ROLL $0x05, R8
1004 LEAL 3395469782(CX)(R10*1), CX
1005 ADDL R8, CX
1006 MOVL 60(SP), R10
1007 XORL 48(SP), R10
1008 XORL 28(SP), R10
1009 XORL 4(SP), R10
1010 ROLL $0x01, R10
1011 MOVL R10, 60(SP)
1012 MOVL DX, R9
1013 XORL BP, R9
1014 XORL AX, R9
1015 ROLL $0x1e, DX
1016 ADDL R9, BX
1017 MOVL CX, R8
1018 ROLL $0x05, R8
1019 LEAL 3395469782(BX)(R10*1), BX
1020 ADDL R8, BX
1021 MOVL (SP), R10
1022 XORL 52(SP), R10
1023 XORL 32(SP), R10
1024 XORL 8(SP), R10
1025 ROLL $0x01, R10
1026 MOVL R10, (SP)
1027 MOVL CX, R9
1028 XORL DX, R9
1029 XORL BP, R9
1030 ROLL $0x1e, CX
1031 ADDL R9, AX
1032 MOVL BX, R8
1033 ROLL $0x05, R8
1034 LEAL 3395469782(AX)(R10*1), AX
1035 ADDL R8, AX
1036 MOVL 4(SP), R10
1037 XORL 56(SP), R10
1038 XORL 36(SP), R10
1039 XORL 12(SP), R10
1040 ROLL $0x01, R10
1041 MOVL R10, 4(SP)
1042 MOVL BX, R9
1043 XORL CX, R9
1044 XORL DX, R9
1045 ROLL $0x1e, BX
1046 ADDL R9, BP
1047 MOVL AX, R8
1048 ROLL $0x05, R8
1049 LEAL 3395469782(BP)(R10*1), BP
1050 ADDL R8, BP
1051 MOVL 8(SP), R10
1052 XORL 60(SP), R10
1053 XORL 40(SP), R10
1054 XORL 16(SP), R10
1055 ROLL $0x01, R10
1056 MOVL R10, 8(SP)
1057 MOVL AX, R9
1058 XORL BX, R9
1059 XORL CX, R9
1060 ROLL $0x1e, AX
1061 ADDL R9, DX
1062 MOVL BP, R8
1063 ROLL $0x05, R8
1064 LEAL 3395469782(DX)(R10*1), DX
1065 ADDL R8, DX
1066 MOVL 12(SP), R10
1067 XORL (SP), R10
1068 XORL 44(SP), R10
1069 XORL 20(SP), R10
1070 ROLL $0x01, R10
1071 MOVL R10, 12(SP)
1072 MOVL BP, R9
1073 XORL AX, R9
1074 XORL BX, R9
1075 ROLL $0x1e, BP
1076 ADDL R9, CX
1077 MOVL DX, R8
1078 ROLL $0x05, R8
1079 LEAL 3395469782(CX)(R10*1), CX
1080 ADDL R8, CX
1081 MOVL 16(SP), R10
1082 XORL 4(SP), R10
1083 XORL 48(SP), R10
1084 XORL 24(SP), R10
1085 ROLL $0x01, R10
1086 MOVL R10, 16(SP)
1087 MOVL DX, R9
1088 XORL BP, R9
1089 XORL AX, R9
1090 ROLL $0x1e, DX
1091 ADDL R9, BX
1092 MOVL CX, R8
1093 ROLL $0x05, R8
1094 LEAL 3395469782(BX)(R10*1), BX
1095 ADDL R8, BX
1096 MOVL 20(SP), R10
1097 XORL 8(SP), R10
1098 XORL 52(SP), R10
1099 XORL 28(SP), R10
1100 ROLL $0x01, R10
1101 MOVL R10, 20(SP)
1102 MOVL CX, R9
1103 XORL DX, R9
1104 XORL BP, R9
1105 ROLL $0x1e, CX
1106 ADDL R9, AX
1107 MOVL BX, R8
1108 ROLL $0x05, R8
1109 LEAL 3395469782(AX)(R10*1), AX
1110 ADDL R8, AX
1111 MOVL 24(SP), R10
1112 XORL 12(SP), R10
1113 XORL 56(SP), R10
1114 XORL 32(SP), R10
1115 ROLL $0x01, R10
1116 MOVL R10, 24(SP)
1117 MOVL BX, R9
1118 XORL CX, R9
1119 XORL DX, R9
1120 ROLL $0x1e, BX
1121 ADDL R9, BP
1122 MOVL AX, R8
1123 ROLL $0x05, R8
1124 LEAL 3395469782(BP)(R10*1), BP
1125 ADDL R8, BP
1126 MOVL 28(SP), R10
1127 XORL 16(SP), R10
1128 XORL 60(SP), R10
1129 XORL 36(SP), R10
1130 ROLL $0x01, R10
1131 MOVL R10, 28(SP)
1132 MOVL AX, R9
1133 XORL BX, R9
1134 XORL CX, R9
1135 ROLL $0x1e, AX
1136 ADDL R9, DX
1137 MOVL BP, R8
1138 ROLL $0x05, R8
1139 LEAL 3395469782(DX)(R10*1), DX
1140 ADDL R8, DX
1141 MOVL 32(SP), R10
1142 XORL 20(SP), R10
1143 XORL (SP), R10
1144 XORL 40(SP), R10
1145 ROLL $0x01, R10
1146 MOVL R10, 32(SP)
1147 MOVL BP, R9
1148 XORL AX, R9
1149 XORL BX, R9
1150 ROLL $0x1e, BP
1151 ADDL R9, CX
1152 MOVL DX, R8
1153 ROLL $0x05, R8
1154 LEAL 3395469782(CX)(R10*1), CX
1155 ADDL R8, CX
1156 MOVL 36(SP), R10
1157 XORL 24(SP), R10
1158 XORL 4(SP), R10
1159 XORL 44(SP), R10
1160 ROLL $0x01, R10
1161 MOVL R10, 36(SP)
1162 MOVL DX, R9
1163 XORL BP, R9
1164 XORL AX, R9
1165 ROLL $0x1e, DX
1166 ADDL R9, BX
1167 MOVL CX, R8
1168 ROLL $0x05, R8
1169 LEAL 3395469782(BX)(R10*1), BX
1170 ADDL R8, BX
1171 MOVL 40(SP), R10
1172 XORL 28(SP), R10
1173 XORL 8(SP), R10
1174 XORL 48(SP), R10
1175 ROLL $0x01, R10
1176 MOVL R10, 40(SP)
1177 MOVL CX, R9
1178 XORL DX, R9
1179 XORL BP, R9
1180 ROLL $0x1e, CX
1181 ADDL R9, AX
1182 MOVL BX, R8
1183 ROLL $0x05, R8
1184 LEAL 3395469782(AX)(R10*1), AX
1185 ADDL R8, AX
1186 MOVL 44(SP), R10
1187 XORL 32(SP), R10
1188 XORL 12(SP), R10
1189 XORL 52(SP), R10
1190 ROLL $0x01, R10
1191 MOVL R10, 44(SP)
1192 MOVL BX, R9
1193 XORL CX, R9
1194 XORL DX, R9
1195 ROLL $0x1e, BX
1196 ADDL R9, BP
1197 MOVL AX, R8
1198 ROLL $0x05, R8
1199 LEAL 3395469782(BP)(R10*1), BP
1200 ADDL R8, BP
1201 MOVL 48(SP), R10
1202 XORL 36(SP), R10
1203 XORL 16(SP), R10
1204 XORL 56(SP), R10
1205 ROLL $0x01, R10
1206 MOVL R10, 48(SP)
1207 MOVL AX, R9
1208 XORL BX, R9
1209 XORL CX, R9
1210 ROLL $0x1e, AX
1211 ADDL R9, DX
1212 MOVL BP, R8
1213 ROLL $0x05, R8
1214 LEAL 3395469782(DX)(R10*1), DX
1215 ADDL R8, DX
1216 MOVL 52(SP), R10
1217 XORL 40(SP), R10
1218 XORL 20(SP), R10
1219 XORL 60(SP), R10
1220 ROLL $0x01, R10
1221 MOVL R10, 52(SP)
1222 MOVL BP, R9
1223 XORL AX, R9
1224 XORL BX, R9
1225 ROLL $0x1e, BP
1226 ADDL R9, CX
1227 MOVL DX, R8
1228 ROLL $0x05, R8
1229 LEAL 3395469782(CX)(R10*1), CX
1230 ADDL R8, CX
1231 MOVL 56(SP), R10
1232 XORL 44(SP), R10
1233 XORL 24(SP), R10
1234 XORL (SP), R10
1235 ROLL $0x01, R10
1236 MOVL R10, 56(SP)
1237 MOVL DX, R9
1238 XORL BP, R9
1239 XORL AX, R9
1240 ROLL $0x1e, DX
1241 ADDL R9, BX
1242 MOVL CX, R8
1243 ROLL $0x05, R8
1244 LEAL 3395469782(BX)(R10*1), BX
1245 ADDL R8, BX
1246 MOVL 60(SP), R10
1247 XORL 48(SP), R10
1248 XORL 28(SP), R10
1249 XORL 4(SP), R10
1250 ROLL $0x01, R10
1251 MOVL R10, 60(SP)
1252 MOVL CX, R9
1253 XORL DX, R9
1254 XORL BP, R9
1255 ROLL $0x1e, CX
1256 ADDL R9, AX
1257 MOVL BX, R8
1258 ROLL $0x05, R8
1259 LEAL 3395469782(AX)(R10*1), AX
1260 ADDL R8, AX
1261 ADDL R11, AX
1262 ADDL R12, BX
1263 ADDL R13, CX
1264 ADDL R14, DX
1265 ADDL R15, BP
1266 ADDQ $0x40, SI
1267 CMPQ SI, DI
1268 JB loop
1269
1270 end:
1271 MOVQ dig+0(FP), DI
1272 MOVL AX, (DI)
1273 MOVL BX, 4(DI)
1274 MOVL CX, 8(DI)
1275 MOVL DX, 12(DI)
1276 MOVL BP, 16(DI)
1277 RET
1278
1279 // func blockAVX2(dig *digest, p []byte)
1280 // Requires: AVX, AVX2, BMI, BMI2, CMOV
1281 TEXT ·blockAVX2(SB), $1408-32
1282 MOVQ dig+0(FP), DI
1283 MOVQ p_base+8(FP), SI
1284 MOVQ p_len+16(FP), DX
1285 SHRQ $0x06, DX
1286 SHLQ $0x06, DX
1287 LEAQ K_XMM_AR<>+0(SB), R8
1288 MOVQ DI, R9
1289 MOVQ SI, R10
1290 LEAQ 64(SI), R13
1291 ADDQ SI, DX
1292 ADDQ $0x40, DX
1293 MOVQ DX, R11
1294 CMPQ R13, R11
1295 CMOVQCC R8, R13
1296 VMOVDQU BSWAP_SHUFB_CTL<>+0(SB), Y10
1297 MOVL (R9), CX
1298 MOVL 4(R9), SI
1299 MOVL 8(R9), DI
1300 MOVL 12(R9), AX
1301 MOVL 16(R9), DX
1302 MOVQ SP, R14
1303 LEAQ 672(SP), R15
1304 VMOVDQU (R10), X0
1305 VINSERTI128 $0x01, (R13), Y0, Y0
1306 VPSHUFB Y10, Y0, Y15
1307 VPADDD (R8), Y15, Y0
1308 VMOVDQU Y0, (R14)
1309 VMOVDQU 16(R10), X0
1310 VINSERTI128 $0x01, 16(R13), Y0, Y0
1311 VPSHUFB Y10, Y0, Y14
1312 VPADDD (R8), Y14, Y0
1313 VMOVDQU Y0, 32(R14)
1314 VMOVDQU 32(R10), X0
1315 VINSERTI128 $0x01, 32(R13), Y0, Y0
1316 VPSHUFB Y10, Y0, Y13
1317 VPADDD (R8), Y13, Y0
1318 VMOVDQU Y0, 64(R14)
1319 VMOVDQU 48(R10), X0
1320 VINSERTI128 $0x01, 48(R13), Y0, Y0
1321 VPSHUFB Y10, Y0, Y12
1322 VPADDD (R8), Y12, Y0
1323 VMOVDQU Y0, 96(R14)
1324 VPALIGNR $0x08, Y15, Y14, Y8
1325 VPSRLDQ $0x04, Y12, Y0
1326 VPXOR Y13, Y8, Y8
1327 VPXOR Y15, Y0, Y0
1328 VPXOR Y0, Y8, Y8
1329 VPSLLDQ $0x0c, Y8, Y9
1330 VPSLLD $0x01, Y8, Y0
1331 VPSRLD $0x1f, Y8, Y8
1332 VPOR Y8, Y0, Y0
1333 VPSLLD $0x02, Y9, Y8
1334 VPSRLD $0x1e, Y9, Y9
1335 VPXOR Y8, Y0, Y0
1336 VPXOR Y9, Y0, Y8
1337 VPADDD (R8), Y8, Y0
1338 VMOVDQU Y0, 128(R14)
1339 VPALIGNR $0x08, Y14, Y13, Y7
1340 VPSRLDQ $0x04, Y8, Y0
1341 VPXOR Y12, Y7, Y7
1342 VPXOR Y14, Y0, Y0
1343 VPXOR Y0, Y7, Y7
1344 VPSLLDQ $0x0c, Y7, Y9
1345 VPSLLD $0x01, Y7, Y0
1346 VPSRLD $0x1f, Y7, Y7
1347 VPOR Y7, Y0, Y0
1348 VPSLLD $0x02, Y9, Y7
1349 VPSRLD $0x1e, Y9, Y9
1350 VPXOR Y7, Y0, Y0
1351 VPXOR Y9, Y0, Y7
1352 VPADDD 32(R8), Y7, Y0
1353 VMOVDQU Y0, 160(R14)
1354 VPALIGNR $0x08, Y13, Y12, Y5
1355 VPSRLDQ $0x04, Y7, Y0
1356 VPXOR Y8, Y5, Y5
1357 VPXOR Y13, Y0, Y0
1358 VPXOR Y0, Y5, Y5
1359 VPSLLDQ $0x0c, Y5, Y9
1360 VPSLLD $0x01, Y5, Y0
1361 VPSRLD $0x1f, Y5, Y5
1362 VPOR Y5, Y0, Y0
1363 VPSLLD $0x02, Y9, Y5
1364 VPSRLD $0x1e, Y9, Y9
1365 VPXOR Y5, Y0, Y0
1366 VPXOR Y9, Y0, Y5
1367 VPADDD 32(R8), Y5, Y0
1368 VMOVDQU Y0, 192(R14)
1369 VPALIGNR $0x08, Y12, Y8, Y3
1370 VPSRLDQ $0x04, Y5, Y0
1371 VPXOR Y7, Y3, Y3
1372 VPXOR Y12, Y0, Y0
1373 VPXOR Y0, Y3, Y3
1374 VPSLLDQ $0x0c, Y3, Y9
1375 VPSLLD $0x01, Y3, Y0
1376 VPSRLD $0x1f, Y3, Y3
1377 VPOR Y3, Y0, Y0
1378 VPSLLD $0x02, Y9, Y3
1379 VPSRLD $0x1e, Y9, Y9
1380 VPXOR Y3, Y0, Y0
1381 VPXOR Y9, Y0, Y3
1382 VPADDD 32(R8), Y3, Y0
1383 VMOVDQU Y0, 224(R14)
1384 VPALIGNR $0x08, Y5, Y3, Y0
1385 VPXOR Y14, Y15, Y15
1386 VPXOR Y8, Y0, Y0
1387 VPXOR Y0, Y15, Y15
1388 VPSLLD $0x02, Y15, Y0
1389 VPSRLD $0x1e, Y15, Y15
1390 VPOR Y15, Y0, Y15
1391 VPADDD 32(R8), Y15, Y0
1392 VMOVDQU Y0, 256(R14)
1393 VPALIGNR $0x08, Y3, Y15, Y0
1394 VPXOR Y13, Y14, Y14
1395 VPXOR Y7, Y0, Y0
1396 VPXOR Y0, Y14, Y14
1397 VPSLLD $0x02, Y14, Y0
1398 VPSRLD $0x1e, Y14, Y14
1399 VPOR Y14, Y0, Y14
1400 VPADDD 32(R8), Y14, Y0
1401 VMOVDQU Y0, 288(R14)
1402 VPALIGNR $0x08, Y15, Y14, Y0
1403 VPXOR Y12, Y13, Y13
1404 VPXOR Y5, Y0, Y0
1405 VPXOR Y0, Y13, Y13
1406 VPSLLD $0x02, Y13, Y0
1407 VPSRLD $0x1e, Y13, Y13
1408 VPOR Y13, Y0, Y13
1409 VPADDD 64(R8), Y13, Y0
1410 VMOVDQU Y0, 320(R14)
1411 VPALIGNR $0x08, Y14, Y13, Y0
1412 VPXOR Y8, Y12, Y12
1413 VPXOR Y3, Y0, Y0
1414 VPXOR Y0, Y12, Y12
1415 VPSLLD $0x02, Y12, Y0
1416 VPSRLD $0x1e, Y12, Y12
1417 VPOR Y12, Y0, Y12
1418 VPADDD 64(R8), Y12, Y0
1419 VMOVDQU Y0, 352(R14)
1420 VPALIGNR $0x08, Y13, Y12, Y0
1421 VPXOR Y7, Y8, Y8
1422 VPXOR Y15, Y0, Y0
1423 VPXOR Y0, Y8, Y8
1424 VPSLLD $0x02, Y8, Y0
1425 VPSRLD $0x1e, Y8, Y8
1426 VPOR Y8, Y0, Y8
1427 VPADDD 64(R8), Y8, Y0
1428 VMOVDQU Y0, 384(R14)
1429 VPALIGNR $0x08, Y12, Y8, Y0
1430 VPXOR Y5, Y7, Y7
1431 VPXOR Y14, Y0, Y0
1432 VPXOR Y0, Y7, Y7
1433 VPSLLD $0x02, Y7, Y0
1434 VPSRLD $0x1e, Y7, Y7
1435 VPOR Y7, Y0, Y7
1436 VPADDD 64(R8), Y7, Y0
1437 VMOVDQU Y0, 416(R14)
1438 VPALIGNR $0x08, Y8, Y7, Y0
1439 VPXOR Y3, Y5, Y5
1440 VPXOR Y13, Y0, Y0
1441 VPXOR Y0, Y5, Y5
1442 VPSLLD $0x02, Y5, Y0
1443 VPSRLD $0x1e, Y5, Y5
1444 VPOR Y5, Y0, Y5
1445 VPADDD 64(R8), Y5, Y0
1446 VMOVDQU Y0, 448(R14)
1447 VPALIGNR $0x08, Y7, Y5, Y0
1448 VPXOR Y15, Y3, Y3
1449 VPXOR Y12, Y0, Y0
1450 VPXOR Y0, Y3, Y3
1451 VPSLLD $0x02, Y3, Y0
1452 VPSRLD $0x1e, Y3, Y3
1453 VPOR Y3, Y0, Y3
1454 VPADDD 96(R8), Y3, Y0
1455 VMOVDQU Y0, 480(R14)
1456 VPALIGNR $0x08, Y5, Y3, Y0
1457 VPXOR Y14, Y15, Y15
1458 VPXOR Y8, Y0, Y0
1459 VPXOR Y0, Y15, Y15
1460 VPSLLD $0x02, Y15, Y0
1461 VPSRLD $0x1e, Y15, Y15
1462 VPOR Y15, Y0, Y15
1463 VPADDD 96(R8), Y15, Y0
1464 VMOVDQU Y0, 512(R14)
1465 VPALIGNR $0x08, Y3, Y15, Y0
1466 VPXOR Y13, Y14, Y14
1467 VPXOR Y7, Y0, Y0
1468 VPXOR Y0, Y14, Y14
1469 VPSLLD $0x02, Y14, Y0
1470 VPSRLD $0x1e, Y14, Y14
1471 VPOR Y14, Y0, Y14
1472 VPADDD 96(R8), Y14, Y0
1473 VMOVDQU Y0, 544(R14)
1474 VPALIGNR $0x08, Y15, Y14, Y0
1475 VPXOR Y12, Y13, Y13
1476 VPXOR Y5, Y0, Y0
1477 VPXOR Y0, Y13, Y13
1478 VPSLLD $0x02, Y13, Y0
1479 VPSRLD $0x1e, Y13, Y13
1480 VPOR Y13, Y0, Y13
1481 VPADDD 96(R8), Y13, Y0
1482 VMOVDQU Y0, 576(R14)
1483 VPALIGNR $0x08, Y14, Y13, Y0
1484 VPXOR Y8, Y12, Y12
1485 VPXOR Y3, Y0, Y0
1486 VPXOR Y0, Y12, Y12
1487 VPSLLD $0x02, Y12, Y0
1488 VPSRLD $0x1e, Y12, Y12
1489 VPOR Y12, Y0, Y12
1490 VPADDD 96(R8), Y12, Y0
1491 VMOVDQU Y0, 608(R14)
1492 XCHGQ R15, R14
1493
1494 loop:
1495 CMPQ R10, R8
1496 JNE begin
1497 VZEROUPPER
1498 RET
1499
1500 begin:
1501 MOVL SI, BX
1502 RORXL $0x02, SI, SI
1503 ANDNL AX, BX, BP
1504 ANDL DI, BX
1505 XORL BP, BX
1506 ADDL (R15), DX
1507 ANDNL DI, CX, BP
1508 LEAL (DX)(BX*1), DX
1509 RORXL $0x1b, CX, R12
1510 RORXL $0x02, CX, BX
1511 VMOVDQU 128(R10), X0
1512 ANDL SI, CX
1513 XORL BP, CX
1514 LEAL (DX)(R12*1), DX
1515 ADDL 4(R15), AX
1516 ANDNL SI, DX, BP
1517 LEAL (AX)(CX*1), AX
1518 RORXL $0x1b, DX, R12
1519 RORXL $0x02, DX, CX
1520 VINSERTI128 $0x01, 128(R13), Y0, Y0
1521 ANDL BX, DX
1522 XORL BP, DX
1523 LEAL (AX)(R12*1), AX
1524 ADDL 8(R15), DI
1525 ANDNL BX, AX, BP
1526 LEAL (DI)(DX*1), DI
1527 RORXL $0x1b, AX, R12
1528 RORXL $0x02, AX, DX
1529 VPSHUFB Y10, Y0, Y15
1530 ANDL CX, AX
1531 XORL BP, AX
1532 LEAL (DI)(R12*1), DI
1533 ADDL 12(R15), SI
1534 ANDNL CX, DI, BP
1535 LEAL (SI)(AX*1), SI
1536 RORXL $0x1b, DI, R12
1537 RORXL $0x02, DI, AX
1538 ANDL DX, DI
1539 XORL BP, DI
1540 LEAL (SI)(R12*1), SI
1541 ADDL 32(R15), BX
1542 ANDNL DX, SI, BP
1543 LEAL (BX)(DI*1), BX
1544 RORXL $0x1b, SI, R12
1545 RORXL $0x02, SI, DI
1546 VPADDD (R8), Y15, Y0
1547 ANDL AX, SI
1548 XORL BP, SI
1549 LEAL (BX)(R12*1), BX
1550 ADDL 36(R15), CX
1551 ANDNL AX, BX, BP
1552 LEAL (CX)(SI*1), CX
1553 RORXL $0x1b, BX, R12
1554 RORXL $0x02, BX, SI
1555 ANDL DI, BX
1556 XORL BP, BX
1557 LEAL (CX)(R12*1), CX
1558 ADDL 40(R15), DX
1559 ANDNL DI, CX, BP
1560 LEAL (DX)(BX*1), DX
1561 RORXL $0x1b, CX, R12
1562 RORXL $0x02, CX, BX
1563 ANDL SI, CX
1564 XORL BP, CX
1565 LEAL (DX)(R12*1), DX
1566 ADDL 44(R15), AX
1567 ANDNL SI, DX, BP
1568 LEAL (AX)(CX*1), AX
1569 RORXL $0x1b, DX, R12
1570 RORXL $0x02, DX, CX
1571 VMOVDQU Y0, (R14)
1572 ANDL BX, DX
1573 XORL BP, DX
1574 LEAL (AX)(R12*1), AX
1575 ADDL 64(R15), DI
1576 ANDNL BX, AX, BP
1577 LEAL (DI)(DX*1), DI
1578 RORXL $0x1b, AX, R12
1579 RORXL $0x02, AX, DX
1580 VMOVDQU 144(R10), X0
1581 ANDL CX, AX
1582 XORL BP, AX
1583 LEAL (DI)(R12*1), DI
1584 ADDL 68(R15), SI
1585 ANDNL CX, DI, BP
1586 LEAL (SI)(AX*1), SI
1587 RORXL $0x1b, DI, R12
1588 RORXL $0x02, DI, AX
1589 VINSERTI128 $0x01, 144(R13), Y0, Y0
1590 ANDL DX, DI
1591 XORL BP, DI
1592 LEAL (SI)(R12*1), SI
1593 ADDL 72(R15), BX
1594 ANDNL DX, SI, BP
1595 LEAL (BX)(DI*1), BX
1596 RORXL $0x1b, SI, R12
1597 RORXL $0x02, SI, DI
1598 VPSHUFB Y10, Y0, Y14
1599 ANDL AX, SI
1600 XORL BP, SI
1601 LEAL (BX)(R12*1), BX
1602 ADDL 76(R15), CX
1603 ANDNL AX, BX, BP
1604 LEAL (CX)(SI*1), CX
1605 RORXL $0x1b, BX, R12
1606 RORXL $0x02, BX, SI
1607 ANDL DI, BX
1608 XORL BP, BX
1609 LEAL (CX)(R12*1), CX
1610 ADDL 96(R15), DX
1611 ANDNL DI, CX, BP
1612 LEAL (DX)(BX*1), DX
1613 RORXL $0x1b, CX, R12
1614 RORXL $0x02, CX, BX
1615 VPADDD (R8), Y14, Y0
1616 ANDL SI, CX
1617 XORL BP, CX
1618 LEAL (DX)(R12*1), DX
1619 ADDL 100(R15), AX
1620 ANDNL SI, DX, BP
1621 LEAL (AX)(CX*1), AX
1622 RORXL $0x1b, DX, R12
1623 RORXL $0x02, DX, CX
1624 ANDL BX, DX
1625 XORL BP, DX
1626 LEAL (AX)(R12*1), AX
1627 ADDL 104(R15), DI
1628 ANDNL BX, AX, BP
1629 LEAL (DI)(DX*1), DI
1630 RORXL $0x1b, AX, R12
1631 RORXL $0x02, AX, DX
1632 ANDL CX, AX
1633 XORL BP, AX
1634 LEAL (DI)(R12*1), DI
1635 ADDL 108(R15), SI
1636 ANDNL CX, DI, BP
1637 LEAL (SI)(AX*1), SI
1638 RORXL $0x1b, DI, R12
1639 RORXL $0x02, DI, AX
1640 VMOVDQU Y0, 32(R14)
1641 ANDL DX, DI
1642 XORL BP, DI
1643 LEAL (SI)(R12*1), SI
1644 ADDL 128(R15), BX
1645 ANDNL DX, SI, BP
1646 LEAL (BX)(DI*1), BX
1647 RORXL $0x1b, SI, R12
1648 RORXL $0x02, SI, DI
1649 VMOVDQU 160(R10), X0
1650 ANDL AX, SI
1651 XORL BP, SI
1652 LEAL (BX)(R12*1), BX
1653 ADDL 132(R15), CX
1654 ANDNL AX, BX, BP
1655 LEAL (CX)(SI*1), CX
1656 RORXL $0x1b, BX, R12
1657 RORXL $0x02, BX, SI
1658 VINSERTI128 $0x01, 160(R13), Y0, Y0
1659 ANDL DI, BX
1660 XORL BP, BX
1661 LEAL (CX)(R12*1), CX
1662 ADDL 136(R15), DX
1663 ANDNL DI, CX, BP
1664 LEAL (DX)(BX*1), DX
1665 RORXL $0x1b, CX, R12
1666 RORXL $0x02, CX, BX
1667 VPSHUFB Y10, Y0, Y13
1668 ANDL SI, CX
1669 XORL BP, CX
1670 LEAL (DX)(R12*1), DX
1671 ADDL 140(R15), AX
1672 LEAL (AX)(CX*1), AX
1673 RORXL $0x1b, DX, R12
1674 RORXL $0x02, DX, CX
1675 XORL BX, DX
1676 ADDL R12, AX
1677 XORL SI, DX
1678 ADDL 160(R15), DI
1679 LEAL (DI)(DX*1), DI
1680 RORXL $0x1b, AX, R12
1681 RORXL $0x02, AX, DX
1682 VPADDD (R8), Y13, Y0
1683 XORL CX, AX
1684 ADDL R12, DI
1685 XORL BX, AX
1686 ADDL 164(R15), SI
1687 LEAL (SI)(AX*1), SI
1688 RORXL $0x1b, DI, R12
1689 RORXL $0x02, DI, AX
1690 XORL DX, DI
1691 ADDL R12, SI
1692 XORL CX, DI
1693 ADDL 168(R15), BX
1694 LEAL (BX)(DI*1), BX
1695 RORXL $0x1b, SI, R12
1696 RORXL $0x02, SI, DI
1697 XORL AX, SI
1698 ADDL R12, BX
1699 XORL DX, SI
1700 ADDL 172(R15), CX
1701 LEAL (CX)(SI*1), CX
1702 RORXL $0x1b, BX, R12
1703 RORXL $0x02, BX, SI
1704 VMOVDQU Y0, 64(R14)
1705 XORL DI, BX
1706 ADDL R12, CX
1707 XORL AX, BX
1708 ADDL 192(R15), DX
1709 LEAL (DX)(BX*1), DX
1710 RORXL $0x1b, CX, R12
1711 RORXL $0x02, CX, BX
1712 VMOVDQU 176(R10), X0
1713 XORL SI, CX
1714 ADDL R12, DX
1715 XORL DI, CX
1716 ADDL 196(R15), AX
1717 LEAL (AX)(CX*1), AX
1718 RORXL $0x1b, DX, R12
1719 RORXL $0x02, DX, CX
1720 VINSERTI128 $0x01, 176(R13), Y0, Y0
1721 XORL BX, DX
1722 ADDL R12, AX
1723 XORL SI, DX
1724 ADDL 200(R15), DI
1725 LEAL (DI)(DX*1), DI
1726 RORXL $0x1b, AX, R12
1727 RORXL $0x02, AX, DX
1728 VPSHUFB Y10, Y0, Y12
1729 XORL CX, AX
1730 ADDL R12, DI
1731 XORL BX, AX
1732 ADDL 204(R15), SI
1733 LEAL (SI)(AX*1), SI
1734 RORXL $0x1b, DI, R12
1735 RORXL $0x02, DI, AX
1736 XORL DX, DI
1737 ADDL R12, SI
1738 XORL CX, DI
1739 ADDL 224(R15), BX
1740 LEAL (BX)(DI*1), BX
1741 RORXL $0x1b, SI, R12
1742 RORXL $0x02, SI, DI
1743 VPADDD (R8), Y12, Y0
1744 XORL AX, SI
1745 ADDL R12, BX
1746 XORL DX, SI
1747 ADDL 228(R15), CX
1748 LEAL (CX)(SI*1), CX
1749 RORXL $0x1b, BX, R12
1750 RORXL $0x02, BX, SI
1751 XORL DI, BX
1752 ADDL R12, CX
1753 XORL AX, BX
1754 ADDL 232(R15), DX
1755 LEAL (DX)(BX*1), DX
1756 RORXL $0x1b, CX, R12
1757 RORXL $0x02, CX, BX
1758 XORL SI, CX
1759 ADDL R12, DX
1760 XORL DI, CX
1761 ADDL 236(R15), AX
1762 LEAL (AX)(CX*1), AX
1763 RORXL $0x1b, DX, R12
1764 RORXL $0x02, DX, CX
1765 VMOVDQU Y0, 96(R14)
1766 XORL BX, DX
1767 ADDL R12, AX
1768 XORL SI, DX
1769 ADDL 256(R15), DI
1770 LEAL (DI)(DX*1), DI
1771 RORXL $0x1b, AX, R12
1772 RORXL $0x02, AX, DX
1773 VPALIGNR $0x08, Y15, Y14, Y8
1774 VPSRLDQ $0x04, Y12, Y0
1775 XORL CX, AX
1776 ADDL R12, DI
1777 XORL BX, AX
1778 ADDL 260(R15), SI
1779 LEAL (SI)(AX*1), SI
1780 RORXL $0x1b, DI, R12
1781 RORXL $0x02, DI, AX
1782 VPXOR Y13, Y8, Y8
1783 VPXOR Y15, Y0, Y0
1784 XORL DX, DI
1785 ADDL R12, SI
1786 XORL CX, DI
1787 ADDL 264(R15), BX
1788 LEAL (BX)(DI*1), BX
1789 RORXL $0x1b, SI, R12
1790 RORXL $0x02, SI, DI
1791 VPXOR Y0, Y8, Y8
1792 VPSLLDQ $0x0c, Y8, Y9
1793 XORL AX, SI
1794 ADDL R12, BX
1795 XORL DX, SI
1796 ADDL 268(R15), CX
1797 LEAL (CX)(SI*1), CX
1798 RORXL $0x1b, BX, R12
1799 RORXL $0x02, BX, SI
1800 VPSLLD $0x01, Y8, Y0
1801 VPSRLD $0x1f, Y8, Y8
1802 XORL DI, BX
1803 ADDL R12, CX
1804 XORL AX, BX
1805 ADDL 288(R15), DX
1806 LEAL (DX)(BX*1), DX
1807 RORXL $0x1b, CX, R12
1808 RORXL $0x02, CX, BX
1809 VPOR Y8, Y0, Y0
1810 VPSLLD $0x02, Y9, Y8
1811 XORL SI, CX
1812 ADDL R12, DX
1813 XORL DI, CX
1814 ADDL 292(R15), AX
1815 LEAL (AX)(CX*1), AX
1816 RORXL $0x1b, DX, R12
1817 RORXL $0x02, DX, CX
1818 VPSRLD $0x1e, Y9, Y9
1819 VPXOR Y8, Y0, Y0
1820 XORL BX, DX
1821 ADDL R12, AX
1822 XORL SI, DX
1823 ADDL 296(R15), DI
1824 LEAL (DI)(DX*1), DI
1825 RORXL $0x1b, AX, R12
1826 RORXL $0x02, AX, DX
1827 XORL CX, AX
1828 ADDL R12, DI
1829 XORL BX, AX
1830 ADDL 300(R15), SI
1831 VPXOR Y9, Y0, Y8
1832 VPADDD (R8), Y8, Y0
1833 VMOVDQU Y0, 128(R14)
1834 LEAL (SI)(AX*1), SI
1835 MOVL DX, BP
1836 ORL DI, BP
1837 RORXL $0x1b, DI, R12
1838 RORXL $0x02, DI, AX
1839 ANDL CX, BP
1840 ANDL DX, DI
1841 ORL BP, DI
1842 ADDL R12, SI
1843 ADDL 320(R15), BX
1844 VPALIGNR $0x08, Y14, Y13, Y7
1845 VPSRLDQ $0x04, Y8, Y0
1846 LEAL (BX)(DI*1), BX
1847 MOVL AX, BP
1848 ORL SI, BP
1849 RORXL $0x1b, SI, R12
1850 RORXL $0x02, SI, DI
1851 ANDL DX, BP
1852 ANDL AX, SI
1853 ORL BP, SI
1854 ADDL R12, BX
1855 ADDL 324(R15), CX
1856 VPXOR Y12, Y7, Y7
1857 VPXOR Y14, Y0, Y0
1858 LEAL (CX)(SI*1), CX
1859 MOVL DI, BP
1860 ORL BX, BP
1861 RORXL $0x1b, BX, R12
1862 RORXL $0x02, BX, SI
1863 ANDL AX, BP
1864 ANDL DI, BX
1865 ORL BP, BX
1866 ADDL R12, CX
1867 ADDL 328(R15), DX
1868 VPXOR Y0, Y7, Y7
1869 VPSLLDQ $0x0c, Y7, Y9
1870 LEAL (DX)(BX*1), DX
1871 MOVL SI, BP
1872 ORL CX, BP
1873 RORXL $0x1b, CX, R12
1874 RORXL $0x02, CX, BX
1875 ANDL DI, BP
1876 ANDL SI, CX
1877 ORL BP, CX
1878 ADDL R12, DX
1879 ADDL 332(R15), AX
1880 VPSLLD $0x01, Y7, Y0
1881 VPSRLD $0x1f, Y7, Y7
1882 LEAL (AX)(CX*1), AX
1883 MOVL BX, BP
1884 ORL DX, BP
1885 RORXL $0x1b, DX, R12
1886 RORXL $0x02, DX, CX
1887 ANDL SI, BP
1888 ANDL BX, DX
1889 ORL BP, DX
1890 ADDL R12, AX
1891 ADDL 352(R15), DI
1892 VPOR Y7, Y0, Y0
1893 VPSLLD $0x02, Y9, Y7
1894 LEAL (DI)(DX*1), DI
1895 MOVL CX, BP
1896 ORL AX, BP
1897 RORXL $0x1b, AX, R12
1898 RORXL $0x02, AX, DX
1899 ANDL BX, BP
1900 ANDL CX, AX
1901 ORL BP, AX
1902 ADDL R12, DI
1903 ADDL 356(R15), SI
1904 VPSRLD $0x1e, Y9, Y9
1905 VPXOR Y7, Y0, Y0
1906 LEAL (SI)(AX*1), SI
1907 MOVL DX, BP
1908 ORL DI, BP
1909 RORXL $0x1b, DI, R12
1910 RORXL $0x02, DI, AX
1911 ANDL CX, BP
1912 ANDL DX, DI
1913 ORL BP, DI
1914 ADDL R12, SI
1915 ADDL 360(R15), BX
1916 LEAL (BX)(DI*1), BX
1917 MOVL AX, BP
1918 ORL SI, BP
1919 RORXL $0x1b, SI, R12
1920 RORXL $0x02, SI, DI
1921 ANDL DX, BP
1922 ANDL AX, SI
1923 ORL BP, SI
1924 ADDL R12, BX
1925 ADDL 364(R15), CX
1926 VPXOR Y9, Y0, Y7
1927 VPADDD 32(R8), Y7, Y0
1928 VMOVDQU Y0, 160(R14)
1929 LEAL (CX)(SI*1), CX
1930 MOVL DI, BP
1931 ORL BX, BP
1932 RORXL $0x1b, BX, R12
1933 RORXL $0x02, BX, SI
1934 ANDL AX, BP
1935 ANDL DI, BX
1936 ORL BP, BX
1937 ADDL R12, CX
1938 ADDL 384(R15), DX
1939 VPALIGNR $0x08, Y13, Y12, Y5
1940 VPSRLDQ $0x04, Y7, Y0
1941 LEAL (DX)(BX*1), DX
1942 MOVL SI, BP
1943 ORL CX, BP
1944 RORXL $0x1b, CX, R12
1945 RORXL $0x02, CX, BX
1946 ANDL DI, BP
1947 ANDL SI, CX
1948 ORL BP, CX
1949 ADDL R12, DX
1950 ADDL 388(R15), AX
1951 VPXOR Y8, Y5, Y5
1952 VPXOR Y13, Y0, Y0
1953 LEAL (AX)(CX*1), AX
1954 MOVL BX, BP
1955 ORL DX, BP
1956 RORXL $0x1b, DX, R12
1957 RORXL $0x02, DX, CX
1958 ANDL SI, BP
1959 ANDL BX, DX
1960 ORL BP, DX
1961 ADDL R12, AX
1962 ADDL 392(R15), DI
1963 VPXOR Y0, Y5, Y5
1964 VPSLLDQ $0x0c, Y5, Y9
1965 LEAL (DI)(DX*1), DI
1966 MOVL CX, BP
1967 ORL AX, BP
1968 RORXL $0x1b, AX, R12
1969 RORXL $0x02, AX, DX
1970 ANDL BX, BP
1971 ANDL CX, AX
1972 ORL BP, AX
1973 ADDL R12, DI
1974 ADDL 396(R15), SI
1975 VPSLLD $0x01, Y5, Y0
1976 VPSRLD $0x1f, Y5, Y5
1977 LEAL (SI)(AX*1), SI
1978 MOVL DX, BP
1979 ORL DI, BP
1980 RORXL $0x1b, DI, R12
1981 RORXL $0x02, DI, AX
1982 ANDL CX, BP
1983 ANDL DX, DI
1984 ORL BP, DI
1985 ADDL R12, SI
1986 ADDL 416(R15), BX
1987 VPOR Y5, Y0, Y0
1988 VPSLLD $0x02, Y9, Y5
1989 LEAL (BX)(DI*1), BX
1990 MOVL AX, BP
1991 ORL SI, BP
1992 RORXL $0x1b, SI, R12
1993 RORXL $0x02, SI, DI
1994 ANDL DX, BP
1995 ANDL AX, SI
1996 ORL BP, SI
1997 ADDL R12, BX
1998 ADDL 420(R15), CX
1999 VPSRLD $0x1e, Y9, Y9
2000 VPXOR Y5, Y0, Y0
2001 LEAL (CX)(SI*1), CX
2002 MOVL DI, BP
2003 ORL BX, BP
2004 RORXL $0x1b, BX, R12
2005 RORXL $0x02, BX, SI
2006 ANDL AX, BP
2007 ANDL DI, BX
2008 ORL BP, BX
2009 ADDL R12, CX
2010 ADDL 424(R15), DX
2011 LEAL (DX)(BX*1), DX
2012 MOVL SI, BP
2013 ORL CX, BP
2014 RORXL $0x1b, CX, R12
2015 RORXL $0x02, CX, BX
2016 ANDL DI, BP
2017 ANDL SI, CX
2018 ORL BP, CX
2019 ADDL R12, DX
2020 ADDL 428(R15), AX
2021 VPXOR Y9, Y0, Y5
2022 VPADDD 32(R8), Y5, Y0
2023 VMOVDQU Y0, 192(R14)
2024 LEAL (AX)(CX*1), AX
2025 MOVL BX, BP
2026 ORL DX, BP
2027 RORXL $0x1b, DX, R12
2028 RORXL $0x02, DX, CX
2029 ANDL SI, BP
2030 ANDL BX, DX
2031 ORL BP, DX
2032 ADDL R12, AX
2033 ADDL 448(R15), DI
2034 VPALIGNR $0x08, Y12, Y8, Y3
2035 VPSRLDQ $0x04, Y5, Y0
2036 LEAL (DI)(DX*1), DI
2037 MOVL CX, BP
2038 ORL AX, BP
2039 RORXL $0x1b, AX, R12
2040 RORXL $0x02, AX, DX
2041 ANDL BX, BP
2042 ANDL CX, AX
2043 ORL BP, AX
2044 ADDL R12, DI
2045 ADDL 452(R15), SI
2046 VPXOR Y7, Y3, Y3
2047 VPXOR Y12, Y0, Y0
2048 LEAL (SI)(AX*1), SI
2049 MOVL DX, BP
2050 ORL DI, BP
2051 RORXL $0x1b, DI, R12
2052 RORXL $0x02, DI, AX
2053 ANDL CX, BP
2054 ANDL DX, DI
2055 ORL BP, DI
2056 ADDL R12, SI
2057 ADDL 456(R15), BX
2058 VPXOR Y0, Y3, Y3
2059 VPSLLDQ $0x0c, Y3, Y9
2060 LEAL (BX)(DI*1), BX
2061 MOVL AX, BP
2062 ORL SI, BP
2063 RORXL $0x1b, SI, R12
2064 RORXL $0x02, SI, DI
2065 ANDL DX, BP
2066 ANDL AX, SI
2067 ORL BP, SI
2068 ADDL R12, BX
2069 ADDL 460(R15), CX
2070 LEAL (CX)(SI*1), CX
2071 RORXL $0x1b, BX, R12
2072 RORXL $0x02, BX, SI
2073 VPSLLD $0x01, Y3, Y0
2074 VPSRLD $0x1f, Y3, Y3
2075 XORL DI, BX
2076 ADDL R12, CX
2077 XORL AX, BX
2078 ADDQ $0x80, R10
2079 CMPQ R10, R11
2080 CMOVQCC R8, R10
2081 ADDL 480(R15), DX
2082 LEAL (DX)(BX*1), DX
2083 RORXL $0x1b, CX, R12
2084 RORXL $0x02, CX, BX
2085 VPOR Y3, Y0, Y0
2086 VPSLLD $0x02, Y9, Y3
2087 XORL SI, CX
2088 ADDL R12, DX
2089 XORL DI, CX
2090 ADDL 484(R15), AX
2091 LEAL (AX)(CX*1), AX
2092 RORXL $0x1b, DX, R12
2093 RORXL $0x02, DX, CX
2094 VPSRLD $0x1e, Y9, Y9
2095 VPXOR Y3, Y0, Y0
2096 XORL BX, DX
2097 ADDL R12, AX
2098 XORL SI, DX
2099 ADDL 488(R15), DI
2100 LEAL (DI)(DX*1), DI
2101 RORXL $0x1b, AX, R12
2102 RORXL $0x02, AX, DX
2103 XORL CX, AX
2104 ADDL R12, DI
2105 XORL BX, AX
2106 ADDL 492(R15), SI
2107 LEAL (SI)(AX*1), SI
2108 RORXL $0x1b, DI, R12
2109 RORXL $0x02, DI, AX
2110 VPXOR Y9, Y0, Y3
2111 VPADDD 32(R8), Y3, Y0
2112 VMOVDQU Y0, 224(R14)
2113 XORL DX, DI
2114 ADDL R12, SI
2115 XORL CX, DI
2116 ADDL 512(R15), BX
2117 LEAL (BX)(DI*1), BX
2118 RORXL $0x1b, SI, R12
2119 RORXL $0x02, SI, DI
2120 VPALIGNR $0x08, Y5, Y3, Y0
2121 XORL AX, SI
2122 ADDL R12, BX
2123 XORL DX, SI
2124 ADDL 516(R15), CX
2125 LEAL (CX)(SI*1), CX
2126 RORXL $0x1b, BX, R12
2127 RORXL $0x02, BX, SI
2128 VPXOR Y14, Y15, Y15
2129 XORL DI, BX
2130 ADDL R12, CX
2131 XORL AX, BX
2132 ADDL 520(R15), DX
2133 LEAL (DX)(BX*1), DX
2134 RORXL $0x1b, CX, R12
2135 RORXL $0x02, CX, BX
2136 VPXOR Y8, Y0, Y0
2137 XORL SI, CX
2138 ADDL R12, DX
2139 XORL DI, CX
2140 ADDL 524(R15), AX
2141 LEAL (AX)(CX*1), AX
2142 RORXL $0x1b, DX, R12
2143 RORXL $0x02, DX, CX
2144 VPXOR Y0, Y15, Y15
2145 XORL BX, DX
2146 ADDL R12, AX
2147 XORL SI, DX
2148 ADDL 544(R15), DI
2149 LEAL (DI)(DX*1), DI
2150 RORXL $0x1b, AX, R12
2151 RORXL $0x02, AX, DX
2152 VPSLLD $0x02, Y15, Y0
2153 XORL CX, AX
2154 ADDL R12, DI
2155 XORL BX, AX
2156 ADDL 548(R15), SI
2157 LEAL (SI)(AX*1), SI
2158 RORXL $0x1b, DI, R12
2159 RORXL $0x02, DI, AX
2160 VPSRLD $0x1e, Y15, Y15
2161 VPOR Y15, Y0, Y15
2162 XORL DX, DI
2163 ADDL R12, SI
2164 XORL CX, DI
2165 ADDL 552(R15), BX
2166 LEAL (BX)(DI*1), BX
2167 RORXL $0x1b, SI, R12
2168 RORXL $0x02, SI, DI
2169 XORL AX, SI
2170 ADDL R12, BX
2171 XORL DX, SI
2172 ADDL 556(R15), CX
2173 LEAL (CX)(SI*1), CX
2174 RORXL $0x1b, BX, R12
2175 RORXL $0x02, BX, SI
2176 VPADDD 32(R8), Y15, Y0
2177 VMOVDQU Y0, 256(R14)
2178 XORL DI, BX
2179 ADDL R12, CX
2180 XORL AX, BX
2181 ADDL 576(R15), DX
2182 LEAL (DX)(BX*1), DX
2183 RORXL $0x1b, CX, R12
2184 RORXL $0x02, CX, BX
2185 VPALIGNR $0x08, Y3, Y15, Y0
2186 XORL SI, CX
2187 ADDL R12, DX
2188 XORL DI, CX
2189 ADDL 580(R15), AX
2190 LEAL (AX)(CX*1), AX
2191 RORXL $0x1b, DX, R12
2192 RORXL $0x02, DX, CX
2193 VPXOR Y13, Y14, Y14
2194 XORL BX, DX
2195 ADDL R12, AX
2196 XORL SI, DX
2197 ADDL 584(R15), DI
2198 LEAL (DI)(DX*1), DI
2199 RORXL $0x1b, AX, R12
2200 RORXL $0x02, AX, DX
2201 VPXOR Y7, Y0, Y0
2202 XORL CX, AX
2203 ADDL R12, DI
2204 XORL BX, AX
2205 ADDL 588(R15), SI
2206 LEAL (SI)(AX*1), SI
2207 RORXL $0x1b, DI, R12
2208 RORXL $0x02, DI, AX
2209 VPXOR Y0, Y14, Y14
2210 XORL DX, DI
2211 ADDL R12, SI
2212 XORL CX, DI
2213 ADDL 608(R15), BX
2214 LEAL (BX)(DI*1), BX
2215 RORXL $0x1b, SI, R12
2216 RORXL $0x02, SI, DI
2217 VPSLLD $0x02, Y14, Y0
2218 XORL AX, SI
2219 ADDL R12, BX
2220 XORL DX, SI
2221 ADDL 612(R15), CX
2222 LEAL (CX)(SI*1), CX
2223 RORXL $0x1b, BX, R12
2224 RORXL $0x02, BX, SI
2225 VPSRLD $0x1e, Y14, Y14
2226 VPOR Y14, Y0, Y14
2227 XORL DI, BX
2228 ADDL R12, CX
2229 XORL AX, BX
2230 ADDL 616(R15), DX
2231 LEAL (DX)(BX*1), DX
2232 RORXL $0x1b, CX, R12
2233 RORXL $0x02, CX, BX
2234 XORL SI, CX
2235 ADDL R12, DX
2236 XORL DI, CX
2237 ADDL 620(R15), AX
2238 LEAL (AX)(CX*1), AX
2239 RORXL $0x1b, DX, R12
2240 VPADDD 32(R8), Y14, Y0
2241 VMOVDQU Y0, 288(R14)
2242 ADDL R12, AX
2243 ADDL (R9), AX
2244 MOVL AX, (R9)
2245 ADDL 4(R9), DX
2246 MOVL DX, 4(R9)
2247 ADDL 8(R9), BX
2248 MOVL BX, 8(R9)
2249 ADDL 12(R9), SI
2250 MOVL SI, 12(R9)
2251 ADDL 16(R9), DI
2252 MOVL DI, 16(R9)
2253 CMPQ R10, R8
2254 JE loop
2255 MOVL DX, CX
2256 MOVL CX, DX
2257 RORXL $0x02, CX, CX
2258 ANDNL SI, DX, BP
2259 ANDL BX, DX
2260 XORL BP, DX
2261 ADDL 16(R15), DI
2262 ANDNL BX, AX, BP
2263 LEAL (DI)(DX*1), DI
2264 RORXL $0x1b, AX, R12
2265 RORXL $0x02, AX, DX
2266 VPALIGNR $0x08, Y15, Y14, Y0
2267 ANDL CX, AX
2268 XORL BP, AX
2269 LEAL (DI)(R12*1), DI
2270 ADDL 20(R15), SI
2271 ANDNL CX, DI, BP
2272 LEAL (SI)(AX*1), SI
2273 RORXL $0x1b, DI, R12
2274 RORXL $0x02, DI, AX
2275 VPXOR Y12, Y13, Y13
2276 ANDL DX, DI
2277 XORL BP, DI
2278 LEAL (SI)(R12*1), SI
2279 ADDL 24(R15), BX
2280 ANDNL DX, SI, BP
2281 LEAL (BX)(DI*1), BX
2282 RORXL $0x1b, SI, R12
2283 RORXL $0x02, SI, DI
2284 VPXOR Y5, Y0, Y0
2285 ANDL AX, SI
2286 XORL BP, SI
2287 LEAL (BX)(R12*1), BX
2288 ADDL 28(R15), CX
2289 ANDNL AX, BX, BP
2290 LEAL (CX)(SI*1), CX
2291 RORXL $0x1b, BX, R12
2292 RORXL $0x02, BX, SI
2293 VPXOR Y0, Y13, Y13
2294 ANDL DI, BX
2295 XORL BP, BX
2296 LEAL (CX)(R12*1), CX
2297 ADDL 48(R15), DX
2298 ANDNL DI, CX, BP
2299 LEAL (DX)(BX*1), DX
2300 RORXL $0x1b, CX, R12
2301 RORXL $0x02, CX, BX
2302 VPSLLD $0x02, Y13, Y0
2303 ANDL SI, CX
2304 XORL BP, CX
2305 LEAL (DX)(R12*1), DX
2306 ADDL 52(R15), AX
2307 ANDNL SI, DX, BP
2308 LEAL (AX)(CX*1), AX
2309 RORXL $0x1b, DX, R12
2310 RORXL $0x02, DX, CX
2311 VPSRLD $0x1e, Y13, Y13
2312 VPOR Y13, Y0, Y13
2313 ANDL BX, DX
2314 XORL BP, DX
2315 LEAL (AX)(R12*1), AX
2316 ADDL 56(R15), DI
2317 ANDNL BX, AX, BP
2318 LEAL (DI)(DX*1), DI
2319 RORXL $0x1b, AX, R12
2320 RORXL $0x02, AX, DX
2321 ANDL CX, AX
2322 XORL BP, AX
2323 LEAL (DI)(R12*1), DI
2324 ADDL 60(R15), SI
2325 ANDNL CX, DI, BP
2326 LEAL (SI)(AX*1), SI
2327 RORXL $0x1b, DI, R12
2328 RORXL $0x02, DI, AX
2329 VPADDD 64(R8), Y13, Y0
2330 VMOVDQU Y0, 320(R14)
2331 ANDL DX, DI
2332 XORL BP, DI
2333 LEAL (SI)(R12*1), SI
2334 ADDL 80(R15), BX
2335 ANDNL DX, SI, BP
2336 LEAL (BX)(DI*1), BX
2337 RORXL $0x1b, SI, R12
2338 RORXL $0x02, SI, DI
2339 VPALIGNR $0x08, Y14, Y13, Y0
2340 ANDL AX, SI
2341 XORL BP, SI
2342 LEAL (BX)(R12*1), BX
2343 ADDL 84(R15), CX
2344 ANDNL AX, BX, BP
2345 LEAL (CX)(SI*1), CX
2346 RORXL $0x1b, BX, R12
2347 RORXL $0x02, BX, SI
2348 VPXOR Y8, Y12, Y12
2349 ANDL DI, BX
2350 XORL BP, BX
2351 LEAL (CX)(R12*1), CX
2352 ADDL 88(R15), DX
2353 ANDNL DI, CX, BP
2354 LEAL (DX)(BX*1), DX
2355 RORXL $0x1b, CX, R12
2356 RORXL $0x02, CX, BX
2357 VPXOR Y3, Y0, Y0
2358 ANDL SI, CX
2359 XORL BP, CX
2360 LEAL (DX)(R12*1), DX
2361 ADDL 92(R15), AX
2362 ANDNL SI, DX, BP
2363 LEAL (AX)(CX*1), AX
2364 RORXL $0x1b, DX, R12
2365 RORXL $0x02, DX, CX
2366 VPXOR Y0, Y12, Y12
2367 ANDL BX, DX
2368 XORL BP, DX
2369 LEAL (AX)(R12*1), AX
2370 ADDL 112(R15), DI
2371 ANDNL BX, AX, BP
2372 LEAL (DI)(DX*1), DI
2373 RORXL $0x1b, AX, R12
2374 RORXL $0x02, AX, DX
2375 VPSLLD $0x02, Y12, Y0
2376 ANDL CX, AX
2377 XORL BP, AX
2378 LEAL (DI)(R12*1), DI
2379 ADDL 116(R15), SI
2380 ANDNL CX, DI, BP
2381 LEAL (SI)(AX*1), SI
2382 RORXL $0x1b, DI, R12
2383 RORXL $0x02, DI, AX
2384 VPSRLD $0x1e, Y12, Y12
2385 VPOR Y12, Y0, Y12
2386 ANDL DX, DI
2387 XORL BP, DI
2388 LEAL (SI)(R12*1), SI
2389 ADDL 120(R15), BX
2390 ANDNL DX, SI, BP
2391 LEAL (BX)(DI*1), BX
2392 RORXL $0x1b, SI, R12
2393 RORXL $0x02, SI, DI
2394 ANDL AX, SI
2395 XORL BP, SI
2396 LEAL (BX)(R12*1), BX
2397 ADDL 124(R15), CX
2398 ANDNL AX, BX, BP
2399 LEAL (CX)(SI*1), CX
2400 RORXL $0x1b, BX, R12
2401 RORXL $0x02, BX, SI
2402 VPADDD 64(R8), Y12, Y0
2403 VMOVDQU Y0, 352(R14)
2404 ANDL DI, BX
2405 XORL BP, BX
2406 LEAL (CX)(R12*1), CX
2407 ADDL 144(R15), DX
2408 ANDNL DI, CX, BP
2409 LEAL (DX)(BX*1), DX
2410 RORXL $0x1b, CX, R12
2411 RORXL $0x02, CX, BX
2412 VPALIGNR $0x08, Y13, Y12, Y0
2413 ANDL SI, CX
2414 XORL BP, CX
2415 LEAL (DX)(R12*1), DX
2416 ADDL 148(R15), AX
2417 ANDNL SI, DX, BP
2418 LEAL (AX)(CX*1), AX
2419 RORXL $0x1b, DX, R12
2420 RORXL $0x02, DX, CX
2421 VPXOR Y7, Y8, Y8
2422 ANDL BX, DX
2423 XORL BP, DX
2424 LEAL (AX)(R12*1), AX
2425 ADDL 152(R15), DI
2426 ANDNL BX, AX, BP
2427 LEAL (DI)(DX*1), DI
2428 RORXL $0x1b, AX, R12
2429 RORXL $0x02, AX, DX
2430 VPXOR Y15, Y0, Y0
2431 ANDL CX, AX
2432 XORL BP, AX
2433 LEAL (DI)(R12*1), DI
2434 ADDL 156(R15), SI
2435 LEAL (SI)(AX*1), SI
2436 RORXL $0x1b, DI, R12
2437 RORXL $0x02, DI, AX
2438 VPXOR Y0, Y8, Y8
2439 XORL DX, DI
2440 ADDL R12, SI
2441 XORL CX, DI
2442 ADDL 176(R15), BX
2443 LEAL (BX)(DI*1), BX
2444 RORXL $0x1b, SI, R12
2445 RORXL $0x02, SI, DI
2446 VPSLLD $0x02, Y8, Y0
2447 XORL AX, SI
2448 ADDL R12, BX
2449 XORL DX, SI
2450 ADDL 180(R15), CX
2451 LEAL (CX)(SI*1), CX
2452 RORXL $0x1b, BX, R12
2453 RORXL $0x02, BX, SI
2454 VPSRLD $0x1e, Y8, Y8
2455 VPOR Y8, Y0, Y8
2456 XORL DI, BX
2457 ADDL R12, CX
2458 XORL AX, BX
2459 ADDL 184(R15), DX
2460 LEAL (DX)(BX*1), DX
2461 RORXL $0x1b, CX, R12
2462 RORXL $0x02, CX, BX
2463 XORL SI, CX
2464 ADDL R12, DX
2465 XORL DI, CX
2466 ADDL 188(R15), AX
2467 LEAL (AX)(CX*1), AX
2468 RORXL $0x1b, DX, R12
2469 RORXL $0x02, DX, CX
2470 VPADDD 64(R8), Y8, Y0
2471 VMOVDQU Y0, 384(R14)
2472 XORL BX, DX
2473 ADDL R12, AX
2474 XORL SI, DX
2475 ADDL 208(R15), DI
2476 LEAL (DI)(DX*1), DI
2477 RORXL $0x1b, AX, R12
2478 RORXL $0x02, AX, DX
2479 VPALIGNR $0x08, Y12, Y8, Y0
2480 XORL CX, AX
2481 ADDL R12, DI
2482 XORL BX, AX
2483 ADDL 212(R15), SI
2484 LEAL (SI)(AX*1), SI
2485 RORXL $0x1b, DI, R12
2486 RORXL $0x02, DI, AX
2487 VPXOR Y5, Y7, Y7
2488 XORL DX, DI
2489 ADDL R12, SI
2490 XORL CX, DI
2491 ADDL 216(R15), BX
2492 LEAL (BX)(DI*1), BX
2493 RORXL $0x1b, SI, R12
2494 RORXL $0x02, SI, DI
2495 VPXOR Y14, Y0, Y0
2496 XORL AX, SI
2497 ADDL R12, BX
2498 XORL DX, SI
2499 ADDL 220(R15), CX
2500 LEAL (CX)(SI*1), CX
2501 RORXL $0x1b, BX, R12
2502 RORXL $0x02, BX, SI
2503 VPXOR Y0, Y7, Y7
2504 XORL DI, BX
2505 ADDL R12, CX
2506 XORL AX, BX
2507 ADDL 240(R15), DX
2508 LEAL (DX)(BX*1), DX
2509 RORXL $0x1b, CX, R12
2510 RORXL $0x02, CX, BX
2511 VPSLLD $0x02, Y7, Y0
2512 XORL SI, CX
2513 ADDL R12, DX
2514 XORL DI, CX
2515 ADDL 244(R15), AX
2516 LEAL (AX)(CX*1), AX
2517 RORXL $0x1b, DX, R12
2518 RORXL $0x02, DX, CX
2519 VPSRLD $0x1e, Y7, Y7
2520 VPOR Y7, Y0, Y7
2521 XORL BX, DX
2522 ADDL R12, AX
2523 XORL SI, DX
2524 ADDL 248(R15), DI
2525 LEAL (DI)(DX*1), DI
2526 RORXL $0x1b, AX, R12
2527 RORXL $0x02, AX, DX
2528 XORL CX, AX
2529 ADDL R12, DI
2530 XORL BX, AX
2531 ADDL 252(R15), SI
2532 LEAL (SI)(AX*1), SI
2533 RORXL $0x1b, DI, R12
2534 RORXL $0x02, DI, AX
2535 VPADDD 64(R8), Y7, Y0
2536 VMOVDQU Y0, 416(R14)
2537 XORL DX, DI
2538 ADDL R12, SI
2539 XORL CX, DI
2540 ADDL 272(R15), BX
2541 LEAL (BX)(DI*1), BX
2542 RORXL $0x1b, SI, R12
2543 RORXL $0x02, SI, DI
2544 VPALIGNR $0x08, Y8, Y7, Y0
2545 XORL AX, SI
2546 ADDL R12, BX
2547 XORL DX, SI
2548 ADDL 276(R15), CX
2549 LEAL (CX)(SI*1), CX
2550 RORXL $0x1b, BX, R12
2551 RORXL $0x02, BX, SI
2552 VPXOR Y3, Y5, Y5
2553 XORL DI, BX
2554 ADDL R12, CX
2555 XORL AX, BX
2556 ADDL 280(R15), DX
2557 LEAL (DX)(BX*1), DX
2558 RORXL $0x1b, CX, R12
2559 RORXL $0x02, CX, BX
2560 VPXOR Y13, Y0, Y0
2561 XORL SI, CX
2562 ADDL R12, DX
2563 XORL DI, CX
2564 ADDL 284(R15), AX
2565 LEAL (AX)(CX*1), AX
2566 RORXL $0x1b, DX, R12
2567 RORXL $0x02, DX, CX
2568 VPXOR Y0, Y5, Y5
2569 XORL BX, DX
2570 ADDL R12, AX
2571 XORL SI, DX
2572 ADDL 304(R15), DI
2573 LEAL (DI)(DX*1), DI
2574 RORXL $0x1b, AX, R12
2575 RORXL $0x02, AX, DX
2576 VPSLLD $0x02, Y5, Y0
2577 XORL CX, AX
2578 ADDL R12, DI
2579 XORL BX, AX
2580 ADDL 308(R15), SI
2581 LEAL (SI)(AX*1), SI
2582 RORXL $0x1b, DI, R12
2583 RORXL $0x02, DI, AX
2584 VPSRLD $0x1e, Y5, Y5
2585 VPOR Y5, Y0, Y5
2586 XORL DX, DI
2587 ADDL R12, SI
2588 XORL CX, DI
2589 ADDL 312(R15), BX
2590 LEAL (BX)(DI*1), BX
2591 RORXL $0x1b, SI, R12
2592 RORXL $0x02, SI, DI
2593 XORL AX, SI
2594 ADDL R12, BX
2595 XORL DX, SI
2596 ADDL 316(R15), CX
2597 VPADDD 64(R8), Y5, Y0
2598 VMOVDQU Y0, 448(R14)
2599 LEAL (CX)(SI*1), CX
2600 MOVL DI, BP
2601 ORL BX, BP
2602 RORXL $0x1b, BX, R12
2603 RORXL $0x02, BX, SI
2604 ANDL AX, BP
2605 ANDL DI, BX
2606 ORL BP, BX
2607 ADDL R12, CX
2608 ADDL 336(R15), DX
2609 VPALIGNR $0x08, Y7, Y5, Y0
2610 LEAL (DX)(BX*1), DX
2611 MOVL SI, BP
2612 ORL CX, BP
2613 RORXL $0x1b, CX, R12
2614 RORXL $0x02, CX, BX
2615 ANDL DI, BP
2616 ANDL SI, CX
2617 ORL BP, CX
2618 ADDL R12, DX
2619 ADDL 340(R15), AX
2620 VPXOR Y15, Y3, Y3
2621 LEAL (AX)(CX*1), AX
2622 MOVL BX, BP
2623 ORL DX, BP
2624 RORXL $0x1b, DX, R12
2625 RORXL $0x02, DX, CX
2626 ANDL SI, BP
2627 ANDL BX, DX
2628 ORL BP, DX
2629 ADDL R12, AX
2630 ADDL 344(R15), DI
2631 VPXOR Y12, Y0, Y0
2632 LEAL (DI)(DX*1), DI
2633 MOVL CX, BP
2634 ORL AX, BP
2635 RORXL $0x1b, AX, R12
2636 RORXL $0x02, AX, DX
2637 ANDL BX, BP
2638 ANDL CX, AX
2639 ORL BP, AX
2640 ADDL R12, DI
2641 ADDL 348(R15), SI
2642 VPXOR Y0, Y3, Y3
2643 LEAL (SI)(AX*1), SI
2644 MOVL DX, BP
2645 ORL DI, BP
2646 RORXL $0x1b, DI, R12
2647 RORXL $0x02, DI, AX
2648 ANDL CX, BP
2649 ANDL DX, DI
2650 ORL BP, DI
2651 ADDL R12, SI
2652 ADDL 368(R15), BX
2653 VPSLLD $0x02, Y3, Y0
2654 LEAL (BX)(DI*1), BX
2655 MOVL AX, BP
2656 ORL SI, BP
2657 RORXL $0x1b, SI, R12
2658 RORXL $0x02, SI, DI
2659 ANDL DX, BP
2660 ANDL AX, SI
2661 ORL BP, SI
2662 ADDL R12, BX
2663 ADDL 372(R15), CX
2664 VPSRLD $0x1e, Y3, Y3
2665 VPOR Y3, Y0, Y3
2666 LEAL (CX)(SI*1), CX
2667 MOVL DI, BP
2668 ORL BX, BP
2669 RORXL $0x1b, BX, R12
2670 RORXL $0x02, BX, SI
2671 ANDL AX, BP
2672 ANDL DI, BX
2673 ORL BP, BX
2674 ADDL R12, CX
2675 ADDL 376(R15), DX
2676 LEAL (DX)(BX*1), DX
2677 MOVL SI, BP
2678 ORL CX, BP
2679 RORXL $0x1b, CX, R12
2680 RORXL $0x02, CX, BX
2681 ANDL DI, BP
2682 ANDL SI, CX
2683 ORL BP, CX
2684 ADDL R12, DX
2685 ADDL 380(R15), AX
2686 VPADDD 96(R8), Y3, Y0
2687 VMOVDQU Y0, 480(R14)
2688 LEAL (AX)(CX*1), AX
2689 MOVL BX, BP
2690 ORL DX, BP
2691 RORXL $0x1b, DX, R12
2692 RORXL $0x02, DX, CX
2693 ANDL SI, BP
2694 ANDL BX, DX
2695 ORL BP, DX
2696 ADDL R12, AX
2697 ADDL 400(R15), DI
2698 VPALIGNR $0x08, Y5, Y3, Y0
2699 LEAL (DI)(DX*1), DI
2700 MOVL CX, BP
2701 ORL AX, BP
2702 RORXL $0x1b, AX, R12
2703 RORXL $0x02, AX, DX
2704 ANDL BX, BP
2705 ANDL CX, AX
2706 ORL BP, AX
2707 ADDL R12, DI
2708 ADDL 404(R15), SI
2709 VPXOR Y14, Y15, Y15
2710 LEAL (SI)(AX*1), SI
2711 MOVL DX, BP
2712 ORL DI, BP
2713 RORXL $0x1b, DI, R12
2714 RORXL $0x02, DI, AX
2715 ANDL CX, BP
2716 ANDL DX, DI
2717 ORL BP, DI
2718 ADDL R12, SI
2719 ADDL 408(R15), BX
2720 VPXOR Y8, Y0, Y0
2721 LEAL (BX)(DI*1), BX
2722 MOVL AX, BP
2723 ORL SI, BP
2724 RORXL $0x1b, SI, R12
2725 RORXL $0x02, SI, DI
2726 ANDL DX, BP
2727 ANDL AX, SI
2728 ORL BP, SI
2729 ADDL R12, BX
2730 ADDL 412(R15), CX
2731 VPXOR Y0, Y15, Y15
2732 LEAL (CX)(SI*1), CX
2733 MOVL DI, BP
2734 ORL BX, BP
2735 RORXL $0x1b, BX, R12
2736 RORXL $0x02, BX, SI
2737 ANDL AX, BP
2738 ANDL DI, BX
2739 ORL BP, BX
2740 ADDL R12, CX
2741 ADDL 432(R15), DX
2742 VPSLLD $0x02, Y15, Y0
2743 LEAL (DX)(BX*1), DX
2744 MOVL SI, BP
2745 ORL CX, BP
2746 RORXL $0x1b, CX, R12
2747 RORXL $0x02, CX, BX
2748 ANDL DI, BP
2749 ANDL SI, CX
2750 ORL BP, CX
2751 ADDL R12, DX
2752 ADDL 436(R15), AX
2753 VPSRLD $0x1e, Y15, Y15
2754 VPOR Y15, Y0, Y15
2755 LEAL (AX)(CX*1), AX
2756 MOVL BX, BP
2757 ORL DX, BP
2758 RORXL $0x1b, DX, R12
2759 RORXL $0x02, DX, CX
2760 ANDL SI, BP
2761 ANDL BX, DX
2762 ORL BP, DX
2763 ADDL R12, AX
2764 ADDL 440(R15), DI
2765 LEAL (DI)(DX*1), DI
2766 MOVL CX, BP
2767 ORL AX, BP
2768 RORXL $0x1b, AX, R12
2769 RORXL $0x02, AX, DX
2770 ANDL BX, BP
2771 ANDL CX, AX
2772 ORL BP, AX
2773 ADDL R12, DI
2774 ADDL 444(R15), SI
2775 VPADDD 96(R8), Y15, Y0
2776 VMOVDQU Y0, 512(R14)
2777 LEAL (SI)(AX*1), SI
2778 MOVL DX, BP
2779 ORL DI, BP
2780 RORXL $0x1b, DI, R12
2781 RORXL $0x02, DI, AX
2782 ANDL CX, BP
2783 ANDL DX, DI
2784 ORL BP, DI
2785 ADDL R12, SI
2786 ADDL 464(R15), BX
2787 VPALIGNR $0x08, Y3, Y15, Y0
2788 LEAL (BX)(DI*1), BX
2789 MOVL AX, BP
2790 ORL SI, BP
2791 RORXL $0x1b, SI, R12
2792 RORXL $0x02, SI, DI
2793 ANDL DX, BP
2794 ANDL AX, SI
2795 ORL BP, SI
2796 ADDL R12, BX
2797 ADDL 468(R15), CX
2798 VPXOR Y13, Y14, Y14
2799 LEAL (CX)(SI*1), CX
2800 MOVL DI, BP
2801 ORL BX, BP
2802 RORXL $0x1b, BX, R12
2803 RORXL $0x02, BX, SI
2804 ANDL AX, BP
2805 ANDL DI, BX
2806 ORL BP, BX
2807 ADDL R12, CX
2808 ADDL 472(R15), DX
2809 VPXOR Y7, Y0, Y0
2810 LEAL (DX)(BX*1), DX
2811 MOVL SI, BP
2812 ORL CX, BP
2813 RORXL $0x1b, CX, R12
2814 RORXL $0x02, CX, BX
2815 ANDL DI, BP
2816 ANDL SI, CX
2817 ORL BP, CX
2818 ADDL R12, DX
2819 ADDL 476(R15), AX
2820 LEAL (AX)(CX*1), AX
2821 RORXL $0x1b, DX, R12
2822 RORXL $0x02, DX, CX
2823 VPXOR Y0, Y14, Y14
2824 XORL BX, DX
2825 ADDL R12, AX
2826 XORL SI, DX
2827 ADDQ $0x80, R13
2828 CMPQ R13, R11
2829 CMOVQCC R8, R10
2830 ADDL 496(R15), DI
2831 LEAL (DI)(DX*1), DI
2832 RORXL $0x1b, AX, R12
2833 RORXL $0x02, AX, DX
2834 VPSLLD $0x02, Y14, Y0
2835 XORL CX, AX
2836 ADDL R12, DI
2837 XORL BX, AX
2838 ADDL 500(R15), SI
2839 LEAL (SI)(AX*1), SI
2840 RORXL $0x1b, DI, R12
2841 RORXL $0x02, DI, AX
2842 VPSRLD $0x1e, Y14, Y14
2843 VPOR Y14, Y0, Y14
2844 XORL DX, DI
2845 ADDL R12, SI
2846 XORL CX, DI
2847 ADDL 504(R15), BX
2848 LEAL (BX)(DI*1), BX
2849 RORXL $0x1b, SI, R12
2850 RORXL $0x02, SI, DI
2851 XORL AX, SI
2852 ADDL R12, BX
2853 XORL DX, SI
2854 ADDL 508(R15), CX
2855 LEAL (CX)(SI*1), CX
2856 RORXL $0x1b, BX, R12
2857 RORXL $0x02, BX, SI
2858 VPADDD 96(R8), Y14, Y0
2859 VMOVDQU Y0, 544(R14)
2860 XORL DI, BX
2861 ADDL R12, CX
2862 XORL AX, BX
2863 ADDL 528(R15), DX
2864 LEAL (DX)(BX*1), DX
2865 RORXL $0x1b, CX, R12
2866 RORXL $0x02, CX, BX
2867 VPALIGNR $0x08, Y15, Y14, Y0
2868 XORL SI, CX
2869 ADDL R12, DX
2870 XORL DI, CX
2871 ADDL 532(R15), AX
2872 LEAL (AX)(CX*1), AX
2873 RORXL $0x1b, DX, R12
2874 RORXL $0x02, DX, CX
2875 VPXOR Y12, Y13, Y13
2876 XORL BX, DX
2877 ADDL R12, AX
2878 XORL SI, DX
2879 ADDL 536(R15), DI
2880 LEAL (DI)(DX*1), DI
2881 RORXL $0x1b, AX, R12
2882 RORXL $0x02, AX, DX
2883 VPXOR Y5, Y0, Y0
2884 XORL CX, AX
2885 ADDL R12, DI
2886 XORL BX, AX
2887 ADDL 540(R15), SI
2888 LEAL (SI)(AX*1), SI
2889 RORXL $0x1b, DI, R12
2890 RORXL $0x02, DI, AX
2891 VPXOR Y0, Y13, Y13
2892 XORL DX, DI
2893 ADDL R12, SI
2894 XORL CX, DI
2895 ADDL 560(R15), BX
2896 LEAL (BX)(DI*1), BX
2897 RORXL $0x1b, SI, R12
2898 RORXL $0x02, SI, DI
2899 VPSLLD $0x02, Y13, Y0
2900 XORL AX, SI
2901 ADDL R12, BX
2902 XORL DX, SI
2903 ADDL 564(R15), CX
2904 LEAL (CX)(SI*1), CX
2905 RORXL $0x1b, BX, R12
2906 RORXL $0x02, BX, SI
2907 VPSRLD $0x1e, Y13, Y13
2908 VPOR Y13, Y0, Y13
2909 XORL DI, BX
2910 ADDL R12, CX
2911 XORL AX, BX
2912 ADDL 568(R15), DX
2913 LEAL (DX)(BX*1), DX
2914 RORXL $0x1b, CX, R12
2915 RORXL $0x02, CX, BX
2916 XORL SI, CX
2917 ADDL R12, DX
2918 XORL DI, CX
2919 ADDL 572(R15), AX
2920 LEAL (AX)(CX*1), AX
2921 RORXL $0x1b, DX, R12
2922 RORXL $0x02, DX, CX
2923 VPADDD 96(R8), Y13, Y0
2924 VMOVDQU Y0, 576(R14)
2925 XORL BX, DX
2926 ADDL R12, AX
2927 XORL SI, DX
2928 ADDL 592(R15), DI
2929 LEAL (DI)(DX*1), DI
2930 RORXL $0x1b, AX, R12
2931 RORXL $0x02, AX, DX
2932 VPALIGNR $0x08, Y14, Y13, Y0
2933 XORL CX, AX
2934 ADDL R12, DI
2935 XORL BX, AX
2936 ADDL 596(R15), SI
2937 LEAL (SI)(AX*1), SI
2938 RORXL $0x1b, DI, R12
2939 RORXL $0x02, DI, AX
2940 VPXOR Y8, Y12, Y12
2941 XORL DX, DI
2942 ADDL R12, SI
2943 XORL CX, DI
2944 ADDL 600(R15), BX
2945 LEAL (BX)(DI*1), BX
2946 RORXL $0x1b, SI, R12
2947 RORXL $0x02, SI, DI
2948 VPXOR Y3, Y0, Y0
2949 XORL AX, SI
2950 ADDL R12, BX
2951 XORL DX, SI
2952 ADDL 604(R15), CX
2953 LEAL (CX)(SI*1), CX
2954 RORXL $0x1b, BX, R12
2955 RORXL $0x02, BX, SI
2956 VPXOR Y0, Y12, Y12
2957 XORL DI, BX
2958 ADDL R12, CX
2959 XORL AX, BX
2960 ADDL 624(R15), DX
2961 LEAL (DX)(BX*1), DX
2962 RORXL $0x1b, CX, R12
2963 RORXL $0x02, CX, BX
2964 VPSLLD $0x02, Y12, Y0
2965 XORL SI, CX
2966 ADDL R12, DX
2967 XORL DI, CX
2968 ADDL 628(R15), AX
2969 LEAL (AX)(CX*1), AX
2970 RORXL $0x1b, DX, R12
2971 RORXL $0x02, DX, CX
2972 VPSRLD $0x1e, Y12, Y12
2973 VPOR Y12, Y0, Y12
2974 XORL BX, DX
2975 ADDL R12, AX
2976 XORL SI, DX
2977 ADDL 632(R15), DI
2978 LEAL (DI)(DX*1), DI
2979 RORXL $0x1b, AX, R12
2980 RORXL $0x02, AX, DX
2981 XORL CX, AX
2982 ADDL R12, DI
2983 XORL BX, AX
2984 ADDL 636(R15), SI
2985 LEAL (SI)(AX*1), SI
2986 RORXL $0x1b, DI, R12
2987 VPADDD 96(R8), Y12, Y0
2988 VMOVDQU Y0, 608(R14)
2989 ADDL R12, SI
2990 ADDL (R9), SI
2991 MOVL SI, (R9)
2992 ADDL 4(R9), DI
2993 MOVL DI, 4(R9)
2994 ADDL 8(R9), DX
2995 MOVL DX, 8(R9)
2996 ADDL 12(R9), CX
2997 MOVL CX, 12(R9)
2998 ADDL 16(R9), BX
2999 MOVL BX, 16(R9)
3000 MOVL SI, R12
3001 MOVL DI, SI
3002 MOVL DX, DI
3003 MOVL BX, DX
3004 MOVL CX, AX
3005 MOVL R12, CX
3006 XCHGQ R15, R14
3007 JMP loop
3008
3009 DATA K_XMM_AR<>+0(SB)/4, $0x5a827999
3010 DATA K_XMM_AR<>+4(SB)/4, $0x5a827999
3011 DATA K_XMM_AR<>+8(SB)/4, $0x5a827999
3012 DATA K_XMM_AR<>+12(SB)/4, $0x5a827999
3013 DATA K_XMM_AR<>+16(SB)/4, $0x5a827999
3014 DATA K_XMM_AR<>+20(SB)/4, $0x5a827999
3015 DATA K_XMM_AR<>+24(SB)/4, $0x5a827999
3016 DATA K_XMM_AR<>+28(SB)/4, $0x5a827999
3017 DATA K_XMM_AR<>+32(SB)/4, $0x6ed9eba1
3018 DATA K_XMM_AR<>+36(SB)/4, $0x6ed9eba1
3019 DATA K_XMM_AR<>+40(SB)/4, $0x6ed9eba1
3020 DATA K_XMM_AR<>+44(SB)/4, $0x6ed9eba1
3021 DATA K_XMM_AR<>+48(SB)/4, $0x6ed9eba1
3022 DATA K_XMM_AR<>+52(SB)/4, $0x6ed9eba1
3023 DATA K_XMM_AR<>+56(SB)/4, $0x6ed9eba1
3024 DATA K_XMM_AR<>+60(SB)/4, $0x6ed9eba1
3025 DATA K_XMM_AR<>+64(SB)/4, $0x8f1bbcdc
3026 DATA K_XMM_AR<>+68(SB)/4, $0x8f1bbcdc
3027 DATA K_XMM_AR<>+72(SB)/4, $0x8f1bbcdc
3028 DATA K_XMM_AR<>+76(SB)/4, $0x8f1bbcdc
3029 DATA K_XMM_AR<>+80(SB)/4, $0x8f1bbcdc
3030 DATA K_XMM_AR<>+84(SB)/4, $0x8f1bbcdc
3031 DATA K_XMM_AR<>+88(SB)/4, $0x8f1bbcdc
3032 DATA K_XMM_AR<>+92(SB)/4, $0x8f1bbcdc
3033 DATA K_XMM_AR<>+96(SB)/4, $0xca62c1d6
3034 DATA K_XMM_AR<>+100(SB)/4, $0xca62c1d6
3035 DATA K_XMM_AR<>+104(SB)/4, $0xca62c1d6
3036 DATA K_XMM_AR<>+108(SB)/4, $0xca62c1d6
3037 DATA K_XMM_AR<>+112(SB)/4, $0xca62c1d6
3038 DATA K_XMM_AR<>+116(SB)/4, $0xca62c1d6
3039 DATA K_XMM_AR<>+120(SB)/4, $0xca62c1d6
3040 DATA K_XMM_AR<>+124(SB)/4, $0xca62c1d6
3041 GLOBL K_XMM_AR<>(SB), RODATA, $128
3042
3043 DATA BSWAP_SHUFB_CTL<>+0(SB)/4, $0x00010203
3044 DATA BSWAP_SHUFB_CTL<>+4(SB)/4, $0x04050607
3045 DATA BSWAP_SHUFB_CTL<>+8(SB)/4, $0x08090a0b
3046 DATA BSWAP_SHUFB_CTL<>+12(SB)/4, $0x0c0d0e0f
3047 DATA BSWAP_SHUFB_CTL<>+16(SB)/4, $0x00010203
3048 DATA BSWAP_SHUFB_CTL<>+20(SB)/4, $0x04050607
3049 DATA BSWAP_SHUFB_CTL<>+24(SB)/4, $0x08090a0b
3050 DATA BSWAP_SHUFB_CTL<>+28(SB)/4, $0x0c0d0e0f
3051 GLOBL BSWAP_SHUFB_CTL<>(SB), RODATA, $32
3052
View as plain text