• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1.text
2
3.type	_mul_1x1,@function
4.align	16
5_mul_1x1:
6.cfi_startproc
7	subq	$128+8,%rsp
8.cfi_adjust_cfa_offset	128+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.cfi_adjust_cfa_offset	-128-8
199	.byte	0xf3,0xc3
200.Lend_mul_1x1:
201.cfi_endproc
202.size	_mul_1x1,.-_mul_1x1
203
204.globl	bn_GF2m_mul_2x2
205.type	bn_GF2m_mul_2x2,@function
206.align	16
207bn_GF2m_mul_2x2:
208.cfi_startproc
209	movq	%rsp,%rax
210	movq	OPENSSL_ia32cap_P(%rip),%r10
211	btq	$33,%r10
212	jnc	.Lvanilla_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.align	16
237.Lvanilla_mul_2x2:
238	leaq	-136(%rsp),%rsp
239.cfi_adjust_cfa_offset	8*17
240	movq	%r14,80(%rsp)
241.cfi_rel_offset	%r14,8*10
242	movq	%r13,88(%rsp)
243.cfi_rel_offset	%r13,8*11
244	movq	%r12,96(%rsp)
245.cfi_rel_offset	%r12,8*12
246	movq	%rbp,104(%rsp)
247.cfi_rel_offset	%rbp,8*13
248	movq	%rbx,112(%rsp)
249.cfi_rel_offset	%rbx,8*14
250.Lbody_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.cfi_restore	%r14
295	movq	88(%rsp),%r13
296.cfi_restore	%r13
297	movq	96(%rsp),%r12
298.cfi_restore	%r12
299	movq	104(%rsp),%rbp
300.cfi_restore	%rbp
301	movq	112(%rsp),%rbx
302.cfi_restore	%rbx
303	leaq	136(%rsp),%rsp
304.cfi_adjust_cfa_offset	-8*17
305.Lepilogue_mul_2x2:
306	.byte	0xf3,0xc3
307.Lend_mul_2x2:
308.cfi_endproc
309.size	bn_GF2m_mul_2x2,.-bn_GF2m_mul_2x2
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.align	16
312