Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(119)

Side by Side Diff: third_party/boringssl/mac-x86_64/crypto/bn/x86_64-mont5.S

Issue 2695223006: Roll src/third_party/boringssl/src dc8c1d962..0f28691d3 (Closed)
Patch Set: Use correct parent. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #if defined(__x86_64__) 1 #if defined(__x86_64__)
2 .text 2 .text
3 3
4 4
5 5
6 .globl _bn_mul_mont_gather5 6 .globl _bn_mul_mont_gather5
7 .private_extern _bn_mul_mont_gather5 7 .private_extern _bn_mul_mont_gather5
8 8
9 .p2align 6 9 .p2align 6
10 _bn_mul_mont_gather5: 10 _bn_mul_mont_gather5:
11 movl %r9d,%r9d
12 movq %rsp,%rax
11 testl $7,%r9d 13 testl $7,%r9d
12 jnz L$mul_enter 14 jnz L$mul_enter
13 jmp L$mul4x_enter 15 jmp L$mul4x_enter
14 16
15 .p2align 4 17 .p2align 4
16 L$mul_enter: 18 L$mul_enter:
17 movl %r9d,%r9d
18 movq %rsp,%rax
19 movd 8(%rsp),%xmm5 19 movd 8(%rsp),%xmm5
20 leaq L$inc(%rip),%r10
21 pushq %rbx 20 pushq %rbx
22 pushq %rbp 21 pushq %rbp
23 pushq %r12 22 pushq %r12
24 pushq %r13 23 pushq %r13
25 pushq %r14 24 pushq %r14
26 pushq %r15 25 pushq %r15
27 26
28 » leaq» 2(%r9),%r11 27 » negq» %r9
29 » negq» %r11 28 » movq» %rsp,%r11
30 » leaq» -264(%rsp,%r11,8),%rsp 29 » leaq» -280(%rsp,%r9,8),%r10
31 » andq» $-1024,%rsp 30 » negq» %r9
31 » andq» $-1024,%r10
32 32
33
34
35
36
37
38
39
40
41 subq %r10,%r11
42 andq $-4096,%r11
43 leaq (%r10,%r11,1),%rsp
44 movq (%rsp),%r11
45 cmpq %r10,%rsp
46 ja L$mul_page_walk
47 jmp L$mul_page_walk_done
48
49 L$mul_page_walk:
50 leaq -4096(%rsp),%rsp
51 movq (%rsp),%r11
52 cmpq %r10,%rsp
53 ja L$mul_page_walk
54 L$mul_page_walk_done:
55
56 leaq L$inc(%rip),%r10
33 movq %rax,8(%rsp,%r9,8) 57 movq %rax,8(%rsp,%r9,8)
34 L$mul_body: 58 L$mul_body:
59
35 leaq 128(%rdx),%r12 60 leaq 128(%rdx),%r12
36 movdqa 0(%r10),%xmm0 61 movdqa 0(%r10),%xmm0
37 movdqa 16(%r10),%xmm1 62 movdqa 16(%r10),%xmm1
38 leaq 24-112(%rsp,%r9,8),%r10 63 leaq 24-112(%rsp,%r9,8),%r10
39 andq $-16,%r10 64 andq $-16,%r10
40 65
41 pshufd $0,%xmm5,%xmm5 66 pshufd $0,%xmm5,%xmm5
42 movdqa %xmm1,%xmm4 67 movdqa %xmm1,%xmm4
43 movdqa %xmm1,%xmm2 68 movdqa %xmm1,%xmm2
44 paddd %xmm0,%xmm1 69 paddd %xmm0,%xmm1
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 .p2align 4 388 .p2align 4
364 L$sub: sbbq (%rcx,%r14,8),%rax 389 L$sub: sbbq (%rcx,%r14,8),%rax
365 movq %rax,(%rdi,%r14,8) 390 movq %rax,(%rdi,%r14,8)
366 movq 8(%rsi,%r14,8),%rax 391 movq 8(%rsi,%r14,8),%rax
367 leaq 1(%r14),%r14 392 leaq 1(%r14),%r14
368 decq %r15 393 decq %r15
369 jnz L$sub 394 jnz L$sub
370 395
371 sbbq $0,%rax 396 sbbq $0,%rax
372 xorq %r14,%r14 397 xorq %r14,%r14
398 andq %rax,%rsi
399 notq %rax
400 movq %rdi,%rcx
401 andq %rax,%rcx
373 movq %r9,%r15 402 movq %r9,%r15
403 orq %rcx,%rsi
374 .p2align 4 404 .p2align 4
375 L$copy: 405 L$copy:
376 » movq» (%rsp,%r14,8),%rsi 406 » movq» (%rsi,%r14,8),%rax
377 » movq» (%rdi,%r14,8),%rcx
378 » xorq» %rcx,%rsi
379 » andq» %rax,%rsi
380 » xorq» %rcx,%rsi
381 movq %r14,(%rsp,%r14,8) 407 movq %r14,(%rsp,%r14,8)
382 » movq» %rsi,(%rdi,%r14,8) 408 » movq» %rax,(%rdi,%r14,8)
383 leaq 1(%r14),%r14 409 leaq 1(%r14),%r14
384 subq $1,%r15 410 subq $1,%r15
385 jnz L$copy 411 jnz L$copy
386 412
387 movq 8(%rsp,%r9,8),%rsi 413 movq 8(%rsp,%r9,8),%rsi
388 movq $1,%rax 414 movq $1,%rax
389 415
390 movq -48(%rsi),%r15 416 movq -48(%rsi),%r15
391 movq -40(%rsi),%r14 417 movq -40(%rsi),%r14
392 movq -32(%rsi),%r13 418 movq -32(%rsi),%r13
393 movq -24(%rsi),%r12 419 movq -24(%rsi),%r12
394 movq -16(%rsi),%rbp 420 movq -16(%rsi),%rbp
395 movq -8(%rsi),%rbx 421 movq -8(%rsi),%rbx
396 leaq (%rsi),%rsp 422 leaq (%rsi),%rsp
397 L$mul_epilogue: 423 L$mul_epilogue:
398 .byte 0xf3,0xc3 424 .byte 0xf3,0xc3
399 425
400 426
401 .p2align 5 427 .p2align 5
402 bn_mul4x_mont_gather5: 428 bn_mul4x_mont_gather5:
403 L$mul4x_enter:
404 .byte 0x67 429 .byte 0x67
405 movq %rsp,%rax 430 movq %rsp,%rax
431 L$mul4x_enter:
406 pushq %rbx 432 pushq %rbx
407 pushq %rbp 433 pushq %rbp
408 pushq %r12 434 pushq %r12
409 pushq %r13 435 pushq %r13
410 pushq %r14 436 pushq %r14
411 pushq %r15 437 pushq %r15
438 L$mul4x_prologue:
412 439
413 .byte 0x67 440 .byte 0x67
414 shll $3,%r9d 441 shll $3,%r9d
415 leaq (%r9,%r9,2),%r10 442 leaq (%r9,%r9,2),%r10
416 negq %r9 443 negq %r9
417 444
418 445
419 446
420 447
421 448
422 449
423 450
424 451
425 452
426 453
427 leaq -320(%rsp,%r9,2),%r11 454 leaq -320(%rsp,%r9,2),%r11
455 movq %rsp,%rbp
428 subq %rdi,%r11 456 subq %rdi,%r11
429 andq $4095,%r11 457 andq $4095,%r11
430 cmpq %r11,%r10 458 cmpq %r11,%r10
431 jb L$mul4xsp_alt 459 jb L$mul4xsp_alt
432 » subq» %r11,%rsp 460 » subq» %r11,%rbp
433 » leaq» -320(%rsp,%r9,2),%rsp 461 » leaq» -320(%rbp,%r9,2),%rbp
434 jmp L$mul4xsp_done 462 jmp L$mul4xsp_done
435 463
436 .p2align 5 464 .p2align 5
437 L$mul4xsp_alt: 465 L$mul4xsp_alt:
438 leaq 4096-320(,%r9,2),%r10 466 leaq 4096-320(,%r9,2),%r10
439 » leaq» -320(%rsp,%r9,2),%rsp 467 » leaq» -320(%rbp,%r9,2),%rbp
440 subq %r10,%r11 468 subq %r10,%r11
441 movq $0,%r10 469 movq $0,%r10
442 cmovcq %r10,%r11 470 cmovcq %r10,%r11
443 » subq» %r11,%rsp 471 » subq» %r11,%rbp
444 L$mul4xsp_done: 472 L$mul4xsp_done:
445 » andq» $-64,%rsp 473 » andq» $-64,%rbp
474 » movq» %rsp,%r11
475 » subq» %rbp,%r11
476 » andq» $-4096,%r11
477 » leaq» (%r11,%rbp,1),%rsp
478 » movq» (%rsp),%r10
479 » cmpq» %rbp,%rsp
480 » ja» L$mul4x_page_walk
481 » jmp» L$mul4x_page_walk_done
482
483 L$mul4x_page_walk:
484 » leaq» -4096(%rsp),%rsp
485 » movq» (%rsp),%r10
486 » cmpq» %rbp,%rsp
487 » ja» L$mul4x_page_walk
488 L$mul4x_page_walk_done:
489
446 negq %r9 490 negq %r9
447 491
448 movq %rax,40(%rsp) 492 movq %rax,40(%rsp)
449 L$mul4x_body: 493 L$mul4x_body:
450 494
451 call mul4x_internal 495 call mul4x_internal
452 496
453 movq 40(%rsp),%rsi 497 movq 40(%rsp),%rsi
454 movq $1,%rax 498 movq $1,%rax
455 499
(...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after
994 1038
995 .p2align 5 1039 .p2align 5
996 _bn_power5: 1040 _bn_power5:
997 movq %rsp,%rax 1041 movq %rsp,%rax
998 pushq %rbx 1042 pushq %rbx
999 pushq %rbp 1043 pushq %rbp
1000 pushq %r12 1044 pushq %r12
1001 pushq %r13 1045 pushq %r13
1002 pushq %r14 1046 pushq %r14
1003 pushq %r15 1047 pushq %r15
1048 L$power5_prologue:
1004 1049
1005 shll $3,%r9d 1050 shll $3,%r9d
1006 leal (%r9,%r9,2),%r10d 1051 leal (%r9,%r9,2),%r10d
1007 negq %r9 1052 negq %r9
1008 movq (%r8),%r8 1053 movq (%r8),%r8
1009 1054
1010 1055
1011 1056
1012 1057
1013 1058
1014 1059
1015 1060
1016 1061
1017 leaq -320(%rsp,%r9,2),%r11 1062 leaq -320(%rsp,%r9,2),%r11
1063 movq %rsp,%rbp
1018 subq %rdi,%r11 1064 subq %rdi,%r11
1019 andq $4095,%r11 1065 andq $4095,%r11
1020 cmpq %r11,%r10 1066 cmpq %r11,%r10
1021 jb L$pwr_sp_alt 1067 jb L$pwr_sp_alt
1022 » subq» %r11,%rsp 1068 » subq» %r11,%rbp
1023 » leaq» -320(%rsp,%r9,2),%rsp 1069 » leaq» -320(%rbp,%r9,2),%rbp
1024 jmp L$pwr_sp_done 1070 jmp L$pwr_sp_done
1025 1071
1026 .p2align 5 1072 .p2align 5
1027 L$pwr_sp_alt: 1073 L$pwr_sp_alt:
1028 leaq 4096-320(,%r9,2),%r10 1074 leaq 4096-320(,%r9,2),%r10
1029 » leaq» -320(%rsp,%r9,2),%rsp 1075 » leaq» -320(%rbp,%r9,2),%rbp
1030 subq %r10,%r11 1076 subq %r10,%r11
1031 movq $0,%r10 1077 movq $0,%r10
1032 cmovcq %r10,%r11 1078 cmovcq %r10,%r11
1033 » subq» %r11,%rsp 1079 » subq» %r11,%rbp
1034 L$pwr_sp_done: 1080 L$pwr_sp_done:
1035 » andq» $-64,%rsp 1081 » andq» $-64,%rbp
1082 » movq» %rsp,%r11
1083 » subq» %rbp,%r11
1084 » andq» $-4096,%r11
1085 » leaq» (%r11,%rbp,1),%rsp
1086 » movq» (%rsp),%r10
1087 » cmpq» %rbp,%rsp
1088 » ja» L$pwr_page_walk
1089 » jmp» L$pwr_page_walk_done
1090
1091 L$pwr_page_walk:
1092 » leaq» -4096(%rsp),%rsp
1093 » movq» (%rsp),%r10
1094 » cmpq» %rbp,%rsp
1095 » ja» L$pwr_page_walk
1096 L$pwr_page_walk_done:
1097
1036 movq %r9,%r10 1098 movq %r9,%r10
1037 negq %r9 1099 negq %r9
1038 1100
1039 1101
1040 1102
1041 1103
1042 1104
1043 1105
1044 1106
1045 1107
(...skipping 890 matching lines...) Expand 10 before | Expand all | Expand 10 after
1936 .p2align 5 1998 .p2align 5
1937 bn_from_mont8x: 1999 bn_from_mont8x:
1938 .byte 0x67 2000 .byte 0x67
1939 movq %rsp,%rax 2001 movq %rsp,%rax
1940 pushq %rbx 2002 pushq %rbx
1941 pushq %rbp 2003 pushq %rbp
1942 pushq %r12 2004 pushq %r12
1943 pushq %r13 2005 pushq %r13
1944 pushq %r14 2006 pushq %r14
1945 pushq %r15 2007 pushq %r15
2008 L$from_prologue:
1946 2009
1947 shll $3,%r9d 2010 shll $3,%r9d
1948 leaq (%r9,%r9,2),%r10 2011 leaq (%r9,%r9,2),%r10
1949 negq %r9 2012 negq %r9
1950 movq (%r8),%r8 2013 movq (%r8),%r8
1951 2014
1952 2015
1953 2016
1954 2017
1955 2018
1956 2019
1957 2020
1958 2021
1959 leaq -320(%rsp,%r9,2),%r11 2022 leaq -320(%rsp,%r9,2),%r11
2023 movq %rsp,%rbp
1960 subq %rdi,%r11 2024 subq %rdi,%r11
1961 andq $4095,%r11 2025 andq $4095,%r11
1962 cmpq %r11,%r10 2026 cmpq %r11,%r10
1963 jb L$from_sp_alt 2027 jb L$from_sp_alt
1964 » subq» %r11,%rsp 2028 » subq» %r11,%rbp
1965 » leaq» -320(%rsp,%r9,2),%rsp 2029 » leaq» -320(%rbp,%r9,2),%rbp
1966 jmp L$from_sp_done 2030 jmp L$from_sp_done
1967 2031
1968 .p2align 5 2032 .p2align 5
1969 L$from_sp_alt: 2033 L$from_sp_alt:
1970 leaq 4096-320(,%r9,2),%r10 2034 leaq 4096-320(,%r9,2),%r10
1971 » leaq» -320(%rsp,%r9,2),%rsp 2035 » leaq» -320(%rbp,%r9,2),%rbp
1972 subq %r10,%r11 2036 subq %r10,%r11
1973 movq $0,%r10 2037 movq $0,%r10
1974 cmovcq %r10,%r11 2038 cmovcq %r10,%r11
1975 » subq» %r11,%rsp 2039 » subq» %r11,%rbp
1976 L$from_sp_done: 2040 L$from_sp_done:
1977 » andq» $-64,%rsp 2041 » andq» $-64,%rbp
2042 » movq» %rsp,%r11
2043 » subq» %rbp,%r11
2044 » andq» $-4096,%r11
2045 » leaq» (%r11,%rbp,1),%rsp
2046 » movq» (%rsp),%r10
2047 » cmpq» %rbp,%rsp
2048 » ja» L$from_page_walk
2049 » jmp» L$from_page_walk_done
2050
2051 L$from_page_walk:
2052 » leaq» -4096(%rsp),%rsp
2053 » movq» (%rsp),%r10
2054 » cmpq» %rbp,%rsp
2055 » ja» L$from_page_walk
2056 L$from_page_walk_done:
2057
1978 movq %r9,%r10 2058 movq %r9,%r10
1979 negq %r9 2059 negq %r9
1980 2060
1981 2061
1982 2062
1983 2063
1984 2064
1985 2065
1986 2066
1987 2067
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
2230 leaq (%r10),%rsp 2310 leaq (%r10),%rsp
2231 .byte 0xf3,0xc3 2311 .byte 0xf3,0xc3
2232 L$SEH_end_bn_gather5: 2312 L$SEH_end_bn_gather5:
2233 2313
2234 .p2align 6 2314 .p2align 6
2235 L$inc: 2315 L$inc:
2236 .long 0,0, 1,1 2316 .long 0,0, 1,1
2237 .long 2,2, 2,2 2317 .long 2,2, 2,2
2238 .byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105 ,99,97,116,105,111,110,32,119,105,116,104,32,115,99,97,116,116,101,114,47,103,97 ,116,104,101,114,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,1 11,114,103,62,0 2318 .byte 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105,112,108,105 ,99,97,116,105,111,110,32,119,105,116,104,32,115,99,97,116,116,101,114,47,103,97 ,116,104,101,114,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,1 11,114,103,62,0
2239 #endif 2319 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698