]> pilppa.org Git - linux-2.6-omap-h63xx.git/blob - include/asm-sh/fpu.h
sh: Bring the SH-5 FPU in line with the SH-4 FPU API.
[linux-2.6-omap-h63xx.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 */