source:
vbox/trunk/src/libs/openssl-3.1.3/crypto/genasm-macosx/keccak1600-x86_64.S@
102427
Last change on this file since 102427 was 94083, checked in by , 3 years ago | |
---|---|
File size: 6.4 KB |
Line | |
---|---|
1 | .text |
2 | |
3 | |
4 | .p2align 5 |
5 | __KeccakF1600: |
6 | |
7 | movq 60(%rdi),%rax |
8 | movq 68(%rdi),%rbx |
9 | movq 76(%rdi),%rcx |
10 | movq 84(%rdi),%rdx |
11 | movq 92(%rdi),%rbp |
12 | jmp L$oop |
13 | |
14 | .p2align 5 |
15 | L$oop: |
16 | movq -100(%rdi),%r8 |
17 | movq -52(%rdi),%r9 |
18 | movq -4(%rdi),%r10 |
19 | movq 44(%rdi),%r11 |
20 | |
21 | xorq -84(%rdi),%rcx |
22 | xorq -76(%rdi),%rdx |
23 | xorq %r8,%rax |
24 | xorq -92(%rdi),%rbx |
25 | xorq -44(%rdi),%rcx |
26 | xorq -60(%rdi),%rax |
27 | movq %rbp,%r12 |
28 | xorq -68(%rdi),%rbp |
29 | |
30 | xorq %r10,%rcx |
31 | xorq -20(%rdi),%rax |
32 | xorq -36(%rdi),%rdx |
33 | xorq %r9,%rbx |
34 | xorq -28(%rdi),%rbp |
35 | |
36 | xorq 36(%rdi),%rcx |
37 | xorq 20(%rdi),%rax |
38 | xorq 4(%rdi),%rdx |
39 | xorq -12(%rdi),%rbx |
40 | xorq 12(%rdi),%rbp |
41 | |
42 | movq %rcx,%r13 |
43 | rolq $1,%rcx |
44 | xorq %rax,%rcx |
45 | xorq %r11,%rdx |
46 | |
47 | rolq $1,%rax |
48 | xorq %rdx,%rax |
49 | xorq 28(%rdi),%rbx |
50 | |
51 | rolq $1,%rdx |
52 | xorq %rbx,%rdx |
53 | xorq 52(%rdi),%rbp |
54 | |
55 | rolq $1,%rbx |
56 | xorq %rbp,%rbx |
57 | |
58 | rolq $1,%rbp |
59 | xorq %r13,%rbp |
60 | xorq %rcx,%r9 |
61 | xorq %rdx,%r10 |
62 | rolq $44,%r9 |
63 | xorq %rbp,%r11 |
64 | xorq %rax,%r12 |
65 | rolq $43,%r10 |
66 | xorq %rbx,%r8 |
67 | movq %r9,%r13 |
68 | rolq $21,%r11 |
69 | orq %r10,%r9 |
70 | xorq %r8,%r9 |
71 | rolq $14,%r12 |
72 | |
73 | xorq (%r15),%r9 |
74 | leaq 8(%r15),%r15 |
75 | |
76 | movq %r12,%r14 |
77 | andq %r11,%r12 |
78 | movq %r9,-100(%rsi) |
79 | xorq %r10,%r12 |
80 | notq %r10 |
81 | movq %r12,-84(%rsi) |
82 | |
83 | orq %r11,%r10 |
84 | movq 76(%rdi),%r12 |
85 | xorq %r13,%r10 |
86 | movq %r10,-92(%rsi) |
87 | |
88 | andq %r8,%r13 |
89 | movq -28(%rdi),%r9 |
90 | xorq %r14,%r13 |
91 | movq -20(%rdi),%r10 |
92 | movq %r13,-68(%rsi) |
93 | |
94 | orq %r8,%r14 |
95 | movq -76(%rdi),%r8 |
96 | xorq %r11,%r14 |
97 | movq 28(%rdi),%r11 |
98 | movq %r14,-76(%rsi) |
99 | |
100 | |
101 | xorq %rbp,%r8 |
102 | xorq %rdx,%r12 |
103 | rolq $28,%r8 |
104 | xorq %rcx,%r11 |
105 | xorq %rax,%r9 |
106 | rolq $61,%r12 |
107 | rolq $45,%r11 |
108 | xorq %rbx,%r10 |
109 | rolq $20,%r9 |
110 | movq %r8,%r13 |
111 | orq %r12,%r8 |
112 | rolq $3,%r10 |
113 | |
114 | xorq %r11,%r8 |
115 | movq %r8,-36(%rsi) |
116 | |
117 | movq %r9,%r14 |
118 | andq %r13,%r9 |
119 | movq -92(%rdi),%r8 |
120 | xorq %r12,%r9 |
121 | notq %r12 |
122 | movq %r9,-28(%rsi) |
123 | |
124 | orq %r11,%r12 |
125 | movq -44(%rdi),%r9 |
126 | xorq %r10,%r12 |
127 | movq %r12,-44(%rsi) |
128 | |
129 | andq %r10,%r11 |
130 | movq 60(%rdi),%r12 |
131 | xorq %r14,%r11 |
132 | movq %r11,-52(%rsi) |
133 | |
134 | orq %r10,%r14 |
135 | movq 4(%rdi),%r10 |
136 | xorq %r13,%r14 |
137 | movq 52(%rdi),%r11 |
138 | movq %r14,-60(%rsi) |
139 | |
140 | |
141 | xorq %rbp,%r10 |
142 | xorq %rax,%r11 |
143 | rolq $25,%r10 |
144 | xorq %rdx,%r9 |
145 | rolq $8,%r11 |
146 | xorq %rbx,%r12 |
147 | rolq $6,%r9 |
148 | xorq %rcx,%r8 |
149 | rolq $18,%r12 |
150 | movq %r10,%r13 |
151 | andq %r11,%r10 |
152 | rolq $1,%r8 |
153 | |
154 | notq %r11 |
155 | xorq %r9,%r10 |
156 | movq %r10,-12(%rsi) |
157 | |
158 | movq %r12,%r14 |
159 | andq %r11,%r12 |
160 | movq -12(%rdi),%r10 |
161 | xorq %r13,%r12 |
162 | movq %r12,-4(%rsi) |
163 | |
164 | orq %r9,%r13 |
165 | movq 84(%rdi),%r12 |
166 | xorq %r8,%r13 |
167 | movq %r13,-20(%rsi) |
168 | |
169 | andq %r8,%r9 |
170 | xorq %r14,%r9 |
171 | movq %r9,12(%rsi) |
172 | |
173 | orq %r8,%r14 |
174 | movq -60(%rdi),%r9 |
175 | xorq %r11,%r14 |
176 | movq 36(%rdi),%r11 |
177 | movq %r14,4(%rsi) |
178 | |
179 | |
180 | movq -68(%rdi),%r8 |
181 | |
182 | xorq %rcx,%r10 |
183 | xorq %rdx,%r11 |
184 | rolq $10,%r10 |
185 | xorq %rbx,%r9 |
186 | rolq $15,%r11 |
187 | xorq %rbp,%r12 |
188 | rolq $36,%r9 |
189 | xorq %rax,%r8 |
190 | rolq $56,%r12 |
191 | movq %r10,%r13 |
192 | orq %r11,%r10 |
193 | rolq $27,%r8 |
194 | |
195 | notq %r11 |
196 | xorq %r9,%r10 |
197 | movq %r10,28(%rsi) |
198 | |
199 | movq %r12,%r14 |
200 | orq %r11,%r12 |
201 | xorq %r13,%r12 |
202 | movq %r12,36(%rsi) |
203 | |
204 | andq %r9,%r13 |
205 | xorq %r8,%r13 |
206 | movq %r13,20(%rsi) |
207 | |
208 | orq %r8,%r9 |
209 | xorq %r14,%r9 |
210 | movq %r9,52(%rsi) |
211 | |
212 | andq %r14,%r8 |
213 | xorq %r11,%r8 |
214 | movq %r8,44(%rsi) |
215 | |
216 | |
217 | xorq -84(%rdi),%rdx |
218 | xorq -36(%rdi),%rbp |
219 | rolq $62,%rdx |
220 | xorq 68(%rdi),%rcx |
221 | rolq $55,%rbp |
222 | xorq 12(%rdi),%rax |
223 | rolq $2,%rcx |
224 | xorq 20(%rdi),%rbx |
225 | xchgq %rsi,%rdi |
226 | rolq $39,%rax |
227 | rolq $41,%rbx |
228 | movq %rdx,%r13 |
229 | andq %rbp,%rdx |
230 | notq %rbp |
231 | xorq %rcx,%rdx |
232 | movq %rdx,92(%rdi) |
233 | |
234 | movq %rax,%r14 |
235 | andq %rbp,%rax |
236 | xorq %r13,%rax |
237 | movq %rax,60(%rdi) |
238 | |
239 | orq %rcx,%r13 |
240 | xorq %rbx,%r13 |
241 | movq %r13,84(%rdi) |
242 | |
243 | andq %rbx,%rcx |
244 | xorq %r14,%rcx |
245 | movq %rcx,76(%rdi) |
246 | |
247 | orq %r14,%rbx |
248 | xorq %rbp,%rbx |
249 | movq %rbx,68(%rdi) |
250 | |
251 | movq %rdx,%rbp |
252 | movq %r13,%rdx |
253 | |
254 | testq $255,%r15 |
255 | jnz L$oop |
256 | |
257 | leaq -192(%r15),%r15 |
258 | .byte 0xf3,0xc3 |
259 | |
260 | |
261 | |
262 | |
263 | .p2align 5 |
264 | KeccakF1600: |
265 | |
266 | pushq %rbx |
267 | |
268 | pushq %rbp |
269 | |
270 | pushq %r12 |
271 | |
272 | pushq %r13 |
273 | |
274 | pushq %r14 |
275 | |
276 | pushq %r15 |
277 | |
278 | |
279 | leaq 100(%rdi),%rdi |
280 | subq $200,%rsp |
281 | |
282 | |
283 | notq -92(%rdi) |
284 | notq -84(%rdi) |
285 | notq -36(%rdi) |
286 | notq -4(%rdi) |
287 | notq 36(%rdi) |
288 | notq 60(%rdi) |
289 | |
290 | leaq iotas(%rip),%r15 |
291 | leaq 100(%rsp),%rsi |
292 | |
293 | call __KeccakF1600 |
294 | |
295 | notq -92(%rdi) |
296 | notq -84(%rdi) |
297 | notq -36(%rdi) |
298 | notq -4(%rdi) |
299 | notq 36(%rdi) |
300 | notq 60(%rdi) |
301 | leaq -100(%rdi),%rdi |
302 | |
303 | addq $200,%rsp |
304 | |
305 | |
306 | popq %r15 |
307 | |
308 | popq %r14 |
309 | |
310 | popq %r13 |
311 | |
312 | popq %r12 |
313 | |
314 | popq %rbp |
315 | |
316 | popq %rbx |
317 | |
318 | .byte 0xf3,0xc3 |
319 | |
320 | |
321 | .globl _SHA3_absorb |
322 | |
323 | .p2align 5 |
324 | _SHA3_absorb: |
325 | |
326 | pushq %rbx |
327 | |
328 | pushq %rbp |
329 | |
330 | pushq %r12 |
331 | |
332 | pushq %r13 |
333 | |
334 | pushq %r14 |
335 | |
336 | pushq %r15 |
337 | |
338 | |
339 | leaq 100(%rdi),%rdi |
340 | subq $232,%rsp |
341 | |
342 | |
343 | movq %rsi,%r9 |
344 | leaq 100(%rsp),%rsi |
345 | |
346 | notq -92(%rdi) |
347 | notq -84(%rdi) |
348 | notq -36(%rdi) |
349 | notq -4(%rdi) |
350 | notq 36(%rdi) |
351 | notq 60(%rdi) |
352 | leaq iotas(%rip),%r15 |
353 | |
354 | movq %rcx,216-100(%rsi) |
355 | |
356 | L$oop_absorb: |
357 | cmpq %rcx,%rdx |
358 | jc L$done_absorb |
359 | |
360 | shrq $3,%rcx |
361 | leaq -100(%rdi),%r8 |
362 | |
363 | L$block_absorb: |
364 | movq (%r9),%rax |
365 | leaq 8(%r9),%r9 |
366 | xorq (%r8),%rax |
367 | leaq 8(%r8),%r8 |
368 | subq $8,%rdx |
369 | movq %rax,-8(%r8) |
370 | subq $1,%rcx |
371 | jnz L$block_absorb |
372 | |
373 | movq %r9,200-100(%rsi) |
374 | movq %rdx,208-100(%rsi) |
375 | call __KeccakF1600 |
376 | movq 200-100(%rsi),%r9 |
377 | movq 208-100(%rsi),%rdx |
378 | movq 216-100(%rsi),%rcx |
379 | jmp L$oop_absorb |
380 | |
381 | .p2align 5 |
382 | L$done_absorb: |
383 | movq %rdx,%rax |
384 | |
385 | notq -92(%rdi) |
386 | notq -84(%rdi) |
387 | notq -36(%rdi) |
388 | notq -4(%rdi) |
389 | notq 36(%rdi) |
390 | notq 60(%rdi) |
391 | |
392 | addq $232,%rsp |
393 | |
394 | |
395 | popq %r15 |
396 | |
397 | popq %r14 |
398 | |
399 | popq %r13 |
400 | |
401 | popq %r12 |
402 | |
403 | popq %rbp |
404 | |
405 | popq %rbx |
406 | |
407 | .byte 0xf3,0xc3 |
408 | |
409 | |
410 | .globl _SHA3_squeeze |
411 | |
412 | .p2align 5 |
413 | _SHA3_squeeze: |
414 | |
415 | pushq %r12 |
416 | |
417 | pushq %r13 |
418 | |
419 | pushq %r14 |
420 | |
421 | |
422 | shrq $3,%rcx |
423 | movq %rdi,%r8 |
424 | movq %rsi,%r12 |
425 | movq %rdx,%r13 |
426 | movq %rcx,%r14 |
427 | jmp L$oop_squeeze |
428 | |
429 | .p2align 5 |
430 | L$oop_squeeze: |
431 | cmpq $8,%r13 |
432 | jb L$tail_squeeze |
433 | |
434 | movq (%r8),%rax |
435 | leaq 8(%r8),%r8 |
436 | movq %rax,(%r12) |
437 | leaq 8(%r12),%r12 |
438 | subq $8,%r13 |
439 | jz L$done_squeeze |
440 | |
441 | subq $1,%rcx |
442 | jnz L$oop_squeeze |
443 | |
444 | call KeccakF1600 |
445 | movq %rdi,%r8 |
446 | movq %r14,%rcx |
447 | jmp L$oop_squeeze |
448 | |
449 | L$tail_squeeze: |
450 | movq %r8,%rsi |
451 | movq %r12,%rdi |
452 | movq %r13,%rcx |
453 | .byte 0xf3,0xa4 |
454 | |
455 | L$done_squeeze: |
456 | popq %r14 |
457 | |
458 | popq %r13 |
459 | |
460 | popq %r12 |
461 | |
462 | .byte 0xf3,0xc3 |
463 | |
464 | |
465 | .p2align 8 |
466 | .quad 0,0,0,0,0,0,0,0 |
467 | |
468 | iotas: |
469 | .quad 0x0000000000000001 |
470 | .quad 0x0000000000008082 |
471 | .quad 0x800000000000808a |
472 | .quad 0x8000000080008000 |
473 | .quad 0x000000000000808b |
474 | .quad 0x0000000080000001 |
475 | .quad 0x8000000080008081 |
476 | .quad 0x8000000000008009 |
477 | .quad 0x000000000000008a |
478 | .quad 0x0000000000000088 |
479 | .quad 0x0000000080008009 |
480 | .quad 0x000000008000000a |
481 | .quad 0x000000008000808b |
482 | .quad 0x800000000000008b |
483 | .quad 0x8000000000008089 |
484 | .quad 0x8000000000008003 |
485 | .quad 0x8000000000008002 |
486 | .quad 0x8000000000000080 |
487 | .quad 0x000000000000800a |
488 | .quad 0x800000008000000a |
489 | .quad 0x8000000080008081 |
490 | .quad 0x8000000000008080 |
491 | .quad 0x0000000080000001 |
492 | .quad 0x8000000080008008 |
493 | |
494 | .byte 75,101,99,99,97,107,45,49,54,48,48,32,97,98,115,111,114,98,32,97,110,100,32,115,113,117,101,101,122,101,32,102,111,114,32,120,56,54,95,54,52,44,32,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 |
Note:
See TracBrowser
for help on using the repository browser.