]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blob - include/asm-sh/fpu.h
Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
[mirror_ubuntu-bionic-kernel.git] / include / asm-sh / fpu.h
1 #ifndef __ASM_SH_FPU_H
2 #define __ASM_SH_FPU_H
3
4 #define SR_FD 0x00008000
5
6 #ifndef __ASSEMBLY__
7 #include <asm/ptrace.h>
8
9 #ifdef CONFIG_SH_FPU
10 static inline void release_fpu(struct pt_regs *regs)
11 {
12 regs->sr |= SR_FD;
13 }
14
15 static inline void grab_fpu(struct pt_regs *regs)
16 {
17 regs->sr &= ~SR_FD;
18 }
19
20 struct task_struct;
21
22 extern void save_fpu(struct task_struct *__tsk, struct pt_regs *regs);
23 #else
24 #define release_fpu(regs) do { } while (0)
25 #define grab_fpu(regs) do { } while (0)
26 #define save_fpu(tsk, regs) do { } while (0)
27 #endif
28
29 extern int do_fpu_inst(unsigned short, struct pt_regs *);
30
31 #define unlazy_fpu(tsk, regs) do { \
32 if (test_tsk_thread_flag(tsk, TIF_USEDFPU)) { \
33 save_fpu(tsk, regs); \
34 } \
35 } while (0)
36
37 #define clear_fpu(tsk, regs) do { \
38 if (test_tsk_thread_flag(tsk, TIF_USEDFPU)) { \
39 clear_tsk_thread_flag(tsk, TIF_USEDFPU); \
40 release_fpu(regs); \
41 } \
42 } while (0)
43
44 #endif /* __ASSEMBLY__ */
45
46 #endif /* __ASM_SH_FPU_H */