OLD | NEW |
1 OPTION DOTNAME | 1 OPTION DOTNAME |
2 .text$» SEGMENT ALIGN(64) 'CODE' | 2 .text$» SEGMENT ALIGN(256) 'CODE' |
3 | 3 |
4 EXTERN OPENSSL_ia32cap_P:NEAR | 4 EXTERN OPENSSL_ia32cap_P:NEAR |
5 | 5 |
6 PUBLIC bn_mul_mont_gather5 | 6 PUBLIC bn_mul_mont_gather5 |
7 | 7 |
8 ALIGN 64 | 8 ALIGN 64 |
9 bn_mul_mont_gather5 PROC PUBLIC | 9 bn_mul_mont_gather5 PROC PUBLIC |
10 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue | 10 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue |
11 mov QWORD PTR[16+rsp],rsi | 11 mov QWORD PTR[16+rsp],rsi |
12 mov rax,rsp | 12 mov rax,rsp |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 and r11,7 | 50 and r11,7 |
51 not r10 | 51 not r10 |
52 lea rax,QWORD PTR[$L$magic_masks] | 52 lea rax,QWORD PTR[$L$magic_masks] |
53 and r10,3 | 53 and r10,3 |
54 lea r12,QWORD PTR[96+r11*8+r12] | 54 lea r12,QWORD PTR[96+r11*8+r12] |
55 movq xmm4,QWORD PTR[r10*8+rax] | 55 movq xmm4,QWORD PTR[r10*8+rax] |
56 movq xmm5,QWORD PTR[8+r10*8+rax] | 56 movq xmm5,QWORD PTR[8+r10*8+rax] |
57 movq xmm6,QWORD PTR[16+r10*8+rax] | 57 movq xmm6,QWORD PTR[16+r10*8+rax] |
58 movq xmm7,QWORD PTR[24+r10*8+rax] | 58 movq xmm7,QWORD PTR[24+r10*8+rax] |
59 | 59 |
60 » movq» xmm0,QWORD PTR[(((-96)))+r12] | 60 » movq» xmm0,QWORD PTR[((-96))+r12] |
61 movq xmm1,QWORD PTR[((-32))+r12] | 61 movq xmm1,QWORD PTR[((-32))+r12] |
62 pand xmm0,xmm4 | 62 pand xmm0,xmm4 |
63 movq xmm2,QWORD PTR[32+r12] | 63 movq xmm2,QWORD PTR[32+r12] |
64 pand xmm1,xmm5 | 64 pand xmm1,xmm5 |
65 movq xmm3,QWORD PTR[96+r12] | 65 movq xmm3,QWORD PTR[96+r12] |
66 pand xmm2,xmm6 | 66 pand xmm2,xmm6 |
67 por xmm0,xmm1 | 67 por xmm0,xmm1 |
68 pand xmm3,xmm7 | 68 pand xmm3,xmm7 |
69 por xmm0,xmm2 | 69 por xmm0,xmm2 |
70 lea r12,QWORD PTR[256+r12] | 70 lea r12,QWORD PTR[256+r12] |
71 por xmm0,xmm3 | 71 por xmm0,xmm3 |
72 | 72 |
73 DB 102,72,15,126,195 | 73 DB 102,72,15,126,195 |
74 | 74 |
75 mov r8,QWORD PTR[r8] | 75 mov r8,QWORD PTR[r8] |
76 mov rax,QWORD PTR[rsi] | 76 mov rax,QWORD PTR[rsi] |
77 | 77 |
78 xor r14,r14 | 78 xor r14,r14 |
79 xor r15,r15 | 79 xor r15,r15 |
80 | 80 |
81 » movq» xmm0,QWORD PTR[(((-96)))+r12] | 81 » movq» xmm0,QWORD PTR[((-96))+r12] |
82 movq xmm1,QWORD PTR[((-32))+r12] | 82 movq xmm1,QWORD PTR[((-32))+r12] |
83 pand xmm0,xmm4 | 83 pand xmm0,xmm4 |
84 movq xmm2,QWORD PTR[32+r12] | 84 movq xmm2,QWORD PTR[32+r12] |
85 pand xmm1,xmm5 | 85 pand xmm1,xmm5 |
86 | 86 |
87 mov rbp,r8 | 87 mov rbp,r8 |
88 mul rbx | 88 mul rbx |
89 mov r10,rax | 89 mov r10,rax |
90 mov rax,QWORD PTR[rcx] | 90 mov rax,QWORD PTR[rcx] |
91 | 91 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
151 mov QWORD PTR[r9*8+rsp],rdx | 151 mov QWORD PTR[r9*8+rsp],rdx |
152 | 152 |
153 lea r14,QWORD PTR[1+r14] | 153 lea r14,QWORD PTR[1+r14] |
154 jmp $L$outer | 154 jmp $L$outer |
155 ALIGN 16 | 155 ALIGN 16 |
156 $L$outer:: | 156 $L$outer:: |
157 xor r15,r15 | 157 xor r15,r15 |
158 mov rbp,r8 | 158 mov rbp,r8 |
159 mov r10,QWORD PTR[rsp] | 159 mov r10,QWORD PTR[rsp] |
160 | 160 |
161 » movq» xmm0,QWORD PTR[(((-96)))+r12] | 161 » movq» xmm0,QWORD PTR[((-96))+r12] |
162 movq xmm1,QWORD PTR[((-32))+r12] | 162 movq xmm1,QWORD PTR[((-32))+r12] |
163 pand xmm0,xmm4 | 163 pand xmm0,xmm4 |
164 movq xmm2,QWORD PTR[32+r12] | 164 movq xmm2,QWORD PTR[32+r12] |
165 pand xmm1,xmm5 | 165 pand xmm1,xmm5 |
166 | 166 |
167 mul rbx | 167 mul rbx |
168 add r10,rax | 168 add r10,rax |
169 mov rax,QWORD PTR[rcx] | 169 mov rax,QWORD PTR[rcx] |
170 adc rdx,0 | 170 adc rdx,0 |
171 | 171 |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
383 lea rax,QWORD PTR[$L$magic_masks] | 383 lea rax,QWORD PTR[$L$magic_masks] |
384 and r10,3 | 384 and r10,3 |
385 lea r12,QWORD PTR[96+r11*8+rdx] | 385 lea r12,QWORD PTR[96+r11*8+rdx] |
386 movq xmm4,QWORD PTR[r10*8+rax] | 386 movq xmm4,QWORD PTR[r10*8+rax] |
387 movq xmm5,QWORD PTR[8+r10*8+rax] | 387 movq xmm5,QWORD PTR[8+r10*8+rax] |
388 add r11,7 | 388 add r11,7 |
389 movq xmm6,QWORD PTR[16+r10*8+rax] | 389 movq xmm6,QWORD PTR[16+r10*8+rax] |
390 movq xmm7,QWORD PTR[24+r10*8+rax] | 390 movq xmm7,QWORD PTR[24+r10*8+rax] |
391 and r11,7 | 391 and r11,7 |
392 | 392 |
393 » movq» xmm0,QWORD PTR[(((-96)))+r12] | 393 » movq» xmm0,QWORD PTR[((-96))+r12] |
394 lea r14,QWORD PTR[256+r12] | 394 lea r14,QWORD PTR[256+r12] |
395 movq xmm1,QWORD PTR[((-32))+r12] | 395 movq xmm1,QWORD PTR[((-32))+r12] |
396 pand xmm0,xmm4 | 396 pand xmm0,xmm4 |
397 movq xmm2,QWORD PTR[32+r12] | 397 movq xmm2,QWORD PTR[32+r12] |
398 pand xmm1,xmm5 | 398 pand xmm1,xmm5 |
399 movq xmm3,QWORD PTR[96+r12] | 399 movq xmm3,QWORD PTR[96+r12] |
400 pand xmm2,xmm6 | 400 pand xmm2,xmm6 |
401 DB 067h | 401 DB 067h |
402 por xmm0,xmm1 | 402 por xmm0,xmm1 |
403 movq xmm1,QWORD PTR[((-96))+r14] | 403 movq xmm1,QWORD PTR[((-96))+r14] |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
581 | 581 |
582 ALIGN 32 | 582 ALIGN 32 |
583 $L$outer4x:: | 583 $L$outer4x:: |
584 mov r10,QWORD PTR[r9*1+r14] | 584 mov r10,QWORD PTR[r9*1+r14] |
585 mov rbp,r8 | 585 mov rbp,r8 |
586 mul rbx | 586 mul rbx |
587 add r10,rax | 587 add r10,rax |
588 mov rax,QWORD PTR[rcx] | 588 mov rax,QWORD PTR[rcx] |
589 adc rdx,0 | 589 adc rdx,0 |
590 | 590 |
591 » movq» xmm0,QWORD PTR[(((-96)))+r12] | 591 » movq» xmm0,QWORD PTR[((-96))+r12] |
592 movq xmm1,QWORD PTR[((-32))+r12] | 592 movq xmm1,QWORD PTR[((-32))+r12] |
593 pand xmm0,xmm4 | 593 pand xmm0,xmm4 |
594 movq xmm2,QWORD PTR[32+r12] | 594 movq xmm2,QWORD PTR[32+r12] |
595 pand xmm1,xmm5 | 595 pand xmm1,xmm5 |
596 movq xmm3,QWORD PTR[96+r12] | 596 movq xmm3,QWORD PTR[96+r12] |
597 | 597 |
598 imul rbp,r10 | 598 imul rbp,r10 |
599 DB 067h | 599 DB 067h |
600 mov r11,rdx | 600 mov r11,rdx |
601 mov QWORD PTR[r14],rdi | 601 mov QWORD PTR[r14],rdi |
(...skipping 1273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1875 lea rax,QWORD PTR[$L$magic_masks] | 1875 lea rax,QWORD PTR[$L$magic_masks] |
1876 and r9d,3 | 1876 and r9d,3 |
1877 lea r8,QWORD PTR[128+r11*8+r8] | 1877 lea r8,QWORD PTR[128+r11*8+r8] |
1878 movq xmm4,QWORD PTR[r9*8+rax] | 1878 movq xmm4,QWORD PTR[r9*8+rax] |
1879 movq xmm5,QWORD PTR[8+r9*8+rax] | 1879 movq xmm5,QWORD PTR[8+r9*8+rax] |
1880 movq xmm6,QWORD PTR[16+r9*8+rax] | 1880 movq xmm6,QWORD PTR[16+r9*8+rax] |
1881 movq xmm7,QWORD PTR[24+r9*8+rax] | 1881 movq xmm7,QWORD PTR[24+r9*8+rax] |
1882 jmp $L$gather | 1882 jmp $L$gather |
1883 ALIGN 16 | 1883 ALIGN 16 |
1884 $L$gather:: | 1884 $L$gather:: |
1885 » movq» xmm0,QWORD PTR[(((-128)))+r8] | 1885 » movq» xmm0,QWORD PTR[((-128))+r8] |
1886 movq xmm1,QWORD PTR[((-64))+r8] | 1886 movq xmm1,QWORD PTR[((-64))+r8] |
1887 pand xmm0,xmm4 | 1887 pand xmm0,xmm4 |
1888 movq xmm2,QWORD PTR[r8] | 1888 movq xmm2,QWORD PTR[r8] |
1889 pand xmm1,xmm5 | 1889 pand xmm1,xmm5 |
1890 movq xmm3,QWORD PTR[64+r8] | 1890 movq xmm3,QWORD PTR[64+r8] |
1891 pand xmm2,xmm6 | 1891 pand xmm2,xmm6 |
1892 por xmm0,xmm1 | 1892 por xmm0,xmm1 |
1893 pand xmm3,xmm7 | 1893 pand xmm3,xmm7 |
1894 DB 067h,067h | 1894 DB 067h,067h |
1895 por xmm0,xmm2 | 1895 por xmm0,xmm2 |
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2066 ALIGN 8 | 2066 ALIGN 8 |
2067 $L$SEH_info_bn_gather5:: | 2067 $L$SEH_info_bn_gather5:: |
2068 DB 001h,00dh,005h,000h | 2068 DB 001h,00dh,005h,000h |
2069 DB 00dh,078h,001h,000h | 2069 DB 00dh,078h,001h,000h |
2070 DB 008h,068h,000h,000h | 2070 DB 008h,068h,000h,000h |
2071 DB 004h,042h,000h,000h | 2071 DB 004h,042h,000h,000h |
2072 ALIGN 8 | 2072 ALIGN 8 |
2073 | 2073 |
2074 .xdata ENDS | 2074 .xdata ENDS |
2075 END | 2075 END |
OLD | NEW |