VirtualBox

source: vbox/trunk/src/libs/openssl-1.1.1k/crypto/genasm-macosx/keccak1600-x86_64.S@ 91789

最後變更 在這個檔案從91789是 83531,由 vboxsync 提交於 5 年 前

setting svn:sync-process=export for openssl-1.1.1f, all files except tests

檔案大小: 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
14L$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
262KeccakF1600:
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
354L$oop_absorb:
355 cmpq %rcx,%rdx
356 jc L$done_absorb
357
358 shrq $3,%rcx
359 leaq -100(%rdi),%r8
360
361L$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
380L$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
428L$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
447L$tail_squeeze:
448 movq %r8,%rsi
449 movq %r12,%rdi
450 movq %r13,%rcx
451.byte 0xf3,0xa4
452
453L$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
466iotas:
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 來幫助您使用儲存庫瀏覽器

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette