xref: /freebsd/sys/crypto/openssl/powerpc64/x25519-ppc64.S (revision 71625ec9ad2a9bc8c09784fbd23b759830e0ee5f)
1*3a608692SPiotr Kubaj/* Do not modify. This file is auto-generated from x25519-ppc64.pl. */
2*3a608692SPiotr Kubaj.abiversion	2
3*3a608692SPiotr Kubaj.text
4*3a608692SPiotr Kubaj
5*3a608692SPiotr Kubaj.globl	x25519_fe51_mul
6*3a608692SPiotr Kubaj.type	x25519_fe51_mul,@function
7*3a608692SPiotr Kubaj.type	x25519_fe51_mul,@function
8*3a608692SPiotr Kubaj.align	5
9*3a608692SPiotr Kubajx25519_fe51_mul:
10*3a608692SPiotr Kubaj.localentry	x25519_fe51_mul,0
11*3a608692SPiotr Kubaj
12*3a608692SPiotr Kubaj	stdu	1,-144(1)
13*3a608692SPiotr Kubaj	std	21,56(1)
14*3a608692SPiotr Kubaj	std	22,64(1)
15*3a608692SPiotr Kubaj	std	23,72(1)
16*3a608692SPiotr Kubaj	std	24,80(1)
17*3a608692SPiotr Kubaj	std	25,88(1)
18*3a608692SPiotr Kubaj	std	26,96(1)
19*3a608692SPiotr Kubaj	std	27,104(1)
20*3a608692SPiotr Kubaj	std	28,112(1)
21*3a608692SPiotr Kubaj	std	29,120(1)
22*3a608692SPiotr Kubaj	std	30,128(1)
23*3a608692SPiotr Kubaj	std	31,136(1)
24*3a608692SPiotr Kubaj
25*3a608692SPiotr Kubaj	ld	6,0(5)
26*3a608692SPiotr Kubaj	ld	7,0(4)
27*3a608692SPiotr Kubaj	ld	8,8(4)
28*3a608692SPiotr Kubaj	ld	9,16(4)
29*3a608692SPiotr Kubaj	ld	10,24(4)
30*3a608692SPiotr Kubaj	ld	11,32(4)
31*3a608692SPiotr Kubaj
32*3a608692SPiotr Kubaj	mulld	22,7,6
33*3a608692SPiotr Kubaj	mulhdu	23,7,6
34*3a608692SPiotr Kubaj
35*3a608692SPiotr Kubaj	mulld	24,8,6
36*3a608692SPiotr Kubaj	mulhdu	25,8,6
37*3a608692SPiotr Kubaj
38*3a608692SPiotr Kubaj	mulld	30,11,6
39*3a608692SPiotr Kubaj	mulhdu	31,11,6
40*3a608692SPiotr Kubaj	ld	4,8(5)
41*3a608692SPiotr Kubaj	mulli	11,11,19
42*3a608692SPiotr Kubaj
43*3a608692SPiotr Kubaj	mulld	26,9,6
44*3a608692SPiotr Kubaj	mulhdu	27,9,6
45*3a608692SPiotr Kubaj
46*3a608692SPiotr Kubaj	mulld	28,10,6
47*3a608692SPiotr Kubaj	mulhdu	29,10,6
48*3a608692SPiotr Kubaj	mulld	12,11,4
49*3a608692SPiotr Kubaj	mulhdu	21,11,4
50*3a608692SPiotr Kubaj	addc	22,22,12
51*3a608692SPiotr Kubaj	adde	23,23,21
52*3a608692SPiotr Kubaj
53*3a608692SPiotr Kubaj	mulld	12,7,4
54*3a608692SPiotr Kubaj	mulhdu	21,7,4
55*3a608692SPiotr Kubaj	addc	24,24,12
56*3a608692SPiotr Kubaj	adde	25,25,21
57*3a608692SPiotr Kubaj
58*3a608692SPiotr Kubaj	mulld	12,10,4
59*3a608692SPiotr Kubaj	mulhdu	21,10,4
60*3a608692SPiotr Kubaj	ld	6,16(5)
61*3a608692SPiotr Kubaj	mulli	10,10,19
62*3a608692SPiotr Kubaj	addc	30,30,12
63*3a608692SPiotr Kubaj	adde	31,31,21
64*3a608692SPiotr Kubaj
65*3a608692SPiotr Kubaj	mulld	12,8,4
66*3a608692SPiotr Kubaj	mulhdu	21,8,4
67*3a608692SPiotr Kubaj	addc	26,26,12
68*3a608692SPiotr Kubaj	adde	27,27,21
69*3a608692SPiotr Kubaj
70*3a608692SPiotr Kubaj	mulld	12,9,4
71*3a608692SPiotr Kubaj	mulhdu	21,9,4
72*3a608692SPiotr Kubaj	addc	28,28,12
73*3a608692SPiotr Kubaj	adde	29,29,21
74*3a608692SPiotr Kubaj	mulld	12,10,6
75*3a608692SPiotr Kubaj	mulhdu	21,10,6
76*3a608692SPiotr Kubaj	addc	22,22,12
77*3a608692SPiotr Kubaj	adde	23,23,21
78*3a608692SPiotr Kubaj
79*3a608692SPiotr Kubaj	mulld	12,11,6
80*3a608692SPiotr Kubaj	mulhdu	21,11,6
81*3a608692SPiotr Kubaj	addc	24,24,12
82*3a608692SPiotr Kubaj	adde	25,25,21
83*3a608692SPiotr Kubaj
84*3a608692SPiotr Kubaj	mulld	12,9,6
85*3a608692SPiotr Kubaj	mulhdu	21,9,6
86*3a608692SPiotr Kubaj	ld	4,24(5)
87*3a608692SPiotr Kubaj	mulli	9,9,19
88*3a608692SPiotr Kubaj	addc	30,30,12
89*3a608692SPiotr Kubaj	adde	31,31,21
90*3a608692SPiotr Kubaj
91*3a608692SPiotr Kubaj	mulld	12,7,6
92*3a608692SPiotr Kubaj	mulhdu	21,7,6
93*3a608692SPiotr Kubaj	addc	26,26,12
94*3a608692SPiotr Kubaj	adde	27,27,21
95*3a608692SPiotr Kubaj
96*3a608692SPiotr Kubaj	mulld	12,8,6
97*3a608692SPiotr Kubaj	mulhdu	21,8,6
98*3a608692SPiotr Kubaj	addc	28,28,12
99*3a608692SPiotr Kubaj	adde	29,29,21
100*3a608692SPiotr Kubaj	mulld	12,9,4
101*3a608692SPiotr Kubaj	mulhdu	21,9,4
102*3a608692SPiotr Kubaj	addc	22,22,12
103*3a608692SPiotr Kubaj	adde	23,23,21
104*3a608692SPiotr Kubaj
105*3a608692SPiotr Kubaj	mulld	12,10,4
106*3a608692SPiotr Kubaj	mulhdu	21,10,4
107*3a608692SPiotr Kubaj	addc	24,24,12
108*3a608692SPiotr Kubaj	adde	25,25,21
109*3a608692SPiotr Kubaj
110*3a608692SPiotr Kubaj	mulld	12,8,4
111*3a608692SPiotr Kubaj	mulhdu	21,8,4
112*3a608692SPiotr Kubaj	ld	6,32(5)
113*3a608692SPiotr Kubaj	mulli	8,8,19
114*3a608692SPiotr Kubaj	addc	30,30,12
115*3a608692SPiotr Kubaj	adde	31,31,21
116*3a608692SPiotr Kubaj
117*3a608692SPiotr Kubaj	mulld	12,11,4
118*3a608692SPiotr Kubaj	mulhdu	21,11,4
119*3a608692SPiotr Kubaj	addc	26,26,12
120*3a608692SPiotr Kubaj	adde	27,27,21
121*3a608692SPiotr Kubaj
122*3a608692SPiotr Kubaj	mulld	12,7,4
123*3a608692SPiotr Kubaj	mulhdu	21,7,4
124*3a608692SPiotr Kubaj	addc	28,28,12
125*3a608692SPiotr Kubaj	adde	29,29,21
126*3a608692SPiotr Kubaj	mulld	12,8,6
127*3a608692SPiotr Kubaj	mulhdu	21,8,6
128*3a608692SPiotr Kubaj	addc	22,22,12
129*3a608692SPiotr Kubaj	adde	23,23,21
130*3a608692SPiotr Kubaj
131*3a608692SPiotr Kubaj	mulld	12,9,6
132*3a608692SPiotr Kubaj	mulhdu	21,9,6
133*3a608692SPiotr Kubaj	addc	24,24,12
134*3a608692SPiotr Kubaj	adde	25,25,21
135*3a608692SPiotr Kubaj
136*3a608692SPiotr Kubaj	mulld	12,10,6
137*3a608692SPiotr Kubaj	mulhdu	21,10,6
138*3a608692SPiotr Kubaj	addc	26,26,12
139*3a608692SPiotr Kubaj	adde	27,27,21
140*3a608692SPiotr Kubaj
141*3a608692SPiotr Kubaj	mulld	12,11,6
142*3a608692SPiotr Kubaj	mulhdu	21,11,6
143*3a608692SPiotr Kubaj	addc	28,28,12
144*3a608692SPiotr Kubaj	adde	29,29,21
145*3a608692SPiotr Kubaj
146*3a608692SPiotr Kubaj	mulld	12,7,6
147*3a608692SPiotr Kubaj	mulhdu	21,7,6
148*3a608692SPiotr Kubaj	addc	30,30,12
149*3a608692SPiotr Kubaj	adde	31,31,21
150*3a608692SPiotr Kubaj
151*3a608692SPiotr Kubaj.Lfe51_reduce:
152*3a608692SPiotr Kubaj	li	0,-1
153*3a608692SPiotr Kubaj	srdi	0,0,13
154*3a608692SPiotr Kubaj
155*3a608692SPiotr Kubaj	srdi	12,26,51
156*3a608692SPiotr Kubaj	and	9,26,0
157*3a608692SPiotr Kubaj	insrdi	12,27,51,0
158*3a608692SPiotr Kubaj	srdi	21,22,51
159*3a608692SPiotr Kubaj	and	7,22,0
160*3a608692SPiotr Kubaj	insrdi	21,23,51,0
161*3a608692SPiotr Kubaj	addc	28,28,12
162*3a608692SPiotr Kubaj	addze	29,29
163*3a608692SPiotr Kubaj	addc	24,24,21
164*3a608692SPiotr Kubaj	addze	25,25
165*3a608692SPiotr Kubaj
166*3a608692SPiotr Kubaj	srdi	12,28,51
167*3a608692SPiotr Kubaj	and	10,28,0
168*3a608692SPiotr Kubaj	insrdi	12,29,51,0
169*3a608692SPiotr Kubaj	srdi	21,24,51
170*3a608692SPiotr Kubaj	and	8,24,0
171*3a608692SPiotr Kubaj	insrdi	21,25,51,0
172*3a608692SPiotr Kubaj	addc	30,30,12
173*3a608692SPiotr Kubaj	addze	31,31
174*3a608692SPiotr Kubaj	add	9,9,21
175*3a608692SPiotr Kubaj
176*3a608692SPiotr Kubaj	srdi	12,30,51
177*3a608692SPiotr Kubaj	and	11,30,0
178*3a608692SPiotr Kubaj	insrdi	12,31,51,0
179*3a608692SPiotr Kubaj	mulli	12,12,19
180*3a608692SPiotr Kubaj
181*3a608692SPiotr Kubaj	add	7,7,12
182*3a608692SPiotr Kubaj
183*3a608692SPiotr Kubaj	srdi	21,9,51
184*3a608692SPiotr Kubaj	and	9,9,0
185*3a608692SPiotr Kubaj	add	10,10,21
186*3a608692SPiotr Kubaj
187*3a608692SPiotr Kubaj	srdi	12,7,51
188*3a608692SPiotr Kubaj	and	7,7,0
189*3a608692SPiotr Kubaj	add	8,8,12
190*3a608692SPiotr Kubaj
191*3a608692SPiotr Kubaj	std	9,16(3)
192*3a608692SPiotr Kubaj	std	10,24(3)
193*3a608692SPiotr Kubaj	std	11,32(3)
194*3a608692SPiotr Kubaj	std	7,0(3)
195*3a608692SPiotr Kubaj	std	8,8(3)
196*3a608692SPiotr Kubaj
197*3a608692SPiotr Kubaj	ld	21,56(1)
198*3a608692SPiotr Kubaj	ld	22,64(1)
199*3a608692SPiotr Kubaj	ld	23,72(1)
200*3a608692SPiotr Kubaj	ld	24,80(1)
201*3a608692SPiotr Kubaj	ld	25,88(1)
202*3a608692SPiotr Kubaj	ld	26,96(1)
203*3a608692SPiotr Kubaj	ld	27,104(1)
204*3a608692SPiotr Kubaj	ld	28,112(1)
205*3a608692SPiotr Kubaj	ld	29,120(1)
206*3a608692SPiotr Kubaj	ld	30,128(1)
207*3a608692SPiotr Kubaj	ld	31,136(1)
208*3a608692SPiotr Kubaj	addi	1,1,144
209*3a608692SPiotr Kubaj	blr
210*3a608692SPiotr Kubaj.long	0
211*3a608692SPiotr Kubaj.byte	0,12,4,0,0x80,11,3,0
212*3a608692SPiotr Kubaj.long	0
213*3a608692SPiotr Kubaj.size	x25519_fe51_mul,.-x25519_fe51_mul
214*3a608692SPiotr Kubaj.globl	x25519_fe51_sqr
215*3a608692SPiotr Kubaj.type	x25519_fe51_sqr,@function
216*3a608692SPiotr Kubaj.type	x25519_fe51_sqr,@function
217*3a608692SPiotr Kubaj.align	5
218*3a608692SPiotr Kubajx25519_fe51_sqr:
219*3a608692SPiotr Kubaj.localentry	x25519_fe51_sqr,0
220*3a608692SPiotr Kubaj
221*3a608692SPiotr Kubaj	stdu	1,-144(1)
222*3a608692SPiotr Kubaj	std	21,56(1)
223*3a608692SPiotr Kubaj	std	22,64(1)
224*3a608692SPiotr Kubaj	std	23,72(1)
225*3a608692SPiotr Kubaj	std	24,80(1)
226*3a608692SPiotr Kubaj	std	25,88(1)
227*3a608692SPiotr Kubaj	std	26,96(1)
228*3a608692SPiotr Kubaj	std	27,104(1)
229*3a608692SPiotr Kubaj	std	28,112(1)
230*3a608692SPiotr Kubaj	std	29,120(1)
231*3a608692SPiotr Kubaj	std	30,128(1)
232*3a608692SPiotr Kubaj	std	31,136(1)
233*3a608692SPiotr Kubaj
234*3a608692SPiotr Kubaj	ld	7,0(4)
235*3a608692SPiotr Kubaj	ld	8,8(4)
236*3a608692SPiotr Kubaj	ld	9,16(4)
237*3a608692SPiotr Kubaj	ld	10,24(4)
238*3a608692SPiotr Kubaj	ld	11,32(4)
239*3a608692SPiotr Kubaj
240*3a608692SPiotr Kubaj	add	6,7,7
241*3a608692SPiotr Kubaj	mulli	21,11,19
242*3a608692SPiotr Kubaj
243*3a608692SPiotr Kubaj	mulld	22,7,7
244*3a608692SPiotr Kubaj	mulhdu	23,7,7
245*3a608692SPiotr Kubaj	mulld	24,8,6
246*3a608692SPiotr Kubaj	mulhdu	25,8,6
247*3a608692SPiotr Kubaj	mulld	26,9,6
248*3a608692SPiotr Kubaj	mulhdu	27,9,6
249*3a608692SPiotr Kubaj	mulld	28,10,6
250*3a608692SPiotr Kubaj	mulhdu	29,10,6
251*3a608692SPiotr Kubaj	mulld	30,11,6
252*3a608692SPiotr Kubaj	mulhdu	31,11,6
253*3a608692SPiotr Kubaj	add	6,8,8
254*3a608692SPiotr Kubaj	mulld	12,11,21
255*3a608692SPiotr Kubaj	mulhdu	11,11,21
256*3a608692SPiotr Kubaj	addc	28,28,12
257*3a608692SPiotr Kubaj	adde	29,29,11
258*3a608692SPiotr Kubaj
259*3a608692SPiotr Kubaj	mulli	5,10,19
260*3a608692SPiotr Kubaj
261*3a608692SPiotr Kubaj	mulld	12,8,8
262*3a608692SPiotr Kubaj	mulhdu	11,8,8
263*3a608692SPiotr Kubaj	addc	26,26,12
264*3a608692SPiotr Kubaj	adde	27,27,11
265*3a608692SPiotr Kubaj	mulld	12,9,6
266*3a608692SPiotr Kubaj	mulhdu	11,9,6
267*3a608692SPiotr Kubaj	addc	28,28,12
268*3a608692SPiotr Kubaj	adde	29,29,11
269*3a608692SPiotr Kubaj	mulld	12,10,6
270*3a608692SPiotr Kubaj	mulhdu	11,10,6
271*3a608692SPiotr Kubaj	addc	30,30,12
272*3a608692SPiotr Kubaj	adde	31,31,11
273*3a608692SPiotr Kubaj	mulld	12,21,6
274*3a608692SPiotr Kubaj	mulhdu	11,21,6
275*3a608692SPiotr Kubaj	add	6,10,10
276*3a608692SPiotr Kubaj	addc	22,22,12
277*3a608692SPiotr Kubaj	adde	23,23,11
278*3a608692SPiotr Kubaj	mulld	12,10,5
279*3a608692SPiotr Kubaj	mulhdu	10,10,5
280*3a608692SPiotr Kubaj	addc	24,24,12
281*3a608692SPiotr Kubaj	adde	25,25,10
282*3a608692SPiotr Kubaj	mulld	12,6,21
283*3a608692SPiotr Kubaj	mulhdu	10,6,21
284*3a608692SPiotr Kubaj	add	6,9,9
285*3a608692SPiotr Kubaj	addc	26,26,12
286*3a608692SPiotr Kubaj	adde	27,27,10
287*3a608692SPiotr Kubaj
288*3a608692SPiotr Kubaj	mulld	12,9,9
289*3a608692SPiotr Kubaj	mulhdu	10,9,9
290*3a608692SPiotr Kubaj	addc	30,30,12
291*3a608692SPiotr Kubaj	adde	31,31,10
292*3a608692SPiotr Kubaj	mulld	12,5,6
293*3a608692SPiotr Kubaj	mulhdu	10,5,6
294*3a608692SPiotr Kubaj	addc	22,22,12
295*3a608692SPiotr Kubaj	adde	23,23,10
296*3a608692SPiotr Kubaj	mulld	12,21,6
297*3a608692SPiotr Kubaj	mulhdu	10,21,6
298*3a608692SPiotr Kubaj	addc	24,24,12
299*3a608692SPiotr Kubaj	adde	25,25,10
300*3a608692SPiotr Kubaj
301*3a608692SPiotr Kubaj	b	.Lfe51_reduce
302*3a608692SPiotr Kubaj.long	0
303*3a608692SPiotr Kubaj.byte	0,12,4,0,0x80,11,2,0
304*3a608692SPiotr Kubaj.long	0
305*3a608692SPiotr Kubaj.size	x25519_fe51_sqr,.-x25519_fe51_sqr
306*3a608692SPiotr Kubaj.globl	x25519_fe51_mul121666
307*3a608692SPiotr Kubaj.type	x25519_fe51_mul121666,@function
308*3a608692SPiotr Kubaj.type	x25519_fe51_mul121666,@function
309*3a608692SPiotr Kubaj.align	5
310*3a608692SPiotr Kubajx25519_fe51_mul121666:
311*3a608692SPiotr Kubaj.localentry	x25519_fe51_mul121666,0
312*3a608692SPiotr Kubaj
313*3a608692SPiotr Kubaj	stdu	1,-144(1)
314*3a608692SPiotr Kubaj	std	21,56(1)
315*3a608692SPiotr Kubaj	std	22,64(1)
316*3a608692SPiotr Kubaj	std	23,72(1)
317*3a608692SPiotr Kubaj	std	24,80(1)
318*3a608692SPiotr Kubaj	std	25,88(1)
319*3a608692SPiotr Kubaj	std	26,96(1)
320*3a608692SPiotr Kubaj	std	27,104(1)
321*3a608692SPiotr Kubaj	std	28,112(1)
322*3a608692SPiotr Kubaj	std	29,120(1)
323*3a608692SPiotr Kubaj	std	30,128(1)
324*3a608692SPiotr Kubaj	std	31,136(1)
325*3a608692SPiotr Kubaj
326*3a608692SPiotr Kubaj	lis	6,1
327*3a608692SPiotr Kubaj	ori	6,6,56130
328*3a608692SPiotr Kubaj	ld	7,0(4)
329*3a608692SPiotr Kubaj	ld	8,8(4)
330*3a608692SPiotr Kubaj	ld	9,16(4)
331*3a608692SPiotr Kubaj	ld	10,24(4)
332*3a608692SPiotr Kubaj	ld	11,32(4)
333*3a608692SPiotr Kubaj
334*3a608692SPiotr Kubaj	mulld	22,7,6
335*3a608692SPiotr Kubaj	mulhdu	23,7,6
336*3a608692SPiotr Kubaj	mulld	24,8,6
337*3a608692SPiotr Kubaj	mulhdu	25,8,6
338*3a608692SPiotr Kubaj	mulld	26,9,6
339*3a608692SPiotr Kubaj	mulhdu	27,9,6
340*3a608692SPiotr Kubaj	mulld	28,10,6
341*3a608692SPiotr Kubaj	mulhdu	29,10,6
342*3a608692SPiotr Kubaj	mulld	30,11,6
343*3a608692SPiotr Kubaj	mulhdu	31,11,6
344*3a608692SPiotr Kubaj
345*3a608692SPiotr Kubaj	b	.Lfe51_reduce
346*3a608692SPiotr Kubaj.long	0
347*3a608692SPiotr Kubaj.byte	0,12,4,0,0x80,11,2,0
348*3a608692SPiotr Kubaj.long	0
349*3a608692SPiotr Kubaj.size	x25519_fe51_mul121666,.-x25519_fe51_mul121666
350