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