VirtualBox

source: vbox/trunk/src/libs/openssl-1.1.1j/crypto/genasm-macosx/x86_64-gf2m.S@ 88461

Last change on this file since 88461 was 83531, checked in by vboxsync, 5 years ago

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

File size: 5.0 KB
Line 
1.text
2
3
4.p2align 4
5_mul_1x1:
6
7 subq $128+8,%rsp
8
9 movq $-1,%r9
10 leaq (%rax,%rax,1),%rsi
11 shrq $3,%r9
12 leaq (,%rax,4),%rdi
13 andq %rax,%r9
14 leaq (,%rax,8),%r12
15 sarq $63,%rax
16 leaq (%r9,%r9,1),%r10
17 sarq $63,%rsi
18 leaq (,%r9,4),%r11
19 andq %rbp,%rax
20 sarq $63,%rdi
21 movq %rax,%rdx
22 shlq $63,%rax
23 andq %rbp,%rsi
24 shrq $1,%rdx
25 movq %rsi,%rcx
26 shlq $62,%rsi
27 andq %rbp,%rdi
28 shrq $2,%rcx
29 xorq %rsi,%rax
30 movq %rdi,%rbx
31 shlq $61,%rdi
32 xorq %rcx,%rdx
33 shrq $3,%rbx
34 xorq %rdi,%rax
35 xorq %rbx,%rdx
36
37 movq %r9,%r13
38 movq $0,0(%rsp)
39 xorq %r10,%r13
40 movq %r9,8(%rsp)
41 movq %r11,%r14
42 movq %r10,16(%rsp)
43 xorq %r12,%r14
44 movq %r13,24(%rsp)
45
46 xorq %r11,%r9
47 movq %r11,32(%rsp)
48 xorq %r11,%r10
49 movq %r9,40(%rsp)
50 xorq %r11,%r13
51 movq %r10,48(%rsp)
52 xorq %r14,%r9
53 movq %r13,56(%rsp)
54 xorq %r14,%r10
55
56 movq %r12,64(%rsp)
57 xorq %r14,%r13
58 movq %r9,72(%rsp)
59 xorq %r11,%r9
60 movq %r10,80(%rsp)
61 xorq %r11,%r10
62 movq %r13,88(%rsp)
63
64 xorq %r11,%r13
65 movq %r14,96(%rsp)
66 movq %r8,%rsi
67 movq %r9,104(%rsp)
68 andq %rbp,%rsi
69 movq %r10,112(%rsp)
70 shrq $4,%rbp
71 movq %r13,120(%rsp)
72 movq %r8,%rdi
73 andq %rbp,%rdi
74 shrq $4,%rbp
75
76 movq (%rsp,%rsi,8),%xmm0
77 movq %r8,%rsi
78 andq %rbp,%rsi
79 shrq $4,%rbp
80 movq (%rsp,%rdi,8),%rcx
81 movq %r8,%rdi
82 movq %rcx,%rbx
83 shlq $4,%rcx
84 andq %rbp,%rdi
85 movq (%rsp,%rsi,8),%xmm1
86 shrq $60,%rbx
87 xorq %rcx,%rax
88 pslldq $1,%xmm1
89 movq %r8,%rsi
90 shrq $4,%rbp
91 xorq %rbx,%rdx
92 andq %rbp,%rsi
93 shrq $4,%rbp
94 pxor %xmm1,%xmm0
95 movq (%rsp,%rdi,8),%rcx
96 movq %r8,%rdi
97 movq %rcx,%rbx
98 shlq $12,%rcx
99 andq %rbp,%rdi
100 movq (%rsp,%rsi,8),%xmm1
101 shrq $52,%rbx
102 xorq %rcx,%rax
103 pslldq $2,%xmm1
104 movq %r8,%rsi
105 shrq $4,%rbp
106 xorq %rbx,%rdx
107 andq %rbp,%rsi
108 shrq $4,%rbp
109 pxor %xmm1,%xmm0
110 movq (%rsp,%rdi,8),%rcx
111 movq %r8,%rdi
112 movq %rcx,%rbx
113 shlq $20,%rcx
114 andq %rbp,%rdi
115 movq (%rsp,%rsi,8),%xmm1
116 shrq $44,%rbx
117 xorq %rcx,%rax
118 pslldq $3,%xmm1
119 movq %r8,%rsi
120 shrq $4,%rbp
121 xorq %rbx,%rdx
122 andq %rbp,%rsi
123 shrq $4,%rbp
124 pxor %xmm1,%xmm0
125 movq (%rsp,%rdi,8),%rcx
126 movq %r8,%rdi
127 movq %rcx,%rbx
128 shlq $28,%rcx
129 andq %rbp,%rdi
130 movq (%rsp,%rsi,8),%xmm1
131 shrq $36,%rbx
132 xorq %rcx,%rax
133 pslldq $4,%xmm1
134 movq %r8,%rsi
135 shrq $4,%rbp
136 xorq %rbx,%rdx
137 andq %rbp,%rsi
138 shrq $4,%rbp
139 pxor %xmm1,%xmm0
140 movq (%rsp,%rdi,8),%rcx
141 movq %r8,%rdi
142 movq %rcx,%rbx
143 shlq $36,%rcx
144 andq %rbp,%rdi
145 movq (%rsp,%rsi,8),%xmm1
146 shrq $28,%rbx
147 xorq %rcx,%rax
148 pslldq $5,%xmm1
149 movq %r8,%rsi
150 shrq $4,%rbp
151 xorq %rbx,%rdx
152 andq %rbp,%rsi
153 shrq $4,%rbp
154 pxor %xmm1,%xmm0
155 movq (%rsp,%rdi,8),%rcx
156 movq %r8,%rdi
157 movq %rcx,%rbx
158 shlq $44,%rcx
159 andq %rbp,%rdi
160 movq (%rsp,%rsi,8),%xmm1
161 shrq $20,%rbx
162 xorq %rcx,%rax
163 pslldq $6,%xmm1
164 movq %r8,%rsi
165 shrq $4,%rbp
166 xorq %rbx,%rdx
167 andq %rbp,%rsi
168 shrq $4,%rbp
169 pxor %xmm1,%xmm0
170 movq (%rsp,%rdi,8),%rcx
171 movq %r8,%rdi
172 movq %rcx,%rbx
173 shlq $52,%rcx
174 andq %rbp,%rdi
175 movq (%rsp,%rsi,8),%xmm1
176 shrq $12,%rbx
177 xorq %rcx,%rax
178 pslldq $7,%xmm1
179 movq %r8,%rsi
180 shrq $4,%rbp
181 xorq %rbx,%rdx
182 andq %rbp,%rsi
183 shrq $4,%rbp
184 pxor %xmm1,%xmm0
185 movq (%rsp,%rdi,8),%rcx
186 movq %rcx,%rbx
187 shlq $60,%rcx
188.byte 102,72,15,126,198
189 shrq $4,%rbx
190 xorq %rcx,%rax
191 psrldq $8,%xmm0
192 xorq %rbx,%rdx
193.byte 102,72,15,126,199
194 xorq %rsi,%rax
195 xorq %rdi,%rdx
196
197 addq $128+8,%rsp
198
199 .byte 0xf3,0xc3
200L$end_mul_1x1:
201
202
203
204.globl _bn_GF2m_mul_2x2
205
206.p2align 4
207_bn_GF2m_mul_2x2:
208
209 movq %rsp,%rax
210 movq _OPENSSL_ia32cap_P(%rip),%r10
211 btq $33,%r10
212 jnc L$vanilla_mul_2x2
213
214.byte 102,72,15,110,198
215.byte 102,72,15,110,201
216.byte 102,72,15,110,210
217.byte 102,73,15,110,216
218 movdqa %xmm0,%xmm4
219 movdqa %xmm1,%xmm5
220.byte 102,15,58,68,193,0
221 pxor %xmm2,%xmm4
222 pxor %xmm3,%xmm5
223.byte 102,15,58,68,211,0
224.byte 102,15,58,68,229,0
225 xorps %xmm0,%xmm4
226 xorps %xmm2,%xmm4
227 movdqa %xmm4,%xmm5
228 pslldq $8,%xmm4
229 psrldq $8,%xmm5
230 pxor %xmm4,%xmm2
231 pxor %xmm5,%xmm0
232 movdqu %xmm2,0(%rdi)
233 movdqu %xmm0,16(%rdi)
234 .byte 0xf3,0xc3
235
236.p2align 4
237L$vanilla_mul_2x2:
238 leaq -136(%rsp),%rsp
239
240 movq %r14,80(%rsp)
241
242 movq %r13,88(%rsp)
243
244 movq %r12,96(%rsp)
245
246 movq %rbp,104(%rsp)
247
248 movq %rbx,112(%rsp)
249
250L$body_mul_2x2:
251 movq %rdi,32(%rsp)
252 movq %rsi,40(%rsp)
253 movq %rdx,48(%rsp)
254 movq %rcx,56(%rsp)
255 movq %r8,64(%rsp)
256
257 movq $0xf,%r8
258 movq %rsi,%rax
259 movq %rcx,%rbp
260 call _mul_1x1
261 movq %rax,16(%rsp)
262 movq %rdx,24(%rsp)
263
264 movq 48(%rsp),%rax
265 movq 64(%rsp),%rbp
266 call _mul_1x1
267 movq %rax,0(%rsp)
268 movq %rdx,8(%rsp)
269
270 movq 40(%rsp),%rax
271 movq 56(%rsp),%rbp
272 xorq 48(%rsp),%rax
273 xorq 64(%rsp),%rbp
274 call _mul_1x1
275 movq 0(%rsp),%rbx
276 movq 8(%rsp),%rcx
277 movq 16(%rsp),%rdi
278 movq 24(%rsp),%rsi
279 movq 32(%rsp),%rbp
280
281 xorq %rdx,%rax
282 xorq %rcx,%rdx
283 xorq %rbx,%rax
284 movq %rbx,0(%rbp)
285 xorq %rdi,%rdx
286 movq %rsi,24(%rbp)
287 xorq %rsi,%rax
288 xorq %rsi,%rdx
289 xorq %rdx,%rax
290 movq %rdx,16(%rbp)
291 movq %rax,8(%rbp)
292
293 movq 80(%rsp),%r14
294
295 movq 88(%rsp),%r13
296
297 movq 96(%rsp),%r12
298
299 movq 104(%rsp),%rbp
300
301 movq 112(%rsp),%rbx
302
303 leaq 136(%rsp),%rsp
304
305L$epilogue_mul_2x2:
306 .byte 0xf3,0xc3
307L$end_mul_2x2:
308
309
310.byte 71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,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
311.p2align 4
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