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