blob: ee7b36c36844c6530c1c3d6ca27593bd04198f00 [file] [log] [blame]
Adam Langley124e52d2012-03-12 10:59:04 -04001// Copyright 2012 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// This code was translated into a form compatible with 6a from the public
6// domain sources in SUPERCOP: http://bench.cr.yp.to/supercop.html
7
Marga Manterolac57d4a72015-03-26 13:36:50 +01008// +build amd64,!gccgo,!appengine
Ian Lance Taylor6779fad2012-11-07 22:50:39 -08009
Adam Langley124e52d2012-03-12 10:59:04 -040010// func ladderstep(inout *[5][5]uint64)
Austin Clementsf6208512016-10-20 16:03:43 -040011TEXT ·ladderstep(SB),0,$296-8
Adam Langley124e52d2012-03-12 10:59:04 -040012 MOVQ inout+0(FP),DI
13
Adam Langley124e52d2012-03-12 10:59:04 -040014 MOVQ 40(DI),SI
15 MOVQ 48(DI),DX
16 MOVQ 56(DI),CX
17 MOVQ 64(DI),R8
18 MOVQ 72(DI),R9
19 MOVQ SI,AX
20 MOVQ DX,R10
21 MOVQ CX,R11
22 MOVQ R8,R12
23 MOVQ R9,R13
24 ADDQ ·_2P0(SB),AX
25 ADDQ ·_2P1234(SB),R10
26 ADDQ ·_2P1234(SB),R11
27 ADDQ ·_2P1234(SB),R12
28 ADDQ ·_2P1234(SB),R13
29 ADDQ 80(DI),SI
30 ADDQ 88(DI),DX
31 ADDQ 96(DI),CX
32 ADDQ 104(DI),R8
33 ADDQ 112(DI),R9
34 SUBQ 80(DI),AX
35 SUBQ 88(DI),R10
36 SUBQ 96(DI),R11
37 SUBQ 104(DI),R12
38 SUBQ 112(DI),R13
Austin Clementsf6208512016-10-20 16:03:43 -040039 MOVQ SI,0(SP)
40 MOVQ DX,8(SP)
41 MOVQ CX,16(SP)
42 MOVQ R8,24(SP)
43 MOVQ R9,32(SP)
44 MOVQ AX,40(SP)
45 MOVQ R10,48(SP)
46 MOVQ R11,56(SP)
47 MOVQ R12,64(SP)
48 MOVQ R13,72(SP)
49 MOVQ 40(SP),AX
50 MULQ 40(SP)
Adam Langley124e52d2012-03-12 10:59:04 -040051 MOVQ AX,SI
52 MOVQ DX,CX
Austin Clementsf6208512016-10-20 16:03:43 -040053 MOVQ 40(SP),AX
Adam Langley124e52d2012-03-12 10:59:04 -040054 SHLQ $1,AX
Austin Clementsf6208512016-10-20 16:03:43 -040055 MULQ 48(SP)
Adam Langley124e52d2012-03-12 10:59:04 -040056 MOVQ AX,R8
57 MOVQ DX,R9
Austin Clementsf6208512016-10-20 16:03:43 -040058 MOVQ 40(SP),AX
Adam Langley124e52d2012-03-12 10:59:04 -040059 SHLQ $1,AX
Austin Clementsf6208512016-10-20 16:03:43 -040060 MULQ 56(SP)
Adam Langley124e52d2012-03-12 10:59:04 -040061 MOVQ AX,R10
62 MOVQ DX,R11
Austin Clementsf6208512016-10-20 16:03:43 -040063 MOVQ 40(SP),AX
Adam Langley124e52d2012-03-12 10:59:04 -040064 SHLQ $1,AX
Austin Clementsf6208512016-10-20 16:03:43 -040065 MULQ 64(SP)
Adam Langley124e52d2012-03-12 10:59:04 -040066 MOVQ AX,R12
67 MOVQ DX,R13
Austin Clementsf6208512016-10-20 16:03:43 -040068 MOVQ 40(SP),AX
Adam Langley124e52d2012-03-12 10:59:04 -040069 SHLQ $1,AX
Austin Clementsf6208512016-10-20 16:03:43 -040070 MULQ 72(SP)
Adam Langley124e52d2012-03-12 10:59:04 -040071 MOVQ AX,R14
72 MOVQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -040073 MOVQ 48(SP),AX
74 MULQ 48(SP)
Adam Langley124e52d2012-03-12 10:59:04 -040075 ADDQ AX,R10
76 ADCQ DX,R11
Austin Clementsf6208512016-10-20 16:03:43 -040077 MOVQ 48(SP),AX
Adam Langley124e52d2012-03-12 10:59:04 -040078 SHLQ $1,AX
Austin Clementsf6208512016-10-20 16:03:43 -040079 MULQ 56(SP)
Adam Langley124e52d2012-03-12 10:59:04 -040080 ADDQ AX,R12
81 ADCQ DX,R13
Austin Clementsf6208512016-10-20 16:03:43 -040082 MOVQ 48(SP),AX
Adam Langley124e52d2012-03-12 10:59:04 -040083 SHLQ $1,AX
Austin Clementsf6208512016-10-20 16:03:43 -040084 MULQ 64(SP)
Adam Langley124e52d2012-03-12 10:59:04 -040085 ADDQ AX,R14
86 ADCQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -040087 MOVQ 48(SP),DX
Adam Langley124e52d2012-03-12 10:59:04 -040088 IMUL3Q $38,DX,AX
Austin Clementsf6208512016-10-20 16:03:43 -040089 MULQ 72(SP)
Adam Langley124e52d2012-03-12 10:59:04 -040090 ADDQ AX,SI
91 ADCQ DX,CX
Adam Langley124e52d2012-03-12 10:59:04 -040092 MOVQ 56(SP),AX
93 MULQ 56(SP)
Adam Langley124e52d2012-03-12 10:59:04 -040094 ADDQ AX,R14
95 ADCQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -040096 MOVQ 56(SP),DX
97 IMUL3Q $38,DX,AX
98 MULQ 64(SP)
99 ADDQ AX,SI
100 ADCQ DX,CX
101 MOVQ 56(SP),DX
102 IMUL3Q $38,DX,AX
103 MULQ 72(SP)
104 ADDQ AX,R8
105 ADCQ DX,R9
106 MOVQ 64(SP),DX
107 IMUL3Q $19,DX,AX
108 MULQ 64(SP)
109 ADDQ AX,R8
110 ADCQ DX,R9
Adam Langley124e52d2012-03-12 10:59:04 -0400111 MOVQ 64(SP),DX
112 IMUL3Q $38,DX,AX
Adam Langley124e52d2012-03-12 10:59:04 -0400113 MULQ 72(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400114 ADDQ AX,R10
115 ADCQ DX,R11
Austin Clementsf6208512016-10-20 16:03:43 -0400116 MOVQ 72(SP),DX
Adam Langley124e52d2012-03-12 10:59:04 -0400117 IMUL3Q $19,DX,AX
Austin Clementsf6208512016-10-20 16:03:43 -0400118 MULQ 72(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400119 ADDQ AX,R12
120 ADCQ DX,R13
121 MOVQ ·REDMASK51(SB),DX
122 SHLQ $13,CX:SI
123 ANDQ DX,SI
124 SHLQ $13,R9:R8
125 ANDQ DX,R8
126 ADDQ CX,R8
127 SHLQ $13,R11:R10
128 ANDQ DX,R10
129 ADDQ R9,R10
130 SHLQ $13,R13:R12
131 ANDQ DX,R12
132 ADDQ R11,R12
133 SHLQ $13,R15:R14
134 ANDQ DX,R14
135 ADDQ R13,R14
136 IMUL3Q $19,R15,CX
137 ADDQ CX,SI
138 MOVQ SI,CX
139 SHRQ $51,CX
140 ADDQ R8,CX
141 ANDQ DX,SI
142 MOVQ CX,R8
143 SHRQ $51,CX
144 ADDQ R10,CX
145 ANDQ DX,R8
146 MOVQ CX,R9
147 SHRQ $51,CX
148 ADDQ R12,CX
149 ANDQ DX,R9
150 MOVQ CX,AX
151 SHRQ $51,CX
152 ADDQ R14,CX
153 ANDQ DX,AX
154 MOVQ CX,R10
155 SHRQ $51,CX
156 IMUL3Q $19,CX,CX
157 ADDQ CX,SI
158 ANDQ DX,R10
Austin Clementsf6208512016-10-20 16:03:43 -0400159 MOVQ SI,80(SP)
160 MOVQ R8,88(SP)
161 MOVQ R9,96(SP)
162 MOVQ AX,104(SP)
163 MOVQ R10,112(SP)
164 MOVQ 0(SP),AX
165 MULQ 0(SP)
166 MOVQ AX,SI
167 MOVQ DX,CX
168 MOVQ 0(SP),AX
169 SHLQ $1,AX
170 MULQ 8(SP)
171 MOVQ AX,R8
172 MOVQ DX,R9
173 MOVQ 0(SP),AX
174 SHLQ $1,AX
175 MULQ 16(SP)
176 MOVQ AX,R10
177 MOVQ DX,R11
178 MOVQ 0(SP),AX
179 SHLQ $1,AX
180 MULQ 24(SP)
181 MOVQ AX,R12
182 MOVQ DX,R13
183 MOVQ 0(SP),AX
184 SHLQ $1,AX
185 MULQ 32(SP)
186 MOVQ AX,R14
187 MOVQ DX,R15
188 MOVQ 8(SP),AX
189 MULQ 8(SP)
190 ADDQ AX,R10
191 ADCQ DX,R11
192 MOVQ 8(SP),AX
193 SHLQ $1,AX
194 MULQ 16(SP)
195 ADDQ AX,R12
196 ADCQ DX,R13
197 MOVQ 8(SP),AX
198 SHLQ $1,AX
199 MULQ 24(SP)
200 ADDQ AX,R14
201 ADCQ DX,R15
202 MOVQ 8(SP),DX
203 IMUL3Q $38,DX,AX
204 MULQ 32(SP)
205 ADDQ AX,SI
206 ADCQ DX,CX
207 MOVQ 16(SP),AX
208 MULQ 16(SP)
209 ADDQ AX,R14
210 ADCQ DX,R15
211 MOVQ 16(SP),DX
212 IMUL3Q $38,DX,AX
213 MULQ 24(SP)
214 ADDQ AX,SI
215 ADCQ DX,CX
216 MOVQ 16(SP),DX
217 IMUL3Q $38,DX,AX
218 MULQ 32(SP)
219 ADDQ AX,R8
220 ADCQ DX,R9
221 MOVQ 24(SP),DX
222 IMUL3Q $19,DX,AX
223 MULQ 24(SP)
224 ADDQ AX,R8
225 ADCQ DX,R9
226 MOVQ 24(SP),DX
227 IMUL3Q $38,DX,AX
228 MULQ 32(SP)
229 ADDQ AX,R10
230 ADCQ DX,R11
231 MOVQ 32(SP),DX
232 IMUL3Q $19,DX,AX
233 MULQ 32(SP)
234 ADDQ AX,R12
235 ADCQ DX,R13
236 MOVQ ·REDMASK51(SB),DX
237 SHLQ $13,CX:SI
238 ANDQ DX,SI
239 SHLQ $13,R9:R8
240 ANDQ DX,R8
241 ADDQ CX,R8
242 SHLQ $13,R11:R10
243 ANDQ DX,R10
244 ADDQ R9,R10
245 SHLQ $13,R13:R12
246 ANDQ DX,R12
247 ADDQ R11,R12
248 SHLQ $13,R15:R14
249 ANDQ DX,R14
250 ADDQ R13,R14
251 IMUL3Q $19,R15,CX
252 ADDQ CX,SI
253 MOVQ SI,CX
254 SHRQ $51,CX
255 ADDQ R8,CX
256 ANDQ DX,SI
257 MOVQ CX,R8
258 SHRQ $51,CX
259 ADDQ R10,CX
260 ANDQ DX,R8
261 MOVQ CX,R9
262 SHRQ $51,CX
263 ADDQ R12,CX
264 ANDQ DX,R9
265 MOVQ CX,AX
266 SHRQ $51,CX
267 ADDQ R14,CX
268 ANDQ DX,AX
269 MOVQ CX,R10
270 SHRQ $51,CX
271 IMUL3Q $19,CX,CX
272 ADDQ CX,SI
273 ANDQ DX,R10
274 MOVQ SI,120(SP)
275 MOVQ R8,128(SP)
276 MOVQ R9,136(SP)
277 MOVQ AX,144(SP)
278 MOVQ R10,152(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400279 MOVQ SI,SI
280 MOVQ R8,DX
281 MOVQ R9,CX
282 MOVQ AX,R8
283 MOVQ R10,R9
284 ADDQ ·_2P0(SB),SI
285 ADDQ ·_2P1234(SB),DX
286 ADDQ ·_2P1234(SB),CX
287 ADDQ ·_2P1234(SB),R8
288 ADDQ ·_2P1234(SB),R9
Austin Clementsf6208512016-10-20 16:03:43 -0400289 SUBQ 80(SP),SI
290 SUBQ 88(SP),DX
291 SUBQ 96(SP),CX
292 SUBQ 104(SP),R8
293 SUBQ 112(SP),R9
294 MOVQ SI,160(SP)
295 MOVQ DX,168(SP)
296 MOVQ CX,176(SP)
297 MOVQ R8,184(SP)
298 MOVQ R9,192(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400299 MOVQ 120(DI),SI
300 MOVQ 128(DI),DX
301 MOVQ 136(DI),CX
302 MOVQ 144(DI),R8
303 MOVQ 152(DI),R9
304 MOVQ SI,AX
305 MOVQ DX,R10
306 MOVQ CX,R11
307 MOVQ R8,R12
308 MOVQ R9,R13
309 ADDQ ·_2P0(SB),AX
310 ADDQ ·_2P1234(SB),R10
311 ADDQ ·_2P1234(SB),R11
312 ADDQ ·_2P1234(SB),R12
313 ADDQ ·_2P1234(SB),R13
314 ADDQ 160(DI),SI
315 ADDQ 168(DI),DX
316 ADDQ 176(DI),CX
317 ADDQ 184(DI),R8
318 ADDQ 192(DI),R9
319 SUBQ 160(DI),AX
320 SUBQ 168(DI),R10
321 SUBQ 176(DI),R11
322 SUBQ 184(DI),R12
323 SUBQ 192(DI),R13
Austin Clementsf6208512016-10-20 16:03:43 -0400324 MOVQ SI,200(SP)
325 MOVQ DX,208(SP)
326 MOVQ CX,216(SP)
327 MOVQ R8,224(SP)
328 MOVQ R9,232(SP)
329 MOVQ AX,240(SP)
330 MOVQ R10,248(SP)
331 MOVQ R11,256(SP)
332 MOVQ R12,264(SP)
333 MOVQ R13,272(SP)
334 MOVQ 224(SP),SI
Adam Langley124e52d2012-03-12 10:59:04 -0400335 IMUL3Q $19,SI,AX
Austin Clementsf6208512016-10-20 16:03:43 -0400336 MOVQ AX,280(SP)
337 MULQ 56(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400338 MOVQ AX,SI
339 MOVQ DX,CX
Austin Clementsf6208512016-10-20 16:03:43 -0400340 MOVQ 232(SP),DX
Adam Langley124e52d2012-03-12 10:59:04 -0400341 IMUL3Q $19,DX,AX
Austin Clementsf6208512016-10-20 16:03:43 -0400342 MOVQ AX,288(SP)
343 MULQ 48(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400344 ADDQ AX,SI
345 ADCQ DX,CX
Austin Clementsf6208512016-10-20 16:03:43 -0400346 MOVQ 200(SP),AX
347 MULQ 40(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400348 ADDQ AX,SI
349 ADCQ DX,CX
Austin Clementsf6208512016-10-20 16:03:43 -0400350 MOVQ 200(SP),AX
351 MULQ 48(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400352 MOVQ AX,R8
353 MOVQ DX,R9
Austin Clementsf6208512016-10-20 16:03:43 -0400354 MOVQ 200(SP),AX
355 MULQ 56(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400356 MOVQ AX,R10
357 MOVQ DX,R11
Austin Clementsf6208512016-10-20 16:03:43 -0400358 MOVQ 200(SP),AX
359 MULQ 64(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400360 MOVQ AX,R12
361 MOVQ DX,R13
Austin Clementsf6208512016-10-20 16:03:43 -0400362 MOVQ 200(SP),AX
363 MULQ 72(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400364 MOVQ AX,R14
365 MOVQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -0400366 MOVQ 208(SP),AX
367 MULQ 40(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400368 ADDQ AX,R8
369 ADCQ DX,R9
Austin Clementsf6208512016-10-20 16:03:43 -0400370 MOVQ 208(SP),AX
371 MULQ 48(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400372 ADDQ AX,R10
373 ADCQ DX,R11
Austin Clementsf6208512016-10-20 16:03:43 -0400374 MOVQ 208(SP),AX
375 MULQ 56(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400376 ADDQ AX,R12
377 ADCQ DX,R13
Austin Clementsf6208512016-10-20 16:03:43 -0400378 MOVQ 208(SP),AX
379 MULQ 64(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400380 ADDQ AX,R14
381 ADCQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -0400382 MOVQ 208(SP),DX
Adam Langley124e52d2012-03-12 10:59:04 -0400383 IMUL3Q $19,DX,AX
Austin Clementsf6208512016-10-20 16:03:43 -0400384 MULQ 72(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400385 ADDQ AX,SI
386 ADCQ DX,CX
Austin Clementsf6208512016-10-20 16:03:43 -0400387 MOVQ 216(SP),AX
388 MULQ 40(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400389 ADDQ AX,R10
390 ADCQ DX,R11
Austin Clementsf6208512016-10-20 16:03:43 -0400391 MOVQ 216(SP),AX
392 MULQ 48(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400393 ADDQ AX,R12
394 ADCQ DX,R13
Austin Clementsf6208512016-10-20 16:03:43 -0400395 MOVQ 216(SP),AX
396 MULQ 56(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400397 ADDQ AX,R14
398 ADCQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -0400399 MOVQ 216(SP),DX
Adam Langley124e52d2012-03-12 10:59:04 -0400400 IMUL3Q $19,DX,AX
Austin Clementsf6208512016-10-20 16:03:43 -0400401 MULQ 64(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400402 ADDQ AX,SI
403 ADCQ DX,CX
Austin Clementsf6208512016-10-20 16:03:43 -0400404 MOVQ 216(SP),DX
Adam Langley124e52d2012-03-12 10:59:04 -0400405 IMUL3Q $19,DX,AX
Austin Clementsf6208512016-10-20 16:03:43 -0400406 MULQ 72(SP)
407 ADDQ AX,R8
408 ADCQ DX,R9
409 MOVQ 224(SP),AX
410 MULQ 40(SP)
411 ADDQ AX,R12
412 ADCQ DX,R13
413 MOVQ 224(SP),AX
414 MULQ 48(SP)
415 ADDQ AX,R14
416 ADCQ DX,R15
417 MOVQ 280(SP),AX
418 MULQ 64(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400419 ADDQ AX,R8
420 ADCQ DX,R9
421 MOVQ 280(SP),AX
Austin Clementsf6208512016-10-20 16:03:43 -0400422 MULQ 72(SP)
423 ADDQ AX,R10
424 ADCQ DX,R11
425 MOVQ 232(SP),AX
426 MULQ 40(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400427 ADDQ AX,R14
428 ADCQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -0400429 MOVQ 288(SP),AX
430 MULQ 56(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400431 ADDQ AX,R8
432 ADCQ DX,R9
Austin Clementsf6208512016-10-20 16:03:43 -0400433 MOVQ 288(SP),AX
434 MULQ 64(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400435 ADDQ AX,R10
436 ADCQ DX,R11
437 MOVQ 288(SP),AX
Austin Clementsf6208512016-10-20 16:03:43 -0400438 MULQ 72(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400439 ADDQ AX,R12
440 ADCQ DX,R13
441 MOVQ ·REDMASK51(SB),DX
442 SHLQ $13,CX:SI
443 ANDQ DX,SI
444 SHLQ $13,R9:R8
445 ANDQ DX,R8
446 ADDQ CX,R8
447 SHLQ $13,R11:R10
448 ANDQ DX,R10
449 ADDQ R9,R10
450 SHLQ $13,R13:R12
451 ANDQ DX,R12
452 ADDQ R11,R12
453 SHLQ $13,R15:R14
454 ANDQ DX,R14
455 ADDQ R13,R14
456 IMUL3Q $19,R15,CX
457 ADDQ CX,SI
458 MOVQ SI,CX
459 SHRQ $51,CX
460 ADDQ R8,CX
461 MOVQ CX,R8
462 SHRQ $51,CX
463 ANDQ DX,SI
464 ADDQ R10,CX
465 MOVQ CX,R9
466 SHRQ $51,CX
467 ANDQ DX,R8
468 ADDQ R12,CX
469 MOVQ CX,AX
470 SHRQ $51,CX
471 ANDQ DX,R9
472 ADDQ R14,CX
473 MOVQ CX,R10
474 SHRQ $51,CX
475 ANDQ DX,AX
476 IMUL3Q $19,CX,CX
477 ADDQ CX,SI
478 ANDQ DX,R10
Austin Clementsf6208512016-10-20 16:03:43 -0400479 MOVQ SI,40(SP)
480 MOVQ R8,48(SP)
481 MOVQ R9,56(SP)
482 MOVQ AX,64(SP)
483 MOVQ R10,72(SP)
484 MOVQ 264(SP),SI
Adam Langley124e52d2012-03-12 10:59:04 -0400485 IMUL3Q $19,SI,AX
Austin Clementsf6208512016-10-20 16:03:43 -0400486 MOVQ AX,200(SP)
487 MULQ 16(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400488 MOVQ AX,SI
489 MOVQ DX,CX
Austin Clementsf6208512016-10-20 16:03:43 -0400490 MOVQ 272(SP),DX
Adam Langley124e52d2012-03-12 10:59:04 -0400491 IMUL3Q $19,DX,AX
Austin Clementsf6208512016-10-20 16:03:43 -0400492 MOVQ AX,208(SP)
493 MULQ 8(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400494 ADDQ AX,SI
495 ADCQ DX,CX
Austin Clementsf6208512016-10-20 16:03:43 -0400496 MOVQ 240(SP),AX
497 MULQ 0(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400498 ADDQ AX,SI
499 ADCQ DX,CX
Austin Clementsf6208512016-10-20 16:03:43 -0400500 MOVQ 240(SP),AX
501 MULQ 8(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400502 MOVQ AX,R8
503 MOVQ DX,R9
Austin Clementsf6208512016-10-20 16:03:43 -0400504 MOVQ 240(SP),AX
505 MULQ 16(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400506 MOVQ AX,R10
507 MOVQ DX,R11
Austin Clementsf6208512016-10-20 16:03:43 -0400508 MOVQ 240(SP),AX
509 MULQ 24(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400510 MOVQ AX,R12
511 MOVQ DX,R13
Austin Clementsf6208512016-10-20 16:03:43 -0400512 MOVQ 240(SP),AX
513 MULQ 32(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400514 MOVQ AX,R14
515 MOVQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -0400516 MOVQ 248(SP),AX
517 MULQ 0(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400518 ADDQ AX,R8
519 ADCQ DX,R9
Austin Clementsf6208512016-10-20 16:03:43 -0400520 MOVQ 248(SP),AX
521 MULQ 8(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400522 ADDQ AX,R10
523 ADCQ DX,R11
Austin Clementsf6208512016-10-20 16:03:43 -0400524 MOVQ 248(SP),AX
525 MULQ 16(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400526 ADDQ AX,R12
527 ADCQ DX,R13
Austin Clementsf6208512016-10-20 16:03:43 -0400528 MOVQ 248(SP),AX
529 MULQ 24(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400530 ADDQ AX,R14
531 ADCQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -0400532 MOVQ 248(SP),DX
Adam Langley124e52d2012-03-12 10:59:04 -0400533 IMUL3Q $19,DX,AX
Austin Clementsf6208512016-10-20 16:03:43 -0400534 MULQ 32(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400535 ADDQ AX,SI
536 ADCQ DX,CX
Austin Clementsf6208512016-10-20 16:03:43 -0400537 MOVQ 256(SP),AX
538 MULQ 0(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400539 ADDQ AX,R10
540 ADCQ DX,R11
Austin Clementsf6208512016-10-20 16:03:43 -0400541 MOVQ 256(SP),AX
542 MULQ 8(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400543 ADDQ AX,R12
544 ADCQ DX,R13
Austin Clementsf6208512016-10-20 16:03:43 -0400545 MOVQ 256(SP),AX
546 MULQ 16(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400547 ADDQ AX,R14
548 ADCQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -0400549 MOVQ 256(SP),DX
Adam Langley124e52d2012-03-12 10:59:04 -0400550 IMUL3Q $19,DX,AX
Austin Clementsf6208512016-10-20 16:03:43 -0400551 MULQ 24(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400552 ADDQ AX,SI
553 ADCQ DX,CX
Austin Clementsf6208512016-10-20 16:03:43 -0400554 MOVQ 256(SP),DX
Adam Langley124e52d2012-03-12 10:59:04 -0400555 IMUL3Q $19,DX,AX
Austin Clementsf6208512016-10-20 16:03:43 -0400556 MULQ 32(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400557 ADDQ AX,R8
558 ADCQ DX,R9
Austin Clementsf6208512016-10-20 16:03:43 -0400559 MOVQ 264(SP),AX
560 MULQ 0(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400561 ADDQ AX,R12
562 ADCQ DX,R13
Austin Clementsf6208512016-10-20 16:03:43 -0400563 MOVQ 264(SP),AX
564 MULQ 8(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400565 ADDQ AX,R14
566 ADCQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -0400567 MOVQ 200(SP),AX
568 MULQ 24(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400569 ADDQ AX,R8
570 ADCQ DX,R9
Austin Clementsf6208512016-10-20 16:03:43 -0400571 MOVQ 200(SP),AX
572 MULQ 32(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400573 ADDQ AX,R10
574 ADCQ DX,R11
Austin Clementsf6208512016-10-20 16:03:43 -0400575 MOVQ 272(SP),AX
576 MULQ 0(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400577 ADDQ AX,R14
578 ADCQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -0400579 MOVQ 208(SP),AX
580 MULQ 16(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400581 ADDQ AX,R8
582 ADCQ DX,R9
Austin Clementsf6208512016-10-20 16:03:43 -0400583 MOVQ 208(SP),AX
584 MULQ 24(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400585 ADDQ AX,R10
586 ADCQ DX,R11
Austin Clementsf6208512016-10-20 16:03:43 -0400587 MOVQ 208(SP),AX
588 MULQ 32(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400589 ADDQ AX,R12
590 ADCQ DX,R13
591 MOVQ ·REDMASK51(SB),DX
592 SHLQ $13,CX:SI
593 ANDQ DX,SI
594 SHLQ $13,R9:R8
595 ANDQ DX,R8
596 ADDQ CX,R8
597 SHLQ $13,R11:R10
598 ANDQ DX,R10
599 ADDQ R9,R10
600 SHLQ $13,R13:R12
601 ANDQ DX,R12
602 ADDQ R11,R12
603 SHLQ $13,R15:R14
604 ANDQ DX,R14
605 ADDQ R13,R14
606 IMUL3Q $19,R15,CX
607 ADDQ CX,SI
608 MOVQ SI,CX
609 SHRQ $51,CX
610 ADDQ R8,CX
611 MOVQ CX,R8
612 SHRQ $51,CX
613 ANDQ DX,SI
614 ADDQ R10,CX
615 MOVQ CX,R9
616 SHRQ $51,CX
617 ANDQ DX,R8
618 ADDQ R12,CX
619 MOVQ CX,AX
620 SHRQ $51,CX
621 ANDQ DX,R9
622 ADDQ R14,CX
623 MOVQ CX,R10
624 SHRQ $51,CX
625 ANDQ DX,AX
626 IMUL3Q $19,CX,CX
627 ADDQ CX,SI
628 ANDQ DX,R10
629 MOVQ SI,DX
630 MOVQ R8,CX
631 MOVQ R9,R11
632 MOVQ AX,R12
633 MOVQ R10,R13
634 ADDQ ·_2P0(SB),DX
635 ADDQ ·_2P1234(SB),CX
636 ADDQ ·_2P1234(SB),R11
637 ADDQ ·_2P1234(SB),R12
638 ADDQ ·_2P1234(SB),R13
Austin Clementsf6208512016-10-20 16:03:43 -0400639 ADDQ 40(SP),SI
640 ADDQ 48(SP),R8
641 ADDQ 56(SP),R9
642 ADDQ 64(SP),AX
643 ADDQ 72(SP),R10
644 SUBQ 40(SP),DX
645 SUBQ 48(SP),CX
646 SUBQ 56(SP),R11
647 SUBQ 64(SP),R12
648 SUBQ 72(SP),R13
Adam Langley124e52d2012-03-12 10:59:04 -0400649 MOVQ SI,120(DI)
650 MOVQ R8,128(DI)
651 MOVQ R9,136(DI)
652 MOVQ AX,144(DI)
653 MOVQ R10,152(DI)
654 MOVQ DX,160(DI)
655 MOVQ CX,168(DI)
656 MOVQ R11,176(DI)
657 MOVQ R12,184(DI)
658 MOVQ R13,192(DI)
659 MOVQ 120(DI),AX
660 MULQ 120(DI)
661 MOVQ AX,SI
662 MOVQ DX,CX
663 MOVQ 120(DI),AX
664 SHLQ $1,AX
665 MULQ 128(DI)
666 MOVQ AX,R8
667 MOVQ DX,R9
668 MOVQ 120(DI),AX
669 SHLQ $1,AX
670 MULQ 136(DI)
671 MOVQ AX,R10
672 MOVQ DX,R11
673 MOVQ 120(DI),AX
674 SHLQ $1,AX
675 MULQ 144(DI)
676 MOVQ AX,R12
677 MOVQ DX,R13
678 MOVQ 120(DI),AX
679 SHLQ $1,AX
680 MULQ 152(DI)
681 MOVQ AX,R14
682 MOVQ DX,R15
683 MOVQ 128(DI),AX
684 MULQ 128(DI)
685 ADDQ AX,R10
686 ADCQ DX,R11
687 MOVQ 128(DI),AX
688 SHLQ $1,AX
689 MULQ 136(DI)
690 ADDQ AX,R12
691 ADCQ DX,R13
692 MOVQ 128(DI),AX
693 SHLQ $1,AX
694 MULQ 144(DI)
695 ADDQ AX,R14
696 ADCQ DX,R15
697 MOVQ 128(DI),DX
698 IMUL3Q $38,DX,AX
699 MULQ 152(DI)
700 ADDQ AX,SI
701 ADCQ DX,CX
702 MOVQ 136(DI),AX
703 MULQ 136(DI)
704 ADDQ AX,R14
705 ADCQ DX,R15
706 MOVQ 136(DI),DX
707 IMUL3Q $38,DX,AX
708 MULQ 144(DI)
709 ADDQ AX,SI
710 ADCQ DX,CX
711 MOVQ 136(DI),DX
712 IMUL3Q $38,DX,AX
713 MULQ 152(DI)
714 ADDQ AX,R8
715 ADCQ DX,R9
716 MOVQ 144(DI),DX
717 IMUL3Q $19,DX,AX
718 MULQ 144(DI)
719 ADDQ AX,R8
720 ADCQ DX,R9
721 MOVQ 144(DI),DX
722 IMUL3Q $38,DX,AX
723 MULQ 152(DI)
724 ADDQ AX,R10
725 ADCQ DX,R11
726 MOVQ 152(DI),DX
727 IMUL3Q $19,DX,AX
728 MULQ 152(DI)
729 ADDQ AX,R12
730 ADCQ DX,R13
731 MOVQ ·REDMASK51(SB),DX
732 SHLQ $13,CX:SI
733 ANDQ DX,SI
734 SHLQ $13,R9:R8
735 ANDQ DX,R8
736 ADDQ CX,R8
737 SHLQ $13,R11:R10
738 ANDQ DX,R10
739 ADDQ R9,R10
740 SHLQ $13,R13:R12
741 ANDQ DX,R12
742 ADDQ R11,R12
743 SHLQ $13,R15:R14
744 ANDQ DX,R14
745 ADDQ R13,R14
746 IMUL3Q $19,R15,CX
747 ADDQ CX,SI
748 MOVQ SI,CX
749 SHRQ $51,CX
750 ADDQ R8,CX
751 ANDQ DX,SI
752 MOVQ CX,R8
753 SHRQ $51,CX
754 ADDQ R10,CX
755 ANDQ DX,R8
756 MOVQ CX,R9
757 SHRQ $51,CX
758 ADDQ R12,CX
759 ANDQ DX,R9
760 MOVQ CX,AX
761 SHRQ $51,CX
762 ADDQ R14,CX
763 ANDQ DX,AX
764 MOVQ CX,R10
765 SHRQ $51,CX
766 IMUL3Q $19,CX,CX
767 ADDQ CX,SI
768 ANDQ DX,R10
769 MOVQ SI,120(DI)
770 MOVQ R8,128(DI)
771 MOVQ R9,136(DI)
772 MOVQ AX,144(DI)
773 MOVQ R10,152(DI)
774 MOVQ 160(DI),AX
775 MULQ 160(DI)
776 MOVQ AX,SI
777 MOVQ DX,CX
778 MOVQ 160(DI),AX
779 SHLQ $1,AX
780 MULQ 168(DI)
781 MOVQ AX,R8
782 MOVQ DX,R9
783 MOVQ 160(DI),AX
784 SHLQ $1,AX
785 MULQ 176(DI)
786 MOVQ AX,R10
787 MOVQ DX,R11
788 MOVQ 160(DI),AX
789 SHLQ $1,AX
790 MULQ 184(DI)
791 MOVQ AX,R12
792 MOVQ DX,R13
793 MOVQ 160(DI),AX
794 SHLQ $1,AX
795 MULQ 192(DI)
796 MOVQ AX,R14
797 MOVQ DX,R15
798 MOVQ 168(DI),AX
799 MULQ 168(DI)
800 ADDQ AX,R10
801 ADCQ DX,R11
802 MOVQ 168(DI),AX
803 SHLQ $1,AX
804 MULQ 176(DI)
805 ADDQ AX,R12
806 ADCQ DX,R13
807 MOVQ 168(DI),AX
808 SHLQ $1,AX
809 MULQ 184(DI)
810 ADDQ AX,R14
811 ADCQ DX,R15
812 MOVQ 168(DI),DX
813 IMUL3Q $38,DX,AX
814 MULQ 192(DI)
815 ADDQ AX,SI
816 ADCQ DX,CX
817 MOVQ 176(DI),AX
818 MULQ 176(DI)
819 ADDQ AX,R14
820 ADCQ DX,R15
821 MOVQ 176(DI),DX
822 IMUL3Q $38,DX,AX
823 MULQ 184(DI)
824 ADDQ AX,SI
825 ADCQ DX,CX
826 MOVQ 176(DI),DX
827 IMUL3Q $38,DX,AX
828 MULQ 192(DI)
829 ADDQ AX,R8
830 ADCQ DX,R9
831 MOVQ 184(DI),DX
832 IMUL3Q $19,DX,AX
833 MULQ 184(DI)
834 ADDQ AX,R8
835 ADCQ DX,R9
836 MOVQ 184(DI),DX
837 IMUL3Q $38,DX,AX
838 MULQ 192(DI)
839 ADDQ AX,R10
840 ADCQ DX,R11
841 MOVQ 192(DI),DX
842 IMUL3Q $19,DX,AX
843 MULQ 192(DI)
844 ADDQ AX,R12
845 ADCQ DX,R13
846 MOVQ ·REDMASK51(SB),DX
847 SHLQ $13,CX:SI
848 ANDQ DX,SI
849 SHLQ $13,R9:R8
850 ANDQ DX,R8
851 ADDQ CX,R8
852 SHLQ $13,R11:R10
853 ANDQ DX,R10
854 ADDQ R9,R10
855 SHLQ $13,R13:R12
856 ANDQ DX,R12
857 ADDQ R11,R12
858 SHLQ $13,R15:R14
859 ANDQ DX,R14
860 ADDQ R13,R14
861 IMUL3Q $19,R15,CX
862 ADDQ CX,SI
863 MOVQ SI,CX
864 SHRQ $51,CX
865 ADDQ R8,CX
866 ANDQ DX,SI
867 MOVQ CX,R8
868 SHRQ $51,CX
869 ADDQ R10,CX
870 ANDQ DX,R8
871 MOVQ CX,R9
872 SHRQ $51,CX
873 ADDQ R12,CX
874 ANDQ DX,R9
875 MOVQ CX,AX
876 SHRQ $51,CX
877 ADDQ R14,CX
878 ANDQ DX,AX
879 MOVQ CX,R10
880 SHRQ $51,CX
881 IMUL3Q $19,CX,CX
882 ADDQ CX,SI
883 ANDQ DX,R10
884 MOVQ SI,160(DI)
885 MOVQ R8,168(DI)
886 MOVQ R9,176(DI)
887 MOVQ AX,184(DI)
888 MOVQ R10,192(DI)
889 MOVQ 184(DI),SI
890 IMUL3Q $19,SI,AX
Austin Clementsf6208512016-10-20 16:03:43 -0400891 MOVQ AX,0(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400892 MULQ 16(DI)
893 MOVQ AX,SI
894 MOVQ DX,CX
895 MOVQ 192(DI),DX
896 IMUL3Q $19,DX,AX
Austin Clementsf6208512016-10-20 16:03:43 -0400897 MOVQ AX,8(SP)
Adam Langley124e52d2012-03-12 10:59:04 -0400898 MULQ 8(DI)
899 ADDQ AX,SI
900 ADCQ DX,CX
901 MOVQ 160(DI),AX
902 MULQ 0(DI)
903 ADDQ AX,SI
904 ADCQ DX,CX
905 MOVQ 160(DI),AX
906 MULQ 8(DI)
907 MOVQ AX,R8
908 MOVQ DX,R9
909 MOVQ 160(DI),AX
910 MULQ 16(DI)
911 MOVQ AX,R10
912 MOVQ DX,R11
913 MOVQ 160(DI),AX
914 MULQ 24(DI)
915 MOVQ AX,R12
916 MOVQ DX,R13
917 MOVQ 160(DI),AX
918 MULQ 32(DI)
919 MOVQ AX,R14
920 MOVQ DX,R15
921 MOVQ 168(DI),AX
922 MULQ 0(DI)
923 ADDQ AX,R8
924 ADCQ DX,R9
925 MOVQ 168(DI),AX
926 MULQ 8(DI)
927 ADDQ AX,R10
928 ADCQ DX,R11
929 MOVQ 168(DI),AX
930 MULQ 16(DI)
931 ADDQ AX,R12
932 ADCQ DX,R13
933 MOVQ 168(DI),AX
934 MULQ 24(DI)
935 ADDQ AX,R14
936 ADCQ DX,R15
937 MOVQ 168(DI),DX
938 IMUL3Q $19,DX,AX
939 MULQ 32(DI)
940 ADDQ AX,SI
941 ADCQ DX,CX
942 MOVQ 176(DI),AX
943 MULQ 0(DI)
944 ADDQ AX,R10
945 ADCQ DX,R11
946 MOVQ 176(DI),AX
947 MULQ 8(DI)
948 ADDQ AX,R12
949 ADCQ DX,R13
950 MOVQ 176(DI),AX
951 MULQ 16(DI)
952 ADDQ AX,R14
953 ADCQ DX,R15
954 MOVQ 176(DI),DX
955 IMUL3Q $19,DX,AX
956 MULQ 24(DI)
957 ADDQ AX,SI
958 ADCQ DX,CX
959 MOVQ 176(DI),DX
960 IMUL3Q $19,DX,AX
961 MULQ 32(DI)
962 ADDQ AX,R8
963 ADCQ DX,R9
964 MOVQ 184(DI),AX
965 MULQ 0(DI)
966 ADDQ AX,R12
967 ADCQ DX,R13
968 MOVQ 184(DI),AX
969 MULQ 8(DI)
970 ADDQ AX,R14
971 ADCQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -0400972 MOVQ 0(SP),AX
Adam Langley124e52d2012-03-12 10:59:04 -0400973 MULQ 24(DI)
974 ADDQ AX,R8
975 ADCQ DX,R9
Austin Clementsf6208512016-10-20 16:03:43 -0400976 MOVQ 0(SP),AX
Adam Langley124e52d2012-03-12 10:59:04 -0400977 MULQ 32(DI)
978 ADDQ AX,R10
979 ADCQ DX,R11
980 MOVQ 192(DI),AX
981 MULQ 0(DI)
982 ADDQ AX,R14
983 ADCQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -0400984 MOVQ 8(SP),AX
Adam Langley124e52d2012-03-12 10:59:04 -0400985 MULQ 16(DI)
986 ADDQ AX,R8
987 ADCQ DX,R9
Austin Clementsf6208512016-10-20 16:03:43 -0400988 MOVQ 8(SP),AX
Adam Langley124e52d2012-03-12 10:59:04 -0400989 MULQ 24(DI)
990 ADDQ AX,R10
991 ADCQ DX,R11
Austin Clementsf6208512016-10-20 16:03:43 -0400992 MOVQ 8(SP),AX
Adam Langley124e52d2012-03-12 10:59:04 -0400993 MULQ 32(DI)
994 ADDQ AX,R12
995 ADCQ DX,R13
996 MOVQ ·REDMASK51(SB),DX
997 SHLQ $13,CX:SI
998 ANDQ DX,SI
999 SHLQ $13,R9:R8
1000 ANDQ DX,R8
1001 ADDQ CX,R8
1002 SHLQ $13,R11:R10
1003 ANDQ DX,R10
1004 ADDQ R9,R10
1005 SHLQ $13,R13:R12
1006 ANDQ DX,R12
1007 ADDQ R11,R12
1008 SHLQ $13,R15:R14
1009 ANDQ DX,R14
1010 ADDQ R13,R14
1011 IMUL3Q $19,R15,CX
1012 ADDQ CX,SI
1013 MOVQ SI,CX
1014 SHRQ $51,CX
1015 ADDQ R8,CX
1016 MOVQ CX,R8
1017 SHRQ $51,CX
1018 ANDQ DX,SI
1019 ADDQ R10,CX
1020 MOVQ CX,R9
1021 SHRQ $51,CX
1022 ANDQ DX,R8
1023 ADDQ R12,CX
1024 MOVQ CX,AX
1025 SHRQ $51,CX
1026 ANDQ DX,R9
1027 ADDQ R14,CX
1028 MOVQ CX,R10
1029 SHRQ $51,CX
1030 ANDQ DX,AX
1031 IMUL3Q $19,CX,CX
1032 ADDQ CX,SI
1033 ANDQ DX,R10
1034 MOVQ SI,160(DI)
1035 MOVQ R8,168(DI)
1036 MOVQ R9,176(DI)
1037 MOVQ AX,184(DI)
1038 MOVQ R10,192(DI)
Austin Clementsf6208512016-10-20 16:03:43 -04001039 MOVQ 144(SP),SI
Adam Langley124e52d2012-03-12 10:59:04 -04001040 IMUL3Q $19,SI,AX
Austin Clementsf6208512016-10-20 16:03:43 -04001041 MOVQ AX,0(SP)
1042 MULQ 96(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001043 MOVQ AX,SI
1044 MOVQ DX,CX
Austin Clementsf6208512016-10-20 16:03:43 -04001045 MOVQ 152(SP),DX
Adam Langley124e52d2012-03-12 10:59:04 -04001046 IMUL3Q $19,DX,AX
Austin Clementsf6208512016-10-20 16:03:43 -04001047 MOVQ AX,8(SP)
1048 MULQ 88(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001049 ADDQ AX,SI
1050 ADCQ DX,CX
Austin Clementsf6208512016-10-20 16:03:43 -04001051 MOVQ 120(SP),AX
1052 MULQ 80(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001053 ADDQ AX,SI
1054 ADCQ DX,CX
Austin Clementsf6208512016-10-20 16:03:43 -04001055 MOVQ 120(SP),AX
1056 MULQ 88(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001057 MOVQ AX,R8
1058 MOVQ DX,R9
Austin Clementsf6208512016-10-20 16:03:43 -04001059 MOVQ 120(SP),AX
1060 MULQ 96(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001061 MOVQ AX,R10
1062 MOVQ DX,R11
Austin Clementsf6208512016-10-20 16:03:43 -04001063 MOVQ 120(SP),AX
1064 MULQ 104(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001065 MOVQ AX,R12
1066 MOVQ DX,R13
Austin Clementsf6208512016-10-20 16:03:43 -04001067 MOVQ 120(SP),AX
1068 MULQ 112(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001069 MOVQ AX,R14
1070 MOVQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -04001071 MOVQ 128(SP),AX
1072 MULQ 80(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001073 ADDQ AX,R8
1074 ADCQ DX,R9
Austin Clementsf6208512016-10-20 16:03:43 -04001075 MOVQ 128(SP),AX
1076 MULQ 88(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001077 ADDQ AX,R10
1078 ADCQ DX,R11
Austin Clementsf6208512016-10-20 16:03:43 -04001079 MOVQ 128(SP),AX
1080 MULQ 96(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001081 ADDQ AX,R12
1082 ADCQ DX,R13
Austin Clementsf6208512016-10-20 16:03:43 -04001083 MOVQ 128(SP),AX
1084 MULQ 104(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001085 ADDQ AX,R14
1086 ADCQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -04001087 MOVQ 128(SP),DX
Adam Langley124e52d2012-03-12 10:59:04 -04001088 IMUL3Q $19,DX,AX
Austin Clementsf6208512016-10-20 16:03:43 -04001089 MULQ 112(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001090 ADDQ AX,SI
1091 ADCQ DX,CX
Austin Clementsf6208512016-10-20 16:03:43 -04001092 MOVQ 136(SP),AX
1093 MULQ 80(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001094 ADDQ AX,R10
1095 ADCQ DX,R11
Austin Clementsf6208512016-10-20 16:03:43 -04001096 MOVQ 136(SP),AX
1097 MULQ 88(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001098 ADDQ AX,R12
1099 ADCQ DX,R13
Austin Clementsf6208512016-10-20 16:03:43 -04001100 MOVQ 136(SP),AX
1101 MULQ 96(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001102 ADDQ AX,R14
1103 ADCQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -04001104 MOVQ 136(SP),DX
Adam Langley124e52d2012-03-12 10:59:04 -04001105 IMUL3Q $19,DX,AX
Austin Clementsf6208512016-10-20 16:03:43 -04001106 MULQ 104(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001107 ADDQ AX,SI
1108 ADCQ DX,CX
Austin Clementsf6208512016-10-20 16:03:43 -04001109 MOVQ 136(SP),DX
Adam Langley124e52d2012-03-12 10:59:04 -04001110 IMUL3Q $19,DX,AX
Austin Clementsf6208512016-10-20 16:03:43 -04001111 MULQ 112(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001112 ADDQ AX,R8
1113 ADCQ DX,R9
Austin Clementsf6208512016-10-20 16:03:43 -04001114 MOVQ 144(SP),AX
1115 MULQ 80(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001116 ADDQ AX,R12
1117 ADCQ DX,R13
Austin Clementsf6208512016-10-20 16:03:43 -04001118 MOVQ 144(SP),AX
1119 MULQ 88(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001120 ADDQ AX,R14
1121 ADCQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -04001122 MOVQ 0(SP),AX
1123 MULQ 104(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001124 ADDQ AX,R8
1125 ADCQ DX,R9
Austin Clementsf6208512016-10-20 16:03:43 -04001126 MOVQ 0(SP),AX
1127 MULQ 112(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001128 ADDQ AX,R10
1129 ADCQ DX,R11
Austin Clementsf6208512016-10-20 16:03:43 -04001130 MOVQ 152(SP),AX
1131 MULQ 80(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001132 ADDQ AX,R14
1133 ADCQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -04001134 MOVQ 8(SP),AX
1135 MULQ 96(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001136 ADDQ AX,R8
1137 ADCQ DX,R9
Austin Clementsf6208512016-10-20 16:03:43 -04001138 MOVQ 8(SP),AX
1139 MULQ 104(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001140 ADDQ AX,R10
1141 ADCQ DX,R11
Austin Clementsf6208512016-10-20 16:03:43 -04001142 MOVQ 8(SP),AX
1143 MULQ 112(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001144 ADDQ AX,R12
1145 ADCQ DX,R13
1146 MOVQ ·REDMASK51(SB),DX
1147 SHLQ $13,CX:SI
1148 ANDQ DX,SI
1149 SHLQ $13,R9:R8
1150 ANDQ DX,R8
1151 ADDQ CX,R8
1152 SHLQ $13,R11:R10
1153 ANDQ DX,R10
1154 ADDQ R9,R10
1155 SHLQ $13,R13:R12
1156 ANDQ DX,R12
1157 ADDQ R11,R12
1158 SHLQ $13,R15:R14
1159 ANDQ DX,R14
1160 ADDQ R13,R14
1161 IMUL3Q $19,R15,CX
1162 ADDQ CX,SI
1163 MOVQ SI,CX
1164 SHRQ $51,CX
1165 ADDQ R8,CX
1166 MOVQ CX,R8
1167 SHRQ $51,CX
1168 ANDQ DX,SI
1169 ADDQ R10,CX
1170 MOVQ CX,R9
1171 SHRQ $51,CX
1172 ANDQ DX,R8
1173 ADDQ R12,CX
1174 MOVQ CX,AX
1175 SHRQ $51,CX
1176 ANDQ DX,R9
1177 ADDQ R14,CX
1178 MOVQ CX,R10
1179 SHRQ $51,CX
1180 ANDQ DX,AX
1181 IMUL3Q $19,CX,CX
1182 ADDQ CX,SI
1183 ANDQ DX,R10
1184 MOVQ SI,40(DI)
1185 MOVQ R8,48(DI)
1186 MOVQ R9,56(DI)
1187 MOVQ AX,64(DI)
1188 MOVQ R10,72(DI)
Austin Clementsf6208512016-10-20 16:03:43 -04001189 MOVQ 160(SP),AX
Adam Langley124e52d2012-03-12 10:59:04 -04001190 MULQ ·_121666_213(SB)
1191 SHRQ $13,AX
1192 MOVQ AX,SI
1193 MOVQ DX,CX
Austin Clementsf6208512016-10-20 16:03:43 -04001194 MOVQ 168(SP),AX
Adam Langley124e52d2012-03-12 10:59:04 -04001195 MULQ ·_121666_213(SB)
1196 SHRQ $13,AX
1197 ADDQ AX,CX
1198 MOVQ DX,R8
Austin Clementsf6208512016-10-20 16:03:43 -04001199 MOVQ 176(SP),AX
Adam Langley124e52d2012-03-12 10:59:04 -04001200 MULQ ·_121666_213(SB)
1201 SHRQ $13,AX
1202 ADDQ AX,R8
1203 MOVQ DX,R9
Austin Clementsf6208512016-10-20 16:03:43 -04001204 MOVQ 184(SP),AX
Adam Langley124e52d2012-03-12 10:59:04 -04001205 MULQ ·_121666_213(SB)
1206 SHRQ $13,AX
1207 ADDQ AX,R9
1208 MOVQ DX,R10
Austin Clementsf6208512016-10-20 16:03:43 -04001209 MOVQ 192(SP),AX
Adam Langley124e52d2012-03-12 10:59:04 -04001210 MULQ ·_121666_213(SB)
1211 SHRQ $13,AX
1212 ADDQ AX,R10
1213 IMUL3Q $19,DX,DX
1214 ADDQ DX,SI
Austin Clementsf6208512016-10-20 16:03:43 -04001215 ADDQ 80(SP),SI
1216 ADDQ 88(SP),CX
1217 ADDQ 96(SP),R8
1218 ADDQ 104(SP),R9
1219 ADDQ 112(SP),R10
Adam Langley124e52d2012-03-12 10:59:04 -04001220 MOVQ SI,80(DI)
1221 MOVQ CX,88(DI)
1222 MOVQ R8,96(DI)
1223 MOVQ R9,104(DI)
1224 MOVQ R10,112(DI)
1225 MOVQ 104(DI),SI
1226 IMUL3Q $19,SI,AX
Austin Clementsf6208512016-10-20 16:03:43 -04001227 MOVQ AX,0(SP)
1228 MULQ 176(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001229 MOVQ AX,SI
1230 MOVQ DX,CX
1231 MOVQ 112(DI),DX
1232 IMUL3Q $19,DX,AX
Austin Clementsf6208512016-10-20 16:03:43 -04001233 MOVQ AX,8(SP)
1234 MULQ 168(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001235 ADDQ AX,SI
1236 ADCQ DX,CX
1237 MOVQ 80(DI),AX
Austin Clementsf6208512016-10-20 16:03:43 -04001238 MULQ 160(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001239 ADDQ AX,SI
1240 ADCQ DX,CX
1241 MOVQ 80(DI),AX
Austin Clementsf6208512016-10-20 16:03:43 -04001242 MULQ 168(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001243 MOVQ AX,R8
1244 MOVQ DX,R9
1245 MOVQ 80(DI),AX
Austin Clementsf6208512016-10-20 16:03:43 -04001246 MULQ 176(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001247 MOVQ AX,R10
1248 MOVQ DX,R11
1249 MOVQ 80(DI),AX
Austin Clementsf6208512016-10-20 16:03:43 -04001250 MULQ 184(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001251 MOVQ AX,R12
1252 MOVQ DX,R13
1253 MOVQ 80(DI),AX
Austin Clementsf6208512016-10-20 16:03:43 -04001254 MULQ 192(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001255 MOVQ AX,R14
1256 MOVQ DX,R15
1257 MOVQ 88(DI),AX
Austin Clementsf6208512016-10-20 16:03:43 -04001258 MULQ 160(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001259 ADDQ AX,R8
1260 ADCQ DX,R9
1261 MOVQ 88(DI),AX
Austin Clementsf6208512016-10-20 16:03:43 -04001262 MULQ 168(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001263 ADDQ AX,R10
1264 ADCQ DX,R11
1265 MOVQ 88(DI),AX
Austin Clementsf6208512016-10-20 16:03:43 -04001266 MULQ 176(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001267 ADDQ AX,R12
1268 ADCQ DX,R13
1269 MOVQ 88(DI),AX
Austin Clementsf6208512016-10-20 16:03:43 -04001270 MULQ 184(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001271 ADDQ AX,R14
1272 ADCQ DX,R15
1273 MOVQ 88(DI),DX
1274 IMUL3Q $19,DX,AX
Austin Clementsf6208512016-10-20 16:03:43 -04001275 MULQ 192(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001276 ADDQ AX,SI
1277 ADCQ DX,CX
1278 MOVQ 96(DI),AX
Austin Clementsf6208512016-10-20 16:03:43 -04001279 MULQ 160(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001280 ADDQ AX,R10
1281 ADCQ DX,R11
1282 MOVQ 96(DI),AX
Austin Clementsf6208512016-10-20 16:03:43 -04001283 MULQ 168(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001284 ADDQ AX,R12
1285 ADCQ DX,R13
1286 MOVQ 96(DI),AX
Austin Clementsf6208512016-10-20 16:03:43 -04001287 MULQ 176(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001288 ADDQ AX,R14
1289 ADCQ DX,R15
1290 MOVQ 96(DI),DX
1291 IMUL3Q $19,DX,AX
Austin Clementsf6208512016-10-20 16:03:43 -04001292 MULQ 184(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001293 ADDQ AX,SI
1294 ADCQ DX,CX
1295 MOVQ 96(DI),DX
1296 IMUL3Q $19,DX,AX
Austin Clementsf6208512016-10-20 16:03:43 -04001297 MULQ 192(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001298 ADDQ AX,R8
1299 ADCQ DX,R9
1300 MOVQ 104(DI),AX
Austin Clementsf6208512016-10-20 16:03:43 -04001301 MULQ 160(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001302 ADDQ AX,R12
1303 ADCQ DX,R13
1304 MOVQ 104(DI),AX
Austin Clementsf6208512016-10-20 16:03:43 -04001305 MULQ 168(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001306 ADDQ AX,R14
1307 ADCQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -04001308 MOVQ 0(SP),AX
1309 MULQ 184(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001310 ADDQ AX,R8
1311 ADCQ DX,R9
Austin Clementsf6208512016-10-20 16:03:43 -04001312 MOVQ 0(SP),AX
1313 MULQ 192(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001314 ADDQ AX,R10
1315 ADCQ DX,R11
1316 MOVQ 112(DI),AX
Austin Clementsf6208512016-10-20 16:03:43 -04001317 MULQ 160(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001318 ADDQ AX,R14
1319 ADCQ DX,R15
Austin Clementsf6208512016-10-20 16:03:43 -04001320 MOVQ 8(SP),AX
1321 MULQ 176(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001322 ADDQ AX,R8
1323 ADCQ DX,R9
Austin Clementsf6208512016-10-20 16:03:43 -04001324 MOVQ 8(SP),AX
1325 MULQ 184(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001326 ADDQ AX,R10
1327 ADCQ DX,R11
Austin Clementsf6208512016-10-20 16:03:43 -04001328 MOVQ 8(SP),AX
1329 MULQ 192(SP)
Adam Langley124e52d2012-03-12 10:59:04 -04001330 ADDQ AX,R12
1331 ADCQ DX,R13
1332 MOVQ ·REDMASK51(SB),DX
1333 SHLQ $13,CX:SI
1334 ANDQ DX,SI
1335 SHLQ $13,R9:R8
1336 ANDQ DX,R8
1337 ADDQ CX,R8
1338 SHLQ $13,R11:R10
1339 ANDQ DX,R10
1340 ADDQ R9,R10
1341 SHLQ $13,R13:R12
1342 ANDQ DX,R12
1343 ADDQ R11,R12
1344 SHLQ $13,R15:R14
1345 ANDQ DX,R14
1346 ADDQ R13,R14
1347 IMUL3Q $19,R15,CX
1348 ADDQ CX,SI
1349 MOVQ SI,CX
1350 SHRQ $51,CX
1351 ADDQ R8,CX
1352 MOVQ CX,R8
1353 SHRQ $51,CX
1354 ANDQ DX,SI
1355 ADDQ R10,CX
1356 MOVQ CX,R9
1357 SHRQ $51,CX
1358 ANDQ DX,R8
1359 ADDQ R12,CX
1360 MOVQ CX,AX
1361 SHRQ $51,CX
1362 ANDQ DX,R9
1363 ADDQ R14,CX
1364 MOVQ CX,R10
1365 SHRQ $51,CX
1366 ANDQ DX,AX
1367 IMUL3Q $19,CX,CX
1368 ADDQ CX,SI
1369 ANDQ DX,R10
1370 MOVQ SI,80(DI)
1371 MOVQ R8,88(DI)
1372 MOVQ R9,96(DI)
1373 MOVQ AX,104(DI)
1374 MOVQ R10,112(DI)
Adam Langley124e52d2012-03-12 10:59:04 -04001375 RET