Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(1092)

Side by Side Diff: salsa20/salsa/salsa2020_amd64.s

Issue 6496083: code review 6496083: go.crypto/salsa20: add package. (Closed)
Patch Set: diff -r d7d342670efa https://code.google.com/p/go.crypto Created 11 years, 6 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « salsa20/salsa/hsalsa20.go ('k') | salsa20/salsa/salsa20_amd64.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // 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
8 // func salsa2020XORKeyStream(out, in *byte, n uint64, nonce, key *byte)
9 TEXT ·salsa2020XORKeyStream(SB),0,$512-40
10 MOVQ out+0(FP),DI
11 MOVQ in+8(FP),SI
12 MOVQ inlen+16(FP),DX
13 MOVQ nonce+24(FP),CX
14 MOVQ key+32(FP),R8
15
16 MOVQ SP,R11
17 MOVQ $31,R9
18 NOTQ R9
19 ANDQ R9,SP
20 ADDQ $32,SP
21
22 MOVQ R11,352(SP)
23 MOVQ R12,360(SP)
24 MOVQ R13,368(SP)
25 MOVQ R14,376(SP)
26 MOVQ R15,384(SP)
27 MOVQ BX,392(SP)
28 MOVQ BP,400(SP)
29 MOVQ DX,R9
30 MOVQ CX,DX
31 MOVQ R8,R10
32 CMPQ R9,$0
33 JBE DONE
34 START:
35 MOVL 20(R10),CX
36 MOVL 0(R10),R8
37 MOVL 0(DX),AX
38 MOVL 16(R10),R11
39 MOVL CX,0(SP)
40 MOVL R8, 4 (SP)
41 MOVL AX, 8 (SP)
42 MOVL R11, 12 (SP)
43 MOVL 8(DX),CX
44 MOVL 24(R10),R8
45 MOVL 4(R10),AX
46 MOVL 4(DX),R11
47 MOVL CX,16(SP)
48 MOVL R8, 20 (SP)
49 MOVL AX, 24 (SP)
50 MOVL R11, 28 (SP)
51 MOVL 12(DX),CX
52 MOVL 12(R10),DX
53 MOVL 28(R10),R8
54 MOVL 8(R10),AX
55 MOVL DX,32(SP)
56 MOVL CX, 36 (SP)
57 MOVL R8, 40 (SP)
58 MOVL AX, 44 (SP)
59 MOVQ $1634760805,DX
60 MOVQ $857760878,CX
61 MOVQ $2036477234,R8
62 MOVQ $1797285236,AX
63 MOVL DX,48(SP)
64 MOVL CX, 52 (SP)
65 MOVL R8, 56 (SP)
66 MOVL AX, 60 (SP)
67 CMPQ R9,$256
68 JB BYTESBETWEEN1AND255
69 MOVOA 48(SP),X0
70 PSHUFL $0X55,X0,X1
71 PSHUFL $0XAA,X0,X2
72 PSHUFL $0XFF,X0,X3
73 PSHUFL $0X00,X0,X0
74 MOVOA X1,64(SP)
75 MOVOA X2,80(SP)
76 MOVOA X3,96(SP)
77 MOVOA X0,112(SP)
78 MOVOA 0(SP),X0
79 PSHUFL $0XAA,X0,X1
80 PSHUFL $0XFF,X0,X2
81 PSHUFL $0X00,X0,X3
82 PSHUFL $0X55,X0,X0
83 MOVOA X1,128(SP)
84 MOVOA X2,144(SP)
85 MOVOA X3,160(SP)
86 MOVOA X0,176(SP)
87 MOVOA 16(SP),X0
88 PSHUFL $0XFF,X0,X1
89 PSHUFL $0X55,X0,X2
90 PSHUFL $0XAA,X0,X0
91 MOVOA X1,192(SP)
92 MOVOA X2,208(SP)
93 MOVOA X0,224(SP)
94 MOVOA 32(SP),X0
95 PSHUFL $0X00,X0,X1
96 PSHUFL $0XAA,X0,X2
97 PSHUFL $0XFF,X0,X0
98 MOVOA X1,240(SP)
99 MOVOA X2,256(SP)
100 MOVOA X0,272(SP)
101 BYTESATLEAST256:
102 MOVL 16(SP),DX
103 MOVL 36 (SP),CX
104 MOVL DX,288(SP)
105 MOVL CX,304(SP)
106 ADDQ $1,DX
107 SHLQ $32,CX
108 ADDQ CX,DX
109 MOVQ DX,CX
110 SHRQ $32,CX
111 MOVL DX, 292 (SP)
112 MOVL CX, 308 (SP)
113 ADDQ $1,DX
114 SHLQ $32,CX
115 ADDQ CX,DX
116 MOVQ DX,CX
117 SHRQ $32,CX
118 MOVL DX, 296 (SP)
119 MOVL CX, 312 (SP)
120 ADDQ $1,DX
121 SHLQ $32,CX
122 ADDQ CX,DX
123 MOVQ DX,CX
124 SHRQ $32,CX
125 MOVL DX, 300 (SP)
126 MOVL CX, 316 (SP)
127 ADDQ $1,DX
128 SHLQ $32,CX
129 ADDQ CX,DX
130 MOVQ DX,CX
131 SHRQ $32,CX
132 MOVL DX,16(SP)
133 MOVL CX, 36 (SP)
134 MOVQ R9,408(SP)
135 MOVQ $20,DX
136 MOVOA 64(SP),X0
137 MOVOA 80(SP),X1
138 MOVOA 96(SP),X2
139 MOVOA 256(SP),X3
140 MOVOA 272(SP),X4
141 MOVOA 128(SP),X5
142 MOVOA 144(SP),X6
143 MOVOA 176(SP),X7
144 MOVOA 192(SP),X8
145 MOVOA 208(SP),X9
146 MOVOA 224(SP),X10
147 MOVOA 304(SP),X11
148 MOVOA 112(SP),X12
149 MOVOA 160(SP),X13
150 MOVOA 240(SP),X14
151 MOVOA 288(SP),X15
152 MAINLOOP1:
153 MOVOA X1,320(SP)
154 MOVOA X2,336(SP)
155 MOVOA X13,X1
156 PADDL X12,X1
157 MOVOA X1,X2
158 PSLLL $7,X1
159 PXOR X1,X14
160 PSRLL $25,X2
161 PXOR X2,X14
162 MOVOA X7,X1
163 PADDL X0,X1
164 MOVOA X1,X2
165 PSLLL $7,X1
166 PXOR X1,X11
167 PSRLL $25,X2
168 PXOR X2,X11
169 MOVOA X12,X1
170 PADDL X14,X1
171 MOVOA X1,X2
172 PSLLL $9,X1
173 PXOR X1,X15
174 PSRLL $23,X2
175 PXOR X2,X15
176 MOVOA X0,X1
177 PADDL X11,X1
178 MOVOA X1,X2
179 PSLLL $9,X1
180 PXOR X1,X9
181 PSRLL $23,X2
182 PXOR X2,X9
183 MOVOA X14,X1
184 PADDL X15,X1
185 MOVOA X1,X2
186 PSLLL $13,X1
187 PXOR X1,X13
188 PSRLL $19,X2
189 PXOR X2,X13
190 MOVOA X11,X1
191 PADDL X9,X1
192 MOVOA X1,X2
193 PSLLL $13,X1
194 PXOR X1,X7
195 PSRLL $19,X2
196 PXOR X2,X7
197 MOVOA X15,X1
198 PADDL X13,X1
199 MOVOA X1,X2
200 PSLLL $18,X1
201 PXOR X1,X12
202 PSRLL $14,X2
203 PXOR X2,X12
204 MOVOA 320(SP),X1
205 MOVOA X12,320(SP)
206 MOVOA X9,X2
207 PADDL X7,X2
208 MOVOA X2,X12
209 PSLLL $18,X2
210 PXOR X2,X0
211 PSRLL $14,X12
212 PXOR X12,X0
213 MOVOA X5,X2
214 PADDL X1,X2
215 MOVOA X2,X12
216 PSLLL $7,X2
217 PXOR X2,X3
218 PSRLL $25,X12
219 PXOR X12,X3
220 MOVOA 336(SP),X2
221 MOVOA X0,336(SP)
222 MOVOA X6,X0
223 PADDL X2,X0
224 MOVOA X0,X12
225 PSLLL $7,X0
226 PXOR X0,X4
227 PSRLL $25,X12
228 PXOR X12,X4
229 MOVOA X1,X0
230 PADDL X3,X0
231 MOVOA X0,X12
232 PSLLL $9,X0
233 PXOR X0,X10
234 PSRLL $23,X12
235 PXOR X12,X10
236 MOVOA X2,X0
237 PADDL X4,X0
238 MOVOA X0,X12
239 PSLLL $9,X0
240 PXOR X0,X8
241 PSRLL $23,X12
242 PXOR X12,X8
243 MOVOA X3,X0
244 PADDL X10,X0
245 MOVOA X0,X12
246 PSLLL $13,X0
247 PXOR X0,X5
248 PSRLL $19,X12
249 PXOR X12,X5
250 MOVOA X4,X0
251 PADDL X8,X0
252 MOVOA X0,X12
253 PSLLL $13,X0
254 PXOR X0,X6
255 PSRLL $19,X12
256 PXOR X12,X6
257 MOVOA X10,X0
258 PADDL X5,X0
259 MOVOA X0,X12
260 PSLLL $18,X0
261 PXOR X0,X1
262 PSRLL $14,X12
263 PXOR X12,X1
264 MOVOA 320(SP),X0
265 MOVOA X1,320(SP)
266 MOVOA X4,X1
267 PADDL X0,X1
268 MOVOA X1,X12
269 PSLLL $7,X1
270 PXOR X1,X7
271 PSRLL $25,X12
272 PXOR X12,X7
273 MOVOA X8,X1
274 PADDL X6,X1
275 MOVOA X1,X12
276 PSLLL $18,X1
277 PXOR X1,X2
278 PSRLL $14,X12
279 PXOR X12,X2
280 MOVOA 336(SP),X12
281 MOVOA X2,336(SP)
282 MOVOA X14,X1
283 PADDL X12,X1
284 MOVOA X1,X2
285 PSLLL $7,X1
286 PXOR X1,X5
287 PSRLL $25,X2
288 PXOR X2,X5
289 MOVOA X0,X1
290 PADDL X7,X1
291 MOVOA X1,X2
292 PSLLL $9,X1
293 PXOR X1,X10
294 PSRLL $23,X2
295 PXOR X2,X10
296 MOVOA X12,X1
297 PADDL X5,X1
298 MOVOA X1,X2
299 PSLLL $9,X1
300 PXOR X1,X8
301 PSRLL $23,X2
302 PXOR X2,X8
303 MOVOA X7,X1
304 PADDL X10,X1
305 MOVOA X1,X2
306 PSLLL $13,X1
307 PXOR X1,X4
308 PSRLL $19,X2
309 PXOR X2,X4
310 MOVOA X5,X1
311 PADDL X8,X1
312 MOVOA X1,X2
313 PSLLL $13,X1
314 PXOR X1,X14
315 PSRLL $19,X2
316 PXOR X2,X14
317 MOVOA X10,X1
318 PADDL X4,X1
319 MOVOA X1,X2
320 PSLLL $18,X1
321 PXOR X1,X0
322 PSRLL $14,X2
323 PXOR X2,X0
324 MOVOA 320(SP),X1
325 MOVOA X0,320(SP)
326 MOVOA X8,X0
327 PADDL X14,X0
328 MOVOA X0,X2
329 PSLLL $18,X0
330 PXOR X0,X12
331 PSRLL $14,X2
332 PXOR X2,X12
333 MOVOA X11,X0
334 PADDL X1,X0
335 MOVOA X0,X2
336 PSLLL $7,X0
337 PXOR X0,X6
338 PSRLL $25,X2
339 PXOR X2,X6
340 MOVOA 336(SP),X2
341 MOVOA X12,336(SP)
342 MOVOA X3,X0
343 PADDL X2,X0
344 MOVOA X0,X12
345 PSLLL $7,X0
346 PXOR X0,X13
347 PSRLL $25,X12
348 PXOR X12,X13
349 MOVOA X1,X0
350 PADDL X6,X0
351 MOVOA X0,X12
352 PSLLL $9,X0
353 PXOR X0,X15
354 PSRLL $23,X12
355 PXOR X12,X15
356 MOVOA X2,X0
357 PADDL X13,X0
358 MOVOA X0,X12
359 PSLLL $9,X0
360 PXOR X0,X9
361 PSRLL $23,X12
362 PXOR X12,X9
363 MOVOA X6,X0
364 PADDL X15,X0
365 MOVOA X0,X12
366 PSLLL $13,X0
367 PXOR X0,X11
368 PSRLL $19,X12
369 PXOR X12,X11
370 MOVOA X13,X0
371 PADDL X9,X0
372 MOVOA X0,X12
373 PSLLL $13,X0
374 PXOR X0,X3
375 PSRLL $19,X12
376 PXOR X12,X3
377 MOVOA X15,X0
378 PADDL X11,X0
379 MOVOA X0,X12
380 PSLLL $18,X0
381 PXOR X0,X1
382 PSRLL $14,X12
383 PXOR X12,X1
384 MOVOA X9,X0
385 PADDL X3,X0
386 MOVOA X0,X12
387 PSLLL $18,X0
388 PXOR X0,X2
389 PSRLL $14,X12
390 PXOR X12,X2
391 MOVOA 320(SP),X12
392 MOVOA 336(SP),X0
393 SUBQ $2,DX
394 JA MAINLOOP1
395 PADDL 112(SP),X12
396 PADDL 176(SP),X7
397 PADDL 224(SP),X10
398 PADDL 272(SP),X4
399 MOVD X12,DX
400 MOVD X7,CX
401 MOVD X10,R8
402 MOVD X4,R9
403 PSHUFL $0X39,X12,X12
404 PSHUFL $0X39,X7,X7
405 PSHUFL $0X39,X10,X10
406 PSHUFL $0X39,X4,X4
407 XORL 0(SI),DX
408 XORL 4(SI),CX
409 XORL 8(SI),R8
410 XORL 12(SI),R9
411 MOVL DX,0(DI)
412 MOVL CX,4(DI)
413 MOVL R8,8(DI)
414 MOVL R9,12(DI)
415 MOVD X12,DX
416 MOVD X7,CX
417 MOVD X10,R8
418 MOVD X4,R9
419 PSHUFL $0X39,X12,X12
420 PSHUFL $0X39,X7,X7
421 PSHUFL $0X39,X10,X10
422 PSHUFL $0X39,X4,X4
423 XORL 64(SI),DX
424 XORL 68(SI),CX
425 XORL 72(SI),R8
426 XORL 76(SI),R9
427 MOVL DX,64(DI)
428 MOVL CX,68(DI)
429 MOVL R8,72(DI)
430 MOVL R9,76(DI)
431 MOVD X12,DX
432 MOVD X7,CX
433 MOVD X10,R8
434 MOVD X4,R9
435 PSHUFL $0X39,X12,X12
436 PSHUFL $0X39,X7,X7
437 PSHUFL $0X39,X10,X10
438 PSHUFL $0X39,X4,X4
439 XORL 128(SI),DX
440 XORL 132(SI),CX
441 XORL 136(SI),R8
442 XORL 140(SI),R9
443 MOVL DX,128(DI)
444 MOVL CX,132(DI)
445 MOVL R8,136(DI)
446 MOVL R9,140(DI)
447 MOVD X12,DX
448 MOVD X7,CX
449 MOVD X10,R8
450 MOVD X4,R9
451 XORL 192(SI),DX
452 XORL 196(SI),CX
453 XORL 200(SI),R8
454 XORL 204(SI),R9
455 MOVL DX,192(DI)
456 MOVL CX,196(DI)
457 MOVL R8,200(DI)
458 MOVL R9,204(DI)
459 PADDL 240(SP),X14
460 PADDL 64(SP),X0
461 PADDL 128(SP),X5
462 PADDL 192(SP),X8
463 MOVD X14,DX
464 MOVD X0,CX
465 MOVD X5,R8
466 MOVD X8,R9
467 PSHUFL $0X39,X14,X14
468 PSHUFL $0X39,X0,X0
469 PSHUFL $0X39,X5,X5
470 PSHUFL $0X39,X8,X8
471 XORL 16(SI),DX
472 XORL 20(SI),CX
473 XORL 24(SI),R8
474 XORL 28(SI),R9
475 MOVL DX,16(DI)
476 MOVL CX,20(DI)
477 MOVL R8,24(DI)
478 MOVL R9,28(DI)
479 MOVD X14,DX
480 MOVD X0,CX
481 MOVD X5,R8
482 MOVD X8,R9
483 PSHUFL $0X39,X14,X14
484 PSHUFL $0X39,X0,X0
485 PSHUFL $0X39,X5,X5
486 PSHUFL $0X39,X8,X8
487 XORL 80(SI),DX
488 XORL 84(SI),CX
489 XORL 88(SI),R8
490 XORL 92(SI),R9
491 MOVL DX,80(DI)
492 MOVL CX,84(DI)
493 MOVL R8,88(DI)
494 MOVL R9,92(DI)
495 MOVD X14,DX
496 MOVD X0,CX
497 MOVD X5,R8
498 MOVD X8,R9
499 PSHUFL $0X39,X14,X14
500 PSHUFL $0X39,X0,X0
501 PSHUFL $0X39,X5,X5
502 PSHUFL $0X39,X8,X8
503 XORL 144(SI),DX
504 XORL 148(SI),CX
505 XORL 152(SI),R8
506 XORL 156(SI),R9
507 MOVL DX,144(DI)
508 MOVL CX,148(DI)
509 MOVL R8,152(DI)
510 MOVL R9,156(DI)
511 MOVD X14,DX
512 MOVD X0,CX
513 MOVD X5,R8
514 MOVD X8,R9
515 XORL 208(SI),DX
516 XORL 212(SI),CX
517 XORL 216(SI),R8
518 XORL 220(SI),R9
519 MOVL DX,208(DI)
520 MOVL CX,212(DI)
521 MOVL R8,216(DI)
522 MOVL R9,220(DI)
523 PADDL 288(SP),X15
524 PADDL 304(SP),X11
525 PADDL 80(SP),X1
526 PADDL 144(SP),X6
527 MOVD X15,DX
528 MOVD X11,CX
529 MOVD X1,R8
530 MOVD X6,R9
531 PSHUFL $0X39,X15,X15
532 PSHUFL $0X39,X11,X11
533 PSHUFL $0X39,X1,X1
534 PSHUFL $0X39,X6,X6
535 XORL 32(SI),DX
536 XORL 36(SI),CX
537 XORL 40(SI),R8
538 XORL 44(SI),R9
539 MOVL DX,32(DI)
540 MOVL CX,36(DI)
541 MOVL R8,40(DI)
542 MOVL R9,44(DI)
543 MOVD X15,DX
544 MOVD X11,CX
545 MOVD X1,R8
546 MOVD X6,R9
547 PSHUFL $0X39,X15,X15
548 PSHUFL $0X39,X11,X11
549 PSHUFL $0X39,X1,X1
550 PSHUFL $0X39,X6,X6
551 XORL 96(SI),DX
552 XORL 100(SI),CX
553 XORL 104(SI),R8
554 XORL 108(SI),R9
555 MOVL DX,96(DI)
556 MOVL CX,100(DI)
557 MOVL R8,104(DI)
558 MOVL R9,108(DI)
559 MOVD X15,DX
560 MOVD X11,CX
561 MOVD X1,R8
562 MOVD X6,R9
563 PSHUFL $0X39,X15,X15
564 PSHUFL $0X39,X11,X11
565 PSHUFL $0X39,X1,X1
566 PSHUFL $0X39,X6,X6
567 XORL 160(SI),DX
568 XORL 164(SI),CX
569 XORL 168(SI),R8
570 XORL 172(SI),R9
571 MOVL DX,160(DI)
572 MOVL CX,164(DI)
573 MOVL R8,168(DI)
574 MOVL R9,172(DI)
575 MOVD X15,DX
576 MOVD X11,CX
577 MOVD X1,R8
578 MOVD X6,R9
579 XORL 224(SI),DX
580 XORL 228(SI),CX
581 XORL 232(SI),R8
582 XORL 236(SI),R9
583 MOVL DX,224(DI)
584 MOVL CX,228(DI)
585 MOVL R8,232(DI)
586 MOVL R9,236(DI)
587 PADDL 160(SP),X13
588 PADDL 208(SP),X9
589 PADDL 256(SP),X3
590 PADDL 96(SP),X2
591 MOVD X13,DX
592 MOVD X9,CX
593 MOVD X3,R8
594 MOVD X2,R9
595 PSHUFL $0X39,X13,X13
596 PSHUFL $0X39,X9,X9
597 PSHUFL $0X39,X3,X3
598 PSHUFL $0X39,X2,X2
599 XORL 48(SI),DX
600 XORL 52(SI),CX
601 XORL 56(SI),R8
602 XORL 60(SI),R9
603 MOVL DX,48(DI)
604 MOVL CX,52(DI)
605 MOVL R8,56(DI)
606 MOVL R9,60(DI)
607 MOVD X13,DX
608 MOVD X9,CX
609 MOVD X3,R8
610 MOVD X2,R9
611 PSHUFL $0X39,X13,X13
612 PSHUFL $0X39,X9,X9
613 PSHUFL $0X39,X3,X3
614 PSHUFL $0X39,X2,X2
615 XORL 112(SI),DX
616 XORL 116(SI),CX
617 XORL 120(SI),R8
618 XORL 124(SI),R9
619 MOVL DX,112(DI)
620 MOVL CX,116(DI)
621 MOVL R8,120(DI)
622 MOVL R9,124(DI)
623 MOVD X13,DX
624 MOVD X9,CX
625 MOVD X3,R8
626 MOVD X2,R9
627 PSHUFL $0X39,X13,X13
628 PSHUFL $0X39,X9,X9
629 PSHUFL $0X39,X3,X3
630 PSHUFL $0X39,X2,X2
631 XORL 176(SI),DX
632 XORL 180(SI),CX
633 XORL 184(SI),R8
634 XORL 188(SI),R9
635 MOVL DX,176(DI)
636 MOVL CX,180(DI)
637 MOVL R8,184(DI)
638 MOVL R9,188(DI)
639 MOVD X13,DX
640 MOVD X9,CX
641 MOVD X3,R8
642 MOVD X2,R9
643 XORL 240(SI),DX
644 XORL 244(SI),CX
645 XORL 248(SI),R8
646 XORL 252(SI),R9
647 MOVL DX,240(DI)
648 MOVL CX,244(DI)
649 MOVL R8,248(DI)
650 MOVL R9,252(DI)
651 MOVQ 408(SP),R9
652 SUBQ $256,R9
653 ADDQ $256,SI
654 ADDQ $256,DI
655 CMPQ R9,$256
656 JAE BYTESATLEAST256
657 CMPQ R9,$0
658 JBE DONE
659 BYTESBETWEEN1AND255:
660 CMPQ R9,$64
661 JAE NOCOPY
662 MOVQ DI,DX
663 LEAQ 416(SP),DI
664 MOVQ R9,CX
665 REP; MOVSB
666 LEAQ 416(SP),DI
667 LEAQ 416(SP),SI
668 NOCOPY:
669 MOVQ R9,408(SP)
670 MOVOA 48(SP),X0
671 MOVOA 0(SP),X1
672 MOVOA 16(SP),X2
673 MOVOA 32(SP),X3
674 MOVOA X1,X4
675 MOVQ $20,CX
676 MAINLOOP2:
677 PADDL X0,X4
678 MOVOA X0,X5
679 MOVOA X4,X6
680 PSLLL $7,X4
681 PSRLL $25,X6
682 PXOR X4,X3
683 PXOR X6,X3
684 PADDL X3,X5
685 MOVOA X3,X4
686 MOVOA X5,X6
687 PSLLL $9,X5
688 PSRLL $23,X6
689 PXOR X5,X2
690 PSHUFL $0X93,X3,X3
691 PXOR X6,X2
692 PADDL X2,X4
693 MOVOA X2,X5
694 MOVOA X4,X6
695 PSLLL $13,X4
696 PSRLL $19,X6
697 PXOR X4,X1
698 PSHUFL $0X4E,X2,X2
699 PXOR X6,X1
700 PADDL X1,X5
701 MOVOA X3,X4
702 MOVOA X5,X6
703 PSLLL $18,X5
704 PSRLL $14,X6
705 PXOR X5,X0
706 PSHUFL $0X39,X1,X1
707 PXOR X6,X0
708 PADDL X0,X4
709 MOVOA X0,X5
710 MOVOA X4,X6
711 PSLLL $7,X4
712 PSRLL $25,X6
713 PXOR X4,X1
714 PXOR X6,X1
715 PADDL X1,X5
716 MOVOA X1,X4
717 MOVOA X5,X6
718 PSLLL $9,X5
719 PSRLL $23,X6
720 PXOR X5,X2
721 PSHUFL $0X93,X1,X1
722 PXOR X6,X2
723 PADDL X2,X4
724 MOVOA X2,X5
725 MOVOA X4,X6
726 PSLLL $13,X4
727 PSRLL $19,X6
728 PXOR X4,X3
729 PSHUFL $0X4E,X2,X2
730 PXOR X6,X3
731 PADDL X3,X5
732 MOVOA X1,X4
733 MOVOA X5,X6
734 PSLLL $18,X5
735 PSRLL $14,X6
736 PXOR X5,X0
737 PSHUFL $0X39,X3,X3
738 PXOR X6,X0
739 PADDL X0,X4
740 MOVOA X0,X5
741 MOVOA X4,X6
742 PSLLL $7,X4
743 PSRLL $25,X6
744 PXOR X4,X3
745 PXOR X6,X3
746 PADDL X3,X5
747 MOVOA X3,X4
748 MOVOA X5,X6
749 PSLLL $9,X5
750 PSRLL $23,X6
751 PXOR X5,X2
752 PSHUFL $0X93,X3,X3
753 PXOR X6,X2
754 PADDL X2,X4
755 MOVOA X2,X5
756 MOVOA X4,X6
757 PSLLL $13,X4
758 PSRLL $19,X6
759 PXOR X4,X1
760 PSHUFL $0X4E,X2,X2
761 PXOR X6,X1
762 PADDL X1,X5
763 MOVOA X3,X4
764 MOVOA X5,X6
765 PSLLL $18,X5
766 PSRLL $14,X6
767 PXOR X5,X0
768 PSHUFL $0X39,X1,X1
769 PXOR X6,X0
770 PADDL X0,X4
771 MOVOA X0,X5
772 MOVOA X4,X6
773 PSLLL $7,X4
774 PSRLL $25,X6
775 PXOR X4,X1
776 PXOR X6,X1
777 PADDL X1,X5
778 MOVOA X1,X4
779 MOVOA X5,X6
780 PSLLL $9,X5
781 PSRLL $23,X6
782 PXOR X5,X2
783 PSHUFL $0X93,X1,X1
784 PXOR X6,X2
785 PADDL X2,X4
786 MOVOA X2,X5
787 MOVOA X4,X6
788 PSLLL $13,X4
789 PSRLL $19,X6
790 PXOR X4,X3
791 PSHUFL $0X4E,X2,X2
792 PXOR X6,X3
793 SUBQ $4,CX
794 PADDL X3,X5
795 MOVOA X1,X4
796 MOVOA X5,X6
797 PSLLL $18,X5
798 PXOR X7,X7
799 PSRLL $14,X6
800 PXOR X5,X0
801 PSHUFL $0X39,X3,X3
802 PXOR X6,X0
803 JA MAINLOOP2
804 PADDL 48(SP),X0
805 PADDL 0(SP),X1
806 PADDL 16(SP),X2
807 PADDL 32(SP),X3
808 MOVD X0,CX
809 MOVD X1,R8
810 MOVD X2,R9
811 MOVD X3,AX
812 PSHUFL $0X39,X0,X0
813 PSHUFL $0X39,X1,X1
814 PSHUFL $0X39,X2,X2
815 PSHUFL $0X39,X3,X3
816 XORL 0(SI),CX
817 XORL 48(SI),R8
818 XORL 32(SI),R9
819 XORL 16(SI),AX
820 MOVL CX,0(DI)
821 MOVL R8,48(DI)
822 MOVL R9,32(DI)
823 MOVL AX,16(DI)
824 MOVD X0,CX
825 MOVD X1,R8
826 MOVD X2,R9
827 MOVD X3,AX
828 PSHUFL $0X39,X0,X0
829 PSHUFL $0X39,X1,X1
830 PSHUFL $0X39,X2,X2
831 PSHUFL $0X39,X3,X3
832 XORL 20(SI),CX
833 XORL 4(SI),R8
834 XORL 52(SI),R9
835 XORL 36(SI),AX
836 MOVL CX,20(DI)
837 MOVL R8,4(DI)
838 MOVL R9,52(DI)
839 MOVL AX,36(DI)
840 MOVD X0,CX
841 MOVD X1,R8
842 MOVD X2,R9
843 MOVD X3,AX
844 PSHUFL $0X39,X0,X0
845 PSHUFL $0X39,X1,X1
846 PSHUFL $0X39,X2,X2
847 PSHUFL $0X39,X3,X3
848 XORL 40(SI),CX
849 XORL 24(SI),R8
850 XORL 8(SI),R9
851 XORL 56(SI),AX
852 MOVL CX,40(DI)
853 MOVL R8,24(DI)
854 MOVL R9,8(DI)
855 MOVL AX,56(DI)
856 MOVD X0,CX
857 MOVD X1,R8
858 MOVD X2,R9
859 MOVD X3,AX
860 XORL 60(SI),CX
861 XORL 44(SI),R8
862 XORL 28(SI),R9
863 XORL 12(SI),AX
864 MOVL CX,60(DI)
865 MOVL R8,44(DI)
866 MOVL R9,28(DI)
867 MOVL AX,12(DI)
868 MOVQ 408(SP),R9
869 MOVL 16(SP),CX
870 MOVL 36 (SP),R8
871 ADDQ $1,CX
872 SHLQ $32,R8
873 ADDQ R8,CX
874 MOVQ CX,R8
875 SHRQ $32,R8
876 MOVL CX,16(SP)
877 MOVL R8, 36 (SP)
878 CMPQ R9,$64
879 JA BYTESATLEAST65
880 JAE BYTESATLEAST64
881 MOVQ DI,SI
882 MOVQ DX,DI
883 MOVQ R9,CX
884 REP; MOVSB
885 BYTESATLEAST64:
886 DONE:
887 MOVQ 352(SP),R11
888 MOVQ 360(SP),R12
889 MOVQ 368(SP),R13
890 MOVQ 376(SP),R14
891 MOVQ 384(SP),R15
892 MOVQ 392(SP),BX
893 MOVQ 400(SP),BP
894 MOVQ R11,SP
895 RET
896 BYTESATLEAST65:
897 SUBQ $64,R9
898 ADDQ $64,DI
899 ADDQ $64,SI
900 JMP BYTESBETWEEN1AND255
OLDNEW
« no previous file with comments | « salsa20/salsa/hsalsa20.go ('k') | salsa20/salsa/salsa20_amd64.go » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b