• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# This file is generated from a similarly-named Perl script in the BoringSSL
2# source tree. Do not edit by hand.
3
4#if defined(__has_feature)
5#if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM)
6#define OPENSSL_NO_ASM
7#endif
8#endif
9
10#if defined(__x86_64__) && !defined(OPENSSL_NO_ASM)
11#if defined(BORINGSSL_PREFIX)
12#include <boringssl_prefix_symbols_asm.h>
13#endif
14.text
15
16
17
18
19
20
21
22
23.type	abi_test_trampoline, @function
24.globl	abi_test_trampoline
25.hidden abi_test_trampoline
26.align	16
27abi_test_trampoline:
28.Labi_test_trampoline_seh_begin:
29.cfi_startproc
30
31
32
33
34
35
36
37
38
39	subq	$120,%rsp
40.cfi_adjust_cfa_offset	120
41.Labi_test_trampoline_seh_prolog_alloc:
42	movq	%r8,48(%rsp)
43	movq	%rbx,64(%rsp)
44.cfi_offset	rbx, -64
45.Labi_test_trampoline_seh_prolog_rbx:
46	movq	%rbp,72(%rsp)
47.cfi_offset	rbp, -56
48.Labi_test_trampoline_seh_prolog_rbp:
49	movq	%r12,80(%rsp)
50.cfi_offset	r12, -48
51.Labi_test_trampoline_seh_prolog_r12:
52	movq	%r13,88(%rsp)
53.cfi_offset	r13, -40
54.Labi_test_trampoline_seh_prolog_r13:
55	movq	%r14,96(%rsp)
56.cfi_offset	r14, -32
57.Labi_test_trampoline_seh_prolog_r14:
58	movq	%r15,104(%rsp)
59.cfi_offset	r15, -24
60.Labi_test_trampoline_seh_prolog_r15:
61.Labi_test_trampoline_seh_prolog_end:
62	movq	0(%rsi),%rbx
63	movq	8(%rsi),%rbp
64	movq	16(%rsi),%r12
65	movq	24(%rsi),%r13
66	movq	32(%rsi),%r14
67	movq	40(%rsi),%r15
68
69	movq	%rdi,32(%rsp)
70	movq	%rsi,40(%rsp)
71
72
73
74
75	movq	%rdx,%r10
76	movq	%rcx,%r11
77	decq	%r11
78	js	.Largs_done
79	movq	(%r10),%rdi
80	addq	$8,%r10
81	decq	%r11
82	js	.Largs_done
83	movq	(%r10),%rsi
84	addq	$8,%r10
85	decq	%r11
86	js	.Largs_done
87	movq	(%r10),%rdx
88	addq	$8,%r10
89	decq	%r11
90	js	.Largs_done
91	movq	(%r10),%rcx
92	addq	$8,%r10
93	decq	%r11
94	js	.Largs_done
95	movq	(%r10),%r8
96	addq	$8,%r10
97	decq	%r11
98	js	.Largs_done
99	movq	(%r10),%r9
100	addq	$8,%r10
101	leaq	0(%rsp),%rax
102.Largs_loop:
103	decq	%r11
104	js	.Largs_done
105
106
107
108
109
110
111	movq	%r11,56(%rsp)
112	movq	(%r10),%r11
113	movq	%r11,(%rax)
114	movq	56(%rsp),%r11
115
116	addq	$8,%r10
117	addq	$8,%rax
118	jmp	.Largs_loop
119
120.Largs_done:
121	movq	32(%rsp),%rax
122	movq	48(%rsp),%r10
123	testq	%r10,%r10
124	jz	.Lno_unwind
125
126
127	pushfq
128	orq	$0x100,0(%rsp)
129	popfq
130
131
132
133	nop
134.globl	abi_test_unwind_start
135.hidden abi_test_unwind_start
136abi_test_unwind_start:
137
138	call	*%rax
139.globl	abi_test_unwind_return
140.hidden abi_test_unwind_return
141abi_test_unwind_return:
142
143
144
145
146	pushfq
147	andq	$-0x101,0(%rsp)
148	popfq
149.globl	abi_test_unwind_stop
150.hidden abi_test_unwind_stop
151abi_test_unwind_stop:
152
153	jmp	.Lcall_done
154
155.Lno_unwind:
156	call	*%rax
157
158.Lcall_done:
159
160	movq	40(%rsp),%rsi
161	movq	%rbx,0(%rsi)
162	movq	%rbp,8(%rsi)
163	movq	%r12,16(%rsi)
164	movq	%r13,24(%rsi)
165	movq	%r14,32(%rsi)
166	movq	%r15,40(%rsi)
167	movq	64(%rsp),%rbx
168.cfi_restore	rbx
169	movq	72(%rsp),%rbp
170.cfi_restore	rbp
171	movq	80(%rsp),%r12
172.cfi_restore	r12
173	movq	88(%rsp),%r13
174.cfi_restore	r13
175	movq	96(%rsp),%r14
176.cfi_restore	r14
177	movq	104(%rsp),%r15
178.cfi_restore	r15
179	addq	$120,%rsp
180.cfi_adjust_cfa_offset	-120
181
182
183	.byte	0xf3,0xc3
184.cfi_endproc
185.Labi_test_trampoline_seh_end:
186.size	abi_test_trampoline,.-abi_test_trampoline
187.type	abi_test_clobber_rax, @function
188.globl	abi_test_clobber_rax
189.hidden abi_test_clobber_rax
190.align	16
191abi_test_clobber_rax:
192	xorq	%rax,%rax
193	.byte	0xf3,0xc3
194.size	abi_test_clobber_rax,.-abi_test_clobber_rax
195.type	abi_test_clobber_rbx, @function
196.globl	abi_test_clobber_rbx
197.hidden abi_test_clobber_rbx
198.align	16
199abi_test_clobber_rbx:
200	xorq	%rbx,%rbx
201	.byte	0xf3,0xc3
202.size	abi_test_clobber_rbx,.-abi_test_clobber_rbx
203.type	abi_test_clobber_rcx, @function
204.globl	abi_test_clobber_rcx
205.hidden abi_test_clobber_rcx
206.align	16
207abi_test_clobber_rcx:
208	xorq	%rcx,%rcx
209	.byte	0xf3,0xc3
210.size	abi_test_clobber_rcx,.-abi_test_clobber_rcx
211.type	abi_test_clobber_rdx, @function
212.globl	abi_test_clobber_rdx
213.hidden abi_test_clobber_rdx
214.align	16
215abi_test_clobber_rdx:
216	xorq	%rdx,%rdx
217	.byte	0xf3,0xc3
218.size	abi_test_clobber_rdx,.-abi_test_clobber_rdx
219.type	abi_test_clobber_rdi, @function
220.globl	abi_test_clobber_rdi
221.hidden abi_test_clobber_rdi
222.align	16
223abi_test_clobber_rdi:
224	xorq	%rdi,%rdi
225	.byte	0xf3,0xc3
226.size	abi_test_clobber_rdi,.-abi_test_clobber_rdi
227.type	abi_test_clobber_rsi, @function
228.globl	abi_test_clobber_rsi
229.hidden abi_test_clobber_rsi
230.align	16
231abi_test_clobber_rsi:
232	xorq	%rsi,%rsi
233	.byte	0xf3,0xc3
234.size	abi_test_clobber_rsi,.-abi_test_clobber_rsi
235.type	abi_test_clobber_rbp, @function
236.globl	abi_test_clobber_rbp
237.hidden abi_test_clobber_rbp
238.align	16
239abi_test_clobber_rbp:
240	xorq	%rbp,%rbp
241	.byte	0xf3,0xc3
242.size	abi_test_clobber_rbp,.-abi_test_clobber_rbp
243.type	abi_test_clobber_r8, @function
244.globl	abi_test_clobber_r8
245.hidden abi_test_clobber_r8
246.align	16
247abi_test_clobber_r8:
248	xorq	%r8,%r8
249	.byte	0xf3,0xc3
250.size	abi_test_clobber_r8,.-abi_test_clobber_r8
251.type	abi_test_clobber_r9, @function
252.globl	abi_test_clobber_r9
253.hidden abi_test_clobber_r9
254.align	16
255abi_test_clobber_r9:
256	xorq	%r9,%r9
257	.byte	0xf3,0xc3
258.size	abi_test_clobber_r9,.-abi_test_clobber_r9
259.type	abi_test_clobber_r10, @function
260.globl	abi_test_clobber_r10
261.hidden abi_test_clobber_r10
262.align	16
263abi_test_clobber_r10:
264	xorq	%r10,%r10
265	.byte	0xf3,0xc3
266.size	abi_test_clobber_r10,.-abi_test_clobber_r10
267.type	abi_test_clobber_r11, @function
268.globl	abi_test_clobber_r11
269.hidden abi_test_clobber_r11
270.align	16
271abi_test_clobber_r11:
272	xorq	%r11,%r11
273	.byte	0xf3,0xc3
274.size	abi_test_clobber_r11,.-abi_test_clobber_r11
275.type	abi_test_clobber_r12, @function
276.globl	abi_test_clobber_r12
277.hidden abi_test_clobber_r12
278.align	16
279abi_test_clobber_r12:
280	xorq	%r12,%r12
281	.byte	0xf3,0xc3
282.size	abi_test_clobber_r12,.-abi_test_clobber_r12
283.type	abi_test_clobber_r13, @function
284.globl	abi_test_clobber_r13
285.hidden abi_test_clobber_r13
286.align	16
287abi_test_clobber_r13:
288	xorq	%r13,%r13
289	.byte	0xf3,0xc3
290.size	abi_test_clobber_r13,.-abi_test_clobber_r13
291.type	abi_test_clobber_r14, @function
292.globl	abi_test_clobber_r14
293.hidden abi_test_clobber_r14
294.align	16
295abi_test_clobber_r14:
296	xorq	%r14,%r14
297	.byte	0xf3,0xc3
298.size	abi_test_clobber_r14,.-abi_test_clobber_r14
299.type	abi_test_clobber_r15, @function
300.globl	abi_test_clobber_r15
301.hidden abi_test_clobber_r15
302.align	16
303abi_test_clobber_r15:
304	xorq	%r15,%r15
305	.byte	0xf3,0xc3
306.size	abi_test_clobber_r15,.-abi_test_clobber_r15
307.type	abi_test_clobber_xmm0, @function
308.globl	abi_test_clobber_xmm0
309.hidden abi_test_clobber_xmm0
310.align	16
311abi_test_clobber_xmm0:
312	pxor	%xmm0,%xmm0
313	.byte	0xf3,0xc3
314.size	abi_test_clobber_xmm0,.-abi_test_clobber_xmm0
315.type	abi_test_clobber_xmm1, @function
316.globl	abi_test_clobber_xmm1
317.hidden abi_test_clobber_xmm1
318.align	16
319abi_test_clobber_xmm1:
320	pxor	%xmm1,%xmm1
321	.byte	0xf3,0xc3
322.size	abi_test_clobber_xmm1,.-abi_test_clobber_xmm1
323.type	abi_test_clobber_xmm2, @function
324.globl	abi_test_clobber_xmm2
325.hidden abi_test_clobber_xmm2
326.align	16
327abi_test_clobber_xmm2:
328	pxor	%xmm2,%xmm2
329	.byte	0xf3,0xc3
330.size	abi_test_clobber_xmm2,.-abi_test_clobber_xmm2
331.type	abi_test_clobber_xmm3, @function
332.globl	abi_test_clobber_xmm3
333.hidden abi_test_clobber_xmm3
334.align	16
335abi_test_clobber_xmm3:
336	pxor	%xmm3,%xmm3
337	.byte	0xf3,0xc3
338.size	abi_test_clobber_xmm3,.-abi_test_clobber_xmm3
339.type	abi_test_clobber_xmm4, @function
340.globl	abi_test_clobber_xmm4
341.hidden abi_test_clobber_xmm4
342.align	16
343abi_test_clobber_xmm4:
344	pxor	%xmm4,%xmm4
345	.byte	0xf3,0xc3
346.size	abi_test_clobber_xmm4,.-abi_test_clobber_xmm4
347.type	abi_test_clobber_xmm5, @function
348.globl	abi_test_clobber_xmm5
349.hidden abi_test_clobber_xmm5
350.align	16
351abi_test_clobber_xmm5:
352	pxor	%xmm5,%xmm5
353	.byte	0xf3,0xc3
354.size	abi_test_clobber_xmm5,.-abi_test_clobber_xmm5
355.type	abi_test_clobber_xmm6, @function
356.globl	abi_test_clobber_xmm6
357.hidden abi_test_clobber_xmm6
358.align	16
359abi_test_clobber_xmm6:
360	pxor	%xmm6,%xmm6
361	.byte	0xf3,0xc3
362.size	abi_test_clobber_xmm6,.-abi_test_clobber_xmm6
363.type	abi_test_clobber_xmm7, @function
364.globl	abi_test_clobber_xmm7
365.hidden abi_test_clobber_xmm7
366.align	16
367abi_test_clobber_xmm7:
368	pxor	%xmm7,%xmm7
369	.byte	0xf3,0xc3
370.size	abi_test_clobber_xmm7,.-abi_test_clobber_xmm7
371.type	abi_test_clobber_xmm8, @function
372.globl	abi_test_clobber_xmm8
373.hidden abi_test_clobber_xmm8
374.align	16
375abi_test_clobber_xmm8:
376	pxor	%xmm8,%xmm8
377	.byte	0xf3,0xc3
378.size	abi_test_clobber_xmm8,.-abi_test_clobber_xmm8
379.type	abi_test_clobber_xmm9, @function
380.globl	abi_test_clobber_xmm9
381.hidden abi_test_clobber_xmm9
382.align	16
383abi_test_clobber_xmm9:
384	pxor	%xmm9,%xmm9
385	.byte	0xf3,0xc3
386.size	abi_test_clobber_xmm9,.-abi_test_clobber_xmm9
387.type	abi_test_clobber_xmm10, @function
388.globl	abi_test_clobber_xmm10
389.hidden abi_test_clobber_xmm10
390.align	16
391abi_test_clobber_xmm10:
392	pxor	%xmm10,%xmm10
393	.byte	0xf3,0xc3
394.size	abi_test_clobber_xmm10,.-abi_test_clobber_xmm10
395.type	abi_test_clobber_xmm11, @function
396.globl	abi_test_clobber_xmm11
397.hidden abi_test_clobber_xmm11
398.align	16
399abi_test_clobber_xmm11:
400	pxor	%xmm11,%xmm11
401	.byte	0xf3,0xc3
402.size	abi_test_clobber_xmm11,.-abi_test_clobber_xmm11
403.type	abi_test_clobber_xmm12, @function
404.globl	abi_test_clobber_xmm12
405.hidden abi_test_clobber_xmm12
406.align	16
407abi_test_clobber_xmm12:
408	pxor	%xmm12,%xmm12
409	.byte	0xf3,0xc3
410.size	abi_test_clobber_xmm12,.-abi_test_clobber_xmm12
411.type	abi_test_clobber_xmm13, @function
412.globl	abi_test_clobber_xmm13
413.hidden abi_test_clobber_xmm13
414.align	16
415abi_test_clobber_xmm13:
416	pxor	%xmm13,%xmm13
417	.byte	0xf3,0xc3
418.size	abi_test_clobber_xmm13,.-abi_test_clobber_xmm13
419.type	abi_test_clobber_xmm14, @function
420.globl	abi_test_clobber_xmm14
421.hidden abi_test_clobber_xmm14
422.align	16
423abi_test_clobber_xmm14:
424	pxor	%xmm14,%xmm14
425	.byte	0xf3,0xc3
426.size	abi_test_clobber_xmm14,.-abi_test_clobber_xmm14
427.type	abi_test_clobber_xmm15, @function
428.globl	abi_test_clobber_xmm15
429.hidden abi_test_clobber_xmm15
430.align	16
431abi_test_clobber_xmm15:
432	pxor	%xmm15,%xmm15
433	.byte	0xf3,0xc3
434.size	abi_test_clobber_xmm15,.-abi_test_clobber_xmm15
435
436
437
438.type	abi_test_bad_unwind_wrong_register, @function
439.globl	abi_test_bad_unwind_wrong_register
440.hidden abi_test_bad_unwind_wrong_register
441.align	16
442abi_test_bad_unwind_wrong_register:
443.cfi_startproc
444.Labi_test_bad_unwind_wrong_register_seh_begin:
445	pushq	%r12
446.cfi_adjust_cfa_offset	8
447.cfi_offset	%r13,-16
448.Labi_test_bad_unwind_wrong_register_seh_push_r13:
449
450
451
452	nop
453	popq	%r12
454.cfi_adjust_cfa_offset	-8
455.cfi_restore	%r12
456	.byte	0xf3,0xc3
457.Labi_test_bad_unwind_wrong_register_seh_end:
458.cfi_endproc
459.size	abi_test_bad_unwind_wrong_register,.-abi_test_bad_unwind_wrong_register
460
461
462
463
464.type	abi_test_bad_unwind_temporary, @function
465.globl	abi_test_bad_unwind_temporary
466.hidden abi_test_bad_unwind_temporary
467.align	16
468abi_test_bad_unwind_temporary:
469.cfi_startproc
470.Labi_test_bad_unwind_temporary_seh_begin:
471	pushq	%r12
472.cfi_adjust_cfa_offset	8
473.cfi_offset	%r12,-16
474.Labi_test_bad_unwind_temporary_seh_push_r12:
475
476	movq	%r12,%rax
477	incq	%rax
478	movq	%rax,(%rsp)
479
480
481
482	movq	%r12,(%rsp)
483
484
485	popq	%r12
486.cfi_adjust_cfa_offset	-8
487.cfi_restore	%r12
488	.byte	0xf3,0xc3
489.Labi_test_bad_unwind_temporary_seh_end:
490.cfi_endproc
491.size	abi_test_bad_unwind_temporary,.-abi_test_bad_unwind_temporary
492
493
494
495
496.type	abi_test_set_direction_flag, @function
497.globl	abi_test_get_and_clear_direction_flag
498.hidden abi_test_get_and_clear_direction_flag
499abi_test_get_and_clear_direction_flag:
500	pushfq
501	popq	%rax
502	andq	$0x400,%rax
503	shrq	$10,%rax
504	cld
505	.byte	0xf3,0xc3
506.size	abi_test_get_and_clear_direction_flag,.-abi_test_get_and_clear_direction_flag
507
508
509
510.type	abi_test_set_direction_flag, @function
511.globl	abi_test_set_direction_flag
512.hidden abi_test_set_direction_flag
513abi_test_set_direction_flag:
514	std
515	.byte	0xf3,0xc3
516.size	abi_test_set_direction_flag,.-abi_test_set_direction_flag
517#endif
518