Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/csky/abiv2/inc/abi/fpu.h
26481 views
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
9
int fpu_libc_helper(struct pt_regs *regs);
10
void fpu_fpe(struct pt_regs *regs);
11
12
static inline void init_fpu(void) { mtcr("cr<1, 2>", 0); }
13
14
void save_to_user_fp(struct user_fp *user_fp);
15
void 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 */
67
68