Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzi...
[wrt350n-kernel.git] / include / asm-sh / fpu.h
blobf8429880a27011cab16851b2f83fad36fe3623f3
1 #ifndef __ASM_SH_FPU_H
2 #define __ASM_SH_FPU_H
4 #define SR_FD 0x00008000
6 #ifndef __ASSEMBLY__
7 #include <asm/ptrace.h>
9 #ifdef CONFIG_SH_FPU
10 static inline void release_fpu(struct pt_regs *regs)
12 regs->sr |= SR_FD;
15 static inline void grab_fpu(struct pt_regs *regs)
17 regs->sr &= ~SR_FD;
20 struct task_struct;
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
29 extern int do_fpu_inst(unsigned short, struct pt_regs *);
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)
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)
44 #endif /* __ASSEMBLY__ */
46 #endif /* __ASM_SH_FPU_H */