• 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#define __has_feature(x) 0
6#endif
7#if __has_feature(memory_sanitizer) && !defined(OPENSSL_NO_ASM)
8#define OPENSSL_NO_ASM
9#endif
10
11#if !defined(OPENSSL_NO_ASM)
12#if defined(__aarch64__)
13#if defined(BORINGSSL_PREFIX)
14#include <boringssl_prefix_symbols_asm.h>
15#endif
16.text
17
18// abi_test_trampoline loads callee-saved registers from |state|, calls |func|
19// with |argv|, then saves the callee-saved registers into |state|. It returns
20// the result of |func|. The |unwind| argument is unused.
21// uint64_t abi_test_trampoline(void (*func)(...), CallerState *state,
22//                              const uint64_t *argv, size_t argc,
23//                              uint64_t unwind);
24.type	abi_test_trampoline, %function
25.globl	abi_test_trampoline
26.hidden	abi_test_trampoline
27.align	4
28abi_test_trampoline:
29.Labi_test_trampoline_begin:
30	// Stack layout (low to high addresses)
31	//   x29,x30 (16 bytes)
32	//    d8-d15 (64 bytes)
33	//   x19-x28 (80 bytes)
34	//    x1 (8 bytes)
35	//   padding (8 bytes)
36	stp	x29, x30, [sp, #-176]!
37	mov	x29, sp
38
39	// Saved callee-saved registers and |state|.
40	stp	d8, d9, [sp, #16]
41	stp	d10, d11, [sp, #32]
42	stp	d12, d13, [sp, #48]
43	stp	d14, d15, [sp, #64]
44	stp	x19, x20, [sp, #80]
45	stp	x21, x22, [sp, #96]
46	stp	x23, x24, [sp, #112]
47	stp	x25, x26, [sp, #128]
48	stp	x27, x28, [sp, #144]
49	str	x1, [sp, #160]
50
51	// Load registers from |state|, with the exception of x29. x29 is the
52	// frame pointer and also callee-saved, but AAPCS64 allows platforms to
53	// mandate that x29 always point to a frame. iOS64 does so, which means
54	// we cannot fill x29 with entropy without violating ABI rules
55	// ourselves. x29 is tested separately below.
56	ldp	d8, d9, [x1], #16
57	ldp	d10, d11, [x1], #16
58	ldp	d12, d13, [x1], #16
59	ldp	d14, d15, [x1], #16
60	ldp	x19, x20, [x1], #16
61	ldp	x21, x22, [x1], #16
62	ldp	x23, x24, [x1], #16
63	ldp	x25, x26, [x1], #16
64	ldp	x27, x28, [x1], #16
65
66	// Move parameters into temporary registers.
67	mov	x9, x0
68	mov	x10, x2
69	mov	x11, x3
70
71	// Load parameters into registers.
72	cbz	x11, .Largs_done
73	ldr	x0, [x10], #8
74	subs	x11, x11, #1
75	b.eq	.Largs_done
76	ldr	x1, [x10], #8
77	subs	x11, x11, #1
78	b.eq	.Largs_done
79	ldr	x2, [x10], #8
80	subs	x11, x11, #1
81	b.eq	.Largs_done
82	ldr	x3, [x10], #8
83	subs	x11, x11, #1
84	b.eq	.Largs_done
85	ldr	x4, [x10], #8
86	subs	x11, x11, #1
87	b.eq	.Largs_done
88	ldr	x5, [x10], #8
89	subs	x11, x11, #1
90	b.eq	.Largs_done
91	ldr	x6, [x10], #8
92	subs	x11, x11, #1
93	b.eq	.Largs_done
94	ldr	x7, [x10], #8
95
96.Largs_done:
97	blr	x9
98
99	// Reload |state| and store registers.
100	ldr	x1, [sp, #160]
101	stp	d8, d9, [x1], #16
102	stp	d10, d11, [x1], #16
103	stp	d12, d13, [x1], #16
104	stp	d14, d15, [x1], #16
105	stp	x19, x20, [x1], #16
106	stp	x21, x22, [x1], #16
107	stp	x23, x24, [x1], #16
108	stp	x25, x26, [x1], #16
109	stp	x27, x28, [x1], #16
110
111	// |func| is required to preserve x29, the frame pointer. We cannot load
112	// random values into x29 (see comment above), so compare it against the
113	// expected value and zero the field of |state| if corrupted.
114	mov	x9, sp
115	cmp	x29, x9
116	b.eq	.Lx29_ok
117	str	xzr, [x1]
118
119.Lx29_ok:
120	// Restore callee-saved registers.
121	ldp	d8, d9, [sp, #16]
122	ldp	d10, d11, [sp, #32]
123	ldp	d12, d13, [sp, #48]
124	ldp	d14, d15, [sp, #64]
125	ldp	x19, x20, [sp, #80]
126	ldp	x21, x22, [sp, #96]
127	ldp	x23, x24, [sp, #112]
128	ldp	x25, x26, [sp, #128]
129	ldp	x27, x28, [sp, #144]
130
131	ldp	x29, x30, [sp], #176
132	ret
133.size	abi_test_trampoline,.-abi_test_trampoline
134.type	abi_test_clobber_x0, %function
135.globl	abi_test_clobber_x0
136.hidden	abi_test_clobber_x0
137.align	4
138abi_test_clobber_x0:
139	mov	x0, xzr
140	ret
141.size	abi_test_clobber_x0,.-abi_test_clobber_x0
142.type	abi_test_clobber_x1, %function
143.globl	abi_test_clobber_x1
144.hidden	abi_test_clobber_x1
145.align	4
146abi_test_clobber_x1:
147	mov	x1, xzr
148	ret
149.size	abi_test_clobber_x1,.-abi_test_clobber_x1
150.type	abi_test_clobber_x2, %function
151.globl	abi_test_clobber_x2
152.hidden	abi_test_clobber_x2
153.align	4
154abi_test_clobber_x2:
155	mov	x2, xzr
156	ret
157.size	abi_test_clobber_x2,.-abi_test_clobber_x2
158.type	abi_test_clobber_x3, %function
159.globl	abi_test_clobber_x3
160.hidden	abi_test_clobber_x3
161.align	4
162abi_test_clobber_x3:
163	mov	x3, xzr
164	ret
165.size	abi_test_clobber_x3,.-abi_test_clobber_x3
166.type	abi_test_clobber_x4, %function
167.globl	abi_test_clobber_x4
168.hidden	abi_test_clobber_x4
169.align	4
170abi_test_clobber_x4:
171	mov	x4, xzr
172	ret
173.size	abi_test_clobber_x4,.-abi_test_clobber_x4
174.type	abi_test_clobber_x5, %function
175.globl	abi_test_clobber_x5
176.hidden	abi_test_clobber_x5
177.align	4
178abi_test_clobber_x5:
179	mov	x5, xzr
180	ret
181.size	abi_test_clobber_x5,.-abi_test_clobber_x5
182.type	abi_test_clobber_x6, %function
183.globl	abi_test_clobber_x6
184.hidden	abi_test_clobber_x6
185.align	4
186abi_test_clobber_x6:
187	mov	x6, xzr
188	ret
189.size	abi_test_clobber_x6,.-abi_test_clobber_x6
190.type	abi_test_clobber_x7, %function
191.globl	abi_test_clobber_x7
192.hidden	abi_test_clobber_x7
193.align	4
194abi_test_clobber_x7:
195	mov	x7, xzr
196	ret
197.size	abi_test_clobber_x7,.-abi_test_clobber_x7
198.type	abi_test_clobber_x8, %function
199.globl	abi_test_clobber_x8
200.hidden	abi_test_clobber_x8
201.align	4
202abi_test_clobber_x8:
203	mov	x8, xzr
204	ret
205.size	abi_test_clobber_x8,.-abi_test_clobber_x8
206.type	abi_test_clobber_x9, %function
207.globl	abi_test_clobber_x9
208.hidden	abi_test_clobber_x9
209.align	4
210abi_test_clobber_x9:
211	mov	x9, xzr
212	ret
213.size	abi_test_clobber_x9,.-abi_test_clobber_x9
214.type	abi_test_clobber_x10, %function
215.globl	abi_test_clobber_x10
216.hidden	abi_test_clobber_x10
217.align	4
218abi_test_clobber_x10:
219	mov	x10, xzr
220	ret
221.size	abi_test_clobber_x10,.-abi_test_clobber_x10
222.type	abi_test_clobber_x11, %function
223.globl	abi_test_clobber_x11
224.hidden	abi_test_clobber_x11
225.align	4
226abi_test_clobber_x11:
227	mov	x11, xzr
228	ret
229.size	abi_test_clobber_x11,.-abi_test_clobber_x11
230.type	abi_test_clobber_x12, %function
231.globl	abi_test_clobber_x12
232.hidden	abi_test_clobber_x12
233.align	4
234abi_test_clobber_x12:
235	mov	x12, xzr
236	ret
237.size	abi_test_clobber_x12,.-abi_test_clobber_x12
238.type	abi_test_clobber_x13, %function
239.globl	abi_test_clobber_x13
240.hidden	abi_test_clobber_x13
241.align	4
242abi_test_clobber_x13:
243	mov	x13, xzr
244	ret
245.size	abi_test_clobber_x13,.-abi_test_clobber_x13
246.type	abi_test_clobber_x14, %function
247.globl	abi_test_clobber_x14
248.hidden	abi_test_clobber_x14
249.align	4
250abi_test_clobber_x14:
251	mov	x14, xzr
252	ret
253.size	abi_test_clobber_x14,.-abi_test_clobber_x14
254.type	abi_test_clobber_x15, %function
255.globl	abi_test_clobber_x15
256.hidden	abi_test_clobber_x15
257.align	4
258abi_test_clobber_x15:
259	mov	x15, xzr
260	ret
261.size	abi_test_clobber_x15,.-abi_test_clobber_x15
262.type	abi_test_clobber_x16, %function
263.globl	abi_test_clobber_x16
264.hidden	abi_test_clobber_x16
265.align	4
266abi_test_clobber_x16:
267	mov	x16, xzr
268	ret
269.size	abi_test_clobber_x16,.-abi_test_clobber_x16
270.type	abi_test_clobber_x17, %function
271.globl	abi_test_clobber_x17
272.hidden	abi_test_clobber_x17
273.align	4
274abi_test_clobber_x17:
275	mov	x17, xzr
276	ret
277.size	abi_test_clobber_x17,.-abi_test_clobber_x17
278.type	abi_test_clobber_x19, %function
279.globl	abi_test_clobber_x19
280.hidden	abi_test_clobber_x19
281.align	4
282abi_test_clobber_x19:
283	mov	x19, xzr
284	ret
285.size	abi_test_clobber_x19,.-abi_test_clobber_x19
286.type	abi_test_clobber_x20, %function
287.globl	abi_test_clobber_x20
288.hidden	abi_test_clobber_x20
289.align	4
290abi_test_clobber_x20:
291	mov	x20, xzr
292	ret
293.size	abi_test_clobber_x20,.-abi_test_clobber_x20
294.type	abi_test_clobber_x21, %function
295.globl	abi_test_clobber_x21
296.hidden	abi_test_clobber_x21
297.align	4
298abi_test_clobber_x21:
299	mov	x21, xzr
300	ret
301.size	abi_test_clobber_x21,.-abi_test_clobber_x21
302.type	abi_test_clobber_x22, %function
303.globl	abi_test_clobber_x22
304.hidden	abi_test_clobber_x22
305.align	4
306abi_test_clobber_x22:
307	mov	x22, xzr
308	ret
309.size	abi_test_clobber_x22,.-abi_test_clobber_x22
310.type	abi_test_clobber_x23, %function
311.globl	abi_test_clobber_x23
312.hidden	abi_test_clobber_x23
313.align	4
314abi_test_clobber_x23:
315	mov	x23, xzr
316	ret
317.size	abi_test_clobber_x23,.-abi_test_clobber_x23
318.type	abi_test_clobber_x24, %function
319.globl	abi_test_clobber_x24
320.hidden	abi_test_clobber_x24
321.align	4
322abi_test_clobber_x24:
323	mov	x24, xzr
324	ret
325.size	abi_test_clobber_x24,.-abi_test_clobber_x24
326.type	abi_test_clobber_x25, %function
327.globl	abi_test_clobber_x25
328.hidden	abi_test_clobber_x25
329.align	4
330abi_test_clobber_x25:
331	mov	x25, xzr
332	ret
333.size	abi_test_clobber_x25,.-abi_test_clobber_x25
334.type	abi_test_clobber_x26, %function
335.globl	abi_test_clobber_x26
336.hidden	abi_test_clobber_x26
337.align	4
338abi_test_clobber_x26:
339	mov	x26, xzr
340	ret
341.size	abi_test_clobber_x26,.-abi_test_clobber_x26
342.type	abi_test_clobber_x27, %function
343.globl	abi_test_clobber_x27
344.hidden	abi_test_clobber_x27
345.align	4
346abi_test_clobber_x27:
347	mov	x27, xzr
348	ret
349.size	abi_test_clobber_x27,.-abi_test_clobber_x27
350.type	abi_test_clobber_x28, %function
351.globl	abi_test_clobber_x28
352.hidden	abi_test_clobber_x28
353.align	4
354abi_test_clobber_x28:
355	mov	x28, xzr
356	ret
357.size	abi_test_clobber_x28,.-abi_test_clobber_x28
358.type	abi_test_clobber_x29, %function
359.globl	abi_test_clobber_x29
360.hidden	abi_test_clobber_x29
361.align	4
362abi_test_clobber_x29:
363	mov	x29, xzr
364	ret
365.size	abi_test_clobber_x29,.-abi_test_clobber_x29
366.type	abi_test_clobber_d0, %function
367.globl	abi_test_clobber_d0
368.hidden	abi_test_clobber_d0
369.align	4
370abi_test_clobber_d0:
371	fmov	d0, xzr
372	ret
373.size	abi_test_clobber_d0,.-abi_test_clobber_d0
374.type	abi_test_clobber_d1, %function
375.globl	abi_test_clobber_d1
376.hidden	abi_test_clobber_d1
377.align	4
378abi_test_clobber_d1:
379	fmov	d1, xzr
380	ret
381.size	abi_test_clobber_d1,.-abi_test_clobber_d1
382.type	abi_test_clobber_d2, %function
383.globl	abi_test_clobber_d2
384.hidden	abi_test_clobber_d2
385.align	4
386abi_test_clobber_d2:
387	fmov	d2, xzr
388	ret
389.size	abi_test_clobber_d2,.-abi_test_clobber_d2
390.type	abi_test_clobber_d3, %function
391.globl	abi_test_clobber_d3
392.hidden	abi_test_clobber_d3
393.align	4
394abi_test_clobber_d3:
395	fmov	d3, xzr
396	ret
397.size	abi_test_clobber_d3,.-abi_test_clobber_d3
398.type	abi_test_clobber_d4, %function
399.globl	abi_test_clobber_d4
400.hidden	abi_test_clobber_d4
401.align	4
402abi_test_clobber_d4:
403	fmov	d4, xzr
404	ret
405.size	abi_test_clobber_d4,.-abi_test_clobber_d4
406.type	abi_test_clobber_d5, %function
407.globl	abi_test_clobber_d5
408.hidden	abi_test_clobber_d5
409.align	4
410abi_test_clobber_d5:
411	fmov	d5, xzr
412	ret
413.size	abi_test_clobber_d5,.-abi_test_clobber_d5
414.type	abi_test_clobber_d6, %function
415.globl	abi_test_clobber_d6
416.hidden	abi_test_clobber_d6
417.align	4
418abi_test_clobber_d6:
419	fmov	d6, xzr
420	ret
421.size	abi_test_clobber_d6,.-abi_test_clobber_d6
422.type	abi_test_clobber_d7, %function
423.globl	abi_test_clobber_d7
424.hidden	abi_test_clobber_d7
425.align	4
426abi_test_clobber_d7:
427	fmov	d7, xzr
428	ret
429.size	abi_test_clobber_d7,.-abi_test_clobber_d7
430.type	abi_test_clobber_d8, %function
431.globl	abi_test_clobber_d8
432.hidden	abi_test_clobber_d8
433.align	4
434abi_test_clobber_d8:
435	fmov	d8, xzr
436	ret
437.size	abi_test_clobber_d8,.-abi_test_clobber_d8
438.type	abi_test_clobber_d9, %function
439.globl	abi_test_clobber_d9
440.hidden	abi_test_clobber_d9
441.align	4
442abi_test_clobber_d9:
443	fmov	d9, xzr
444	ret
445.size	abi_test_clobber_d9,.-abi_test_clobber_d9
446.type	abi_test_clobber_d10, %function
447.globl	abi_test_clobber_d10
448.hidden	abi_test_clobber_d10
449.align	4
450abi_test_clobber_d10:
451	fmov	d10, xzr
452	ret
453.size	abi_test_clobber_d10,.-abi_test_clobber_d10
454.type	abi_test_clobber_d11, %function
455.globl	abi_test_clobber_d11
456.hidden	abi_test_clobber_d11
457.align	4
458abi_test_clobber_d11:
459	fmov	d11, xzr
460	ret
461.size	abi_test_clobber_d11,.-abi_test_clobber_d11
462.type	abi_test_clobber_d12, %function
463.globl	abi_test_clobber_d12
464.hidden	abi_test_clobber_d12
465.align	4
466abi_test_clobber_d12:
467	fmov	d12, xzr
468	ret
469.size	abi_test_clobber_d12,.-abi_test_clobber_d12
470.type	abi_test_clobber_d13, %function
471.globl	abi_test_clobber_d13
472.hidden	abi_test_clobber_d13
473.align	4
474abi_test_clobber_d13:
475	fmov	d13, xzr
476	ret
477.size	abi_test_clobber_d13,.-abi_test_clobber_d13
478.type	abi_test_clobber_d14, %function
479.globl	abi_test_clobber_d14
480.hidden	abi_test_clobber_d14
481.align	4
482abi_test_clobber_d14:
483	fmov	d14, xzr
484	ret
485.size	abi_test_clobber_d14,.-abi_test_clobber_d14
486.type	abi_test_clobber_d15, %function
487.globl	abi_test_clobber_d15
488.hidden	abi_test_clobber_d15
489.align	4
490abi_test_clobber_d15:
491	fmov	d15, xzr
492	ret
493.size	abi_test_clobber_d15,.-abi_test_clobber_d15
494.type	abi_test_clobber_d16, %function
495.globl	abi_test_clobber_d16
496.hidden	abi_test_clobber_d16
497.align	4
498abi_test_clobber_d16:
499	fmov	d16, xzr
500	ret
501.size	abi_test_clobber_d16,.-abi_test_clobber_d16
502.type	abi_test_clobber_d17, %function
503.globl	abi_test_clobber_d17
504.hidden	abi_test_clobber_d17
505.align	4
506abi_test_clobber_d17:
507	fmov	d17, xzr
508	ret
509.size	abi_test_clobber_d17,.-abi_test_clobber_d17
510.type	abi_test_clobber_d18, %function
511.globl	abi_test_clobber_d18
512.hidden	abi_test_clobber_d18
513.align	4
514abi_test_clobber_d18:
515	fmov	d18, xzr
516	ret
517.size	abi_test_clobber_d18,.-abi_test_clobber_d18
518.type	abi_test_clobber_d19, %function
519.globl	abi_test_clobber_d19
520.hidden	abi_test_clobber_d19
521.align	4
522abi_test_clobber_d19:
523	fmov	d19, xzr
524	ret
525.size	abi_test_clobber_d19,.-abi_test_clobber_d19
526.type	abi_test_clobber_d20, %function
527.globl	abi_test_clobber_d20
528.hidden	abi_test_clobber_d20
529.align	4
530abi_test_clobber_d20:
531	fmov	d20, xzr
532	ret
533.size	abi_test_clobber_d20,.-abi_test_clobber_d20
534.type	abi_test_clobber_d21, %function
535.globl	abi_test_clobber_d21
536.hidden	abi_test_clobber_d21
537.align	4
538abi_test_clobber_d21:
539	fmov	d21, xzr
540	ret
541.size	abi_test_clobber_d21,.-abi_test_clobber_d21
542.type	abi_test_clobber_d22, %function
543.globl	abi_test_clobber_d22
544.hidden	abi_test_clobber_d22
545.align	4
546abi_test_clobber_d22:
547	fmov	d22, xzr
548	ret
549.size	abi_test_clobber_d22,.-abi_test_clobber_d22
550.type	abi_test_clobber_d23, %function
551.globl	abi_test_clobber_d23
552.hidden	abi_test_clobber_d23
553.align	4
554abi_test_clobber_d23:
555	fmov	d23, xzr
556	ret
557.size	abi_test_clobber_d23,.-abi_test_clobber_d23
558.type	abi_test_clobber_d24, %function
559.globl	abi_test_clobber_d24
560.hidden	abi_test_clobber_d24
561.align	4
562abi_test_clobber_d24:
563	fmov	d24, xzr
564	ret
565.size	abi_test_clobber_d24,.-abi_test_clobber_d24
566.type	abi_test_clobber_d25, %function
567.globl	abi_test_clobber_d25
568.hidden	abi_test_clobber_d25
569.align	4
570abi_test_clobber_d25:
571	fmov	d25, xzr
572	ret
573.size	abi_test_clobber_d25,.-abi_test_clobber_d25
574.type	abi_test_clobber_d26, %function
575.globl	abi_test_clobber_d26
576.hidden	abi_test_clobber_d26
577.align	4
578abi_test_clobber_d26:
579	fmov	d26, xzr
580	ret
581.size	abi_test_clobber_d26,.-abi_test_clobber_d26
582.type	abi_test_clobber_d27, %function
583.globl	abi_test_clobber_d27
584.hidden	abi_test_clobber_d27
585.align	4
586abi_test_clobber_d27:
587	fmov	d27, xzr
588	ret
589.size	abi_test_clobber_d27,.-abi_test_clobber_d27
590.type	abi_test_clobber_d28, %function
591.globl	abi_test_clobber_d28
592.hidden	abi_test_clobber_d28
593.align	4
594abi_test_clobber_d28:
595	fmov	d28, xzr
596	ret
597.size	abi_test_clobber_d28,.-abi_test_clobber_d28
598.type	abi_test_clobber_d29, %function
599.globl	abi_test_clobber_d29
600.hidden	abi_test_clobber_d29
601.align	4
602abi_test_clobber_d29:
603	fmov	d29, xzr
604	ret
605.size	abi_test_clobber_d29,.-abi_test_clobber_d29
606.type	abi_test_clobber_d30, %function
607.globl	abi_test_clobber_d30
608.hidden	abi_test_clobber_d30
609.align	4
610abi_test_clobber_d30:
611	fmov	d30, xzr
612	ret
613.size	abi_test_clobber_d30,.-abi_test_clobber_d30
614.type	abi_test_clobber_d31, %function
615.globl	abi_test_clobber_d31
616.hidden	abi_test_clobber_d31
617.align	4
618abi_test_clobber_d31:
619	fmov	d31, xzr
620	ret
621.size	abi_test_clobber_d31,.-abi_test_clobber_d31
622.type	abi_test_clobber_v8_upper, %function
623.globl	abi_test_clobber_v8_upper
624.hidden	abi_test_clobber_v8_upper
625.align	4
626abi_test_clobber_v8_upper:
627	fmov	v8.d[1], xzr
628	ret
629.size	abi_test_clobber_v8_upper,.-abi_test_clobber_v8_upper
630.type	abi_test_clobber_v9_upper, %function
631.globl	abi_test_clobber_v9_upper
632.hidden	abi_test_clobber_v9_upper
633.align	4
634abi_test_clobber_v9_upper:
635	fmov	v9.d[1], xzr
636	ret
637.size	abi_test_clobber_v9_upper,.-abi_test_clobber_v9_upper
638.type	abi_test_clobber_v10_upper, %function
639.globl	abi_test_clobber_v10_upper
640.hidden	abi_test_clobber_v10_upper
641.align	4
642abi_test_clobber_v10_upper:
643	fmov	v10.d[1], xzr
644	ret
645.size	abi_test_clobber_v10_upper,.-abi_test_clobber_v10_upper
646.type	abi_test_clobber_v11_upper, %function
647.globl	abi_test_clobber_v11_upper
648.hidden	abi_test_clobber_v11_upper
649.align	4
650abi_test_clobber_v11_upper:
651	fmov	v11.d[1], xzr
652	ret
653.size	abi_test_clobber_v11_upper,.-abi_test_clobber_v11_upper
654.type	abi_test_clobber_v12_upper, %function
655.globl	abi_test_clobber_v12_upper
656.hidden	abi_test_clobber_v12_upper
657.align	4
658abi_test_clobber_v12_upper:
659	fmov	v12.d[1], xzr
660	ret
661.size	abi_test_clobber_v12_upper,.-abi_test_clobber_v12_upper
662.type	abi_test_clobber_v13_upper, %function
663.globl	abi_test_clobber_v13_upper
664.hidden	abi_test_clobber_v13_upper
665.align	4
666abi_test_clobber_v13_upper:
667	fmov	v13.d[1], xzr
668	ret
669.size	abi_test_clobber_v13_upper,.-abi_test_clobber_v13_upper
670.type	abi_test_clobber_v14_upper, %function
671.globl	abi_test_clobber_v14_upper
672.hidden	abi_test_clobber_v14_upper
673.align	4
674abi_test_clobber_v14_upper:
675	fmov	v14.d[1], xzr
676	ret
677.size	abi_test_clobber_v14_upper,.-abi_test_clobber_v14_upper
678.type	abi_test_clobber_v15_upper, %function
679.globl	abi_test_clobber_v15_upper
680.hidden	abi_test_clobber_v15_upper
681.align	4
682abi_test_clobber_v15_upper:
683	fmov	v15.d[1], xzr
684	ret
685.size	abi_test_clobber_v15_upper,.-abi_test_clobber_v15_upper
686#endif
687#endif  // !OPENSSL_NO_ASM
688.section	.note.GNU-stack,"",%progbits
689