1/* SPDX-License-Identifier: BSD-2-Clause */ 2/* 3 * Copyright (c) 2015-2016, Linaro Limited 4 */ 5 6#include <asm.S> 7 8 .fpu neon 9 10/* void vfp_save_extension_regs(uint64_t regs[VFP_NUM_REGS]); */ 11FUNC vfp_save_extension_regs , : 12UNWIND( .fnstart) 13 vstm r0!, {d0-d15} 14 vstm r0, {d16-d31} 15 bx lr 16UNWIND( .fnend) 17END_FUNC vfp_save_extension_regs 18 19/* void vfp_restore_extension_regs(uint64_t regs[VFP_NUM_REGS]); */ 20FUNC vfp_restore_extension_regs , : 21UNWIND( .fnstart) 22 vldm r0!, {d0-d15} 23 vldm r0, {d16-d31} 24 bx lr 25UNWIND( .fnend) 26END_FUNC vfp_restore_extension_regs 27 28/* void vfp_write_fpexc(uint32_t fpexc) */ 29FUNC vfp_write_fpexc , : 30UNWIND( .fnstart) 31 vmsr fpexc, r0 32 bx lr 33UNWIND( .fnend) 34END_FUNC vfp_write_fpexc 35 36/* uint32_t vfp_read_fpexc(void) */ 37FUNC vfp_read_fpexc , : 38UNWIND( .fnstart) 39 vmrs r0, fpexc 40 bx lr 41UNWIND( .fnend) 42END_FUNC vfp_read_fpexc 43 44/* void vfp_write_fpscr(uint32_t fpscr) */ 45FUNC vfp_write_fpscr , : 46UNWIND( .fnstart) 47 vmsr fpscr, r0 48 bx lr 49UNWIND( .fnend) 50END_FUNC vfp_write_fpscr 51 52/* uint32_t vfp_read_fpscr(void) */ 53FUNC vfp_read_fpscr , : 54UNWIND( .fnstart) 55 vmrs r0, fpscr 56 bx lr 57UNWIND( .fnend) 58END_FUNC vfp_read_fpscr 59