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