Blame view
include/asm-arm/fpstate.h
1.67 KB
1da177e4c
|
1 2 3 4 5 6 7 8 9 10 11 12 |
/* * linux/include/asm-arm/fpstate.h * * Copyright (C) 1995 Russell King * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #ifndef __ASM_ARM_FPSTATE_H #define __ASM_ARM_FPSTATE_H |
1da177e4c
|
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#ifndef __ASSEMBLY__ /* * VFP storage area has: * - FPEXC, FPSCR, FPINST and FPINST2. * - 16 double precision data registers * - an implementation-dependant word of state for FLDMX/FSTMX * * FPEXC will always be non-zero once the VFP has been used in this process. */ struct vfp_hard_struct { __u64 fpregs[16]; |
bb54a335a
|
27 |
#if __LINUX_ARM_ARCH__ < 6 |
1da177e4c
|
28 |
__u32 fpmx_state; |
bb54a335a
|
29 |
#endif |
1da177e4c
|
30 31 32 33 34 35 36 |
__u32 fpexc; __u32 fpscr; /* * VFP implementation specific state */ __u32 fpinst; __u32 fpinst2; |
c64284648
|
37 38 39 |
#ifdef CONFIG_SMP __u32 cpu; #endif |
1da177e4c
|
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
}; union vfp_state { struct vfp_hard_struct hard; }; extern void vfp_flush_thread(union vfp_state *); extern void vfp_release_thread(union vfp_state *); #define FP_HARD_SIZE 35 struct fp_hard_struct { unsigned int save[FP_HARD_SIZE]; /* as yet undefined */ }; #define FP_SOFT_SIZE 35 struct fp_soft_struct { unsigned int save[FP_SOFT_SIZE]; /* undefined information */ }; |
cdaabbd74
|
60 |
#define IWMMXT_SIZE 0x98 |
1da177e4c
|
61 |
struct iwmmxt_struct { |
cdaabbd74
|
62 |
unsigned int save[IWMMXT_SIZE / sizeof(unsigned int)]; |
1da177e4c
|
63 64 65 66 67 68 69 70 71 72 73 |
}; union fp_state { struct fp_hard_struct hard; struct fp_soft_struct soft; #ifdef CONFIG_IWMMXT struct iwmmxt_struct iwmmxt; #endif }; #define FP_SIZE (sizeof(union fp_state) / sizeof(int)) |
c17fad11f
|
74 75 76 77 78 79 80 |
struct crunch_state { unsigned int mvdx[16][2]; unsigned int mvax[4][3]; unsigned int dspsc[2]; }; #define CRUNCH_SIZE sizeof(struct crunch_state) |
1da177e4c
|
81 82 83 |
#endif #endif |