1.machine  "any"
2.text
3
4.globl    p521_felem_mul
5.type     p521_felem_mul,@function
6.align    5
7p521_felem_mul:
8
9          mr        12,1
10          stdu      1,-16*13(1)
11
12          stxv      52,-16*12(12)
13          stxv      53,-16*11(12)
14          stxv      54,-16*10(12)
15          stxv      55,-16*9(12)
16          stxv      56,-16*8(12)
17          stxv      57,-16*7(12)
18          stxv      58,-16*6(12)
19          stxv      59,-16*5(12)
20          stxv      60,-16*4(12)
21          stxv      61,-16*3(12)
22          stxv      62,-16*2(12)
23          stxv      63,-16*1(12)
24
25          vspltisw  0,0
26
27          lxsd      13,0(4)
28          lxsd      14,8(4)
29          lxsd      15,16(4)
30          lxsd      16,24(4)
31          lxsd      17,32(4)
32          lxsd      18,40(4)
33          lxsd      19,48(4)
34          lxsd      20,56(4)
35          lxsd      21,64(4)
36
37          lxsd      3,0(5)
38          lxsd      4,8(5)
39          lxsd      5,16(5)
40          lxsd      6,24(5)
41          lxsd      7,32(5)
42          lxsd      8,40(5)
43          lxsd      9,48(5)
44          lxsd      10,56(5)
45          lxsd      11,64(5)
46
47.long     0x12ED1823
48
49          xxpermdi  33,45,46,0b00
50          xxpermdi  34,36,35,0b00
51.long     0x13011023
52
53          xxpermdi  34,37,36,0b00
54.long     0x13211023
55.long     0x132F1E63
56
57          xxpermdi  34,38,37,0b00
58.long     0x13411023
59          xxpermdi  44,47,48,0b00
60          xxpermdi  54,36,35,0b00
61.long     0x134CB6A3
62
63          xxpermdi  34,39,38,0b00
64.long     0x13611023
65          xxpermdi  54,37,36,0b00
66.long     0x136CB6E3
67.long     0x13711EE3
68
69          xxpermdi  34,40,39,0b00
70.long     0x13811023
71          xxpermdi  54,38,37,0b00
72.long     0x138CB723
73
74          xxpermdi  34,41,40,0b00
75.long     0x13A11023
76          xxpermdi  54,39,38,0b00
77.long     0x13ACB763
78
79          xxpermdi  34,42,41,0b00
80.long     0x13C11023
81          xxpermdi  54,40,39,0b00
82.long     0x13CCB7A3
83
84          xxpermdi  34,43,42,0b00
85.long     0x13E11023
86          xxpermdi  54,41,40,0b00
87.long     0x13ECB7E3
88
89          xxpermdi  33,49,50,0b00
90          xxpermdi  34,36,35,0b00
91.long     0x13811723
92
93          xxpermdi  34,37,36,0b00
94.long     0x13A11763
95.long     0x13B31F63
96
97          xxpermdi  34,38,37,0b00
98.long     0x13C117A3
99          xxpermdi  44,51,52,0b00
100          xxpermdi  54,36,35,0b00
101.long     0x13CCB7A3
102
103          xxpermdi  34,39,38,0b00
104.long     0x13E117E3
105          xxpermdi  54,37,36,0b00
106.long     0x13ECB7E3
107.long     0x13F51FE3
108
109          li        8,0
110          li        9,1
111          mtvsrdd   33,9,8
112.long     0x10630DC4
113.long     0x10840DC4
114.long     0x10A50DC4
115.long     0x10C60DC4
116.long     0x10E70DC4
117.long     0x11080DC4
118.long     0x11290DC4
119.long     0x114A0DC4
120.long     0x116B0DC4
121
122.long     0x13D55FA3
123
124          xxpermdi  34,43,42,0b00
125          xxpermdi  33,52,53,0b00
126.long     0x13A11763
127
128          xxpermdi  33,51,52,0b00
129.long     0x13811723
130.long     0x13954F23
131
132          xxpermdi  33,50,51,0b00
133.long     0x136116E3
134          xxpermdi  54,41,40,0b00
135          xxpermdi  44,52,53,0b00
136.long     0x136CB6E3
137
138          xxpermdi  33,49,50,0b00
139.long     0x134116A3
140          xxpermdi  44,51,52,0b00
141.long     0x134CB6A3
142.long     0x13553EA3
143
144          xxpermdi  33,48,49,0b00
145.long     0x13211663
146          xxpermdi  44,50,51,0b00
147.long     0x132CB663
148
149          xxpermdi  33,47,48,0b00
150.long     0x13011623
151          xxpermdi  44,49,50,0b00
152.long     0x130CB623
153
154          xxpermdi  33,46,47,0b00
155.long     0x12E115E3
156          xxpermdi  44,48,49,0b00
157.long     0x12ECB5E3
158
159          xxpermdi  34,39,38,0b00
160          xxpermdi  33,52,53,0b00
161.long     0x13211663
162
163          xxpermdi  33,51,52,0b00
164.long     0x13011623
165.long     0x13152E23
166
167          xxpermdi  33,50,51,0b00
168.long     0x12E115E3
169          xxpermdi  54,37,36,0b00
170          xxpermdi  44,52,53,0b00
171.long     0x12ECB5E3
172
173          stxv      55,0(3)
174          stxv      56,16(3)
175          stxv      57,32(3)
176          stxv      58,48(3)
177          stxv      59,64(3)
178          stxv      60,80(3)
179          stxv      61,96(3)
180          stxv      62,112(3)
181          stxv      63,128(3)
182
183          ld        12,0(1)
184          lxv       52,-16*12(12)
185          lxv       53,-16*11(12)
186          lxv       54,-16*10(12)
187          lxv       55,-16*9(12)
188          lxv       56,-16*8(12)
189          lxv       57,-16*7(12)
190          lxv       58,-16*6(12)
191          lxv       59,-16*5(12)
192          lxv       60,-16*4(12)
193          lxv       61,-16*3(12)
194          lxv       62,-16*2(12)
195          lxv       63,-16*1(12)
196          mr        1,12
197
198          blr
199
200
201.globl    p521_felem_square
202.type     p521_felem_square,@function
203.align    5
204p521_felem_square:
205
206          mr        12,1
207          stdu      1,-16*13(1)
208
209          stxv      52,-16*12(12)
210          stxv      53,-16*11(12)
211          stxv      54,-16*10(12)
212          stxv      55,-16*9(12)
213          stxv      56,-16*8(12)
214          stxv      57,-16*7(12)
215          stxv      58,-16*6(12)
216          stxv      59,-16*5(12)
217          stxv      60,-16*4(12)
218          stxv      61,-16*3(12)
219          stxv      62,-16*2(12)
220          stxv      63,-16*1(12)
221
222          vspltisw  0,0
223
224          lxsd      13,0(4)
225          lxsd      14,8(4)
226          lxsd      15,16(4)
227          lxsd      16,24(4)
228          lxsd      17,32(4)
229          lxsd      18,40(4)
230          lxsd      19,48(4)
231          lxsd      20,56(4)
232          lxsd      21,64(4)
233
234          li        8,0
235          li        9,1
236          mtvsrdd   33,9,8
237.long     0x106D0DC4
238.long     0x108E0DC4
239.long     0x10AF0DC4
240.long     0x10D00DC4
241.long     0x10F10DC4
242.long     0x11120DC4
243.long     0x11330DC4
244.long     0x11540DC4
245.long     0x11750DC4
246.long     0x12ED6823
247
248.long     0x130D2023
249
250          xxpermdi  33,45,46,0b00
251          xxpermdi  34,37,46,0b00
252.long     0x13211023
253
254          xxpermdi  34,38,37,0b00
255.long     0x13411023
256
257          xxpermdi  34,39,38,0b00
258.long     0x13611023
259.long     0x136F7EE3
260
261          xxpermdi  34,40,39,0b00
262.long     0x13811023
263.long     0x138F3723
264
265          xxpermdi  34,41,40,0b00
266.long     0x13A11023
267          xxpermdi  44,47,48,0b00
268          xxpermdi  54,39,48,0b00
269.long     0x13ACB763
270
271          xxpermdi  34,42,41,0b00
272.long     0x13C11023
273          xxpermdi  54,40,39,0b00
274.long     0x13CCB7A3
275
276          xxpermdi  34,43,42,0b00
277.long     0x13E11023
278          xxpermdi  54,41,40,0b00
279.long     0x13ECB7E3
280.long     0x13F18FE3
281
282.long     0x13124623
283
284.long     0x13534EA3
285
286.long     0x13945723
287
288.long     0x13D55FA3
289
290          mtvsrdd   33,9,8
291.long     0x11080DC4
292.long     0x11290DC4
293.long     0x114A0DC4
294.long     0x116B0DC4
295
296.long     0x13B45F63
297
298.long     0x13935F23
299
300          xxpermdi  34,43,42,0b00
301          xxpermdi  33,50,51,0b00
302.long     0x136116E3
303
304          xxpermdi  33,49,50,0b00
305.long     0x134116A3
306
307          xxpermdi  33,48,49,0b00
308.long     0x13211663
309.long     0x13324E63
310
311          xxpermdi  33,47,48,0b00
312.long     0x13011623
313.long     0x13114E23
314
315          xxpermdi  33,46,47,0b00
316.long     0x12E115E3
317          xxpermdi  34,41,40,0b00
318          xxpermdi  33,48,49,0b00
319.long     0x12E115E3
320
321          stxv      55,0(3)
322          stxv      56,16(3)
323          stxv      57,32(3)
324          stxv      58,48(3)
325          stxv      59,64(3)
326          stxv      60,80(3)
327          stxv      61,96(3)
328          stxv      62,112(3)
329          stxv      63,128(3)
330
331          ld        12,0(1)
332          lxv       52,-16*12(12)
333          lxv       53,-16*11(12)
334          lxv       54,-16*10(12)
335          lxv       55,-16*9(12)
336          lxv       56,-16*8(12)
337          lxv       57,-16*7(12)
338          lxv       58,-16*6(12)
339          lxv       59,-16*5(12)
340          lxv       60,-16*4(12)
341          lxv       61,-16*3(12)
342          lxv       62,-16*2(12)
343          lxv       63,-16*1(12)
344          mr        1,12
345
346          blr
347
348
349