0001
0002
0003 #ifndef __ASM_CSKY_FPU_H
0004 #define __ASM_CSKY_FPU_H
0005
0006 #include <asm/sigcontext.h>
0007 #include <asm/ptrace.h>
0008
0009 int fpu_libc_helper(struct pt_regs *regs);
0010 void fpu_fpe(struct pt_regs *regs);
0011
0012 static inline void init_fpu(void) { mtcr("cr<1, 2>", 0); }
0013
0014 void save_to_user_fp(struct user_fp *user_fp);
0015 void restore_from_user_fp(struct user_fp *user_fp);
0016
0017
0018
0019
0020 #define FPE_ILLE (1 << 16)
0021 #define FPE_FEC (1 << 7)
0022 #define FPE_IDC (1 << 5)
0023 #define FPE_IXC (1 << 4)
0024 #define FPE_UFC (1 << 3)
0025 #define FPE_OFC (1 << 2)
0026 #define FPE_DZC (1 << 1)
0027 #define FPE_IOC (1 << 0)
0028 #define FPE_REGULAR_EXCEPTION (FPE_IXC | FPE_UFC | FPE_OFC | FPE_DZC | FPE_IOC)
0029
0030 #ifdef CONFIG_OPEN_FPU_IDE
0031 #define IDE_STAT (1 << 5)
0032 #else
0033 #define IDE_STAT 0
0034 #endif
0035
0036 #ifdef CONFIG_OPEN_FPU_IXE
0037 #define IXE_STAT (1 << 4)
0038 #else
0039 #define IXE_STAT 0
0040 #endif
0041
0042 #ifdef CONFIG_OPEN_FPU_UFE
0043 #define UFE_STAT (1 << 3)
0044 #else
0045 #define UFE_STAT 0
0046 #endif
0047
0048 #ifdef CONFIG_OPEN_FPU_OFE
0049 #define OFE_STAT (1 << 2)
0050 #else
0051 #define OFE_STAT 0
0052 #endif
0053
0054 #ifdef CONFIG_OPEN_FPU_DZE
0055 #define DZE_STAT (1 << 1)
0056 #else
0057 #define DZE_STAT 0
0058 #endif
0059
0060 #ifdef CONFIG_OPEN_FPU_IOE
0061 #define IOE_STAT (1 << 0)
0062 #else
0063 #define IOE_STAT 0
0064 #endif
0065
0066 #endif