VirtualBox

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 vboxsync, 3 years ago

libs/openssl-3.0.1: Recreate asm files, bugref:10128

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
15L$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
264KeccakF1600:
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
356L$oop_absorb:
357 cmpq %rcx,%rdx
358 jc L$done_absorb
359
360 shrq $3,%rcx
361 leaq -100(%rdi),%r8
362
363L$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
382L$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
430L$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
449L$tail_squeeze:
450 movq %r8,%rsi
451 movq %r12,%rdi
452 movq %r13,%rcx
453.byte 0xf3,0xa4
454
455L$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
468iotas:
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.

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