aboutsummaryrefslogtreecommitdiff
path: root/tools/test/xregs_sig/c2x2c_aarch64.S
diff options
context:
space:
mode:
Diffstat (limited to 'tools/test/xregs_sig/c2x2c_aarch64.S')
-rw-r--r--tools/test/xregs_sig/c2x2c_aarch64.S64
1 files changed, 64 insertions, 0 deletions
diff --git a/tools/test/xregs_sig/c2x2c_aarch64.S b/tools/test/xregs_sig/c2x2c_aarch64.S
new file mode 100644
index 000000000000..2bb73c114b26
--- /dev/null
+++ b/tools/test/xregs_sig/c2x2c_aarch64.S
@@ -0,0 +1,64 @@
+/*
+ * This file is in public domain.
+ * Written by Dmitry Chagin <dchagin@FreeBSD.org>
+ */
+
+ .text
+
+ .globl xregs_banks_max
+ .type xregs_banks_max, @function
+xregs_banks_max:
+ mov x0, #0
+ ret
+
+ .size xregs_banks_max, . - xregs_banks_max
+
+
+ .globl cpu_to_vfp
+ .type cpu_to_vfp, @function
+cpu_to_vfp:
+ stp q0, q1, [x0, #( 0 * 16)]
+ stp q2, q3, [x0, #( 2 * 16)]
+ stp q4, q5, [x0, #( 4 * 16)]
+ stp q6, q7, [x0, #( 6 * 16)]
+ stp q8, q9, [x0, #( 8 * 16)]
+ stp q10, q11, [x0, #(10 * 16)]
+ stp q12, q13, [x0, #(12 * 16)]
+ stp q14, q15, [x0, #(14 * 16)]
+ stp q16, q17, [x0, #(16 * 16)]
+ stp q18, q19, [x0, #(18 * 16)]
+ stp q20, q21, [x0, #(20 * 16)]
+ stp q22, q23, [x0, #(22 * 16)]
+ stp q24, q25, [x0, #(24 * 16)]
+ stp q26, q27, [x0, #(26 * 16)]
+ stp q28, q29, [x0, #(28 * 16)]
+ stp q30, q31, [x0, #(30 * 16)]
+ ret
+
+ .size cpu_to_vfp, . - cpu_to_vfp
+
+
+ .globl vfp_to_cpu
+ .type vfp_to_cpu, @function
+vfp_to_cpu:
+ ldp q0, q1, [x0, #( 0 * 16)]
+ ldp q2, q3, [x0, #( 2 * 16)]
+ ldp q4, q5, [x0, #( 4 * 16)]
+ ldp q6, q7, [x0, #( 6 * 16)]
+ ldp q8, q9, [x0, #( 8 * 16)]
+ ldp q10, q11, [x0, #(10 * 16)]
+ ldp q12, q13, [x0, #(12 * 16)]
+ ldp q14, q15, [x0, #(14 * 16)]
+ ldp q16, q17, [x0, #(16 * 16)]
+ ldp q18, q19, [x0, #(18 * 16)]
+ ldp q20, q21, [x0, #(20 * 16)]
+ ldp q22, q23, [x0, #(22 * 16)]
+ ldp q24, q25, [x0, #(24 * 16)]
+ ldp q26, q27, [x0, #(26 * 16)]
+ ldp q28, q29, [x0, #(28 * 16)]
+ ldp q30, q31, [x0, #(30 * 16)]
+ ret
+
+ .size vfp_to_cpu, . - vfp_to_cpu
+
+ .section .note.GNU-stack,"",@progbits