• 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#include <openssl/asm_base.h>
5
6#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__APPLE__)
7.text
8
9
10
11
12
13
14
15
16
17.globl	_abi_test_trampoline
18.private_extern _abi_test_trampoline
19.p2align	4
20_abi_test_trampoline:
21
22
23_CET_ENDBR
24
25
26
27
28
29
30
31
32
33	subq	$120,%rsp
34
35
36	movq	%r8,48(%rsp)
37	movq	%rbx,64(%rsp)
38
39
40	movq	%rbp,72(%rsp)
41
42
43	movq	%r12,80(%rsp)
44
45
46	movq	%r13,88(%rsp)
47
48
49	movq	%r14,96(%rsp)
50
51
52	movq	%r15,104(%rsp)
53
54
55
56	movq	0(%rsi),%rbx
57	movq	8(%rsi),%rbp
58	movq	16(%rsi),%r12
59	movq	24(%rsi),%r13
60	movq	32(%rsi),%r14
61	movq	40(%rsi),%r15
62
63	movq	%rdi,32(%rsp)
64	movq	%rsi,40(%rsp)
65
66
67
68
69	movq	%rdx,%r10
70	movq	%rcx,%r11
71	decq	%r11
72	js	L$args_done
73	movq	(%r10),%rdi
74	addq	$8,%r10
75	decq	%r11
76	js	L$args_done
77	movq	(%r10),%rsi
78	addq	$8,%r10
79	decq	%r11
80	js	L$args_done
81	movq	(%r10),%rdx
82	addq	$8,%r10
83	decq	%r11
84	js	L$args_done
85	movq	(%r10),%rcx
86	addq	$8,%r10
87	decq	%r11
88	js	L$args_done
89	movq	(%r10),%r8
90	addq	$8,%r10
91	decq	%r11
92	js	L$args_done
93	movq	(%r10),%r9
94	addq	$8,%r10
95	leaq	0(%rsp),%rax
96L$args_loop:
97	decq	%r11
98	js	L$args_done
99
100
101
102
103
104
105	movq	%r11,56(%rsp)
106	movq	(%r10),%r11
107	movq	%r11,(%rax)
108	movq	56(%rsp),%r11
109
110	addq	$8,%r10
111	addq	$8,%rax
112	jmp	L$args_loop
113
114L$args_done:
115	movq	32(%rsp),%rax
116	movq	48(%rsp),%r10
117	testq	%r10,%r10
118	jz	L$no_unwind
119
120
121	pushfq
122	orq	$0x100,0(%rsp)
123	popfq
124
125
126
127	nop
128.globl	_abi_test_unwind_start
129.private_extern _abi_test_unwind_start
130_abi_test_unwind_start:
131
132	call	*%rax
133.globl	_abi_test_unwind_return
134.private_extern _abi_test_unwind_return
135_abi_test_unwind_return:
136
137
138
139
140	pushfq
141	andq	$-0x101,0(%rsp)
142	popfq
143.globl	_abi_test_unwind_stop
144.private_extern _abi_test_unwind_stop
145_abi_test_unwind_stop:
146
147	jmp	L$call_done
148
149L$no_unwind:
150	call	*%rax
151
152L$call_done:
153
154	movq	40(%rsp),%rsi
155	movq	%rbx,0(%rsi)
156	movq	%rbp,8(%rsi)
157	movq	%r12,16(%rsi)
158	movq	%r13,24(%rsi)
159	movq	%r14,32(%rsi)
160	movq	%r15,40(%rsi)
161	movq	64(%rsp),%rbx
162
163	movq	72(%rsp),%rbp
164
165	movq	80(%rsp),%r12
166
167	movq	88(%rsp),%r13
168
169	movq	96(%rsp),%r14
170
171	movq	104(%rsp),%r15
172
173	addq	$120,%rsp
174
175
176
177	ret
178
179
180
181
182.globl	_abi_test_clobber_rax
183.private_extern _abi_test_clobber_rax
184.p2align	4
185_abi_test_clobber_rax:
186_CET_ENDBR
187	xorq	%rax,%rax
188	ret
189
190
191.globl	_abi_test_clobber_rbx
192.private_extern _abi_test_clobber_rbx
193.p2align	4
194_abi_test_clobber_rbx:
195_CET_ENDBR
196	xorq	%rbx,%rbx
197	ret
198
199
200.globl	_abi_test_clobber_rcx
201.private_extern _abi_test_clobber_rcx
202.p2align	4
203_abi_test_clobber_rcx:
204_CET_ENDBR
205	xorq	%rcx,%rcx
206	ret
207
208
209.globl	_abi_test_clobber_rdx
210.private_extern _abi_test_clobber_rdx
211.p2align	4
212_abi_test_clobber_rdx:
213_CET_ENDBR
214	xorq	%rdx,%rdx
215	ret
216
217
218.globl	_abi_test_clobber_rdi
219.private_extern _abi_test_clobber_rdi
220.p2align	4
221_abi_test_clobber_rdi:
222_CET_ENDBR
223	xorq	%rdi,%rdi
224	ret
225
226
227.globl	_abi_test_clobber_rsi
228.private_extern _abi_test_clobber_rsi
229.p2align	4
230_abi_test_clobber_rsi:
231_CET_ENDBR
232	xorq	%rsi,%rsi
233	ret
234
235
236.globl	_abi_test_clobber_rbp
237.private_extern _abi_test_clobber_rbp
238.p2align	4
239_abi_test_clobber_rbp:
240_CET_ENDBR
241	xorq	%rbp,%rbp
242	ret
243
244
245.globl	_abi_test_clobber_r8
246.private_extern _abi_test_clobber_r8
247.p2align	4
248_abi_test_clobber_r8:
249_CET_ENDBR
250	xorq	%r8,%r8
251	ret
252
253
254.globl	_abi_test_clobber_r9
255.private_extern _abi_test_clobber_r9
256.p2align	4
257_abi_test_clobber_r9:
258_CET_ENDBR
259	xorq	%r9,%r9
260	ret
261
262
263.globl	_abi_test_clobber_r10
264.private_extern _abi_test_clobber_r10
265.p2align	4
266_abi_test_clobber_r10:
267_CET_ENDBR
268	xorq	%r10,%r10
269	ret
270
271
272.globl	_abi_test_clobber_r11
273.private_extern _abi_test_clobber_r11
274.p2align	4
275_abi_test_clobber_r11:
276_CET_ENDBR
277	xorq	%r11,%r11
278	ret
279
280
281.globl	_abi_test_clobber_r12
282.private_extern _abi_test_clobber_r12
283.p2align	4
284_abi_test_clobber_r12:
285_CET_ENDBR
286	xorq	%r12,%r12
287	ret
288
289
290.globl	_abi_test_clobber_r13
291.private_extern _abi_test_clobber_r13
292.p2align	4
293_abi_test_clobber_r13:
294_CET_ENDBR
295	xorq	%r13,%r13
296	ret
297
298
299.globl	_abi_test_clobber_r14
300.private_extern _abi_test_clobber_r14
301.p2align	4
302_abi_test_clobber_r14:
303_CET_ENDBR
304	xorq	%r14,%r14
305	ret
306
307
308.globl	_abi_test_clobber_r15
309.private_extern _abi_test_clobber_r15
310.p2align	4
311_abi_test_clobber_r15:
312_CET_ENDBR
313	xorq	%r15,%r15
314	ret
315
316
317.globl	_abi_test_clobber_xmm0
318.private_extern _abi_test_clobber_xmm0
319.p2align	4
320_abi_test_clobber_xmm0:
321_CET_ENDBR
322	pxor	%xmm0,%xmm0
323	ret
324
325
326.globl	_abi_test_clobber_xmm1
327.private_extern _abi_test_clobber_xmm1
328.p2align	4
329_abi_test_clobber_xmm1:
330_CET_ENDBR
331	pxor	%xmm1,%xmm1
332	ret
333
334
335.globl	_abi_test_clobber_xmm2
336.private_extern _abi_test_clobber_xmm2
337.p2align	4
338_abi_test_clobber_xmm2:
339_CET_ENDBR
340	pxor	%xmm2,%xmm2
341	ret
342
343
344.globl	_abi_test_clobber_xmm3
345.private_extern _abi_test_clobber_xmm3
346.p2align	4
347_abi_test_clobber_xmm3:
348_CET_ENDBR
349	pxor	%xmm3,%xmm3
350	ret
351
352
353.globl	_abi_test_clobber_xmm4
354.private_extern _abi_test_clobber_xmm4
355.p2align	4
356_abi_test_clobber_xmm4:
357_CET_ENDBR
358	pxor	%xmm4,%xmm4
359	ret
360
361
362.globl	_abi_test_clobber_xmm5
363.private_extern _abi_test_clobber_xmm5
364.p2align	4
365_abi_test_clobber_xmm5:
366_CET_ENDBR
367	pxor	%xmm5,%xmm5
368	ret
369
370
371.globl	_abi_test_clobber_xmm6
372.private_extern _abi_test_clobber_xmm6
373.p2align	4
374_abi_test_clobber_xmm6:
375_CET_ENDBR
376	pxor	%xmm6,%xmm6
377	ret
378
379
380.globl	_abi_test_clobber_xmm7
381.private_extern _abi_test_clobber_xmm7
382.p2align	4
383_abi_test_clobber_xmm7:
384_CET_ENDBR
385	pxor	%xmm7,%xmm7
386	ret
387
388
389.globl	_abi_test_clobber_xmm8
390.private_extern _abi_test_clobber_xmm8
391.p2align	4
392_abi_test_clobber_xmm8:
393_CET_ENDBR
394	pxor	%xmm8,%xmm8
395	ret
396
397
398.globl	_abi_test_clobber_xmm9
399.private_extern _abi_test_clobber_xmm9
400.p2align	4
401_abi_test_clobber_xmm9:
402_CET_ENDBR
403	pxor	%xmm9,%xmm9
404	ret
405
406
407.globl	_abi_test_clobber_xmm10
408.private_extern _abi_test_clobber_xmm10
409.p2align	4
410_abi_test_clobber_xmm10:
411_CET_ENDBR
412	pxor	%xmm10,%xmm10
413	ret
414
415
416.globl	_abi_test_clobber_xmm11
417.private_extern _abi_test_clobber_xmm11
418.p2align	4
419_abi_test_clobber_xmm11:
420_CET_ENDBR
421	pxor	%xmm11,%xmm11
422	ret
423
424
425.globl	_abi_test_clobber_xmm12
426.private_extern _abi_test_clobber_xmm12
427.p2align	4
428_abi_test_clobber_xmm12:
429_CET_ENDBR
430	pxor	%xmm12,%xmm12
431	ret
432
433
434.globl	_abi_test_clobber_xmm13
435.private_extern _abi_test_clobber_xmm13
436.p2align	4
437_abi_test_clobber_xmm13:
438_CET_ENDBR
439	pxor	%xmm13,%xmm13
440	ret
441
442
443.globl	_abi_test_clobber_xmm14
444.private_extern _abi_test_clobber_xmm14
445.p2align	4
446_abi_test_clobber_xmm14:
447_CET_ENDBR
448	pxor	%xmm14,%xmm14
449	ret
450
451
452.globl	_abi_test_clobber_xmm15
453.private_extern _abi_test_clobber_xmm15
454.p2align	4
455_abi_test_clobber_xmm15:
456_CET_ENDBR
457	pxor	%xmm15,%xmm15
458	ret
459
460
461
462
463
464.globl	_abi_test_bad_unwind_wrong_register
465.private_extern _abi_test_bad_unwind_wrong_register
466.p2align	4
467_abi_test_bad_unwind_wrong_register:
468
469
470_CET_ENDBR
471	pushq	%r12
472
473
474
475
476
477
478	nop
479	popq	%r12
480
481	ret
482
483
484
485
486
487
488
489
490.globl	_abi_test_bad_unwind_temporary
491.private_extern _abi_test_bad_unwind_temporary
492.p2align	4
493_abi_test_bad_unwind_temporary:
494
495
496_CET_ENDBR
497	pushq	%r12
498
499
500
501
502	movq	%r12,%rax
503	incq	%rax
504	movq	%rax,(%rsp)
505
506
507
508	movq	%r12,(%rsp)
509
510
511	popq	%r12
512
513	ret
514
515
516
517
518
519
520
521
522.globl	_abi_test_get_and_clear_direction_flag
523.private_extern _abi_test_get_and_clear_direction_flag
524_abi_test_get_and_clear_direction_flag:
525_CET_ENDBR
526	pushfq
527	popq	%rax
528	andq	$0x400,%rax
529	shrq	$10,%rax
530	cld
531	ret
532
533
534
535
536
537.globl	_abi_test_set_direction_flag
538.private_extern _abi_test_set_direction_flag
539_abi_test_set_direction_flag:
540_CET_ENDBR
541	std
542	ret
543
544#endif
545