1 /* $FreeBSD$ */
2 /* Do not modify. This file is auto-generated from ghashp8-ppc.pl. */
3 .machine "any"
4
5 .text
6
7 .globl gcm_init_p8
8 .type gcm_init_p8,@function
9 .align 5
10 gcm_init_p8:
11 li 0,-4096
12 li 8,0x10
13 mfspr 12,256
14 li 9,0x20
15 mtspr 256,0
16 li 10,0x30
17 .long 0x7D202699
18
19 vspltisb 8,-16
20 vspltisb 5,1
21 vaddubm 8,8,8
22 vxor 4,4,4
23 vor 8,8,5
24 vsldoi 8,8,4,15
25 vsldoi 6,4,5,1
26 vaddubm 8,8,8
27 vspltisb 7,7
28 vor 8,8,6
29 vspltb 6,9,0
30 vsl 9,9,5
31 vsrab 6,6,7
32 vand 6,6,8
33 vxor 3,9,6
34
35 vsldoi 9,3,3,8
36 vsldoi 8,4,8,8
37 vsldoi 11,4,9,8
38 vsldoi 10,9,4,8
39
40 .long 0x7D001F99
41 .long 0x7D681F99
42 li 8,0x40
43 .long 0x7D291F99
44 li 9,0x50
45 .long 0x7D4A1F99
46 li 10,0x60
47
48 .long 0x10035CC8
49 .long 0x10234CC8
50 .long 0x104354C8
51
52 .long 0x10E044C8
53
54 vsldoi 5,1,4,8
55 vsldoi 6,4,1,8
56 vxor 0,0,5
57 vxor 2,2,6
58
59 vsldoi 0,0,0,8
60 vxor 0,0,7
61
62 vsldoi 6,0,0,8
63 .long 0x100044C8
64 vxor 6,6,2
65 vxor 16,0,6
66
67 vsldoi 17,16,16,8
68 vsldoi 19,4,17,8
69 vsldoi 18,17,4,8
70
71 .long 0x7E681F99
72 li 8,0x70
73 .long 0x7E291F99
74 li 9,0x80
75 .long 0x7E4A1F99
76 li 10,0x90
77 .long 0x10039CC8
78 .long 0x11B09CC8
79 .long 0x10238CC8
80 .long 0x11D08CC8
81 .long 0x104394C8
82 .long 0x11F094C8
83
84 .long 0x10E044C8
85 .long 0x114D44C8
86
87 vsldoi 5,1,4,8
88 vsldoi 6,4,1,8
89 vsldoi 11,14,4,8
90 vsldoi 9,4,14,8
91 vxor 0,0,5
92 vxor 2,2,6
93 vxor 13,13,11
94 vxor 15,15,9
95
96 vsldoi 0,0,0,8
97 vsldoi 13,13,13,8
98 vxor 0,0,7
99 vxor 13,13,10
100
101 vsldoi 6,0,0,8
102 vsldoi 9,13,13,8
103 .long 0x100044C8
104 .long 0x11AD44C8
105 vxor 6,6,2
106 vxor 9,9,15
107 vxor 0,0,6
108 vxor 13,13,9
109
110 vsldoi 9,0,0,8
111 vsldoi 17,13,13,8
112 vsldoi 11,4,9,8
113 vsldoi 10,9,4,8
114 vsldoi 19,4,17,8
115 vsldoi 18,17,4,8
116
117 .long 0x7D681F99
118 li 8,0xa0
119 .long 0x7D291F99
120 li 9,0xb0
121 .long 0x7D4A1F99
122 li 10,0xc0
123 .long 0x7E681F99
124 .long 0x7E291F99
125 .long 0x7E4A1F99
126
127 mtspr 256,12
128 blr
129 .long 0
130 .byte 0,12,0x14,0,0,0,2,0
131 .long 0
132 .size gcm_init_p8,.-gcm_init_p8
133 .globl gcm_gmult_p8
134 .type gcm_gmult_p8,@function
135 .align 5
136 gcm_gmult_p8:
137 lis 0,0xfff8
138 li 8,0x10
139 mfspr 12,256
140 li 9,0x20
141 mtspr 256,0
142 li 10,0x30
143 .long 0x7C601E99
144
145 .long 0x7D682699
146
147 .long 0x7D292699
148
149 .long 0x7D4A2699
150
151 .long 0x7D002699
152
153 vxor 4,4,4
154
155 .long 0x10035CC8
156 .long 0x10234CC8
157 .long 0x104354C8
158
159 .long 0x10E044C8
160
161 vsldoi 5,1,4,8
162 vsldoi 6,4,1,8
163 vxor 0,0,5
164 vxor 2,2,6
165
166 vsldoi 0,0,0,8
167 vxor 0,0,7
168
169 vsldoi 6,0,0,8
170 .long 0x100044C8
171 vxor 6,6,2
172 vxor 0,0,6
173
174
175 .long 0x7C001F99
176
177 mtspr 256,12
178 blr
179 .long 0
180 .byte 0,12,0x14,0,0,0,2,0
181 .long 0
182 .size gcm_gmult_p8,.-gcm_gmult_p8
183
184 .globl gcm_ghash_p8
185 .type gcm_ghash_p8,@function
186 .align 5
187 gcm_ghash_p8:
188 li 0,-4096
189 li 8,0x10
190 mfspr 12,256
191 li 9,0x20
192 mtspr 256,0
193 li 10,0x30
194 .long 0x7C001E99
195
196 .long 0x7D682699
197 li 8,0x40
198
199 .long 0x7D292699
200 li 9,0x50
201
202 .long 0x7D4A2699
203 li 10,0x60
204
205 .long 0x7D002699
206
207 vxor 4,4,4
208
209 cmplwi 6,64
210 bge .Lgcm_ghash_p8_4x
211
212 .long 0x7C602E99
213 addi 5,5,16
214 subic. 6,6,16
215
216 vxor 3,3,0
217 beq .Lshort
218
219 .long 0x7E682699
220 li 8,16
221 .long 0x7E292699
222 add 9,5,6
223 .long 0x7E4A2699
224 b .Loop_2x
225
226 .align 5
227 .Loop_2x:
228 .long 0x7E002E99
229
230
231 subic 6,6,32
232 .long 0x10039CC8
233 .long 0x11B05CC8
234 subfe 0,0,0
235 .long 0x10238CC8
236 .long 0x11D04CC8
237 and 0,0,6
238 .long 0x104394C8
239 .long 0x11F054C8
240 add 5,5,0
241
242 vxor 0,0,13
243 vxor 1,1,14
244
245 .long 0x10E044C8
246
247 vsldoi 5,1,4,8
248 vsldoi 6,4,1,8
249 vxor 2,2,15
250 vxor 0,0,5
251 vxor 2,2,6
252
253 vsldoi 0,0,0,8
254 vxor 0,0,7
255 .long 0x7C682E99
256 addi 5,5,32
257
258 vsldoi 6,0,0,8
259 .long 0x100044C8
260
261 vxor 6,6,2
262 vxor 3,3,6
263 vxor 3,3,0
264 .long 0x7c092840
265 bgt .Loop_2x
266
267 cmplwi 6,0
268 bne .Leven
269
270 .Lshort:
271 .long 0x10035CC8
272 .long 0x10234CC8
273 .long 0x104354C8
274
275 .long 0x10E044C8
276
277 vsldoi 5,1,4,8
278 vsldoi 6,4,1,8
279 vxor 0,0,5
280 vxor 2,2,6
281
282 vsldoi 0,0,0,8
283 vxor 0,0,7
284
285 vsldoi 6,0,0,8
286 .long 0x100044C8
287 vxor 6,6,2
288
289 .Leven:
290 vxor 0,0,6
291
292 .long 0x7C001F99
293
294 mtspr 256,12
295 blr
296 .long 0
297 .byte 0,12,0x14,0,0,0,4,0
298 .long 0
299 .align 5
300 .gcm_ghash_p8_4x:
301 .Lgcm_ghash_p8_4x:
302 stwu 1,-232(1)
303 li 10,39
304 li 11,55
305 stvx 20,10,1
306 addi 10,10,32
307 stvx 21,11,1
308 addi 11,11,32
309 stvx 22,10,1
310 addi 10,10,32
311 stvx 23,11,1
312 addi 11,11,32
313 stvx 24,10,1
314 addi 10,10,32
315 stvx 25,11,1
316 addi 11,11,32
317 stvx 26,10,1
318 addi 10,10,32
319 stvx 27,11,1
320 addi 11,11,32
321 stvx 28,10,1
322 addi 10,10,32
323 stvx 29,11,1
324 addi 11,11,32
325 stvx 30,10,1
326 li 10,0x60
327 stvx 31,11,1
328 li 0,-1
329 stw 12,228(1)
330 mtspr 256,0
331
332 lvsl 5,0,8
333
334 li 8,0x70
335 .long 0x7E292699
336 li 9,0x80
337 vspltisb 6,8
338
339 li 10,0x90
340 .long 0x7EE82699
341 li 8,0xa0
342 .long 0x7F092699
343 li 9,0xb0
344 .long 0x7F2A2699
345 li 10,0xc0
346 .long 0x7FA82699
347 li 8,0x10
348 .long 0x7FC92699
349 li 9,0x20
350 .long 0x7FEA2699
351 li 10,0x30
352
353 vsldoi 7,4,6,8
354 vaddubm 18,5,7
355 vaddubm 19,6,18
356
357 srwi 6,6,4
358
359 .long 0x7C602E99
360 .long 0x7E082E99
361 subic. 6,6,8
362 .long 0x7EC92E99
363 .long 0x7F8A2E99
364 addi 5,5,0x40
365
366
367
368
369
370 vxor 2,3,0
371
372 .long 0x11B0BCC8
373 .long 0x11D0C4C8
374 .long 0x11F0CCC8
375
376 vperm 11,17,9,18
377 vperm 5,22,28,19
378 vperm 10,17,9,19
379 vperm 6,22,28,18
380 .long 0x12B68CC8
381 .long 0x12855CC8
382 .long 0x137C4CC8
383 .long 0x134654C8
384
385 vxor 21,21,14
386 vxor 20,20,13
387 vxor 27,27,21
388 vxor 26,26,15
389
390 blt .Ltail_4x
391
392 .Loop_4x:
393 .long 0x7C602E99
394 .long 0x7E082E99
395 subic. 6,6,4
396 .long 0x7EC92E99
397 .long 0x7F8A2E99
398 addi 5,5,0x40
399
400
401
402
403
404 .long 0x1002ECC8
405 .long 0x1022F4C8
406 .long 0x1042FCC8
407 .long 0x11B0BCC8
408 .long 0x11D0C4C8
409 .long 0x11F0CCC8
410
411 vxor 0,0,20
412 vxor 1,1,27
413 vxor 2,2,26
414 vperm 5,22,28,19
415 vperm 6,22,28,18
416
417 .long 0x10E044C8
418 .long 0x12855CC8
419 .long 0x134654C8
420
421 vsldoi 5,1,4,8
422 vsldoi 6,4,1,8
423 vxor 0,0,5
424 vxor 2,2,6
425
426 vsldoi 0,0,0,8
427 vxor 0,0,7
428
429 vsldoi 6,0,0,8
430 .long 0x12B68CC8
431 .long 0x137C4CC8
432 .long 0x100044C8
433
434 vxor 20,20,13
435 vxor 26,26,15
436 vxor 2,2,3
437 vxor 21,21,14
438 vxor 2,2,6
439 vxor 27,27,21
440 vxor 2,2,0
441 bge .Loop_4x
442
443 .Ltail_4x:
444 .long 0x1002ECC8
445 .long 0x1022F4C8
446 .long 0x1042FCC8
447
448 vxor 0,0,20
449 vxor 1,1,27
450
451 .long 0x10E044C8
452
453 vsldoi 5,1,4,8
454 vsldoi 6,4,1,8
455 vxor 2,2,26
456 vxor 0,0,5
457 vxor 2,2,6
458
459 vsldoi 0,0,0,8
460 vxor 0,0,7
461
462 vsldoi 6,0,0,8
463 .long 0x100044C8
464 vxor 6,6,2
465 vxor 0,0,6
466
467 addic. 6,6,4
468 beq .Ldone_4x
469
470 .long 0x7C602E99
471 cmplwi 6,2
472 li 6,-4
473 blt .Lone
474 .long 0x7E082E99
475 beq .Ltwo
476
477 .Lthree:
478 .long 0x7EC92E99
479
480
481
482
483 vxor 2,3,0
484 vor 29,23,23
485 vor 30,24,24
486 vor 31,25,25
487
488 vperm 5,16,22,19
489 vperm 6,16,22,18
490 .long 0x12B08CC8
491 .long 0x13764CC8
492 .long 0x12855CC8
493 .long 0x134654C8
494
495 vxor 27,27,21
496 b .Ltail_4x
497
498 .align 4
499 .Ltwo:
500
501
502
503 vxor 2,3,0
504 vperm 5,4,16,19
505 vperm 6,4,16,18
506
507 vsldoi 29,4,17,8
508 vor 30,17,17
509 vsldoi 31,17,4,8
510
511 .long 0x12855CC8
512 .long 0x13704CC8
513 .long 0x134654C8
514
515 b .Ltail_4x
516
517 .align 4
518 .Lone:
519
520
521 vsldoi 29,4,9,8
522 vor 30,9,9
523 vsldoi 31,9,4,8
524
525 vxor 2,3,0
526 vxor 20,20,20
527 vxor 27,27,27
528 vxor 26,26,26
529
530 b .Ltail_4x
531
532 .Ldone_4x:
533
534 .long 0x7C001F99
535
536 li 10,39
537 li 11,55
538 mtspr 256,12
539 lvx 20,10,1
540 addi 10,10,32
541 lvx 21,11,1
542 addi 11,11,32
543 lvx 22,10,1
544 addi 10,10,32
545 lvx 23,11,1
546 addi 11,11,32
547 lvx 24,10,1
548 addi 10,10,32
549 lvx 25,11,1
550 addi 11,11,32
551 lvx 26,10,1
552 addi 10,10,32
553 lvx 27,11,1
554 addi 11,11,32
555 lvx 28,10,1
556 addi 10,10,32
557 lvx 29,11,1
558 addi 11,11,32
559 lvx 30,10,1
560 lvx 31,11,1
561 addi 1,1,232
562 blr
563 .long 0
564 .byte 0,12,0x04,0,0x80,0,4,0
565 .long 0
566 .size gcm_ghash_p8,.-gcm_ghash_p8
567
568 .byte 71,72,65,83,72,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
569 .align 2
570 .align 2
Cache object: a47b48c88e214d52948d916453c3c48e
|