| /* SPDX-License-Identifier: GPL-2.0-only */ |
| * arch/arm/include/asm/fpstate.h |
| * Copyright (C) 1995 Russell King |
| #ifndef __ASM_ARM_FPSTATE_H |
| #define __ASM_ARM_FPSTATE_H |
| * - FPEXC, FPSCR, FPINST and FPINST2. |
| * - 16 or 32 double precision data registers |
| * - an implementation-dependent word of state for FLDMX/FSTMX (pre-ARMv6) |
| * FPEXC will always be non-zero once the VFP has been used in this process. |
| #if __LINUX_ARM_ARCH__ < 6 |
| * VFP implementation specific state |
| struct vfp_hard_struct hard; |
| extern void vfp_flush_thread(union vfp_state *); |
| extern void vfp_release_thread(union vfp_state *); |
| unsigned int save[FP_HARD_SIZE]; /* as yet undefined */ |
| unsigned int save[FP_SOFT_SIZE]; /* undefined information */ |
| unsigned int save[IWMMXT_SIZE / sizeof(unsigned int)]; |
| struct fp_hard_struct hard; |
| struct fp_soft_struct soft; |
| struct iwmmxt_struct iwmmxt; |
| #define FP_SIZE (sizeof(union fp_state) / sizeof(int)) |
| unsigned int mvdx[16][2]; |
| #define CRUNCH_SIZE sizeof(struct crunch_state) |