1 /* $FreeBSD$ */
2 /* Do not modify. This file is auto-generated from aesp8-ppc.pl. */
3 .machine "any"
4
5 .text
6
7 .align 7
8 rcon:
9 .byte 0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00
10 .byte 0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1b,0x00,0x00,0x00
11 .byte 0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c,0x0d,0x0e,0x0f,0x0c
12 .byte 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
13 .Lconsts:
14 mflr 0
15 bcl 20,31,$+4
16 mflr 6
17 addi 6,6,-0x48
18 mtlr 0
19 blr
20 .long 0
21 .byte 0,12,0x14,0,0,0,0,0
22 .byte 65,69,83,32,102,111,114,32,80,111,119,101,114,73,83,65,32,50,46,48,55,44,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
23 .align 2
24
25 .globl aes_p8_set_encrypt_key
26 .type aes_p8_set_encrypt_key,@function
27 .align 5
28 aes_p8_set_encrypt_key:
29 .Lset_encrypt_key:
30 mflr 11
31 stw 11,4(1)
32
33 li 6,-1
34 cmplwi 3,0
35 beq- .Lenc_key_abort
36 cmplwi 5,0
37 beq- .Lenc_key_abort
38 li 6,-2
39 cmpwi 4,128
40 blt- .Lenc_key_abort
41 cmpwi 4,256
42 bgt- .Lenc_key_abort
43 andi. 0,4,0x3f
44 bne- .Lenc_key_abort
45
46 lis 0,0xfff0
47 mfspr 12,256
48 mtspr 256,0
49
50 bl .Lconsts
51 mtlr 11
52
53 neg 9,3
54 lvx 1,0,3
55 addi 3,3,15
56 lvsr 3,0,9
57 li 8,0x20
58 cmpwi 4,192
59 lvx 2,0,3
60
61 lvx 4,0,6
62
63 lvx 5,8,6
64 addi 6,6,0x10
65 vperm 1,1,2,3
66 li 7,8
67 vxor 0,0,0
68 mtctr 7
69
70 lvsr 8,0,5
71 vspltisb 9,-1
72 lvx 10,0,5
73 vperm 9,0,9,8
74
75 blt .Loop128
76 addi 3,3,8
77 beq .L192
78 addi 3,3,8
79 b .L256
80
81 .align 4
82 .Loop128:
83 vperm 3,1,1,5
84 vsldoi 6,0,1,12
85 vperm 11,1,1,8
86 vsel 7,10,11,9
87 vor 10,11,11
88 .long 0x10632509
89 stvx 7,0,5
90 addi 5,5,16
91
92 vxor 1,1,6
93 vsldoi 6,0,6,12
94 vxor 1,1,6
95 vsldoi 6,0,6,12
96 vxor 1,1,6
97 vadduwm 4,4,4
98 vxor 1,1,3
99 bdnz .Loop128
100
101 lvx 4,0,6
102
103 vperm 3,1,1,5
104 vsldoi 6,0,1,12
105 vperm 11,1,1,8
106 vsel 7,10,11,9
107 vor 10,11,11
108 .long 0x10632509
109 stvx 7,0,5
110 addi 5,5,16
111
112 vxor 1,1,6
113 vsldoi 6,0,6,12
114 vxor 1,1,6
115 vsldoi 6,0,6,12
116 vxor 1,1,6
117 vadduwm 4,4,4
118 vxor 1,1,3
119
120 vperm 3,1,1,5
121 vsldoi 6,0,1,12
122 vperm 11,1,1,8
123 vsel 7,10,11,9
124 vor 10,11,11
125 .long 0x10632509
126 stvx 7,0,5
127 addi 5,5,16
128
129 vxor 1,1,6
130 vsldoi 6,0,6,12
131 vxor 1,1,6
132 vsldoi 6,0,6,12
133 vxor 1,1,6
134 vxor 1,1,3
135 vperm 11,1,1,8
136 vsel 7,10,11,9
137 vor 10,11,11
138 stvx 7,0,5
139
140 addi 3,5,15
141 addi 5,5,0x50
142
143 li 8,10
144 b .Ldone
145
146 .align 4
147 .L192:
148 lvx 6,0,3
149 li 7,4
150 vperm 11,1,1,8
151 vsel 7,10,11,9
152 vor 10,11,11
153 stvx 7,0,5
154 addi 5,5,16
155 vperm 2,2,6,3
156 vspltisb 3,8
157 mtctr 7
158 vsububm 5,5,3
159
160 .Loop192:
161 vperm 3,2,2,5
162 vsldoi 6,0,1,12
163 .long 0x10632509
164
165 vxor 1,1,6
166 vsldoi 6,0,6,12
167 vxor 1,1,6
168 vsldoi 6,0,6,12
169 vxor 1,1,6
170
171 vsldoi 7,0,2,8
172 vspltw 6,1,3
173 vxor 6,6,2
174 vsldoi 2,0,2,12
175 vadduwm 4,4,4
176 vxor 2,2,6
177 vxor 1,1,3
178 vxor 2,2,3
179 vsldoi 7,7,1,8
180
181 vperm 3,2,2,5
182 vsldoi 6,0,1,12
183 vperm 11,7,7,8
184 vsel 7,10,11,9
185 vor 10,11,11
186 .long 0x10632509
187 stvx 7,0,5
188 addi 5,5,16
189
190 vsldoi 7,1,2,8
191 vxor 1,1,6
192 vsldoi 6,0,6,12
193 vperm 11,7,7,8
194 vsel 7,10,11,9
195 vor 10,11,11
196 vxor 1,1,6
197 vsldoi 6,0,6,12
198 vxor 1,1,6
199 stvx 7,0,5
200 addi 5,5,16
201
202 vspltw 6,1,3
203 vxor 6,6,2
204 vsldoi 2,0,2,12
205 vadduwm 4,4,4
206 vxor 2,2,6
207 vxor 1,1,3
208 vxor 2,2,3
209 vperm 11,1,1,8
210 vsel 7,10,11,9
211 vor 10,11,11
212 stvx 7,0,5
213 addi 3,5,15
214 addi 5,5,16
215 bdnz .Loop192
216
217 li 8,12
218 addi 5,5,0x20
219 b .Ldone
220
221 .align 4
222 .L256:
223 lvx 6,0,3
224 li 7,7
225 li 8,14
226 vperm 11,1,1,8
227 vsel 7,10,11,9
228 vor 10,11,11
229 stvx 7,0,5
230 addi 5,5,16
231 vperm 2,2,6,3
232 mtctr 7
233
234 .Loop256:
235 vperm 3,2,2,5
236 vsldoi 6,0,1,12
237 vperm 11,2,2,8
238 vsel 7,10,11,9
239 vor 10,11,11
240 .long 0x10632509
241 stvx 7,0,5
242 addi 5,5,16
243
244 vxor 1,1,6
245 vsldoi 6,0,6,12
246 vxor 1,1,6
247 vsldoi 6,0,6,12
248 vxor 1,1,6
249 vadduwm 4,4,4
250 vxor 1,1,3
251 vperm 11,1,1,8
252 vsel 7,10,11,9
253 vor 10,11,11
254 stvx 7,0,5
255 addi 3,5,15
256 addi 5,5,16
257 bdz .Ldone
258
259 vspltw 3,1,3
260 vsldoi 6,0,2,12
261 .long 0x106305C8
262
263 vxor 2,2,6
264 vsldoi 6,0,6,12
265 vxor 2,2,6
266 vsldoi 6,0,6,12
267 vxor 2,2,6
268
269 vxor 2,2,3
270 b .Loop256
271
272 .align 4
273 .Ldone:
274 lvx 2,0,3
275 vsel 2,10,2,9
276 stvx 2,0,3
277 li 6,0
278 mtspr 256,12
279 stw 8,0(5)
280
281 .Lenc_key_abort:
282 mr 3,6
283 blr
284 .long 0
285 .byte 0,12,0x14,1,0,0,3,0
286 .long 0
287 .size aes_p8_set_encrypt_key,.-aes_p8_set_encrypt_key
288
289 .globl aes_p8_set_decrypt_key
290 .type aes_p8_set_decrypt_key,@function
291 .align 5
292 aes_p8_set_decrypt_key:
293 stwu 1,-32(1)
294 mflr 10
295 stw 10,32+4(1)
296 bl .Lset_encrypt_key
297 mtlr 10
298
299 cmpwi 3,0
300 bne- .Ldec_key_abort
301
302 slwi 7,8,4
303 subi 3,5,240
304 srwi 8,8,1
305 add 5,3,7
306 mtctr 8
307
308 .Ldeckey:
309 lwz 0, 0(3)
310 lwz 6, 4(3)
311 lwz 7, 8(3)
312 lwz 8, 12(3)
313 addi 3,3,16
314 lwz 9, 0(5)
315 lwz 10,4(5)
316 lwz 11,8(5)
317 lwz 12,12(5)
318 stw 0, 0(5)
319 stw 6, 4(5)
320 stw 7, 8(5)
321 stw 8, 12(5)
322 subi 5,5,16
323 stw 9, -16(3)
324 stw 10,-12(3)
325 stw 11,-8(3)
326 stw 12,-4(3)
327 bdnz .Ldeckey
328
329 xor 3,3,3
330 .Ldec_key_abort:
331 addi 1,1,32
332 blr
333 .long 0
334 .byte 0,12,4,1,0x80,0,3,0
335 .long 0
336 .size aes_p8_set_decrypt_key,.-aes_p8_set_decrypt_key
337 .globl aes_p8_encrypt
338 .type aes_p8_encrypt,@function
339 .align 5
340 aes_p8_encrypt:
341 lwz 6,240(5)
342 lis 0,0xfc00
343 mfspr 12,256
344 li 7,15
345 mtspr 256,0
346
347 lvx 0,0,3
348 neg 11,4
349 lvx 1,7,3
350 lvsl 2,0,3
351
352 lvsl 3,0,11
353
354 li 7,16
355 vperm 0,0,1,2
356 lvx 1,0,5
357 lvsl 5,0,5
358 srwi 6,6,1
359 lvx 2,7,5
360 addi 7,7,16
361 subi 6,6,1
362 vperm 1,1,2,5
363
364 vxor 0,0,1
365 lvx 1,7,5
366 addi 7,7,16
367 mtctr 6
368
369 .Loop_enc:
370 vperm 2,2,1,5
371 .long 0x10001508
372 lvx 2,7,5
373 addi 7,7,16
374 vperm 1,1,2,5
375 .long 0x10000D08
376 lvx 1,7,5
377 addi 7,7,16
378 bdnz .Loop_enc
379
380 vperm 2,2,1,5
381 .long 0x10001508
382 lvx 2,7,5
383 vperm 1,1,2,5
384 .long 0x10000D09
385
386 vspltisb 2,-1
387 vxor 1,1,1
388 li 7,15
389 vperm 2,1,2,3
390
391 lvx 1,0,4
392 vperm 0,0,0,3
393 vsel 1,1,0,2
394 lvx 4,7,4
395 stvx 1,0,4
396 vsel 0,0,4,2
397 stvx 0,7,4
398
399 mtspr 256,12
400 blr
401 .long 0
402 .byte 0,12,0x14,0,0,0,3,0
403 .long 0
404 .size aes_p8_encrypt,.-aes_p8_encrypt
405 .globl aes_p8_decrypt
406 .type aes_p8_decrypt,@function
407 .align 5
408 aes_p8_decrypt:
409 lwz 6,240(5)
410 lis 0,0xfc00
411 mfspr 12,256
412 li 7,15
413 mtspr 256,0
414
415 lvx 0,0,3
416 neg 11,4
417 lvx 1,7,3
418 lvsl 2,0,3
419
420 lvsl 3,0,11
421
422 li 7,16
423 vperm 0,0,1,2
424 lvx 1,0,5
425 lvsl 5,0,5
426 srwi 6,6,1
427 lvx 2,7,5
428 addi 7,7,16
429 subi 6,6,1
430 vperm 1,1,2,5
431
432 vxor 0,0,1
433 lvx 1,7,5
434 addi 7,7,16
435 mtctr 6
436
437 .Loop_dec:
438 vperm 2,2,1,5
439 .long 0x10001548
440 lvx 2,7,5
441 addi 7,7,16
442 vperm 1,1,2,5
443 .long 0x10000D48
444 lvx 1,7,5
445 addi 7,7,16
446 bdnz .Loop_dec
447
448 vperm 2,2,1,5
449 .long 0x10001548
450 lvx 2,7,5
451 vperm 1,1,2,5
452 .long 0x10000D49
453
454 vspltisb 2,-1
455 vxor 1,1,1
456 li 7,15
457 vperm 2,1,2,3
458
459 lvx 1,0,4
460 vperm 0,0,0,3
461 vsel 1,1,0,2
462 lvx 4,7,4
463 stvx 1,0,4
464 vsel 0,0,4,2
465 stvx 0,7,4
466
467 mtspr 256,12
468 blr
469 .long 0
470 .byte 0,12,0x14,0,0,0,3,0
471 .long 0
472 .size aes_p8_decrypt,.-aes_p8_decrypt
473 .globl aes_p8_cbc_encrypt
474 .type aes_p8_cbc_encrypt,@function
475 .align 5
476 aes_p8_cbc_encrypt:
477 cmplwi 5,16
478 .long 0x4dc00020
479
480 cmpwi 8,0
481 lis 0,0xffe0
482 mfspr 12,256
483 mtspr 256,0
484
485 li 10,15
486 vxor 0,0,0
487
488
489 lvx 4,0,7
490 lvsl 6,0,7
491 lvx 5,10,7
492
493 vperm 4,4,5,6
494
495 neg 11,3
496 lvsl 10,0,6
497 lwz 9,240(6)
498
499 lvsr 6,0,11
500 lvx 5,0,3
501 addi 3,3,15
502
503
504 lvsr 8,0,4
505 vspltisb 9,-1
506 lvx 7,0,4
507 vperm 9,0,9,8
508
509
510 srwi 9,9,1
511 li 10,16
512 subi 9,9,1
513 beq .Lcbc_dec
514
515 .Lcbc_enc:
516 vor 2,5,5
517 lvx 5,0,3
518 addi 3,3,16
519 mtctr 9
520 subi 5,5,16
521
522 lvx 0,0,6
523 vperm 2,2,5,6
524 lvx 1,10,6
525 addi 10,10,16
526 vperm 0,0,1,10
527 vxor 2,2,0
528 lvx 0,10,6
529 addi 10,10,16
530 vxor 2,2,4
531
532 .Loop_cbc_enc:
533 vperm 1,1,0,10
534 .long 0x10420D08
535 lvx 1,10,6
536 addi 10,10,16
537 vperm 0,0,1,10
538 .long 0x10420508
539 lvx 0,10,6
540 addi 10,10,16
541 bdnz .Loop_cbc_enc
542
543 vperm 1,1,0,10
544 .long 0x10420D08
545 lvx 1,10,6
546 li 10,16
547 vperm 0,0,1,10
548 .long 0x10820509
549 cmplwi 5,16
550
551 vperm 3,4,4,8
552 vsel 2,7,3,9
553 vor 7,3,3
554 stvx 2,0,4
555 addi 4,4,16
556 bge .Lcbc_enc
557
558 b .Lcbc_done
559
560 .align 4
561 .Lcbc_dec:
562 cmplwi 5,128
563 bge _aesp8_cbc_decrypt8x
564 vor 3,5,5
565 lvx 5,0,3
566 addi 3,3,16
567 mtctr 9
568 subi 5,5,16
569
570 lvx 0,0,6
571 vperm 3,3,5,6
572 lvx 1,10,6
573 addi 10,10,16
574 vperm 0,0,1,10
575 vxor 2,3,0
576 lvx 0,10,6
577 addi 10,10,16
578
579 .Loop_cbc_dec:
580 vperm 1,1,0,10
581 .long 0x10420D48
582 lvx 1,10,6
583 addi 10,10,16
584 vperm 0,0,1,10
585 .long 0x10420548
586 lvx 0,10,6
587 addi 10,10,16
588 bdnz .Loop_cbc_dec
589
590 vperm 1,1,0,10
591 .long 0x10420D48
592 lvx 1,10,6
593 li 10,16
594 vperm 0,0,1,10
595 .long 0x10420549
596 cmplwi 5,16
597
598 vxor 2,2,4
599 vor 4,3,3
600 vperm 3,2,2,8
601 vsel 2,7,3,9
602 vor 7,3,3
603 stvx 2,0,4
604 addi 4,4,16
605 bge .Lcbc_dec
606
607 .Lcbc_done:
608 addi 4,4,-1
609 lvx 2,0,4
610 vsel 2,7,2,9
611 stvx 2,0,4
612
613 neg 8,7
614 li 10,15
615 vxor 0,0,0
616 vspltisb 9,-1
617
618 lvsl 8,0,8
619 vperm 9,0,9,8
620
621 lvx 7,0,7
622 vperm 4,4,4,8
623 vsel 2,7,4,9
624 lvx 5,10,7
625 stvx 2,0,7
626 vsel 2,4,5,9
627 stvx 2,10,7
628
629 mtspr 256,12
630 blr
631 .long 0
632 .byte 0,12,0x14,0,0,0,6,0
633 .long 0
634 .align 5
635 _aesp8_cbc_decrypt8x:
636 stwu 1,-392(1)
637 li 10,175
638 li 11,191
639 stvx 20,10,1
640 addi 10,10,32
641 stvx 21,11,1
642 addi 11,11,32
643 stvx 22,10,1
644 addi 10,10,32
645 stvx 23,11,1
646 addi 11,11,32
647 stvx 24,10,1
648 addi 10,10,32
649 stvx 25,11,1
650 addi 11,11,32
651 stvx 26,10,1
652 addi 10,10,32
653 stvx 27,11,1
654 addi 11,11,32
655 stvx 28,10,1
656 addi 10,10,32
657 stvx 29,11,1
658 addi 11,11,32
659 stvx 30,10,1
660 stvx 31,11,1
661 li 0,-1
662 stw 12,364(1)
663 li 8,0x10
664 stw 26,368(1)
665 li 26,0x20
666 stw 27,372(1)
667 li 27,0x30
668 stw 28,376(1)
669 li 28,0x40
670 stw 29,380(1)
671 li 29,0x50
672 stw 30,384(1)
673 li 30,0x60
674 stw 31,388(1)
675 li 31,0x70
676 mtspr 256,0
677
678 subi 9,9,3
679 subi 5,5,128
680
681 lvx 23,0,6
682 lvx 30,8,6
683 addi 6,6,0x20
684 lvx 31,0,6
685 vperm 23,23,30,10
686 addi 11,1,32+15
687 mtctr 9
688
689 .Load_cbc_dec_key:
690 vperm 24,30,31,10
691 lvx 30,8,6
692 addi 6,6,0x20
693 stvx 24,0,11
694 vperm 25,31,30,10
695 lvx 31,0,6
696 stvx 25,8,11
697 addi 11,11,0x20
698 bdnz .Load_cbc_dec_key
699
700 lvx 26,8,6
701 vperm 24,30,31,10
702 lvx 27,26,6
703 stvx 24,0,11
704 vperm 25,31,26,10
705 lvx 28,27,6
706 stvx 25,8,11
707 addi 11,1,32+15
708 vperm 26,26,27,10
709 lvx 29,28,6
710 vperm 27,27,28,10
711 lvx 30,29,6
712 vperm 28,28,29,10
713 lvx 31,30,6
714 vperm 29,29,30,10
715 lvx 14,31,6
716 vperm 30,30,31,10
717 lvx 24,0,11
718 vperm 31,31,14,10
719 lvx 25,8,11
720
721
722
723 subi 3,3,15
724
725
726 .long 0x7C001E99
727
728
729 .long 0x7C281E99
730
731 .long 0x7C5A1E99
732
733 .long 0x7C7B1E99
734
735 .long 0x7D5C1E99
736
737 vxor 14,0,23
738 .long 0x7D7D1E99
739
740 vxor 15,1,23
741 .long 0x7D9E1E99
742
743 vxor 16,2,23
744 .long 0x7DBF1E99
745 addi 3,3,0x80
746
747 vxor 17,3,23
748
749 vxor 18,10,23
750
751 vxor 19,11,23
752 vxor 20,12,23
753 vxor 21,13,23
754
755 mtctr 9
756 b .Loop_cbc_dec8x
757 .align 5
758 .Loop_cbc_dec8x:
759 .long 0x11CEC548
760 .long 0x11EFC548
761 .long 0x1210C548
762 .long 0x1231C548
763 .long 0x1252C548
764 .long 0x1273C548
765 .long 0x1294C548
766 .long 0x12B5C548
767 lvx 24,26,11
768 addi 11,11,0x20
769
770 .long 0x11CECD48
771 .long 0x11EFCD48
772 .long 0x1210CD48
773 .long 0x1231CD48
774 .long 0x1252CD48
775 .long 0x1273CD48
776 .long 0x1294CD48
777 .long 0x12B5CD48
778 lvx 25,8,11
779 bdnz .Loop_cbc_dec8x
780
781 subic 5,5,128
782 .long 0x11CEC548
783 .long 0x11EFC548
784 .long 0x1210C548
785 .long 0x1231C548
786 .long 0x1252C548
787 .long 0x1273C548
788 .long 0x1294C548
789 .long 0x12B5C548
790
791 subfe. 0,0,0
792 .long 0x11CECD48
793 .long 0x11EFCD48
794 .long 0x1210CD48
795 .long 0x1231CD48
796 .long 0x1252CD48
797 .long 0x1273CD48
798 .long 0x1294CD48
799 .long 0x12B5CD48
800
801 and 0,0,5
802 .long 0x11CED548
803 .long 0x11EFD548
804 .long 0x1210D548
805 .long 0x1231D548
806 .long 0x1252D548
807 .long 0x1273D548
808 .long 0x1294D548
809 .long 0x12B5D548
810
811 add 3,3,0
812
813
814
815 .long 0x11CEDD48
816 .long 0x11EFDD48
817 .long 0x1210DD48
818 .long 0x1231DD48
819 .long 0x1252DD48
820 .long 0x1273DD48
821 .long 0x1294DD48
822 .long 0x12B5DD48
823
824 addi 11,1,32+15
825 .long 0x11CEE548
826 .long 0x11EFE548
827 .long 0x1210E548
828 .long 0x1231E548
829 .long 0x1252E548
830 .long 0x1273E548
831 .long 0x1294E548
832 .long 0x12B5E548
833 lvx 24,0,11
834
835 .long 0x11CEED48
836 .long 0x11EFED48
837 .long 0x1210ED48
838 .long 0x1231ED48
839 .long 0x1252ED48
840 .long 0x1273ED48
841 .long 0x1294ED48
842 .long 0x12B5ED48
843 lvx 25,8,11
844
845 .long 0x11CEF548
846 vxor 4,4,31
847 .long 0x11EFF548
848 vxor 0,0,31
849 .long 0x1210F548
850 vxor 1,1,31
851 .long 0x1231F548
852 vxor 2,2,31
853 .long 0x1252F548
854 vxor 3,3,31
855 .long 0x1273F548
856 vxor 10,10,31
857 .long 0x1294F548
858 vxor 11,11,31
859 .long 0x12B5F548
860 vxor 12,12,31
861
862 .long 0x11CE2549
863 .long 0x11EF0549
864 .long 0x7C001E99
865 .long 0x12100D49
866 .long 0x7C281E99
867 .long 0x12311549
868
869 .long 0x7C5A1E99
870 .long 0x12521D49
871
872 .long 0x7C7B1E99
873 .long 0x12735549
874
875 .long 0x7D5C1E99
876 .long 0x12945D49
877
878 .long 0x7D7D1E99
879 .long 0x12B56549
880
881 .long 0x7D9E1E99
882 vor 4,13,13
883
884 .long 0x7DBF1E99
885 addi 3,3,0x80
886
887
888
889 .long 0x7DC02799
890
891 vxor 14,0,23
892
893 .long 0x7DE82799
894
895 vxor 15,1,23
896
897 .long 0x7E1A2799
898 vxor 16,2,23
899
900 .long 0x7E3B2799
901 vxor 17,3,23
902
903 .long 0x7E5C2799
904 vxor 18,10,23
905
906 .long 0x7E7D2799
907 vxor 19,11,23
908
909 .long 0x7E9E2799
910 vxor 20,12,23
911 .long 0x7EBF2799
912 addi 4,4,0x80
913 vxor 21,13,23
914
915 mtctr 9
916 beq .Loop_cbc_dec8x
917
918 addic. 5,5,128
919 beq .Lcbc_dec8x_done
920 nop
921 nop
922
923 .Loop_cbc_dec8x_tail:
924 .long 0x11EFC548
925 .long 0x1210C548
926 .long 0x1231C548
927 .long 0x1252C548
928 .long 0x1273C548
929 .long 0x1294C548
930 .long 0x12B5C548
931 lvx 24,26,11
932 addi 11,11,0x20
933
934 .long 0x11EFCD48
935 .long 0x1210CD48
936 .long 0x1231CD48
937 .long 0x1252CD48
938 .long 0x1273CD48
939 .long 0x1294CD48
940 .long 0x12B5CD48
941 lvx 25,8,11
942 bdnz .Loop_cbc_dec8x_tail
943
944 .long 0x11EFC548
945 .long 0x1210C548
946 .long 0x1231C548
947 .long 0x1252C548
948 .long 0x1273C548
949 .long 0x1294C548
950 .long 0x12B5C548
951
952 .long 0x11EFCD48
953 .long 0x1210CD48
954 .long 0x1231CD48
955 .long 0x1252CD48
956 .long 0x1273CD48
957 .long 0x1294CD48
958 .long 0x12B5CD48
959
960 .long 0x11EFD548
961 .long 0x1210D548
962 .long 0x1231D548
963 .long 0x1252D548
964 .long 0x1273D548
965 .long 0x1294D548
966 .long 0x12B5D548
967
968 .long 0x11EFDD48
969 .long 0x1210DD48
970 .long 0x1231DD48
971 .long 0x1252DD48
972 .long 0x1273DD48
973 .long 0x1294DD48
974 .long 0x12B5DD48
975
976 .long 0x11EFE548
977 .long 0x1210E548
978 .long 0x1231E548
979 .long 0x1252E548
980 .long 0x1273E548
981 .long 0x1294E548
982 .long 0x12B5E548
983
984 .long 0x11EFED48
985 .long 0x1210ED48
986 .long 0x1231ED48
987 .long 0x1252ED48
988 .long 0x1273ED48
989 .long 0x1294ED48
990 .long 0x12B5ED48
991
992 .long 0x11EFF548
993 vxor 4,4,31
994 .long 0x1210F548
995 vxor 1,1,31
996 .long 0x1231F548
997 vxor 2,2,31
998 .long 0x1252F548
999 vxor 3,3,31
1000 .long 0x1273F548
1001 vxor 10,10,31
1002 .long 0x1294F548
1003 vxor 11,11,31
1004 .long 0x12B5F548
1005 vxor 12,12,31
1006
1007 cmplwi 5,32
1008 blt .Lcbc_dec8x_one
1009 nop
1010 beq .Lcbc_dec8x_two
1011 cmplwi 5,64
1012 blt .Lcbc_dec8x_three
1013 nop
1014 beq .Lcbc_dec8x_four
1015 cmplwi 5,96
1016 blt .Lcbc_dec8x_five
1017 nop
1018 beq .Lcbc_dec8x_six
1019
1020 .Lcbc_dec8x_seven:
1021 .long 0x11EF2549
1022 .long 0x12100D49
1023 .long 0x12311549
1024 .long 0x12521D49
1025 .long 0x12735549
1026 .long 0x12945D49
1027 .long 0x12B56549
1028 vor 4,13,13
1029
1030
1031
1032 .long 0x7DE02799
1033
1034 .long 0x7E082799
1035
1036 .long 0x7E3A2799
1037
1038 .long 0x7E5B2799
1039
1040 .long 0x7E7C2799
1041
1042 .long 0x7E9D2799
1043 .long 0x7EBE2799
1044 addi 4,4,0x70
1045 b .Lcbc_dec8x_done
1046
1047 .align 5
1048 .Lcbc_dec8x_six:
1049 .long 0x12102549
1050 .long 0x12311549
1051 .long 0x12521D49
1052 .long 0x12735549
1053 .long 0x12945D49
1054 .long 0x12B56549
1055 vor 4,13,13
1056
1057
1058
1059 .long 0x7E002799
1060
1061 .long 0x7E282799
1062
1063 .long 0x7E5A2799
1064
1065 .long 0x7E7B2799
1066
1067 .long 0x7E9C2799
1068 .long 0x7EBD2799
1069 addi 4,4,0x60
1070 b .Lcbc_dec8x_done
1071
1072 .align 5
1073 .Lcbc_dec8x_five:
1074 .long 0x12312549
1075 .long 0x12521D49
1076 .long 0x12735549
1077 .long 0x12945D49
1078 .long 0x12B56549
1079 vor 4,13,13
1080
1081
1082
1083 .long 0x7E202799
1084
1085 .long 0x7E482799
1086
1087 .long 0x7E7A2799
1088
1089 .long 0x7E9B2799
1090 .long 0x7EBC2799
1091 addi 4,4,0x50
1092 b .Lcbc_dec8x_done
1093
1094 .align 5
1095 .Lcbc_dec8x_four:
1096 .long 0x12522549
1097 .long 0x12735549
1098 .long 0x12945D49
1099 .long 0x12B56549
1100 vor 4,13,13
1101
1102
1103
1104 .long 0x7E402799
1105
1106 .long 0x7E682799
1107
1108 .long 0x7E9A2799
1109 .long 0x7EBB2799
1110 addi 4,4,0x40
1111 b .Lcbc_dec8x_done
1112
1113 .align 5
1114 .Lcbc_dec8x_three:
1115 .long 0x12732549
1116 .long 0x12945D49
1117 .long 0x12B56549
1118 vor 4,13,13
1119
1120
1121
1122 .long 0x7E602799
1123
1124 .long 0x7E882799
1125 .long 0x7EBA2799
1126 addi 4,4,0x30
1127 b .Lcbc_dec8x_done
1128
1129 .align 5
1130 .Lcbc_dec8x_two:
1131 .long 0x12942549
1132 .long 0x12B56549
1133 vor 4,13,13
1134
1135
1136
1137 .long 0x7E802799
1138 .long 0x7EA82799
1139 addi 4,4,0x20
1140 b .Lcbc_dec8x_done
1141
1142 .align 5
1143 .Lcbc_dec8x_one:
1144 .long 0x12B52549
1145 vor 4,13,13
1146
1147
1148 .long 0x7EA02799
1149 addi 4,4,0x10
1150
1151 .Lcbc_dec8x_done:
1152
1153 .long 0x7C803F99
1154
1155 li 10,47
1156 li 11,63
1157 stvx 6,10,1
1158 addi 10,10,32
1159 stvx 6,11,1
1160 addi 11,11,32
1161 stvx 6,10,1
1162 addi 10,10,32
1163 stvx 6,11,1
1164 addi 11,11,32
1165 stvx 6,10,1
1166 addi 10,10,32
1167 stvx 6,11,1
1168 addi 11,11,32
1169 stvx 6,10,1
1170 addi 10,10,32
1171 stvx 6,11,1
1172 addi 11,11,32
1173
1174 mtspr 256,12
1175 lvx 20,10,1
1176 addi 10,10,32
1177 lvx 21,11,1
1178 addi 11,11,32
1179 lvx 22,10,1
1180 addi 10,10,32
1181 lvx 23,11,1
1182 addi 11,11,32
1183 lvx 24,10,1
1184 addi 10,10,32
1185 lvx 25,11,1
1186 addi 11,11,32
1187 lvx 26,10,1
1188 addi 10,10,32
1189 lvx 27,11,1
1190 addi 11,11,32
1191 lvx 28,10,1
1192 addi 10,10,32
1193 lvx 29,11,1
1194 addi 11,11,32
1195 lvx 30,10,1
1196 lvx 31,11,1
1197 lwz 26,368(1)
1198 lwz 27,372(1)
1199 lwz 28,376(1)
1200 lwz 29,380(1)
1201 lwz 30,384(1)
1202 lwz 31,388(1)
1203 addi 1,1,392
1204 blr
1205 .long 0
1206 .byte 0,12,0x04,0,0x80,6,6,0
1207 .long 0
1208 .size aes_p8_cbc_encrypt,.-aes_p8_cbc_encrypt
1209 .globl aes_p8_ctr32_encrypt_blocks
1210 .type aes_p8_ctr32_encrypt_blocks,@function
1211 .align 5
1212 aes_p8_ctr32_encrypt_blocks:
1213 cmplwi 5,1
1214 .long 0x4dc00020
1215
1216 lis 0,0xfff0
1217 mfspr 12,256
1218 mtspr 256,0
1219
1220 li 10,15
1221 vxor 0,0,0
1222
1223
1224 lvx 4,0,7
1225 lvsl 6,0,7
1226 lvx 5,10,7
1227 vspltisb 11,1
1228
1229 vperm 4,4,5,6
1230 vsldoi 11,0,11,1
1231
1232 neg 11,3
1233 lvsl 10,0,6
1234 lwz 9,240(6)
1235
1236 lvsr 6,0,11
1237 lvx 5,0,3
1238 addi 3,3,15
1239
1240
1241 srwi 9,9,1
1242 li 10,16
1243 subi 9,9,1
1244
1245 cmplwi 5,8
1246 bge _aesp8_ctr32_encrypt8x
1247
1248 lvsr 8,0,4
1249 vspltisb 9,-1
1250 lvx 7,0,4
1251 vperm 9,0,9,8
1252
1253
1254 lvx 0,0,6
1255 mtctr 9
1256 lvx 1,10,6
1257 addi 10,10,16
1258 vperm 0,0,1,10
1259 vxor 2,4,0
1260 lvx 0,10,6
1261 addi 10,10,16
1262 b .Loop_ctr32_enc
1263
1264 .align 5
1265 .Loop_ctr32_enc:
1266 vperm 1,1,0,10
1267 .long 0x10420D08
1268 lvx 1,10,6
1269 addi 10,10,16
1270 vperm 0,0,1,10
1271 .long 0x10420508
1272 lvx 0,10,6
1273 addi 10,10,16
1274 bdnz .Loop_ctr32_enc
1275
1276 vadduwm 4,4,11
1277 vor 3,5,5
1278 lvx 5,0,3
1279 addi 3,3,16
1280 subic. 5,5,1
1281
1282 vperm 1,1,0,10
1283 .long 0x10420D08
1284 lvx 1,10,6
1285 vperm 3,3,5,6
1286 li 10,16
1287 vperm 1,0,1,10
1288 lvx 0,0,6
1289 vxor 3,3,1
1290 .long 0x10421D09
1291
1292 lvx 1,10,6
1293 addi 10,10,16
1294 vperm 2,2,2,8
1295 vsel 3,7,2,9
1296 mtctr 9
1297 vperm 0,0,1,10
1298 vor 7,2,2
1299 vxor 2,4,0
1300 lvx 0,10,6
1301 addi 10,10,16
1302 stvx 3,0,4
1303 addi 4,4,16
1304 bne .Loop_ctr32_enc
1305
1306 addi 4,4,-1
1307 lvx 2,0,4
1308 vsel 2,7,2,9
1309 stvx 2,0,4
1310
1311 mtspr 256,12
1312 blr
1313 .long 0
1314 .byte 0,12,0x14,0,0,0,6,0
1315 .long 0
1316 .align 5
1317 _aesp8_ctr32_encrypt8x:
1318 stwu 1,-392(1)
1319 li 10,175
1320 li 11,191
1321 stvx 20,10,1
1322 addi 10,10,32
1323 stvx 21,11,1
1324 addi 11,11,32
1325 stvx 22,10,1
1326 addi 10,10,32
1327 stvx 23,11,1
1328 addi 11,11,32
1329 stvx 24,10,1
1330 addi 10,10,32
1331 stvx 25,11,1
1332 addi 11,11,32
1333 stvx 26,10,1
1334 addi 10,10,32
1335 stvx 27,11,1
1336 addi 11,11,32
1337 stvx 28,10,1
1338 addi 10,10,32
1339 stvx 29,11,1
1340 addi 11,11,32
1341 stvx 30,10,1
1342 stvx 31,11,1
1343 li 0,-1
1344 stw 12,364(1)
1345 li 8,0x10
1346 stw 26,368(1)
1347 li 26,0x20
1348 stw 27,372(1)
1349 li 27,0x30
1350 stw 28,376(1)
1351 li 28,0x40
1352 stw 29,380(1)
1353 li 29,0x50
1354 stw 30,384(1)
1355 li 30,0x60
1356 stw 31,388(1)
1357 li 31,0x70
1358 mtspr 256,0
1359
1360 subi 9,9,3
1361
1362 lvx 23,0,6
1363 lvx 30,8,6
1364 addi 6,6,0x20
1365 lvx 31,0,6
1366 vperm 23,23,30,10
1367 addi 11,1,32+15
1368 mtctr 9
1369
1370 .Load_ctr32_enc_key:
1371 vperm 24,30,31,10
1372 lvx 30,8,6
1373 addi 6,6,0x20
1374 stvx 24,0,11
1375 vperm 25,31,30,10
1376 lvx 31,0,6
1377 stvx 25,8,11
1378 addi 11,11,0x20
1379 bdnz .Load_ctr32_enc_key
1380
1381 lvx 26,8,6
1382 vperm 24,30,31,10
1383 lvx 27,26,6
1384 stvx 24,0,11
1385 vperm 25,31,26,10
1386 lvx 28,27,6
1387 stvx 25,8,11
1388 addi 11,1,32+15
1389 vperm 26,26,27,10
1390 lvx 29,28,6
1391 vperm 27,27,28,10
1392 lvx 30,29,6
1393 vperm 28,28,29,10
1394 lvx 31,30,6
1395 vperm 29,29,30,10
1396 lvx 15,31,6
1397 vperm 30,30,31,10
1398 lvx 24,0,11
1399 vperm 31,31,15,10
1400 lvx 25,8,11
1401
1402 vadduwm 7,11,11
1403 subi 3,3,15
1404 slwi 5,5,4
1405
1406 vadduwm 16,4,11
1407 vadduwm 17,4,7
1408 vxor 15,4,23
1409
1410 vadduwm 18,16,7
1411 vxor 16,16,23
1412
1413 vadduwm 19,17,7
1414 vxor 17,17,23
1415
1416 vadduwm 20,18,7
1417 vxor 18,18,23
1418
1419 vadduwm 21,19,7
1420 vxor 19,19,23
1421 vadduwm 22,20,7
1422 vxor 20,20,23
1423 vadduwm 4,21,7
1424 vxor 21,21,23
1425 vxor 22,22,23
1426
1427 mtctr 9
1428 b .Loop_ctr32_enc8x
1429 .align 5
1430 .Loop_ctr32_enc8x:
1431 .long 0x11EFC508
1432 .long 0x1210C508
1433 .long 0x1231C508
1434 .long 0x1252C508
1435 .long 0x1273C508
1436 .long 0x1294C508
1437 .long 0x12B5C508
1438 .long 0x12D6C508
1439 .Loop_ctr32_enc8x_middle:
1440 lvx 24,26,11
1441 addi 11,11,0x20
1442
1443 .long 0x11EFCD08
1444 .long 0x1210CD08
1445 .long 0x1231CD08
1446 .long 0x1252CD08
1447 .long 0x1273CD08
1448 .long 0x1294CD08
1449 .long 0x12B5CD08
1450 .long 0x12D6CD08
1451 lvx 25,8,11
1452 bdnz .Loop_ctr32_enc8x
1453
1454 subic 11,5,256
1455 .long 0x11EFC508
1456 .long 0x1210C508
1457 .long 0x1231C508
1458 .long 0x1252C508
1459 .long 0x1273C508
1460 .long 0x1294C508
1461 .long 0x12B5C508
1462 .long 0x12D6C508
1463
1464 subfe 0,0,0
1465 .long 0x11EFCD08
1466 .long 0x1210CD08
1467 .long 0x1231CD08
1468 .long 0x1252CD08
1469 .long 0x1273CD08
1470 .long 0x1294CD08
1471 .long 0x12B5CD08
1472 .long 0x12D6CD08
1473
1474 and 0,0,11
1475 addi 11,1,32+15
1476 .long 0x11EFD508
1477 .long 0x1210D508
1478 .long 0x1231D508
1479 .long 0x1252D508
1480 .long 0x1273D508
1481 .long 0x1294D508
1482 .long 0x12B5D508
1483 .long 0x12D6D508
1484 lvx 24,0,11
1485
1486 subic 5,5,129
1487 .long 0x11EFDD08
1488 addi 5,5,1
1489 .long 0x1210DD08
1490 .long 0x1231DD08
1491 .long 0x1252DD08
1492 .long 0x1273DD08
1493 .long 0x1294DD08
1494 .long 0x12B5DD08
1495 .long 0x12D6DD08
1496 lvx 25,8,11
1497
1498 .long 0x11EFE508
1499 .long 0x7C001E99
1500 .long 0x1210E508
1501 .long 0x7C281E99
1502 .long 0x1231E508
1503 .long 0x7C5A1E99
1504 .long 0x1252E508
1505 .long 0x7C7B1E99
1506 .long 0x1273E508
1507 .long 0x7D5C1E99
1508 .long 0x1294E508
1509 .long 0x7D9D1E99
1510 .long 0x12B5E508
1511 .long 0x7DBE1E99
1512 .long 0x12D6E508
1513 .long 0x7DDF1E99
1514 addi 3,3,0x80
1515
1516 .long 0x11EFED08
1517
1518 .long 0x1210ED08
1519
1520 .long 0x1231ED08
1521
1522 .long 0x1252ED08
1523
1524 .long 0x1273ED08
1525
1526 .long 0x1294ED08
1527
1528 .long 0x12B5ED08
1529
1530 .long 0x12D6ED08
1531
1532
1533 add 3,3,0
1534
1535
1536
1537 subfe. 0,0,0
1538 .long 0x11EFF508
1539 vxor 0,0,31
1540 .long 0x1210F508
1541 vxor 1,1,31
1542 .long 0x1231F508
1543 vxor 2,2,31
1544 .long 0x1252F508
1545 vxor 3,3,31
1546 .long 0x1273F508
1547 vxor 10,10,31
1548 .long 0x1294F508
1549 vxor 12,12,31
1550 .long 0x12B5F508
1551 vxor 13,13,31
1552 .long 0x12D6F508
1553 vxor 14,14,31
1554
1555 bne .Lctr32_enc8x_break
1556
1557 .long 0x100F0509
1558 .long 0x10300D09
1559 vadduwm 16,4,11
1560 .long 0x10511509
1561 vadduwm 17,4,7
1562 vxor 15,4,23
1563 .long 0x10721D09
1564 vadduwm 18,16,7
1565 vxor 16,16,23
1566 .long 0x11535509
1567 vadduwm 19,17,7
1568 vxor 17,17,23
1569 .long 0x11946509
1570 vadduwm 20,18,7
1571 vxor 18,18,23
1572 .long 0x11B56D09
1573 vadduwm 21,19,7
1574 vxor 19,19,23
1575 .long 0x11D67509
1576 vadduwm 22,20,7
1577 vxor 20,20,23
1578
1579 vadduwm 4,21,7
1580 vxor 21,21,23
1581
1582 vxor 22,22,23
1583 mtctr 9
1584
1585 .long 0x11EFC508
1586 .long 0x7C002799
1587
1588 .long 0x1210C508
1589 .long 0x7C282799
1590
1591 .long 0x1231C508
1592 .long 0x7C5A2799
1593
1594 .long 0x1252C508
1595 .long 0x7C7B2799
1596
1597 .long 0x1273C508
1598 .long 0x7D5C2799
1599
1600 .long 0x1294C508
1601 .long 0x7D9D2799
1602
1603 .long 0x12B5C508
1604 .long 0x7DBE2799
1605 .long 0x12D6C508
1606 .long 0x7DDF2799
1607 addi 4,4,0x80
1608
1609 b .Loop_ctr32_enc8x_middle
1610
1611 .align 5
1612 .Lctr32_enc8x_break:
1613 cmpwi 5,-0x60
1614 blt .Lctr32_enc8x_one
1615 nop
1616 beq .Lctr32_enc8x_two
1617 cmpwi 5,-0x40
1618 blt .Lctr32_enc8x_three
1619 nop
1620 beq .Lctr32_enc8x_four
1621 cmpwi 5,-0x20
1622 blt .Lctr32_enc8x_five
1623 nop
1624 beq .Lctr32_enc8x_six
1625 cmpwi 5,0x00
1626 blt .Lctr32_enc8x_seven
1627
1628 .Lctr32_enc8x_eight:
1629 .long 0x11EF0509
1630 .long 0x12100D09
1631 .long 0x12311509
1632 .long 0x12521D09
1633 .long 0x12735509
1634 .long 0x12946509
1635 .long 0x12B56D09
1636 .long 0x12D67509
1637
1638
1639
1640 .long 0x7DE02799
1641
1642 .long 0x7E082799
1643
1644 .long 0x7E3A2799
1645
1646 .long 0x7E5B2799
1647
1648 .long 0x7E7C2799
1649
1650 .long 0x7E9D2799
1651
1652 .long 0x7EBE2799
1653 .long 0x7EDF2799
1654 addi 4,4,0x80
1655 b .Lctr32_enc8x_done
1656
1657 .align 5
1658 .Lctr32_enc8x_seven:
1659 .long 0x11EF0D09
1660 .long 0x12101509
1661 .long 0x12311D09
1662 .long 0x12525509
1663 .long 0x12736509
1664 .long 0x12946D09
1665 .long 0x12B57509
1666
1667
1668
1669 .long 0x7DE02799
1670
1671 .long 0x7E082799
1672
1673 .long 0x7E3A2799
1674
1675 .long 0x7E5B2799
1676
1677 .long 0x7E7C2799
1678
1679 .long 0x7E9D2799
1680 .long 0x7EBE2799
1681 addi 4,4,0x70
1682 b .Lctr32_enc8x_done
1683
1684 .align 5
1685 .Lctr32_enc8x_six:
1686 .long 0x11EF1509
1687 .long 0x12101D09
1688 .long 0x12315509
1689 .long 0x12526509
1690 .long 0x12736D09
1691 .long 0x12947509
1692
1693
1694
1695 .long 0x7DE02799
1696
1697 .long 0x7E082799
1698
1699 .long 0x7E3A2799
1700
1701 .long 0x7E5B2799
1702
1703 .long 0x7E7C2799
1704 .long 0x7E9D2799
1705 addi 4,4,0x60
1706 b .Lctr32_enc8x_done
1707
1708 .align 5
1709 .Lctr32_enc8x_five:
1710 .long 0x11EF1D09
1711 .long 0x12105509
1712 .long 0x12316509
1713 .long 0x12526D09
1714 .long 0x12737509
1715
1716
1717
1718 .long 0x7DE02799
1719
1720 .long 0x7E082799
1721
1722 .long 0x7E3A2799
1723
1724 .long 0x7E5B2799
1725 .long 0x7E7C2799
1726 addi 4,4,0x50
1727 b .Lctr32_enc8x_done
1728
1729 .align 5
1730 .Lctr32_enc8x_four:
1731 .long 0x11EF5509
1732 .long 0x12106509
1733 .long 0x12316D09
1734 .long 0x12527509
1735
1736
1737
1738 .long 0x7DE02799
1739
1740 .long 0x7E082799
1741
1742 .long 0x7E3A2799
1743 .long 0x7E5B2799
1744 addi 4,4,0x40
1745 b .Lctr32_enc8x_done
1746
1747 .align 5
1748 .Lctr32_enc8x_three:
1749 .long 0x11EF6509
1750 .long 0x12106D09
1751 .long 0x12317509
1752
1753
1754
1755 .long 0x7DE02799
1756
1757 .long 0x7E082799
1758 .long 0x7E3A2799
1759 addi 4,4,0x30
1760 b .Lctr32_enc8x_done
1761
1762 .align 5
1763 .Lctr32_enc8x_two:
1764 .long 0x11EF6D09
1765 .long 0x12107509
1766
1767
1768
1769 .long 0x7DE02799
1770 .long 0x7E082799
1771 addi 4,4,0x20
1772 b .Lctr32_enc8x_done
1773
1774 .align 5
1775 .Lctr32_enc8x_one:
1776 .long 0x11EF7509
1777
1778
1779 .long 0x7DE02799
1780 addi 4,4,0x10
1781
1782 .Lctr32_enc8x_done:
1783 li 10,47
1784 li 11,63
1785 stvx 6,10,1
1786 addi 10,10,32
1787 stvx 6,11,1
1788 addi 11,11,32
1789 stvx 6,10,1
1790 addi 10,10,32
1791 stvx 6,11,1
1792 addi 11,11,32
1793 stvx 6,10,1
1794 addi 10,10,32
1795 stvx 6,11,1
1796 addi 11,11,32
1797 stvx 6,10,1
1798 addi 10,10,32
1799 stvx 6,11,1
1800 addi 11,11,32
1801
1802 mtspr 256,12
1803 lvx 20,10,1
1804 addi 10,10,32
1805 lvx 21,11,1
1806 addi 11,11,32
1807 lvx 22,10,1
1808 addi 10,10,32
1809 lvx 23,11,1
1810 addi 11,11,32
1811 lvx 24,10,1
1812 addi 10,10,32
1813 lvx 25,11,1
1814 addi 11,11,32
1815 lvx 26,10,1
1816 addi 10,10,32
1817 lvx 27,11,1
1818 addi 11,11,32
1819 lvx 28,10,1
1820 addi 10,10,32
1821 lvx 29,11,1
1822 addi 11,11,32
1823 lvx 30,10,1
1824 lvx 31,11,1
1825 lwz 26,368(1)
1826 lwz 27,372(1)
1827 lwz 28,376(1)
1828 lwz 29,380(1)
1829 lwz 30,384(1)
1830 lwz 31,388(1)
1831 addi 1,1,392
1832 blr
1833 .long 0
1834 .byte 0,12,0x04,0,0x80,6,6,0
1835 .long 0
1836 .size aes_p8_ctr32_encrypt_blocks,.-aes_p8_ctr32_encrypt_blocks
1837 .globl aes_p8_xts_encrypt
1838 .type aes_p8_xts_encrypt,@function
1839 .align 5
1840 aes_p8_xts_encrypt:
1841 mr 10,3
1842 li 3,-1
1843 cmplwi 5,16
1844 .long 0x4dc00020
1845
1846 lis 0,0xfff0
1847 mfspr 12,256
1848 li 11,0
1849 mtspr 256,0
1850
1851 vspltisb 9,0x07
1852
1853
1854
1855
1856 li 3,15
1857 lvx 8,0,8
1858 lvsl 5,0,8
1859 lvx 4,3,8
1860
1861 vperm 8,8,4,5
1862
1863 neg 11,10
1864 lvsr 5,0,11
1865 lvx 2,0,10
1866 addi 10,10,15
1867
1868
1869 cmplwi 7,0
1870 beq .Lxts_enc_no_key2
1871
1872 lvsl 7,0,7
1873 lwz 9,240(7)
1874 srwi 9,9,1
1875 subi 9,9,1
1876 li 3,16
1877
1878 lvx 0,0,7
1879 lvx 1,3,7
1880 addi 3,3,16
1881 vperm 0,0,1,7
1882 vxor 8,8,0
1883 lvx 0,3,7
1884 addi 3,3,16
1885 mtctr 9
1886
1887 .Ltweak_xts_enc:
1888 vperm 1,1,0,7
1889 .long 0x11080D08
1890 lvx 1,3,7
1891 addi 3,3,16
1892 vperm 0,0,1,7
1893 .long 0x11080508
1894 lvx 0,3,7
1895 addi 3,3,16
1896 bdnz .Ltweak_xts_enc
1897
1898 vperm 1,1,0,7
1899 .long 0x11080D08
1900 lvx 1,3,7
1901 vperm 0,0,1,7
1902 .long 0x11080509
1903
1904 li 8,0
1905 b .Lxts_enc
1906
1907 .Lxts_enc_no_key2:
1908 li 3,-16
1909 and 5,5,3
1910
1911
1912 .Lxts_enc:
1913 lvx 4,0,10
1914 addi 10,10,16
1915
1916 lvsl 7,0,6
1917 lwz 9,240(6)
1918 srwi 9,9,1
1919 subi 9,9,1
1920 li 3,16
1921
1922 vslb 10,9,9
1923 vor 10,10,9
1924 vspltisb 11,1
1925 vsldoi 10,10,11,15
1926
1927 cmplwi 5,96
1928 bge _aesp8_xts_encrypt6x
1929
1930 andi. 7,5,15
1931 subic 0,5,32
1932 subi 7,7,16
1933 subfe 0,0,0
1934 and 0,0,7
1935 add 10,10,0
1936
1937 lvx 0,0,6
1938 lvx 1,3,6
1939 addi 3,3,16
1940 vperm 2,2,4,5
1941 vperm 0,0,1,7
1942 vxor 2,2,8
1943 vxor 2,2,0
1944 lvx 0,3,6
1945 addi 3,3,16
1946 mtctr 9
1947 b .Loop_xts_enc
1948
1949 .align 5
1950 .Loop_xts_enc:
1951 vperm 1,1,0,7
1952 .long 0x10420D08
1953 lvx 1,3,6
1954 addi 3,3,16
1955 vperm 0,0,1,7
1956 .long 0x10420508
1957 lvx 0,3,6
1958 addi 3,3,16
1959 bdnz .Loop_xts_enc
1960
1961 vperm 1,1,0,7
1962 .long 0x10420D08
1963 lvx 1,3,6
1964 li 3,16
1965 vperm 0,0,1,7
1966 vxor 0,0,8
1967 .long 0x10620509
1968
1969
1970 nop
1971
1972 .long 0x7C602799
1973 addi 4,4,16
1974
1975 subic. 5,5,16
1976 beq .Lxts_enc_done
1977
1978 vor 2,4,4
1979 lvx 4,0,10
1980 addi 10,10,16
1981 lvx 0,0,6
1982 lvx 1,3,6
1983 addi 3,3,16
1984
1985 subic 0,5,32
1986 subfe 0,0,0
1987 and 0,0,7
1988 add 10,10,0
1989
1990 vsrab 11,8,9
1991 vaddubm 8,8,8
1992 vsldoi 11,11,11,15
1993 vand 11,11,10
1994 vxor 8,8,11
1995
1996 vperm 2,2,4,5
1997 vperm 0,0,1,7
1998 vxor 2,2,8
1999 vxor 3,3,0
2000 vxor 2,2,0
2001 lvx 0,3,6
2002 addi 3,3,16
2003
2004 mtctr 9
2005 cmplwi 5,16
2006 bge .Loop_xts_enc
2007
2008 vxor 3,3,8
2009 lvsr 5,0,5
2010 vxor 4,4,4
2011 vspltisb 11,-1
2012 vperm 4,4,11,5
2013 vsel 2,2,3,4
2014
2015 subi 11,4,17
2016 subi 4,4,16
2017 mtctr 5
2018 li 5,16
2019 .Loop_xts_enc_steal:
2020 lbzu 0,1(11)
2021 stb 0,16(11)
2022 bdnz .Loop_xts_enc_steal
2023
2024 mtctr 9
2025 b .Loop_xts_enc
2026
2027 .Lxts_enc_done:
2028 cmplwi 8,0
2029 beq .Lxts_enc_ret
2030
2031 vsrab 11,8,9
2032 vaddubm 8,8,8
2033 vsldoi 11,11,11,15
2034 vand 11,11,10
2035 vxor 8,8,11
2036
2037
2038 .long 0x7D004799
2039
2040 .Lxts_enc_ret:
2041 mtspr 256,12
2042 li 3,0
2043 blr
2044 .long 0
2045 .byte 0,12,0x04,0,0x80,6,6,0
2046 .long 0
2047 .size aes_p8_xts_encrypt,.-aes_p8_xts_encrypt
2048
2049 .globl aes_p8_xts_decrypt
2050 .type aes_p8_xts_decrypt,@function
2051 .align 5
2052 aes_p8_xts_decrypt:
2053 mr 10,3
2054 li 3,-1
2055 cmplwi 5,16
2056 .long 0x4dc00020
2057
2058 lis 0,0xfff8
2059 mfspr 12,256
2060 li 11,0
2061 mtspr 256,0
2062
2063 andi. 0,5,15
2064 neg 0,0
2065 andi. 0,0,16
2066 sub 5,5,0
2067
2068 vspltisb 9,0x07
2069
2070
2071
2072
2073 li 3,15
2074 lvx 8,0,8
2075 lvsl 5,0,8
2076 lvx 4,3,8
2077
2078 vperm 8,8,4,5
2079
2080 neg 11,10
2081 lvsr 5,0,11
2082 lvx 2,0,10
2083 addi 10,10,15
2084
2085
2086 cmplwi 7,0
2087 beq .Lxts_dec_no_key2
2088
2089 lvsl 7,0,7
2090 lwz 9,240(7)
2091 srwi 9,9,1
2092 subi 9,9,1
2093 li 3,16
2094
2095 lvx 0,0,7
2096 lvx 1,3,7
2097 addi 3,3,16
2098 vperm 0,0,1,7
2099 vxor 8,8,0
2100 lvx 0,3,7
2101 addi 3,3,16
2102 mtctr 9
2103
2104 .Ltweak_xts_dec:
2105 vperm 1,1,0,7
2106 .long 0x11080D08
2107 lvx 1,3,7
2108 addi 3,3,16
2109 vperm 0,0,1,7
2110 .long 0x11080508
2111 lvx 0,3,7
2112 addi 3,3,16
2113 bdnz .Ltweak_xts_dec
2114
2115 vperm 1,1,0,7
2116 .long 0x11080D08
2117 lvx 1,3,7
2118 vperm 0,0,1,7
2119 .long 0x11080509
2120
2121 li 8,0
2122 b .Lxts_dec
2123
2124 .Lxts_dec_no_key2:
2125 neg 3,5
2126 andi. 3,3,15
2127 add 5,5,3
2128
2129
2130 .Lxts_dec:
2131 lvx 4,0,10
2132 addi 10,10,16
2133
2134 lvsl 7,0,6
2135 lwz 9,240(6)
2136 srwi 9,9,1
2137 subi 9,9,1
2138 li 3,16
2139
2140 vslb 10,9,9
2141 vor 10,10,9
2142 vspltisb 11,1
2143 vsldoi 10,10,11,15
2144
2145 cmplwi 5,96
2146 bge _aesp8_xts_decrypt6x
2147
2148 lvx 0,0,6
2149 lvx 1,3,6
2150 addi 3,3,16
2151 vperm 2,2,4,5
2152 vperm 0,0,1,7
2153 vxor 2,2,8
2154 vxor 2,2,0
2155 lvx 0,3,6
2156 addi 3,3,16
2157 mtctr 9
2158
2159 cmplwi 5,16
2160 blt .Ltail_xts_dec
2161 b .Loop_xts_dec
2162
2163 .align 5
2164 .Loop_xts_dec:
2165 vperm 1,1,0,7
2166 .long 0x10420D48
2167 lvx 1,3,6
2168 addi 3,3,16
2169 vperm 0,0,1,7
2170 .long 0x10420548
2171 lvx 0,3,6
2172 addi 3,3,16
2173 bdnz .Loop_xts_dec
2174
2175 vperm 1,1,0,7
2176 .long 0x10420D48
2177 lvx 1,3,6
2178 li 3,16
2179 vperm 0,0,1,7
2180 vxor 0,0,8
2181 .long 0x10620549
2182
2183
2184 nop
2185
2186 .long 0x7C602799
2187 addi 4,4,16
2188
2189 subic. 5,5,16
2190 beq .Lxts_dec_done
2191
2192 vor 2,4,4
2193 lvx 4,0,10
2194 addi 10,10,16
2195 lvx 0,0,6
2196 lvx 1,3,6
2197 addi 3,3,16
2198
2199 vsrab 11,8,9
2200 vaddubm 8,8,8
2201 vsldoi 11,11,11,15
2202 vand 11,11,10
2203 vxor 8,8,11
2204
2205 vperm 2,2,4,5
2206 vperm 0,0,1,7
2207 vxor 2,2,8
2208 vxor 2,2,0
2209 lvx 0,3,6
2210 addi 3,3,16
2211
2212 mtctr 9
2213 cmplwi 5,16
2214 bge .Loop_xts_dec
2215
2216 .Ltail_xts_dec:
2217 vsrab 11,8,9
2218 vaddubm 12,8,8
2219 vsldoi 11,11,11,15
2220 vand 11,11,10
2221 vxor 12,12,11
2222
2223 subi 10,10,16
2224 add 10,10,5
2225
2226 vxor 2,2,8
2227 vxor 2,2,12
2228
2229 .Loop_xts_dec_short:
2230 vperm 1,1,0,7
2231 .long 0x10420D48
2232 lvx 1,3,6
2233 addi 3,3,16
2234 vperm 0,0,1,7
2235 .long 0x10420548
2236 lvx 0,3,6
2237 addi 3,3,16
2238 bdnz .Loop_xts_dec_short
2239
2240 vperm 1,1,0,7
2241 .long 0x10420D48
2242 lvx 1,3,6
2243 li 3,16
2244 vperm 0,0,1,7
2245 vxor 0,0,12
2246 .long 0x10620549
2247
2248
2249 nop
2250
2251 .long 0x7C602799
2252
2253 vor 2,4,4
2254 lvx 4,0,10
2255
2256 lvx 0,0,6
2257 lvx 1,3,6
2258 addi 3,3,16
2259 vperm 2,2,4,5
2260 vperm 0,0,1,7
2261
2262 lvsr 5,0,5
2263 vxor 4,4,4
2264 vspltisb 11,-1
2265 vperm 4,4,11,5
2266 vsel 2,2,3,4
2267
2268 vxor 0,0,8
2269 vxor 2,2,0
2270 lvx 0,3,6
2271 addi 3,3,16
2272
2273 subi 11,4,1
2274 mtctr 5
2275 li 5,16
2276 .Loop_xts_dec_steal:
2277 lbzu 0,1(11)
2278 stb 0,16(11)
2279 bdnz .Loop_xts_dec_steal
2280
2281 mtctr 9
2282 b .Loop_xts_dec
2283
2284 .Lxts_dec_done:
2285 cmplwi 8,0
2286 beq .Lxts_dec_ret
2287
2288 vsrab 11,8,9
2289 vaddubm 8,8,8
2290 vsldoi 11,11,11,15
2291 vand 11,11,10
2292 vxor 8,8,11
2293
2294
2295 .long 0x7D004799
2296
2297 .Lxts_dec_ret:
2298 mtspr 256,12
2299 li 3,0
2300 blr
2301 .long 0
2302 .byte 0,12,0x04,0,0x80,6,6,0
2303 .long 0
2304 .size aes_p8_xts_decrypt,.-aes_p8_xts_decrypt
2305 .align 5
2306 _aesp8_xts_encrypt6x:
2307 stwu 1,-392(1)
2308 mflr 11
2309 li 7,175
2310 li 3,191
2311 stw 11,396(1)
2312 stvx 20,7,1
2313 addi 7,7,32
2314 stvx 21,3,1
2315 addi 3,3,32
2316 stvx 22,7,1
2317 addi 7,7,32
2318 stvx 23,3,1
2319 addi 3,3,32
2320 stvx 24,7,1
2321 addi 7,7,32
2322 stvx 25,3,1
2323 addi 3,3,32
2324 stvx 26,7,1
2325 addi 7,7,32
2326 stvx 27,3,1
2327 addi 3,3,32
2328 stvx 28,7,1
2329 addi 7,7,32
2330 stvx 29,3,1
2331 addi 3,3,32
2332 stvx 30,7,1
2333 stvx 31,3,1
2334 li 0,-1
2335 stw 12,364(1)
2336 li 3,0x10
2337 stw 26,368(1)
2338 li 26,0x20
2339 stw 27,372(1)
2340 li 27,0x30
2341 stw 28,376(1)
2342 li 28,0x40
2343 stw 29,380(1)
2344 li 29,0x50
2345 stw 30,384(1)
2346 li 30,0x60
2347 stw 31,388(1)
2348 li 31,0x70
2349 mtspr 256,0
2350
2351 subi 9,9,3
2352
2353 lvx 23,0,6
2354 lvx 30,3,6
2355 addi 6,6,0x20
2356 lvx 31,0,6
2357 vperm 23,23,30,7
2358 addi 7,1,32+15
2359 mtctr 9
2360
2361 .Load_xts_enc_key:
2362 vperm 24,30,31,7
2363 lvx 30,3,6
2364 addi 6,6,0x20
2365 stvx 24,0,7
2366 vperm 25,31,30,7
2367 lvx 31,0,6
2368 stvx 25,3,7
2369 addi 7,7,0x20
2370 bdnz .Load_xts_enc_key
2371
2372 lvx 26,3,6
2373 vperm 24,30,31,7
2374 lvx 27,26,6
2375 stvx 24,0,7
2376 vperm 25,31,26,7
2377 lvx 28,27,6
2378 stvx 25,3,7
2379 addi 7,1,32+15
2380 vperm 26,26,27,7
2381 lvx 29,28,6
2382 vperm 27,27,28,7
2383 lvx 30,29,6
2384 vperm 28,28,29,7
2385 lvx 31,30,6
2386 vperm 29,29,30,7
2387 lvx 22,31,6
2388 vperm 30,30,31,7
2389 lvx 24,0,7
2390 vperm 31,31,22,7
2391 lvx 25,3,7
2392
2393 vperm 0,2,4,5
2394 subi 10,10,31
2395 vxor 17,8,23
2396 vsrab 11,8,9
2397 vaddubm 8,8,8
2398 vsldoi 11,11,11,15
2399 vand 11,11,10
2400 vxor 7,0,17
2401 vxor 8,8,11
2402
2403 .long 0x7C235699
2404 vxor 18,8,23
2405 vsrab 11,8,9
2406 vaddubm 8,8,8
2407 vsldoi 11,11,11,15
2408
2409 vand 11,11,10
2410 vxor 12,1,18
2411 vxor 8,8,11
2412
2413 .long 0x7C5A5699
2414 andi. 31,5,15
2415 vxor 19,8,23
2416 vsrab 11,8,9
2417 vaddubm 8,8,8
2418 vsldoi 11,11,11,15
2419
2420 vand 11,11,10
2421 vxor 13,2,19
2422 vxor 8,8,11
2423
2424 .long 0x7C7B5699
2425 sub 5,5,31
2426 vxor 20,8,23
2427 vsrab 11,8,9
2428 vaddubm 8,8,8
2429 vsldoi 11,11,11,15
2430
2431 vand 11,11,10
2432 vxor 14,3,20
2433 vxor 8,8,11
2434
2435 .long 0x7C9C5699
2436 subi 5,5,0x60
2437 vxor 21,8,23
2438 vsrab 11,8,9
2439 vaddubm 8,8,8
2440 vsldoi 11,11,11,15
2441
2442 vand 11,11,10
2443 vxor 15,4,21
2444 vxor 8,8,11
2445
2446 .long 0x7CBD5699
2447 addi 10,10,0x60
2448 vxor 22,8,23
2449 vsrab 11,8,9
2450 vaddubm 8,8,8
2451 vsldoi 11,11,11,15
2452
2453 vand 11,11,10
2454 vxor 16,5,22
2455 vxor 8,8,11
2456
2457 vxor 31,31,23
2458 mtctr 9
2459 b .Loop_xts_enc6x
2460
2461 .align 5
2462 .Loop_xts_enc6x:
2463 .long 0x10E7C508
2464 .long 0x118CC508
2465 .long 0x11ADC508
2466 .long 0x11CEC508
2467 .long 0x11EFC508
2468 .long 0x1210C508
2469 lvx 24,26,7
2470 addi 7,7,0x20
2471
2472 .long 0x10E7CD08
2473 .long 0x118CCD08
2474 .long 0x11ADCD08
2475 .long 0x11CECD08
2476 .long 0x11EFCD08
2477 .long 0x1210CD08
2478 lvx 25,3,7
2479 bdnz .Loop_xts_enc6x
2480
2481 subic 5,5,96
2482 vxor 0,17,31
2483 .long 0x10E7C508
2484 .long 0x118CC508
2485 vsrab 11,8,9
2486 vxor 17,8,23
2487 vaddubm 8,8,8
2488 .long 0x11ADC508
2489 .long 0x11CEC508
2490 vsldoi 11,11,11,15
2491 .long 0x11EFC508
2492 .long 0x1210C508
2493
2494 subfe. 0,0,0
2495 vand 11,11,10
2496 .long 0x10E7CD08
2497 .long 0x118CCD08
2498 vxor 8,8,11
2499 .long 0x11ADCD08
2500 .long 0x11CECD08
2501 vxor 1,18,31
2502 vsrab 11,8,9
2503 vxor 18,8,23
2504 .long 0x11EFCD08
2505 .long 0x1210CD08
2506
2507 and 0,0,5
2508 vaddubm 8,8,8
2509 vsldoi 11,11,11,15
2510 .long 0x10E7D508
2511 .long 0x118CD508
2512 vand 11,11,10
2513 .long 0x11ADD508
2514 .long 0x11CED508
2515 vxor 8,8,11
2516 .long 0x11EFD508
2517 .long 0x1210D508
2518
2519 add 10,10,0
2520
2521
2522
2523 vxor 2,19,31
2524 vsrab 11,8,9
2525 vxor 19,8,23
2526 vaddubm 8,8,8
2527 .long 0x10E7DD08
2528 .long 0x118CDD08
2529 vsldoi 11,11,11,15
2530 .long 0x11ADDD08
2531 .long 0x11CEDD08
2532 vand 11,11,10
2533 .long 0x11EFDD08
2534 .long 0x1210DD08
2535
2536 addi 7,1,32+15
2537 vxor 8,8,11
2538 .long 0x10E7E508
2539 .long 0x118CE508
2540 vxor 3,20,31
2541 vsrab 11,8,9
2542 vxor 20,8,23
2543 .long 0x11ADE508
2544 .long 0x11CEE508
2545 vaddubm 8,8,8
2546 vsldoi 11,11,11,15
2547 .long 0x11EFE508
2548 .long 0x1210E508
2549 lvx 24,0,7
2550 vand 11,11,10
2551
2552 .long 0x10E7ED08
2553 .long 0x118CED08
2554 vxor 8,8,11
2555 .long 0x11ADED08
2556 .long 0x11CEED08
2557 vxor 4,21,31
2558 vsrab 11,8,9
2559 vxor 21,8,23
2560 .long 0x11EFED08
2561 .long 0x1210ED08
2562 lvx 25,3,7
2563 vaddubm 8,8,8
2564 vsldoi 11,11,11,15
2565
2566 .long 0x10E7F508
2567 .long 0x118CF508
2568 vand 11,11,10
2569 .long 0x11ADF508
2570 .long 0x11CEF508
2571 vxor 8,8,11
2572 .long 0x11EFF508
2573 .long 0x1210F508
2574 vxor 5,22,31
2575 vsrab 11,8,9
2576 vxor 22,8,23
2577
2578 .long 0x10E70509
2579 .long 0x7C005699
2580 vaddubm 8,8,8
2581 vsldoi 11,11,11,15
2582 .long 0x118C0D09
2583 .long 0x7C235699
2584 .long 0x11AD1509
2585
2586 .long 0x7C5A5699
2587 vand 11,11,10
2588 .long 0x11CE1D09
2589
2590 .long 0x7C7B5699
2591 .long 0x11EF2509
2592
2593 .long 0x7C9C5699
2594 vxor 8,8,11
2595 .long 0x11702D09
2596
2597
2598 .long 0x7CBD5699
2599 addi 10,10,0x60
2600
2601
2602
2603
2604
2605 .long 0x7CE02799
2606 vxor 7,0,17
2607
2608 .long 0x7D832799
2609 vxor 12,1,18
2610
2611 .long 0x7DBA2799
2612 vxor 13,2,19
2613
2614 .long 0x7DDB2799
2615 vxor 14,3,20
2616
2617 .long 0x7DFC2799
2618 vxor 15,4,21
2619
2620 .long 0x7D7D2799
2621 vxor 16,5,22
2622 addi 4,4,0x60
2623
2624 mtctr 9
2625 beq .Loop_xts_enc6x
2626
2627 addic. 5,5,0x60
2628 beq .Lxts_enc6x_zero
2629 cmpwi 5,0x20
2630 blt .Lxts_enc6x_one
2631 nop
2632 beq .Lxts_enc6x_two
2633 cmpwi 5,0x40
2634 blt .Lxts_enc6x_three
2635 nop
2636 beq .Lxts_enc6x_four
2637
2638 .Lxts_enc6x_five:
2639 vxor 7,1,17
2640 vxor 12,2,18
2641 vxor 13,3,19
2642 vxor 14,4,20
2643 vxor 15,5,21
2644
2645 bl _aesp8_xts_enc5x
2646
2647
2648 vor 17,22,22
2649
2650 .long 0x7CE02799
2651
2652 .long 0x7D832799
2653
2654 .long 0x7DBA2799
2655 vxor 11,15,22
2656
2657 .long 0x7DDB2799
2658 .long 0x7DFC2799
2659 addi 4,4,0x50
2660 bne .Lxts_enc6x_steal
2661 b .Lxts_enc6x_done
2662
2663 .align 4
2664 .Lxts_enc6x_four:
2665 vxor 7,2,17
2666 vxor 12,3,18
2667 vxor 13,4,19
2668 vxor 14,5,20
2669 vxor 15,15,15
2670
2671 bl _aesp8_xts_enc5x
2672
2673
2674 vor 17,21,21
2675
2676 .long 0x7CE02799
2677
2678 .long 0x7D832799
2679 vxor 11,14,21
2680
2681 .long 0x7DBA2799
2682 .long 0x7DDB2799
2683 addi 4,4,0x40
2684 bne .Lxts_enc6x_steal
2685 b .Lxts_enc6x_done
2686
2687 .align 4
2688 .Lxts_enc6x_three:
2689 vxor 7,3,17
2690 vxor 12,4,18
2691 vxor 13,5,19
2692 vxor 14,14,14
2693 vxor 15,15,15
2694
2695 bl _aesp8_xts_enc5x
2696
2697
2698 vor 17,20,20
2699
2700 .long 0x7CE02799
2701 vxor 11,13,20
2702
2703 .long 0x7D832799
2704 .long 0x7DBA2799
2705 addi 4,4,0x30
2706 bne .Lxts_enc6x_steal
2707 b .Lxts_enc6x_done
2708
2709 .align 4
2710 .Lxts_enc6x_two:
2711 vxor 7,4,17
2712 vxor 12,5,18
2713 vxor 13,13,13
2714 vxor 14,14,14
2715 vxor 15,15,15
2716
2717 bl _aesp8_xts_enc5x
2718
2719
2720 vor 17,19,19
2721 vxor 11,12,19
2722
2723 .long 0x7CE02799
2724 .long 0x7D832799
2725 addi 4,4,0x20
2726 bne .Lxts_enc6x_steal
2727 b .Lxts_enc6x_done
2728
2729 .align 4
2730 .Lxts_enc6x_one:
2731 vxor 7,5,17
2732 nop
2733 .Loop_xts_enc1x:
2734 .long 0x10E7C508
2735 lvx 24,26,7
2736 addi 7,7,0x20
2737
2738 .long 0x10E7CD08
2739 lvx 25,3,7
2740 bdnz .Loop_xts_enc1x
2741
2742 add 10,10,31
2743 cmpwi 31,0
2744 .long 0x10E7C508
2745
2746 subi 10,10,16
2747 .long 0x10E7CD08
2748
2749 lvsr 5,0,31
2750 .long 0x10E7D508
2751
2752 .long 0x7C005699
2753 .long 0x10E7DD08
2754
2755 addi 7,1,32+15
2756 .long 0x10E7E508
2757 lvx 24,0,7
2758
2759 .long 0x10E7ED08
2760 lvx 25,3,7
2761 vxor 17,17,31
2762
2763
2764 .long 0x10E7F508
2765
2766 vperm 0,0,0,5
2767 .long 0x10E78D09
2768
2769 vor 17,18,18
2770 vxor 11,7,18
2771
2772 .long 0x7CE02799
2773 addi 4,4,0x10
2774 bne .Lxts_enc6x_steal
2775 b .Lxts_enc6x_done
2776
2777 .align 4
2778 .Lxts_enc6x_zero:
2779 cmpwi 31,0
2780 beq .Lxts_enc6x_done
2781
2782 add 10,10,31
2783 subi 10,10,16
2784 .long 0x7C005699
2785 lvsr 5,0,31
2786
2787 vperm 0,0,0,5
2788 vxor 11,11,17
2789 .Lxts_enc6x_steal:
2790 vxor 0,0,17
2791 vxor 7,7,7
2792 vspltisb 12,-1
2793 vperm 7,7,12,5
2794 vsel 7,0,11,7
2795
2796 subi 30,4,17
2797 subi 4,4,16
2798 mtctr 31
2799 .Loop_xts_enc6x_steal:
2800 lbzu 0,1(30)
2801 stb 0,16(30)
2802 bdnz .Loop_xts_enc6x_steal
2803
2804 li 31,0
2805 mtctr 9
2806 b .Loop_xts_enc1x
2807
2808 .align 4
2809 .Lxts_enc6x_done:
2810 cmplwi 8,0
2811 beq .Lxts_enc6x_ret
2812
2813 vxor 8,17,23
2814
2815 .long 0x7D004799
2816
2817 .Lxts_enc6x_ret:
2818 mtlr 11
2819 li 10,47
2820 li 11,63
2821 stvx 9,10,1
2822 addi 10,10,32
2823 stvx 9,11,1
2824 addi 11,11,32
2825 stvx 9,10,1
2826 addi 10,10,32
2827 stvx 9,11,1
2828 addi 11,11,32
2829 stvx 9,10,1
2830 addi 10,10,32
2831 stvx 9,11,1
2832 addi 11,11,32
2833 stvx 9,10,1
2834 addi 10,10,32
2835 stvx 9,11,1
2836 addi 11,11,32
2837
2838 mtspr 256,12
2839 lvx 20,10,1
2840 addi 10,10,32
2841 lvx 21,11,1
2842 addi 11,11,32
2843 lvx 22,10,1
2844 addi 10,10,32
2845 lvx 23,11,1
2846 addi 11,11,32
2847 lvx 24,10,1
2848 addi 10,10,32
2849 lvx 25,11,1
2850 addi 11,11,32
2851 lvx 26,10,1
2852 addi 10,10,32
2853 lvx 27,11,1
2854 addi 11,11,32
2855 lvx 28,10,1
2856 addi 10,10,32
2857 lvx 29,11,1
2858 addi 11,11,32
2859 lvx 30,10,1
2860 lvx 31,11,1
2861 lwz 26,368(1)
2862 lwz 27,372(1)
2863 lwz 28,376(1)
2864 lwz 29,380(1)
2865 lwz 30,384(1)
2866 lwz 31,388(1)
2867 addi 1,1,392
2868 blr
2869 .long 0
2870 .byte 0,12,0x04,1,0x80,6,6,0
2871 .long 0
2872
2873 .align 5
2874 _aesp8_xts_enc5x:
2875 .long 0x10E7C508
2876 .long 0x118CC508
2877 .long 0x11ADC508
2878 .long 0x11CEC508
2879 .long 0x11EFC508
2880 lvx 24,26,7
2881 addi 7,7,0x20
2882
2883 .long 0x10E7CD08
2884 .long 0x118CCD08
2885 .long 0x11ADCD08
2886 .long 0x11CECD08
2887 .long 0x11EFCD08
2888 lvx 25,3,7
2889 bdnz _aesp8_xts_enc5x
2890
2891 add 10,10,31
2892 cmpwi 31,0
2893 .long 0x10E7C508
2894 .long 0x118CC508
2895 .long 0x11ADC508
2896 .long 0x11CEC508
2897 .long 0x11EFC508
2898
2899 subi 10,10,16
2900 .long 0x10E7CD08
2901 .long 0x118CCD08
2902 .long 0x11ADCD08
2903 .long 0x11CECD08
2904 .long 0x11EFCD08
2905 vxor 17,17,31
2906
2907 .long 0x10E7D508
2908 lvsr 5,0,31
2909 .long 0x118CD508
2910 .long 0x11ADD508
2911 .long 0x11CED508
2912 .long 0x11EFD508
2913 vxor 1,18,31
2914
2915 .long 0x10E7DD08
2916 .long 0x7C005699
2917 .long 0x118CDD08
2918 .long 0x11ADDD08
2919 .long 0x11CEDD08
2920 .long 0x11EFDD08
2921 vxor 2,19,31
2922
2923 addi 7,1,32+15
2924 .long 0x10E7E508
2925 .long 0x118CE508
2926 .long 0x11ADE508
2927 .long 0x11CEE508
2928 .long 0x11EFE508
2929 lvx 24,0,7
2930 vxor 3,20,31
2931
2932 .long 0x10E7ED08
2933
2934 .long 0x118CED08
2935 .long 0x11ADED08
2936 .long 0x11CEED08
2937 .long 0x11EFED08
2938 lvx 25,3,7
2939 vxor 4,21,31
2940
2941 .long 0x10E7F508
2942 vperm 0,0,0,5
2943 .long 0x118CF508
2944 .long 0x11ADF508
2945 .long 0x11CEF508
2946 .long 0x11EFF508
2947
2948 .long 0x10E78D09
2949 .long 0x118C0D09
2950 .long 0x11AD1509
2951 .long 0x11CE1D09
2952 .long 0x11EF2509
2953 blr
2954 .long 0
2955 .byte 0,12,0x14,0,0,0,0,0
2956
2957 .align 5
2958 _aesp8_xts_decrypt6x:
2959 stwu 1,-392(1)
2960 mflr 11
2961 li 7,175
2962 li 3,191
2963 stw 11,396(1)
2964 stvx 20,7,1
2965 addi 7,7,32
2966 stvx 21,3,1
2967 addi 3,3,32
2968 stvx 22,7,1
2969 addi 7,7,32
2970 stvx 23,3,1
2971 addi 3,3,32
2972 stvx 24,7,1
2973 addi 7,7,32
2974 stvx 25,3,1
2975 addi 3,3,32
2976 stvx 26,7,1
2977 addi 7,7,32
2978 stvx 27,3,1
2979 addi 3,3,32
2980 stvx 28,7,1
2981 addi 7,7,32
2982 stvx 29,3,1
2983 addi 3,3,32
2984 stvx 30,7,1
2985 stvx 31,3,1
2986 li 0,-1
2987 stw 12,364(1)
2988 li 3,0x10
2989 stw 26,368(1)
2990 li 26,0x20
2991 stw 27,372(1)
2992 li 27,0x30
2993 stw 28,376(1)
2994 li 28,0x40
2995 stw 29,380(1)
2996 li 29,0x50
2997 stw 30,384(1)
2998 li 30,0x60
2999 stw 31,388(1)
3000 li 31,0x70
3001 mtspr 256,0
3002
3003 subi 9,9,3
3004
3005 lvx 23,0,6
3006 lvx 30,3,6
3007 addi 6,6,0x20
3008 lvx 31,0,6
3009 vperm 23,23,30,7
3010 addi 7,1,32+15
3011 mtctr 9
3012
3013 .Load_xts_dec_key:
3014 vperm 24,30,31,7
3015 lvx 30,3,6
3016 addi 6,6,0x20
3017 stvx 24,0,7
3018 vperm 25,31,30,7
3019 lvx 31,0,6
3020 stvx 25,3,7
3021 addi 7,7,0x20
3022 bdnz .Load_xts_dec_key
3023
3024 lvx 26,3,6
3025 vperm 24,30,31,7
3026 lvx 27,26,6
3027 stvx 24,0,7
3028 vperm 25,31,26,7
3029 lvx 28,27,6
3030 stvx 25,3,7
3031 addi 7,1,32+15
3032 vperm 26,26,27,7
3033 lvx 29,28,6
3034 vperm 27,27,28,7
3035 lvx 30,29,6
3036 vperm 28,28,29,7
3037 lvx 31,30,6
3038 vperm 29,29,30,7
3039 lvx 22,31,6
3040 vperm 30,30,31,7
3041 lvx 24,0,7
3042 vperm 31,31,22,7
3043 lvx 25,3,7
3044
3045 vperm 0,2,4,5
3046 subi 10,10,31
3047 vxor 17,8,23
3048 vsrab 11,8,9
3049 vaddubm 8,8,8
3050 vsldoi 11,11,11,15
3051 vand 11,11,10
3052 vxor 7,0,17
3053 vxor 8,8,11
3054
3055 .long 0x7C235699
3056 vxor 18,8,23
3057 vsrab 11,8,9
3058 vaddubm 8,8,8
3059 vsldoi 11,11,11,15
3060
3061 vand 11,11,10
3062 vxor 12,1,18
3063 vxor 8,8,11
3064
3065 .long 0x7C5A5699
3066 andi. 31,5,15
3067 vxor 19,8,23
3068 vsrab 11,8,9
3069 vaddubm 8,8,8
3070 vsldoi 11,11,11,15
3071
3072 vand 11,11,10
3073 vxor 13,2,19
3074 vxor 8,8,11
3075
3076 .long 0x7C7B5699
3077 sub 5,5,31
3078 vxor 20,8,23
3079 vsrab 11,8,9
3080 vaddubm 8,8,8
3081 vsldoi 11,11,11,15
3082
3083 vand 11,11,10
3084 vxor 14,3,20
3085 vxor 8,8,11
3086
3087 .long 0x7C9C5699
3088 subi 5,5,0x60
3089 vxor 21,8,23
3090 vsrab 11,8,9
3091 vaddubm 8,8,8
3092 vsldoi 11,11,11,15
3093
3094 vand 11,11,10
3095 vxor 15,4,21
3096 vxor 8,8,11
3097
3098 .long 0x7CBD5699
3099 addi 10,10,0x60
3100 vxor 22,8,23
3101 vsrab 11,8,9
3102 vaddubm 8,8,8
3103 vsldoi 11,11,11,15
3104
3105 vand 11,11,10
3106 vxor 16,5,22
3107 vxor 8,8,11
3108
3109 vxor 31,31,23
3110 mtctr 9
3111 b .Loop_xts_dec6x
3112
3113 .align 5
3114 .Loop_xts_dec6x:
3115 .long 0x10E7C548
3116 .long 0x118CC548
3117 .long 0x11ADC548
3118 .long 0x11CEC548
3119 .long 0x11EFC548
3120 .long 0x1210C548
3121 lvx 24,26,7
3122 addi 7,7,0x20
3123
3124 .long 0x10E7CD48
3125 .long 0x118CCD48
3126 .long 0x11ADCD48
3127 .long 0x11CECD48
3128 .long 0x11EFCD48
3129 .long 0x1210CD48
3130 lvx 25,3,7
3131 bdnz .Loop_xts_dec6x
3132
3133 subic 5,5,96
3134 vxor 0,17,31
3135 .long 0x10E7C548
3136 .long 0x118CC548
3137 vsrab 11,8,9
3138 vxor 17,8,23
3139 vaddubm 8,8,8
3140 .long 0x11ADC548
3141 .long 0x11CEC548
3142 vsldoi 11,11,11,15
3143 .long 0x11EFC548
3144 .long 0x1210C548
3145
3146 subfe. 0,0,0
3147 vand 11,11,10
3148 .long 0x10E7CD48
3149 .long 0x118CCD48
3150 vxor 8,8,11
3151 .long 0x11ADCD48
3152 .long 0x11CECD48
3153 vxor 1,18,31
3154 vsrab 11,8,9
3155 vxor 18,8,23
3156 .long 0x11EFCD48
3157 .long 0x1210CD48
3158
3159 and 0,0,5
3160 vaddubm 8,8,8
3161 vsldoi 11,11,11,15
3162 .long 0x10E7D548
3163 .long 0x118CD548
3164 vand 11,11,10
3165 .long 0x11ADD548
3166 .long 0x11CED548
3167 vxor 8,8,11
3168 .long 0x11EFD548
3169 .long 0x1210D548
3170
3171 add 10,10,0
3172
3173
3174
3175 vxor 2,19,31
3176 vsrab 11,8,9
3177 vxor 19,8,23
3178 vaddubm 8,8,8
3179 .long 0x10E7DD48
3180 .long 0x118CDD48
3181 vsldoi 11,11,11,15
3182 .long 0x11ADDD48
3183 .long 0x11CEDD48
3184 vand 11,11,10
3185 .long 0x11EFDD48
3186 .long 0x1210DD48
3187
3188 addi 7,1,32+15
3189 vxor 8,8,11
3190 .long 0x10E7E548
3191 .long 0x118CE548
3192 vxor 3,20,31
3193 vsrab 11,8,9
3194 vxor 20,8,23
3195 .long 0x11ADE548
3196 .long 0x11CEE548
3197 vaddubm 8,8,8
3198 vsldoi 11,11,11,15
3199 .long 0x11EFE548
3200 .long 0x1210E548
3201 lvx 24,0,7
3202 vand 11,11,10
3203
3204 .long 0x10E7ED48
3205 .long 0x118CED48
3206 vxor 8,8,11
3207 .long 0x11ADED48
3208 .long 0x11CEED48
3209 vxor 4,21,31
3210 vsrab 11,8,9
3211 vxor 21,8,23
3212 .long 0x11EFED48
3213 .long 0x1210ED48
3214 lvx 25,3,7
3215 vaddubm 8,8,8
3216 vsldoi 11,11,11,15
3217
3218 .long 0x10E7F548
3219 .long 0x118CF548
3220 vand 11,11,10
3221 .long 0x11ADF548
3222 .long 0x11CEF548
3223 vxor 8,8,11
3224 .long 0x11EFF548
3225 .long 0x1210F548
3226 vxor 5,22,31
3227 vsrab 11,8,9
3228 vxor 22,8,23
3229
3230 .long 0x10E70549
3231 .long 0x7C005699
3232 vaddubm 8,8,8
3233 vsldoi 11,11,11,15
3234 .long 0x118C0D49
3235 .long 0x7C235699
3236 .long 0x11AD1549
3237
3238 .long 0x7C5A5699
3239 vand 11,11,10
3240 .long 0x11CE1D49
3241
3242 .long 0x7C7B5699
3243 .long 0x11EF2549
3244
3245 .long 0x7C9C5699
3246 vxor 8,8,11
3247 .long 0x12102D49
3248
3249 .long 0x7CBD5699
3250 addi 10,10,0x60
3251
3252
3253
3254
3255
3256 .long 0x7CE02799
3257 vxor 7,0,17
3258
3259 .long 0x7D832799
3260 vxor 12,1,18
3261
3262 .long 0x7DBA2799
3263 vxor 13,2,19
3264
3265 .long 0x7DDB2799
3266 vxor 14,3,20
3267
3268 .long 0x7DFC2799
3269 vxor 15,4,21
3270 .long 0x7E1D2799
3271 vxor 16,5,22
3272 addi 4,4,0x60
3273
3274 mtctr 9
3275 beq .Loop_xts_dec6x
3276
3277 addic. 5,5,0x60
3278 beq .Lxts_dec6x_zero
3279 cmpwi 5,0x20
3280 blt .Lxts_dec6x_one
3281 nop
3282 beq .Lxts_dec6x_two
3283 cmpwi 5,0x40
3284 blt .Lxts_dec6x_three
3285 nop
3286 beq .Lxts_dec6x_four
3287
3288 .Lxts_dec6x_five:
3289 vxor 7,1,17
3290 vxor 12,2,18
3291 vxor 13,3,19
3292 vxor 14,4,20
3293 vxor 15,5,21
3294
3295 bl _aesp8_xts_dec5x
3296
3297
3298 vor 17,22,22
3299 vxor 18,8,23
3300
3301 .long 0x7CE02799
3302 vxor 7,0,18
3303
3304 .long 0x7D832799
3305
3306 .long 0x7DBA2799
3307
3308 .long 0x7DDB2799
3309 .long 0x7DFC2799
3310 addi 4,4,0x50
3311 bne .Lxts_dec6x_steal
3312 b .Lxts_dec6x_done
3313
3314 .align 4
3315 .Lxts_dec6x_four:
3316 vxor 7,2,17
3317 vxor 12,3,18
3318 vxor 13,4,19
3319 vxor 14,5,20
3320 vxor 15,15,15
3321
3322 bl _aesp8_xts_dec5x
3323
3324
3325 vor 17,21,21
3326 vor 18,22,22
3327
3328 .long 0x7CE02799
3329 vxor 7,0,22
3330
3331 .long 0x7D832799
3332
3333 .long 0x7DBA2799
3334 .long 0x7DDB2799
3335 addi 4,4,0x40
3336 bne .Lxts_dec6x_steal
3337 b .Lxts_dec6x_done
3338
3339 .align 4
3340 .Lxts_dec6x_three:
3341 vxor 7,3,17
3342 vxor 12,4,18
3343 vxor 13,5,19
3344 vxor 14,14,14
3345 vxor 15,15,15
3346
3347 bl _aesp8_xts_dec5x
3348
3349
3350 vor 17,20,20
3351 vor 18,21,21
3352
3353 .long 0x7CE02799
3354 vxor 7,0,21
3355
3356 .long 0x7D832799
3357 .long 0x7DBA2799
3358 addi 4,4,0x30
3359 bne .Lxts_dec6x_steal
3360 b .Lxts_dec6x_done
3361
3362 .align 4
3363 .Lxts_dec6x_two:
3364 vxor 7,4,17
3365 vxor 12,5,18
3366 vxor 13,13,13
3367 vxor 14,14,14
3368 vxor 15,15,15
3369
3370 bl _aesp8_xts_dec5x
3371
3372
3373 vor 17,19,19
3374 vor 18,20,20
3375
3376 .long 0x7CE02799
3377 vxor 7,0,20
3378 .long 0x7D832799
3379 addi 4,4,0x20
3380 bne .Lxts_dec6x_steal
3381 b .Lxts_dec6x_done
3382
3383 .align 4
3384 .Lxts_dec6x_one:
3385 vxor 7,5,17
3386 nop
3387 .Loop_xts_dec1x:
3388 .long 0x10E7C548
3389 lvx 24,26,7
3390 addi 7,7,0x20
3391
3392 .long 0x10E7CD48
3393 lvx 25,3,7
3394 bdnz .Loop_xts_dec1x
3395
3396 subi 0,31,1
3397 .long 0x10E7C548
3398
3399 andi. 0,0,16
3400 cmpwi 31,0
3401 .long 0x10E7CD48
3402
3403 sub 10,10,0
3404 .long 0x10E7D548
3405
3406 .long 0x7C005699
3407 .long 0x10E7DD48
3408
3409 addi 7,1,32+15
3410 .long 0x10E7E548
3411 lvx 24,0,7
3412
3413 .long 0x10E7ED48
3414 lvx 25,3,7
3415 vxor 17,17,31
3416
3417
3418 .long 0x10E7F548
3419
3420 mtctr 9
3421 .long 0x10E78D49
3422
3423 vor 17,18,18
3424 vor 18,19,19
3425
3426 .long 0x7CE02799
3427 addi 4,4,0x10
3428 vxor 7,0,19
3429 bne .Lxts_dec6x_steal
3430 b .Lxts_dec6x_done
3431
3432 .align 4
3433 .Lxts_dec6x_zero:
3434 cmpwi 31,0
3435 beq .Lxts_dec6x_done
3436
3437 .long 0x7C005699
3438
3439 vxor 7,0,18
3440 .Lxts_dec6x_steal:
3441 .long 0x10E7C548
3442 lvx 24,26,7
3443 addi 7,7,0x20
3444
3445 .long 0x10E7CD48
3446 lvx 25,3,7
3447 bdnz .Lxts_dec6x_steal
3448
3449 add 10,10,31
3450 .long 0x10E7C548
3451
3452 cmpwi 31,0
3453 .long 0x10E7CD48
3454
3455 .long 0x7C005699
3456 .long 0x10E7D548
3457
3458 lvsr 5,0,31
3459 .long 0x10E7DD48
3460
3461 addi 7,1,32+15
3462 .long 0x10E7E548
3463 lvx 24,0,7
3464
3465 .long 0x10E7ED48
3466 lvx 25,3,7
3467 vxor 18,18,31
3468
3469
3470 .long 0x10E7F548
3471
3472 vperm 0,0,0,5
3473 .long 0x11679549
3474
3475
3476
3477 .long 0x7D602799
3478
3479 vxor 7,7,7
3480 vspltisb 12,-1
3481 vperm 7,7,12,5
3482 vsel 7,0,11,7
3483 vxor 7,7,17
3484
3485 subi 30,4,1
3486 mtctr 31
3487 .Loop_xts_dec6x_steal:
3488 lbzu 0,1(30)
3489 stb 0,16(30)
3490 bdnz .Loop_xts_dec6x_steal
3491
3492 li 31,0
3493 mtctr 9
3494 b .Loop_xts_dec1x
3495
3496 .align 4
3497 .Lxts_dec6x_done:
3498 cmplwi 8,0
3499 beq .Lxts_dec6x_ret
3500
3501 vxor 8,17,23
3502
3503 .long 0x7D004799
3504
3505 .Lxts_dec6x_ret:
3506 mtlr 11
3507 li 10,47
3508 li 11,63
3509 stvx 9,10,1
3510 addi 10,10,32
3511 stvx 9,11,1
3512 addi 11,11,32
3513 stvx 9,10,1
3514 addi 10,10,32
3515 stvx 9,11,1
3516 addi 11,11,32
3517 stvx 9,10,1
3518 addi 10,10,32
3519 stvx 9,11,1
3520 addi 11,11,32
3521 stvx 9,10,1
3522 addi 10,10,32
3523 stvx 9,11,1
3524 addi 11,11,32
3525
3526 mtspr 256,12
3527 lvx 20,10,1
3528 addi 10,10,32
3529 lvx 21,11,1
3530 addi 11,11,32
3531 lvx 22,10,1
3532 addi 10,10,32
3533 lvx 23,11,1
3534 addi 11,11,32
3535 lvx 24,10,1
3536 addi 10,10,32
3537 lvx 25,11,1
3538 addi 11,11,32
3539 lvx 26,10,1
3540 addi 10,10,32
3541 lvx 27,11,1
3542 addi 11,11,32
3543 lvx 28,10,1
3544 addi 10,10,32
3545 lvx 29,11,1
3546 addi 11,11,32
3547 lvx 30,10,1
3548 lvx 31,11,1
3549 lwz 26,368(1)
3550 lwz 27,372(1)
3551 lwz 28,376(1)
3552 lwz 29,380(1)
3553 lwz 30,384(1)
3554 lwz 31,388(1)
3555 addi 1,1,392
3556 blr
3557 .long 0
3558 .byte 0,12,0x04,1,0x80,6,6,0
3559 .long 0
3560
3561 .align 5
3562 _aesp8_xts_dec5x:
3563 .long 0x10E7C548
3564 .long 0x118CC548
3565 .long 0x11ADC548
3566 .long 0x11CEC548
3567 .long 0x11EFC548
3568 lvx 24,26,7
3569 addi 7,7,0x20
3570
3571 .long 0x10E7CD48
3572 .long 0x118CCD48
3573 .long 0x11ADCD48
3574 .long 0x11CECD48
3575 .long 0x11EFCD48
3576 lvx 25,3,7
3577 bdnz _aesp8_xts_dec5x
3578
3579 subi 0,31,1
3580 .long 0x10E7C548
3581 .long 0x118CC548
3582 .long 0x11ADC548
3583 .long 0x11CEC548
3584 .long 0x11EFC548
3585
3586 andi. 0,0,16
3587 cmpwi 31,0
3588 .long 0x10E7CD48
3589 .long 0x118CCD48
3590 .long 0x11ADCD48
3591 .long 0x11CECD48
3592 .long 0x11EFCD48
3593 vxor 17,17,31
3594
3595 sub 10,10,0
3596 .long 0x10E7D548
3597 .long 0x118CD548
3598 .long 0x11ADD548
3599 .long 0x11CED548
3600 .long 0x11EFD548
3601 vxor 1,18,31
3602
3603 .long 0x10E7DD48
3604 .long 0x7C005699
3605 .long 0x118CDD48
3606 .long 0x11ADDD48
3607 .long 0x11CEDD48
3608 .long 0x11EFDD48
3609 vxor 2,19,31
3610
3611 addi 7,1,32+15
3612 .long 0x10E7E548
3613 .long 0x118CE548
3614 .long 0x11ADE548
3615 .long 0x11CEE548
3616 .long 0x11EFE548
3617 lvx 24,0,7
3618 vxor 3,20,31
3619
3620 .long 0x10E7ED48
3621
3622 .long 0x118CED48
3623 .long 0x11ADED48
3624 .long 0x11CEED48
3625 .long 0x11EFED48
3626 lvx 25,3,7
3627 vxor 4,21,31
3628
3629 .long 0x10E7F548
3630 .long 0x118CF548
3631 .long 0x11ADF548
3632 .long 0x11CEF548
3633 .long 0x11EFF548
3634
3635 .long 0x10E78D49
3636 .long 0x118C0D49
3637 .long 0x11AD1549
3638 .long 0x11CE1D49
3639 .long 0x11EF2549
3640 mtctr 9
3641 blr
3642 .long 0
3643 .byte 0,12,0x14,0,0,0,0,0
Cache object: 7e72c83ce51dff154ab21df6f96ce5c3
|