fpu.h (1585B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2 3#ifndef __ASM_CSKY_FPU_H 4#define __ASM_CSKY_FPU_H 5 6#include <asm/sigcontext.h> 7#include <asm/ptrace.h> 8 9int fpu_libc_helper(struct pt_regs *regs); 10void fpu_fpe(struct pt_regs *regs); 11 12static inline void init_fpu(void) { mtcr("cr<1, 2>", 0); } 13 14void save_to_user_fp(struct user_fp *user_fp); 15void restore_from_user_fp(struct user_fp *user_fp); 16 17/* 18 * Define the fesr bit for fpe handle. 19 */ 20#define FPE_ILLE (1 << 16) /* Illegal instruction */ 21#define FPE_FEC (1 << 7) /* Input float-point arithmetic exception */ 22#define FPE_IDC (1 << 5) /* Input denormalized exception */ 23#define FPE_IXC (1 << 4) /* Inexact exception */ 24#define FPE_UFC (1 << 3) /* Underflow exception */ 25#define FPE_OFC (1 << 2) /* Overflow exception */ 26#define FPE_DZC (1 << 1) /* Divide by zero exception */ 27#define FPE_IOC (1 << 0) /* Invalid operation exception */ 28#define FPE_REGULAR_EXCEPTION (FPE_IXC | FPE_UFC | FPE_OFC | FPE_DZC | FPE_IOC) 29 30#ifdef CONFIG_OPEN_FPU_IDE 31#define IDE_STAT (1 << 5) 32#else 33#define IDE_STAT 0 34#endif 35 36#ifdef CONFIG_OPEN_FPU_IXE 37#define IXE_STAT (1 << 4) 38#else 39#define IXE_STAT 0 40#endif 41 42#ifdef CONFIG_OPEN_FPU_UFE 43#define UFE_STAT (1 << 3) 44#else 45#define UFE_STAT 0 46#endif 47 48#ifdef CONFIG_OPEN_FPU_OFE 49#define OFE_STAT (1 << 2) 50#else 51#define OFE_STAT 0 52#endif 53 54#ifdef CONFIG_OPEN_FPU_DZE 55#define DZE_STAT (1 << 1) 56#else 57#define DZE_STAT 0 58#endif 59 60#ifdef CONFIG_OPEN_FPU_IOE 61#define IOE_STAT (1 << 0) 62#else 63#define IOE_STAT 0 64#endif 65 66#endif /* __ASM_CSKY_FPU_H */