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

Side by Side Diff: openssl/crypto/x86cpuid-mac.S

Issue 2072073002: Delete bundled copy of OpenSSL and replace with README. (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/openssl@master
Patch Set: Delete bundled copy of OpenSSL and replace with README. Created 4 years, 6 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
« no previous file with comments | « openssl/crypto/x86cpuid.pl ('k') | openssl/e_os.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 .file "x86cpuid.s"
2 .text
3 .globl _OPENSSL_ia32_cpuid
4 .align 4
5 _OPENSSL_ia32_cpuid:
6 L_OPENSSL_ia32_cpuid_begin:
7 pushl %ebp
8 pushl %ebx
9 pushl %esi
10 pushl %edi
11 xorl %edx,%edx
12 pushfl
13 popl %eax
14 movl %eax,%ecx
15 xorl $2097152,%eax
16 pushl %eax
17 popfl
18 pushfl
19 popl %eax
20 xorl %eax,%ecx
21 xorl %eax,%eax
22 btl $21,%ecx
23 jnc L000nocpuid
24 .byte 0x0f,0xa2
25 movl %eax,%edi
26 xorl %eax,%eax
27 cmpl $1970169159,%ebx
28 setne %al
29 movl %eax,%ebp
30 cmpl $1231384169,%edx
31 setne %al
32 orl %eax,%ebp
33 cmpl $1818588270,%ecx
34 setne %al
35 orl %eax,%ebp
36 jz L001intel
37 cmpl $1752462657,%ebx
38 setne %al
39 movl %eax,%esi
40 cmpl $1769238117,%edx
41 setne %al
42 orl %eax,%esi
43 cmpl $1145913699,%ecx
44 setne %al
45 orl %eax,%esi
46 jnz L001intel
47 movl $2147483648,%eax
48 .byte 0x0f,0xa2
49 cmpl $2147483649,%eax
50 jb L001intel
51 movl %eax,%esi
52 movl $2147483649,%eax
53 .byte 0x0f,0xa2
54 orl %ecx,%ebp
55 andl $2049,%ebp
56 cmpl $2147483656,%esi
57 jb L001intel
58 movl $2147483656,%eax
59 .byte 0x0f,0xa2
60 movzbl %cl,%esi
61 incl %esi
62 movl $1,%eax
63 .byte 0x0f,0xa2
64 btl $28,%edx
65 jnc L002generic
66 shrl $16,%ebx
67 andl $255,%ebx
68 cmpl %esi,%ebx
69 ja L002generic
70 andl $4026531839,%edx
71 jmp L002generic
72 L001intel:
73 cmpl $4,%edi
74 movl $-1,%edi
75 jb L003nocacheinfo
76 movl $4,%eax
77 movl $0,%ecx
78 .byte 0x0f,0xa2
79 movl %eax,%edi
80 shrl $14,%edi
81 andl $4095,%edi
82 L003nocacheinfo:
83 movl $1,%eax
84 .byte 0x0f,0xa2
85 andl $3220176895,%edx
86 cmpl $0,%ebp
87 jne L004notintel
88 orl $1073741824,%edx
89 andb $15,%ah
90 cmpb $15,%ah
91 jne L004notintel
92 orl $1048576,%edx
93 L004notintel:
94 btl $28,%edx
95 jnc L002generic
96 andl $4026531839,%edx
97 cmpl $0,%edi
98 je L002generic
99 orl $268435456,%edx
100 shrl $16,%ebx
101 cmpb $1,%bl
102 ja L002generic
103 andl $4026531839,%edx
104 L002generic:
105 andl $2048,%ebp
106 andl $4294965247,%ecx
107 movl %edx,%esi
108 orl %ecx,%ebp
109 btl $27,%ecx
110 jnc L005clear_avx
111 xorl %ecx,%ecx
112 .byte 15,1,208
113 andl $6,%eax
114 cmpl $6,%eax
115 je L006done
116 cmpl $2,%eax
117 je L005clear_avx
118 L007clear_xmm:
119 andl $4261412861,%ebp
120 andl $4278190079,%esi
121 L005clear_avx:
122 andl $4026525695,%ebp
123 L006done:
124 movl %esi,%eax
125 movl %ebp,%edx
126 L000nocpuid:
127 popl %edi
128 popl %esi
129 popl %ebx
130 popl %ebp
131 ret
132 .globl _OPENSSL_rdtsc
133 .align 4
134 _OPENSSL_rdtsc:
135 L_OPENSSL_rdtsc_begin:
136 xorl %eax,%eax
137 xorl %edx,%edx
138 call L008PIC_me_up
139 L008PIC_me_up:
140 popl %ecx
141 movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L008PIC_me_up(%ecx),%ecx
142 btl $4,(%ecx)
143 jnc L009notsc
144 .byte 0x0f,0x31
145 L009notsc:
146 ret
147 .globl _OPENSSL_instrument_halt
148 .align 4
149 _OPENSSL_instrument_halt:
150 L_OPENSSL_instrument_halt_begin:
151 call L010PIC_me_up
152 L010PIC_me_up:
153 popl %ecx
154 movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L010PIC_me_up(%ecx),%ecx
155 btl $4,(%ecx)
156 jnc L011nohalt
157 .long 2421723150
158 andl $3,%eax
159 jnz L011nohalt
160 pushfl
161 popl %eax
162 btl $9,%eax
163 jnc L011nohalt
164 .byte 0x0f,0x31
165 pushl %edx
166 pushl %eax
167 hlt
168 .byte 0x0f,0x31
169 subl (%esp),%eax
170 sbbl 4(%esp),%edx
171 addl $8,%esp
172 ret
173 L011nohalt:
174 xorl %eax,%eax
175 xorl %edx,%edx
176 ret
177 .globl _OPENSSL_far_spin
178 .align 4
179 _OPENSSL_far_spin:
180 L_OPENSSL_far_spin_begin:
181 pushfl
182 popl %eax
183 btl $9,%eax
184 jnc L012nospin
185 movl 4(%esp),%eax
186 movl 8(%esp),%ecx
187 .long 2430111262
188 xorl %eax,%eax
189 movl (%ecx),%edx
190 jmp L013spin
191 .align 4,0x90
192 L013spin:
193 incl %eax
194 cmpl (%ecx),%edx
195 je L013spin
196 .long 529567888
197 ret
198 L012nospin:
199 xorl %eax,%eax
200 xorl %edx,%edx
201 ret
202 .globl _OPENSSL_wipe_cpu
203 .align 4
204 _OPENSSL_wipe_cpu:
205 L_OPENSSL_wipe_cpu_begin:
206 xorl %eax,%eax
207 xorl %edx,%edx
208 call L014PIC_me_up
209 L014PIC_me_up:
210 popl %ecx
211 movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L014PIC_me_up(%ecx),%ecx
212 movl (%ecx),%ecx
213 btl $1,(%ecx)
214 jnc L015no_x87
215 .long 4007259865,4007259865,4007259865,4007259865,2430851995
216 L015no_x87:
217 leal 4(%esp),%eax
218 ret
219 .globl _OPENSSL_atomic_add
220 .align 4
221 _OPENSSL_atomic_add:
222 L_OPENSSL_atomic_add_begin:
223 movl 4(%esp),%edx
224 movl 8(%esp),%ecx
225 pushl %ebx
226 nop
227 movl (%edx),%eax
228 L016spin:
229 leal (%eax,%ecx,1),%ebx
230 nop
231 .long 447811568
232 jne L016spin
233 movl %ebx,%eax
234 popl %ebx
235 ret
236 .globl _OPENSSL_indirect_call
237 .align 4
238 _OPENSSL_indirect_call:
239 L_OPENSSL_indirect_call_begin:
240 pushl %ebp
241 movl %esp,%ebp
242 subl $28,%esp
243 movl 12(%ebp),%ecx
244 movl %ecx,(%esp)
245 movl 16(%ebp),%edx
246 movl %edx,4(%esp)
247 movl 20(%ebp),%eax
248 movl %eax,8(%esp)
249 movl 24(%ebp),%eax
250 movl %eax,12(%esp)
251 movl 28(%ebp),%eax
252 movl %eax,16(%esp)
253 movl 32(%ebp),%eax
254 movl %eax,20(%esp)
255 movl 36(%ebp),%eax
256 movl %eax,24(%esp)
257 call *8(%ebp)
258 movl %ebp,%esp
259 popl %ebp
260 ret
261 .globl _OPENSSL_cleanse
262 .align 4
263 _OPENSSL_cleanse:
264 L_OPENSSL_cleanse_begin:
265 movl 4(%esp),%edx
266 movl 8(%esp),%ecx
267 xorl %eax,%eax
268 cmpl $7,%ecx
269 jae L017lot
270 cmpl $0,%ecx
271 je L018ret
272 L019little:
273 movb %al,(%edx)
274 subl $1,%ecx
275 leal 1(%edx),%edx
276 jnz L019little
277 L018ret:
278 ret
279 .align 4,0x90
280 L017lot:
281 testl $3,%edx
282 jz L020aligned
283 movb %al,(%edx)
284 leal -1(%ecx),%ecx
285 leal 1(%edx),%edx
286 jmp L017lot
287 L020aligned:
288 movl %eax,(%edx)
289 leal -4(%ecx),%ecx
290 testl $-4,%ecx
291 leal 4(%edx),%edx
292 jnz L020aligned
293 cmpl $0,%ecx
294 jne L019little
295 ret
296 .globl _OPENSSL_ia32_rdrand
297 .align 4
298 _OPENSSL_ia32_rdrand:
299 L_OPENSSL_ia32_rdrand_begin:
300 movl $8,%ecx
301 L021loop:
302 .byte 15,199,240
303 jc L022break
304 loop L021loop
305 L022break:
306 cmpl $0,%eax
307 cmovel %ecx,%eax
308 ret
309 .section __IMPORT,__pointers,non_lazy_symbol_pointers
310 L_OPENSSL_ia32cap_P$non_lazy_ptr:
311 .indirect_symbol _OPENSSL_ia32cap_P
312 .long 0
313 .comm _OPENSSL_ia32cap_P,8,2
314 .mod_init_func
315 .align 2
316 .long _OPENSSL_cpuid_setup
OLDNEW
« no previous file with comments | « openssl/crypto/x86cpuid.pl ('k') | openssl/e_os.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698