xref: /freebsd/tools/test/xregs_sig/c2x2c_aarch64.S (revision ba3c1f5972d7b90feb6e6da47905ff2757e0fe57)
1/*
2 * This file is in public domain.
3 * Written by Dmitry Chagin <dchagin@FreeBSD.org>
4 *
5 * $FreeBSD$
6 */
7
8	.text
9
10	.globl xregs_banks_max
11	.type xregs_banks_max, @function
12xregs_banks_max:
13	mov  x0, #0
14	ret
15
16	.size xregs_banks_max, . - xregs_banks_max
17
18
19	.globl cpu_to_vfp
20	.type cpu_to_vfp, @function
21cpu_to_vfp:
22	stp  q0,  q1, [x0, #( 0 * 16)]
23	stp  q2,  q3, [x0, #( 2 * 16)]
24	stp  q4,  q5, [x0, #( 4 * 16)]
25	stp  q6,  q7, [x0, #( 6 * 16)]
26	stp  q8,  q9, [x0, #( 8 * 16)]
27	stp q10, q11, [x0, #(10 * 16)]
28	stp q12, q13, [x0, #(12 * 16)]
29	stp q14, q15, [x0, #(14 * 16)]
30	stp q16, q17, [x0, #(16 * 16)]
31	stp q18, q19, [x0, #(18 * 16)]
32	stp q20, q21, [x0, #(20 * 16)]
33	stp q22, q23, [x0, #(22 * 16)]
34	stp q24, q25, [x0, #(24 * 16)]
35	stp q26, q27, [x0, #(26 * 16)]
36	stp q28, q29, [x0, #(28 * 16)]
37	stp q30, q31, [x0, #(30 * 16)]
38	ret
39
40	.size cpu_to_vfp, . - cpu_to_vfp
41
42
43	.globl vfp_to_cpu
44	.type vfp_to_cpu, @function
45vfp_to_cpu:
46	ldp  q0,  q1, [x0, #( 0 * 16)]
47	ldp  q2,  q3, [x0, #( 2 * 16)]
48	ldp  q4,  q5, [x0, #( 4 * 16)]
49	ldp  q6,  q7, [x0, #( 6 * 16)]
50	ldp  q8,  q9, [x0, #( 8 * 16)]
51	ldp q10, q11, [x0, #(10 * 16)]
52	ldp q12, q13, [x0, #(12 * 16)]
53	ldp q14, q15, [x0, #(14 * 16)]
54	ldp q16, q17, [x0, #(16 * 16)]
55	ldp q18, q19, [x0, #(18 * 16)]
56	ldp q20, q21, [x0, #(20 * 16)]
57	ldp q22, q23, [x0, #(22 * 16)]
58	ldp q24, q25, [x0, #(24 * 16)]
59	ldp q26, q27, [x0, #(26 * 16)]
60	ldp q28, q29, [x0, #(28 * 16)]
61	ldp q30, q31, [x0, #(30 * 16)]
62	ret
63
64	.size vfp_to_cpu, . - vfp_to_cpu
65
66	.section        .note.GNU-stack,"",@progbits
67