1e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.file	"x86cpuid.s"
2e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.text
3e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.globl	OPENSSL_ia32_cpuid
4e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.type	OPENSSL_ia32_cpuid,@function
5e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.align	16
6e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.orgOPENSSL_ia32_cpuid:
7e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L_OPENSSL_ia32_cpuid_begin:
8e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	pushl	%ebp
9e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	pushl	%ebx
10e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	pushl	%esi
11e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	pushl	%edi
12e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	xorl	%edx,%edx
13e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	pushfl
14e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	popl	%eax
15e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	%eax,%ecx
16e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	xorl	$2097152,%eax
17e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	pushl	%eax
18e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	popfl
19e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	pushfl
20e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	popl	%eax
21e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	xorl	%eax,%ecx
22e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	xorl	%eax,%eax
23e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	btl	$21,%ecx
24e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jnc	.L000nocpuid
25e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	.byte	0x0f,0xa2
26e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	%eax,%edi
27e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	xorl	%eax,%eax
28e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpl	$1970169159,%ebx
29e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	setne	%al
30e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	%eax,%ebp
31e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpl	$1231384169,%edx
32e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	setne	%al
33e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	orl	%eax,%ebp
34e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpl	$1818588270,%ecx
35e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	setne	%al
36e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	orl	%eax,%ebp
37e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jz	.L001intel
38e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpl	$1752462657,%ebx
39e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	setne	%al
40e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	%eax,%esi
41e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpl	$1769238117,%edx
42e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	setne	%al
43e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	orl	%eax,%esi
44e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpl	$1145913699,%ecx
45e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	setne	%al
46e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	orl	%eax,%esi
47e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jnz	.L001intel
48e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	$2147483648,%eax
49e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	.byte	0x0f,0xa2
50e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpl	$2147483649,%eax
51e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jb	.L001intel
52e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	%eax,%esi
53e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	$2147483649,%eax
54e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	.byte	0x0f,0xa2
55e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	orl	%ecx,%ebp
56e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	andl	$2049,%ebp
57e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpl	$2147483656,%esi
58e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jb	.L001intel
59e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	$2147483656,%eax
60e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	.byte	0x0f,0xa2
61e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movzbl	%cl,%esi
62e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	incl	%esi
63e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	$1,%eax
64e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	.byte	0x0f,0xa2
65e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	btl	$28,%edx
66e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jnc	.L002generic
67e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	shrl	$16,%ebx
68e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	andl	$255,%ebx
69e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpl	%esi,%ebx
70e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	ja	.L002generic
71e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	andl	$4026531839,%edx
72e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jmp	.L002generic
73e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L001intel:
74e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpl	$4,%edi
75e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	$-1,%edi
76e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jb	.L003nocacheinfo
77e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	$4,%eax
78e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	$0,%ecx
79e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	.byte	0x0f,0xa2
80e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	%eax,%edi
81e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	shrl	$14,%edi
82e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	andl	$4095,%edi
83e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L003nocacheinfo:
84e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	$1,%eax
85e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	.byte	0x0f,0xa2
86e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	andl	$3220176895,%edx
87e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpl	$0,%ebp
88e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jne	.L004notintel
89e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	orl	$1073741824,%edx
90e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	andb	$15,%ah
91e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpb	$15,%ah
92e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jne	.L004notintel
93e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	orl	$1048576,%edx
94e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L004notintel:
95e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	btl	$28,%edx
96e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jnc	.L002generic
97e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	andl	$4026531839,%edx
98e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpl	$0,%edi
99e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	je	.L002generic
100e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	orl	$268435456,%edx
101e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	shrl	$16,%ebx
102e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpb	$1,%bl
103e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	ja	.L002generic
104e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	andl	$4026531839,%edx
105e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L002generic:
106e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	andl	$2048,%ebp
107e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	andl	$4294965247,%ecx
108e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	%edx,%esi
109e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	orl	%ecx,%ebp
110e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	btl	$27,%ecx
111e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jnc	.L005clear_avx
112e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	xorl	%ecx,%ecx
113e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.byte	15,1,208
114e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	andl	$6,%eax
115e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpl	$6,%eax
116e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	je	.L006done
117e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpl	$2,%eax
118e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	je	.L005clear_avx
119e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L007clear_xmm:
120e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	andl	$4261412861,%ebp
121e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	andl	$4278190079,%esi
122e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L005clear_avx:
123e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	andl	$4026525695,%ebp
124e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L006done:
125e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	%esi,%eax
126e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	%ebp,%edx
127e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L000nocpuid:
128e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	popl	%edi
129e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	popl	%esi
130e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	popl	%ebx
131e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	popl	%ebp
132e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	ret
133e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.size	OPENSSL_ia32_cpuid,.-.L_OPENSSL_ia32_cpuid_begin
134e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.globl	OPENSSL_rdtsc
135e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.type	OPENSSL_rdtsc,@function
136e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.align	16
137e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.orgOPENSSL_rdtsc:
138e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L_OPENSSL_rdtsc_begin:
139e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	xorl	%eax,%eax
140e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	xorl	%edx,%edx
141e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	call	.L008PIC_me_up
142e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L008PIC_me_up:
143e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	popl	%ecx
144e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	leal	_GLOBAL_OFFSET_TABLE_+[.-.L008PIC_me_up](%ecx),%ecx
145e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	OPENSSL_ia32cap_P@GOT(%ecx),%ecx
146e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	btl	$4,(%ecx)
147e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jnc	.L009notsc
148e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	.byte	0x0f,0x31
149e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L009notsc:
150e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	ret
151e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.size	OPENSSL_rdtsc,.-.L_OPENSSL_rdtsc_begin
152e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.globl	OPENSSL_instrument_halt
153e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.type	OPENSSL_instrument_halt,@function
154e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.align	16
155e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.orgOPENSSL_instrument_halt:
156e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L_OPENSSL_instrument_halt_begin:
157e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	call	.L010PIC_me_up
158e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L010PIC_me_up:
159e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	popl	%ecx
160e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	leal	_GLOBAL_OFFSET_TABLE_+[.-.L010PIC_me_up](%ecx),%ecx
161e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	OPENSSL_ia32cap_P@GOT(%ecx),%ecx
162e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	btl	$4,(%ecx)
163e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jnc	.L011nohalt
164e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.long	2421723150
165e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	andl	$3,%eax
166e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jnz	.L011nohalt
167e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	pushfl
168e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	popl	%eax
169e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	btl	$9,%eax
170e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jnc	.L011nohalt
171e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	.byte	0x0f,0x31
172e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	pushl	%edx
173e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	pushl	%eax
174e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	hlt
175e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	.byte	0x0f,0x31
176e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	subl	(%esp),%eax
177e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	sbbl	4(%esp),%edx
178e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	addl	$8,%esp
179e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	ret
180e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L011nohalt:
181e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	xorl	%eax,%eax
182e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	xorl	%edx,%edx
183e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	ret
184e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.size	OPENSSL_instrument_halt,.-.L_OPENSSL_instrument_halt_begin
185e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.globl	OPENSSL_far_spin
186e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.type	OPENSSL_far_spin,@function
187e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.align	16
188e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.orgOPENSSL_far_spin:
189e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L_OPENSSL_far_spin_begin:
190e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	pushfl
191e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	popl	%eax
192e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	btl	$9,%eax
193e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jnc	.L012nospin
194e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	4(%esp),%eax
195e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	8(%esp),%ecx
196e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.long	2430111262
197e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	xorl	%eax,%eax
198e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	(%ecx),%edx
199e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jmp	.L013spin
200e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.align	16
201e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L013spin:
202e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	incl	%eax
203e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpl	(%ecx),%edx
204e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	je	.L013spin
205e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.long	529567888
206e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	ret
207e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L012nospin:
208e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	xorl	%eax,%eax
209e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	xorl	%edx,%edx
210e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	ret
211e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.size	OPENSSL_far_spin,.-.L_OPENSSL_far_spin_begin
212e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.globl	OPENSSL_wipe_cpu
213e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.type	OPENSSL_wipe_cpu,@function
214e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.align	16
215e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.orgOPENSSL_wipe_cpu:
216e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L_OPENSSL_wipe_cpu_begin:
217e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	xorl	%eax,%eax
218e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	xorl	%edx,%edx
219e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	call	.L014PIC_me_up
220e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L014PIC_me_up:
221e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	popl	%ecx
222e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	leal	_GLOBAL_OFFSET_TABLE_+[.-.L014PIC_me_up](%ecx),%ecx
223e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	OPENSSL_ia32cap_P@GOT(%ecx),%ecx
224e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	(%ecx),%ecx
225e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	btl	$1,(%ecx)
226e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jnc	.L015no_x87
227e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.long	4007259865,4007259865,4007259865,4007259865,2430851995
228e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L015no_x87:
229e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	leal	4(%esp),%eax
230e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	ret
231e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.size	OPENSSL_wipe_cpu,.-.L_OPENSSL_wipe_cpu_begin
232e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.globl	OPENSSL_atomic_add
233e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.type	OPENSSL_atomic_add,@function
234e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.align	16
235e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.orgOPENSSL_atomic_add:
236e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L_OPENSSL_atomic_add_begin:
237e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	4(%esp),%edx
238e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	8(%esp),%ecx
239e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	pushl	%ebx
240e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	nop
241e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	(%edx),%eax
242e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L016spin:
243e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	leal	(%eax,%ecx,1),%ebx
244e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	nop
245e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.long	447811568
246e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jne	.L016spin
247e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	%ebx,%eax
248e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	popl	%ebx
249e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	ret
250e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.size	OPENSSL_atomic_add,.-.L_OPENSSL_atomic_add_begin
251e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.globl	OPENSSL_indirect_call
252e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.type	OPENSSL_indirect_call,@function
253e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.align	16
254e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.orgOPENSSL_indirect_call:
255e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L_OPENSSL_indirect_call_begin:
256e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	pushl	%ebp
257e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	%esp,%ebp
258e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	subl	$28,%esp
259e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	12(%ebp),%ecx
260e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	%ecx,(%esp)
261e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	16(%ebp),%edx
262e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	%edx,4(%esp)
263e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	20(%ebp),%eax
264e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	%eax,8(%esp)
265e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	24(%ebp),%eax
266e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	%eax,12(%esp)
267e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	28(%ebp),%eax
268e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	%eax,16(%esp)
269e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	32(%ebp),%eax
270e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	%eax,20(%esp)
271e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	36(%ebp),%eax
272e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	%eax,24(%esp)
273e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	call	*8(%ebp)
274e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	%ebp,%esp
275e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	popl	%ebp
276e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	ret
277e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.size	OPENSSL_indirect_call,.-.L_OPENSSL_indirect_call_begin
278e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.globl	OPENSSL_cleanse
279e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.type	OPENSSL_cleanse,@function
280e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.align	16
281e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.orgOPENSSL_cleanse:
282e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L_OPENSSL_cleanse_begin:
283e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	4(%esp),%edx
284e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	8(%esp),%ecx
285e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	xorl	%eax,%eax
286e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpl	$7,%ecx
287e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jae	.L017lot
288e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpl	$0,%ecx
289e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	je	.L018ret
290e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L019little:
291e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movb	%al,(%edx)
292e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	subl	$1,%ecx
293e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	leal	1(%edx),%edx
294e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jnz	.L019little
295e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L018ret:
296e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	ret
297e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.align	16
298e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L017lot:
299e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	testl	$3,%edx
300e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jz	.L020aligned
301e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movb	%al,(%edx)
302e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	leal	-1(%ecx),%ecx
303e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	leal	1(%edx),%edx
304e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jmp	.L017lot
305e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L020aligned:
306e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	%eax,(%edx)
307e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	leal	-4(%ecx),%ecx
308e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	testl	$-4,%ecx
309e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	leal	4(%edx),%edx
310e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jnz	.L020aligned
311e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpl	$0,%ecx
312e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jne	.L019little
313e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	ret
314e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.size	OPENSSL_cleanse,.-.L_OPENSSL_cleanse_begin
315e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.globl	OPENSSL_ia32_rdrand
316e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.type	OPENSSL_ia32_rdrand,@function
317e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.align	16
318e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.orgOPENSSL_ia32_rdrand:
319e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L_OPENSSL_ia32_rdrand_begin:
320e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	movl	$8,%ecx
321e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L021loop:
322e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.byte	15,199,240
323e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	jc	.L022break
324e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	loop	.L021loop
325e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.L022break:
326e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmpl	$0,%eax
327e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	cmovel	%ecx,%eax
328e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	ret
329e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.size	OPENSSL_ia32_rdrand,.-.L_OPENSSL_ia32_rdrand_begin
330e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.comm	OPENSSL_ia32cap_P,8,4
331e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org.section	.init
332e4dea707fa21299f1e0abf4c12827adfccb2eb85digit@chromium.org	call	OPENSSL_cpuid_setup
333