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