1# This file is generated from a similarly-named Perl script in the BoringSSL
2# source tree. Do not edit by hand.
3
4#if defined(__has_feature)
5#if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM)
6#define OPENSSL_NO_ASM
7#endif
8#endif
9
10#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
11#if defined(BORINGSSL_PREFIX)
12#include <boringssl_prefix_symbols_asm.h>
13#endif
14.text
15.align 16
16
17.globl md5_block_asm_data_order
18.hidden md5_block_asm_data_order
19.type md5_block_asm_data_order,@function
20md5_block_asm_data_order:
21.cfi_startproc
22 pushq %rbp
23.cfi_adjust_cfa_offset 8
24.cfi_offset rbp,-16
25 pushq %rbx
26.cfi_adjust_cfa_offset 8
27.cfi_offset rbx,-24
28 pushq %r12
29.cfi_adjust_cfa_offset 8
30.cfi_offset r12,-32
31 pushq %r14
32.cfi_adjust_cfa_offset 8
33.cfi_offset r14,-40
34 pushq %r15
35.cfi_adjust_cfa_offset 8
36.cfi_offset r15,-48
37.Lprologue:
38
39
40
41
42 movq %rdi,%rbp
43 shlq $6,%rdx
44 leaq (%rsi,%rdx,1),%rdi
45 movl 0(%rbp),%eax
46 movl 4(%rbp),%ebx
47 movl 8(%rbp),%ecx
48 movl 12(%rbp),%edx
49
50
51
52
53
54
55
56 cmpq %rdi,%rsi
57 je .Lend
58
59
60.Lloop:
61 movl %eax,%r8d
62 movl %ebx,%r9d
63 movl %ecx,%r14d
64 movl %edx,%r15d
65 movl 0(%rsi),%r10d
66 movl %edx,%r11d
67 xorl %ecx,%r11d
68 leal -680876936(%rax,%r10,1),%eax
69 andl %ebx,%r11d
70 xorl %edx,%r11d
71 movl 4(%rsi),%r10d
72 addl %r11d,%eax
73 roll $7,%eax
74 movl %ecx,%r11d
75 addl %ebx,%eax
76 xorl %ebx,%r11d
77 leal -389564586(%rdx,%r10,1),%edx
78 andl %eax,%r11d
79 xorl %ecx,%r11d
80 movl 8(%rsi),%r10d
81 addl %r11d,%edx
82 roll $12,%edx
83 movl %ebx,%r11d
84 addl %eax,%edx
85 xorl %eax,%r11d
86 leal 606105819(%rcx,%r10,1),%ecx
87 andl %edx,%r11d
88 xorl %ebx,%r11d
89 movl 12(%rsi),%r10d
90 addl %r11d,%ecx
91 roll $17,%ecx
92 movl %eax,%r11d
93 addl %edx,%ecx
94 xorl %edx,%r11d
95 leal -1044525330(%rbx,%r10,1),%ebx
96 andl %ecx,%r11d
97 xorl %eax,%r11d
98 movl 16(%rsi),%r10d
99 addl %r11d,%ebx
100 roll $22,%ebx
101 movl %edx,%r11d
102 addl %ecx,%ebx
103 xorl %ecx,%r11d
104 leal -176418897(%rax,%r10,1),%eax
105 andl %ebx,%r11d
106 xorl %edx,%r11d
107 movl 20(%rsi),%r10d
108 addl %r11d,%eax
109 roll $7,%eax
110 movl %ecx,%r11d
111 addl %ebx,%eax
112 xorl %ebx,%r11d
113 leal 1200080426(%rdx,%r10,1),%edx
114 andl %eax,%r11d
115 xorl %ecx,%r11d
116 movl 24(%rsi),%r10d
117 addl %r11d,%edx
118 roll $12,%edx
119 movl %ebx,%r11d
120 addl %eax,%edx
121 xorl %eax,%r11d
122 leal -1473231341(%rcx,%r10,1),%ecx
123 andl %edx,%r11d
124 xorl %ebx,%r11d
125 movl 28(%rsi),%r10d
126 addl %r11d,%ecx
127 roll $17,%ecx
128 movl %eax,%r11d
129 addl %edx,%ecx
130 xorl %edx,%r11d
131 leal -45705983(%rbx,%r10,1),%ebx
132 andl %ecx,%r11d
133 xorl %eax,%r11d
134 movl 32(%rsi),%r10d
135 addl %r11d,%ebx
136 roll $22,%ebx
137 movl %edx,%r11d
138 addl %ecx,%ebx
139 xorl %ecx,%r11d
140 leal 1770035416(%rax,%r10,1),%eax
141 andl %ebx,%r11d
142 xorl %edx,%r11d
143 movl 36(%rsi),%r10d
144 addl %r11d,%eax
145 roll $7,%eax
146 movl %ecx,%r11d
147 addl %ebx,%eax
148 xorl %ebx,%r11d
149 leal -1958414417(%rdx,%r10,1),%edx
150 andl %eax,%r11d
151 xorl %ecx,%r11d
152 movl 40(%rsi),%r10d
153 addl %r11d,%edx
154 roll $12,%edx
155 movl %ebx,%r11d
156 addl %eax,%edx
157 xorl %eax,%r11d
158 leal -42063(%rcx,%r10,1),%ecx
159 andl %edx,%r11d
160 xorl %ebx,%r11d
161 movl 44(%rsi),%r10d
162 addl %r11d,%ecx
163 roll $17,%ecx
164 movl %eax,%r11d
165 addl %edx,%ecx
166 xorl %edx,%r11d
167 leal -1990404162(%rbx,%r10,1),%ebx
168 andl %ecx,%r11d
169 xorl %eax,%r11d
170 movl 48(%rsi),%r10d
171 addl %r11d,%ebx
172 roll $22,%ebx
173 movl %edx,%r11d
174 addl %ecx,%ebx
175 xorl %ecx,%r11d
176 leal 1804603682(%rax,%r10,1),%eax
177 andl %ebx,%r11d
178 xorl %edx,%r11d
179 movl 52(%rsi),%r10d
180 addl %r11d,%eax
181 roll $7,%eax
182 movl %ecx,%r11d
183 addl %ebx,%eax
184 xorl %ebx,%r11d
185 leal -40341101(%rdx,%r10,1),%edx
186 andl %eax,%r11d
187 xorl %ecx,%r11d
188 movl 56(%rsi),%r10d
189 addl %r11d,%edx
190 roll $12,%edx
191 movl %ebx,%r11d
192 addl %eax,%edx
193 xorl %eax,%r11d
194 leal -1502002290(%rcx,%r10,1),%ecx
195 andl %edx,%r11d
196 xorl %ebx,%r11d
197 movl 60(%rsi),%r10d
198 addl %r11d,%ecx
199 roll $17,%ecx
200 movl %eax,%r11d
201 addl %edx,%ecx
202 xorl %edx,%r11d
203 leal 1236535329(%rbx,%r10,1),%ebx
204 andl %ecx,%r11d
205 xorl %eax,%r11d
206 movl 0(%rsi),%r10d
207 addl %r11d,%ebx
208 roll $22,%ebx
209 movl %edx,%r11d
210 addl %ecx,%ebx
211 movl 4(%rsi),%r10d
212 movl %edx,%r11d
213 movl %edx,%r12d
214 notl %r11d
215 leal -165796510(%rax,%r10,1),%eax
216 andl %ebx,%r12d
217 andl %ecx,%r11d
218 movl 24(%rsi),%r10d
219 orl %r11d,%r12d
220 movl %ecx,%r11d
221 addl %r12d,%eax
222 movl %ecx,%r12d
223 roll $5,%eax
224 addl %ebx,%eax
225 notl %r11d
226 leal -1069501632(%rdx,%r10,1),%edx
227 andl %eax,%r12d
228 andl %ebx,%r11d
229 movl 44(%rsi),%r10d
230 orl %r11d,%r12d
231 movl %ebx,%r11d
232 addl %r12d,%edx
233 movl %ebx,%r12d
234 roll $9,%edx
235 addl %eax,%edx
236 notl %r11d
237 leal 643717713(%rcx,%r10,1),%ecx
238 andl %edx,%r12d
239 andl %eax,%r11d
240 movl 0(%rsi),%r10d
241 orl %r11d,%r12d
242 movl %eax,%r11d
243 addl %r12d,%ecx
244 movl %eax,%r12d
245 roll $14,%ecx
246 addl %edx,%ecx
247 notl %r11d
248 leal -373897302(%rbx,%r10,1),%ebx
249 andl %ecx,%r12d
250 andl %edx,%r11d
251 movl 20(%rsi),%r10d
252 orl %r11d,%r12d
253 movl %edx,%r11d
254 addl %r12d,%ebx
255 movl %edx,%r12d
256 roll $20,%ebx
257 addl %ecx,%ebx
258 notl %r11d
259 leal -701558691(%rax,%r10,1),%eax
260 andl %ebx,%r12d
261 andl %ecx,%r11d
262 movl 40(%rsi),%r10d
263 orl %r11d,%r12d
264 movl %ecx,%r11d
265 addl %r12d,%eax
266 movl %ecx,%r12d
267 roll $5,%eax
268 addl %ebx,%eax
269 notl %r11d
270 leal 38016083(%rdx,%r10,1),%edx
271 andl %eax,%r12d
272 andl %ebx,%r11d
273 movl 60(%rsi),%r10d
274 orl %r11d,%r12d
275 movl %ebx,%r11d
276 addl %r12d,%edx
277 movl %ebx,%r12d
278 roll $9,%edx
279 addl %eax,%edx
280 notl %r11d
281 leal -660478335(%rcx,%r10,1),%ecx
282 andl %edx,%r12d
283 andl %eax,%r11d
284 movl 16(%rsi),%r10d
285 orl %r11d,%r12d
286 movl %eax,%r11d
287 addl %r12d,%ecx
288 movl %eax,%r12d
289 roll $14,%ecx
290 addl %edx,%ecx
291 notl %r11d
292 leal -405537848(%rbx,%r10,1),%ebx
293 andl %ecx,%r12d
294 andl %edx,%r11d
295 movl 36(%rsi),%r10d
296 orl %r11d,%r12d
297 movl %edx,%r11d
298 addl %r12d,%ebx
299 movl %edx,%r12d
300 roll $20,%ebx
301 addl %ecx,%ebx
302 notl %r11d
303 leal 568446438(%rax,%r10,1),%eax
304 andl %ebx,%r12d
305 andl %ecx,%r11d
306 movl 56(%rsi),%r10d
307 orl %r11d,%r12d
308 movl %ecx,%r11d
309 addl %r12d,%eax
310 movl %ecx,%r12d
311 roll $5,%eax
312 addl %ebx,%eax
313 notl %r11d
314 leal -1019803690(%rdx,%r10,1),%edx
315 andl %eax,%r12d
316 andl %ebx,%r11d
317 movl 12(%rsi),%r10d
318 orl %r11d,%r12d
319 movl %ebx,%r11d
320 addl %r12d,%edx
321 movl %ebx,%r12d
322 roll $9,%edx
323 addl %eax,%edx
324 notl %r11d
325 leal -187363961(%rcx,%r10,1),%ecx
326 andl %edx,%r12d
327 andl %eax,%r11d
328 movl 32(%rsi),%r10d
329 orl %r11d,%r12d
330 movl %eax,%r11d
331 addl %r12d,%ecx
332 movl %eax,%r12d
333 roll $14,%ecx
334 addl %edx,%ecx
335 notl %r11d
336 leal 1163531501(%rbx,%r10,1),%ebx
337 andl %ecx,%r12d
338 andl %edx,%r11d
339 movl 52(%rsi),%r10d
340 orl %r11d,%r12d
341 movl %edx,%r11d
342 addl %r12d,%ebx
343 movl %edx,%r12d
344 roll $20,%ebx
345 addl %ecx,%ebx
346 notl %r11d
347 leal -1444681467(%rax,%r10,1),%eax
348 andl %ebx,%r12d
349 andl %ecx,%r11d
350 movl 8(%rsi),%r10d
351 orl %r11d,%r12d
352 movl %ecx,%r11d
353 addl %r12d,%eax
354 movl %ecx,%r12d
355 roll $5,%eax
356 addl %ebx,%eax
357 notl %r11d
358 leal -51403784(%rdx,%r10,1),%edx
359 andl %eax,%r12d
360 andl %ebx,%r11d
361 movl 28(%rsi),%r10d
362 orl %r11d,%r12d
363 movl %ebx,%r11d
364 addl %r12d,%edx
365 movl %ebx,%r12d
366 roll $9,%edx
367 addl %eax,%edx
368 notl %r11d
369 leal 1735328473(%rcx,%r10,1),%ecx
370 andl %edx,%r12d
371 andl %eax,%r11d
372 movl 48(%rsi),%r10d
373 orl %r11d,%r12d
374 movl %eax,%r11d
375 addl %r12d,%ecx
376 movl %eax,%r12d
377 roll $14,%ecx
378 addl %edx,%ecx
379 notl %r11d
380 leal -1926607734(%rbx,%r10,1),%ebx
381 andl %ecx,%r12d
382 andl %edx,%r11d
383 movl 0(%rsi),%r10d
384 orl %r11d,%r12d
385 movl %edx,%r11d
386 addl %r12d,%ebx
387 movl %edx,%r12d
388 roll $20,%ebx
389 addl %ecx,%ebx
390 movl 20(%rsi),%r10d
391 movl %ecx,%r11d
392 leal -378558(%rax,%r10,1),%eax
393 movl 32(%rsi),%r10d
394 xorl %edx,%r11d
395 xorl %ebx,%r11d
396 addl %r11d,%eax
397 roll $4,%eax
398 movl %ebx,%r11d
399 addl %ebx,%eax
400 leal -2022574463(%rdx,%r10,1),%edx
401 movl 44(%rsi),%r10d
402 xorl %ecx,%r11d
403 xorl %eax,%r11d
404 addl %r11d,%edx
405 roll $11,%edx
406 movl %eax,%r11d
407 addl %eax,%edx
408 leal 1839030562(%rcx,%r10,1),%ecx
409 movl 56(%rsi),%r10d
410 xorl %ebx,%r11d
411 xorl %edx,%r11d
412 addl %r11d,%ecx
413 roll $16,%ecx
414 movl %edx,%r11d
415 addl %edx,%ecx
416 leal -35309556(%rbx,%r10,1),%ebx
417 movl 4(%rsi),%r10d
418 xorl %eax,%r11d
419 xorl %ecx,%r11d
420 addl %r11d,%ebx
421 roll $23,%ebx
422 movl %ecx,%r11d
423 addl %ecx,%ebx
424 leal -1530992060(%rax,%r10,1),%eax
425 movl 16(%rsi),%r10d
426 xorl %edx,%r11d
427 xorl %ebx,%r11d
428 addl %r11d,%eax
429 roll $4,%eax
430 movl %ebx,%r11d
431 addl %ebx,%eax
432 leal 1272893353(%rdx,%r10,1),%edx
433 movl 28(%rsi),%r10d
434 xorl %ecx,%r11d
435 xorl %eax,%r11d
436 addl %r11d,%edx
437 roll $11,%edx
438 movl %eax,%r11d
439 addl %eax,%edx
440 leal -155497632(%rcx,%r10,1),%ecx
441 movl 40(%rsi),%r10d
442 xorl %ebx,%r11d
443 xorl %edx,%r11d
444 addl %r11d,%ecx
445 roll $16,%ecx
446 movl %edx,%r11d
447 addl %edx,%ecx
448 leal -1094730640(%rbx,%r10,1),%ebx
449 movl 52(%rsi),%r10d
450 xorl %eax,%r11d
451 xorl %ecx,%r11d
452 addl %r11d,%ebx
453 roll $23,%ebx
454 movl %ecx,%r11d
455 addl %ecx,%ebx
456 leal 681279174(%rax,%r10,1),%eax
457 movl 0(%rsi),%r10d
458 xorl %edx,%r11d
459 xorl %ebx,%r11d
460 addl %r11d,%eax
461 roll $4,%eax
462 movl %ebx,%r11d
463 addl %ebx,%eax
464 leal -358537222(%rdx,%r10,1),%edx
465 movl 12(%rsi),%r10d
466 xorl %ecx,%r11d
467 xorl %eax,%r11d
468 addl %r11d,%edx
469 roll $11,%edx
470 movl %eax,%r11d
471 addl %eax,%edx
472 leal -722521979(%rcx,%r10,1),%ecx
473 movl 24(%rsi),%r10d
474 xorl %ebx,%r11d
475 xorl %edx,%r11d
476 addl %r11d,%ecx
477 roll $16,%ecx
478 movl %edx,%r11d
479 addl %edx,%ecx
480 leal 76029189(%rbx,%r10,1),%ebx
481 movl 36(%rsi),%r10d
482 xorl %eax,%r11d
483 xorl %ecx,%r11d
484 addl %r11d,%ebx
485 roll $23,%ebx
486 movl %ecx,%r11d
487 addl %ecx,%ebx
488 leal -640364487(%rax,%r10,1),%eax
489 movl 48(%rsi),%r10d
490 xorl %edx,%r11d
491 xorl %ebx,%r11d
492 addl %r11d,%eax
493 roll $4,%eax
494 movl %ebx,%r11d
495 addl %ebx,%eax
496 leal -421815835(%rdx,%r10,1),%edx
497 movl 60(%rsi),%r10d
498 xorl %ecx,%r11d
499 xorl %eax,%r11d
500 addl %r11d,%edx
501 roll $11,%edx
502 movl %eax,%r11d
503 addl %eax,%edx
504 leal 530742520(%rcx,%r10,1),%ecx
505 movl 8(%rsi),%r10d
506 xorl %ebx,%r11d
507 xorl %edx,%r11d
508 addl %r11d,%ecx
509 roll $16,%ecx
510 movl %edx,%r11d
511 addl %edx,%ecx
512 leal -995338651(%rbx,%r10,1),%ebx
513 movl 0(%rsi),%r10d
514 xorl %eax,%r11d
515 xorl %ecx,%r11d
516 addl %r11d,%ebx
517 roll $23,%ebx
518 movl %ecx,%r11d
519 addl %ecx,%ebx
520 movl 0(%rsi),%r10d
521 movl $0xffffffff,%r11d
522 xorl %edx,%r11d
523 leal -198630844(%rax,%r10,1),%eax
524 orl %ebx,%r11d
525 xorl %ecx,%r11d
526 addl %r11d,%eax
527 movl 28(%rsi),%r10d
528 movl $0xffffffff,%r11d
529 roll $6,%eax
530 xorl %ecx,%r11d
531 addl %ebx,%eax
532 leal 1126891415(%rdx,%r10,1),%edx
533 orl %eax,%r11d
534 xorl %ebx,%r11d
535 addl %r11d,%edx
536 movl 56(%rsi),%r10d
537 movl $0xffffffff,%r11d
538 roll $10,%edx
539 xorl %ebx,%r11d
540 addl %eax,%edx
541 leal -1416354905(%rcx,%r10,1),%ecx
542 orl %edx,%r11d
543 xorl %eax,%r11d
544 addl %r11d,%ecx
545 movl 20(%rsi),%r10d
546 movl $0xffffffff,%r11d
547 roll $15,%ecx
548 xorl %eax,%r11d
549 addl %edx,%ecx
550 leal -57434055(%rbx,%r10,1),%ebx
551 orl %ecx,%r11d
552 xorl %edx,%r11d
553 addl %r11d,%ebx
554 movl 48(%rsi),%r10d
555 movl $0xffffffff,%r11d
556 roll $21,%ebx
557 xorl %edx,%r11d
558 addl %ecx,%ebx
559 leal 1700485571(%rax,%r10,1),%eax
560 orl %ebx,%r11d
561 xorl %ecx,%r11d
562 addl %r11d,%eax
563 movl 12(%rsi),%r10d
564 movl $0xffffffff,%r11d
565 roll $6,%eax
566 xorl %ecx,%r11d
567 addl %ebx,%eax
568 leal -1894986606(%rdx,%r10,1),%edx
569 orl %eax,%r11d
570 xorl %ebx,%r11d
571 addl %r11d,%edx
572 movl 40(%rsi),%r10d
573 movl $0xffffffff,%r11d
574 roll $10,%edx
575 xorl %ebx,%r11d
576 addl %eax,%edx
577 leal -1051523(%rcx,%r10,1),%ecx
578 orl %edx,%r11d
579 xorl %eax,%r11d
580 addl %r11d,%ecx
581 movl 4(%rsi),%r10d
582 movl $0xffffffff,%r11d
583 roll $15,%ecx
584 xorl %eax,%r11d
585 addl %edx,%ecx
586 leal -2054922799(%rbx,%r10,1),%ebx
587 orl %ecx,%r11d
588 xorl %edx,%r11d
589 addl %r11d,%ebx
590 movl 32(%rsi),%r10d
591 movl $0xffffffff,%r11d
592 roll $21,%ebx
593 xorl %edx,%r11d
594 addl %ecx,%ebx
595 leal 1873313359(%rax,%r10,1),%eax
596 orl %ebx,%r11d
597 xorl %ecx,%r11d
598 addl %r11d,%eax
599 movl 60(%rsi),%r10d
600 movl $0xffffffff,%r11d
601 roll $6,%eax
602 xorl %ecx,%r11d
603 addl %ebx,%eax
604 leal -30611744(%rdx,%r10,1),%edx
605 orl %eax,%r11d
606 xorl %ebx,%r11d
607 addl %r11d,%edx
608 movl 24(%rsi),%r10d
609 movl $0xffffffff,%r11d
610 roll $10,%edx
611 xorl %ebx,%r11d
612 addl %eax,%edx
613 leal -1560198380(%rcx,%r10,1),%ecx
614 orl %edx,%r11d
615 xorl %eax,%r11d
616 addl %r11d,%ecx
617 movl 52(%rsi),%r10d
618 movl $0xffffffff,%r11d
619 roll $15,%ecx
620 xorl %eax,%r11d
621 addl %edx,%ecx
622 leal 1309151649(%rbx,%r10,1),%ebx
623 orl %ecx,%r11d
624 xorl %edx,%r11d
625 addl %r11d,%ebx
626 movl 16(%rsi),%r10d
627 movl $0xffffffff,%r11d
628 roll $21,%ebx
629 xorl %edx,%r11d
630 addl %ecx,%ebx
631 leal -145523070(%rax,%r10,1),%eax
632 orl %ebx,%r11d
633 xorl %ecx,%r11d
634 addl %r11d,%eax
635 movl 44(%rsi),%r10d
636 movl $0xffffffff,%r11d
637 roll $6,%eax
638 xorl %ecx,%r11d
639 addl %ebx,%eax
640 leal -1120210379(%rdx,%r10,1),%edx
641 orl %eax,%r11d
642 xorl %ebx,%r11d
643 addl %r11d,%edx
644 movl 8(%rsi),%r10d
645 movl $0xffffffff,%r11d
646 roll $10,%edx
647 xorl %ebx,%r11d
648 addl %eax,%edx
649 leal 718787259(%rcx,%r10,1),%ecx
650 orl %edx,%r11d
651 xorl %eax,%r11d
652 addl %r11d,%ecx
653 movl 36(%rsi),%r10d
654 movl $0xffffffff,%r11d
655 roll $15,%ecx
656 xorl %eax,%r11d
657 addl %edx,%ecx
658 leal -343485551(%rbx,%r10,1),%ebx
659 orl %ecx,%r11d
660 xorl %edx,%r11d
661 addl %r11d,%ebx
662 movl 0(%rsi),%r10d
663 movl $0xffffffff,%r11d
664 roll $21,%ebx
665 xorl %edx,%r11d
666 addl %ecx,%ebx
667
668 addl %r8d,%eax
669 addl %r9d,%ebx
670 addl %r14d,%ecx
671 addl %r15d,%edx
672
673
674 addq $64,%rsi
675 cmpq %rdi,%rsi
676 jb .Lloop
677
678
679.Lend:
680 movl %eax,0(%rbp)
681 movl %ebx,4(%rbp)
682 movl %ecx,8(%rbp)
683 movl %edx,12(%rbp)
684
685 movq (%rsp),%r15
686.cfi_restore r15
687 movq 8(%rsp),%r14
688.cfi_restore r14
689 movq 16(%rsp),%r12
690.cfi_restore r12
691 movq 24(%rsp),%rbx
692.cfi_restore rbx
693 movq 32(%rsp),%rbp
694.cfi_restore rbp
695 addq $40,%rsp
696.cfi_adjust_cfa_offset -40
697.Lepilogue:
698 .byte 0xf3,0xc3
699.cfi_endproc
700.size md5_block_asm_data_order,.-md5_block_asm_data_order
701#endif
702