1.machine	"any"
2.text
3.globl	poly1305_init_int
4.type	poly1305_init_int,@function
5.section	".opd","aw"
6.align	3
7poly1305_init_int:
8.quad	.poly1305_init_int,.TOC.@tocbase,0
9.previous
10.align	4
11.poly1305_init_int:
12	xor	0,0,0
13	std	0,0(3)
14	std	0,8(3)
15	std	0,16(3)
16
17	cmpld	4,0
18	beq-	.Lno_key
19	li	7,4
20	lwbrx	10,0,4
21	li	11,8
22	lwbrx	7,7,4
23	li	8,12
24	lwbrx	11,11,4
25	lwbrx	8,8,4
26	insrdi	10,7,32,0
27	insrdi	11,8,32,0
28	lis	8,0xfff
29	ori	8,8,0xfffc
30	insrdi	8,8,32,0
31	ori	7,8,3
32
33	and	10,10,7
34	and	11,11,8
35
36	std	10,32(3)
37	std	11,40(3)
38
39.Lno_key:
40	xor	3,3,3
41	blr
42.long	0
43.byte	0,12,0x14,0,0,0,2,0
44
45
46.globl	poly1305_blocks
47.type	poly1305_blocks,@function
48.section	".opd","aw"
49.align	3
50poly1305_blocks:
51.quad	.poly1305_blocks,.TOC.@tocbase,0
52.previous
53.align	4
54.poly1305_blocks:
55	srdi.	5,5,4
56	beq-	.Labort
57
58	stdu	1,-192(1)
59	mflr	0
60	std	27,152(1)
61	std	28,160(1)
62	std	29,168(1)
63	std	30,176(1)
64	std	31,184(1)
65	std	0,208(1)
66
67	ld	27,32(3)
68	ld	28,40(3)
69
70	ld	7,0(3)
71	ld	8,8(3)
72	ld	9,16(3)
73
74	srdi	29,28,2
75	mtctr	5
76	add	29,29,28
77	li	0,3
78	b	.Loop
79
80.align	4
81.Loop:
82	li	10,4
83	lwbrx	30,0,4
84	li	31,8
85	lwbrx	10,10,4
86	li	11,12
87	lwbrx	31,31,4
88	lwbrx	11,11,4
89	insrdi	30,10,32,0
90	insrdi	31,11,32,0
91	addi	4,4,16
92
93	addc	7,7,30
94	adde	8,8,31
95
96	mulld	10,7,27
97	mulhdu	11,7,27
98	adde	9,9,6
99
100	mulld	30,8,29
101	mulhdu	31,8,29
102	addc	10,10,30
103	adde	11,11,31
104
105	mulld	30,7,28
106	mulhdu	12,7,28
107	addc	11,11,30
108	addze	12,12
109
110	mulld	30,8,27
111	mulhdu	31,8,27
112	addc	11,11,30
113	adde	12,12,31
114
115	mulld	30,9,29
116	mulld	31,9,27
117	addc	11,11,30
118	adde	12,12,31
119
120	andc	30,12,0
121	and	9,12,0
122	srdi	31,30,2
123	add	30,30,31
124	addc	7,10,30
125	addze	8,11
126	addze	9,9
127
128	bc	16,0,.Loop
129
130	std	7,0(3)
131	std	8,8(3)
132	std	9,16(3)
133
134	ld	27,152(1)
135	ld	28,160(1)
136	ld	29,168(1)
137	ld	30,176(1)
138	ld	31,184(1)
139	addi	1,1,192
140.Labort:
141	blr
142.long	0
143.byte	0,12,4,1,0x80,5,4,0
144
145
146.globl	poly1305_emit
147.type	poly1305_emit,@function
148.section	".opd","aw"
149.align	3
150poly1305_emit:
151.quad	.poly1305_emit,.TOC.@tocbase,0
152.previous
153.align	4
154.poly1305_emit:
155	ld	7,0(3)
156	ld	8,8(3)
157	ld	9,16(3)
158	ld	6,0(5)
159	ld	5,8(5)
160
161	addic	10,7,5
162	addze	11,8
163	addze	12,9
164
165	srdi	0,12,2
166	neg	0,0
167
168	andc	7,7,0
169	and	10,10,0
170	andc	8,8,0
171	and	11,11,0
172	or	7,7,10
173	or	8,8,11
174	rotldi	6,6,32
175	rotldi	5,5,32
176	addc	7,7,6
177	adde	8,8,5
178	rldicl	0,7,32,32
179	li	10,4
180	stwbrx	7,0,4
181	rldicl	7,8,32,32
182	li	11,8
183	stwbrx	0,10,4
184	li	12,12
185	stwbrx	8,11,4
186	stwbrx	7,12,4
187	blr
188.long	0
189.byte	0,12,0x14,0,0,0,3,0
190
191.byte	80,111,108,121,49,51,48,53,32,102,111,114,32,80,80,67,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
192.align	2
193