33db698a6b4dd790f2bf1ad52301daa33bb3c3c8
[deliverable/linux.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 #define unlazy_fpu(tsk, regs) do { \
30 if (test_tsk_thread_flag(tsk, TIF_USEDFPU)) { \
31 save_fpu(tsk, regs); \
32 } \
33 } while (0)
34
35 #define clear_fpu(tsk, regs) do { \
36 if (test_tsk_thread_flag(tsk, TIF_USEDFPU)) { \
37 clear_tsk_thread_flag(tsk, TIF_USEDFPU); \
38 release_fpu(regs); \
39 } \
40 } while (0)
41
42 #endif /* __ASSEMBLY__ */
43
44 #endif /* __ASM_SH_FPU_H */
This page took 0.043024 seconds and 4 git commands to generate.