diff options
Diffstat (limited to 'tools/test/xregs_sig/c2x2c_aarch64.S')
| -rw-r--r-- | tools/test/xregs_sig/c2x2c_aarch64.S | 64 |
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 |
