diff options
author | Paul Mundt <lethal@linux-sh.org> | 2007-11-22 08:30:50 (GMT) |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2008-01-28 04:18:55 (GMT) |
commit | 332fd57b92d26e2ac6112340b98e92bb76117a41 (patch) | |
tree | fbbc00a900299ad91f46a74b8f2d42efaf4809af /include/asm-sh/fpu.h | |
parent | b6d7b666097e79a8908e3c43fd55fd291a95e133 (diff) | |
download | linux-332fd57b92d26e2ac6112340b98e92bb76117a41.tar.xz |
sh: Bring the SH-5 FPU in line with the SH-4 FPU API.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'include/asm-sh/fpu.h')
-rw-r--r-- | include/asm-sh/fpu.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/include/asm-sh/fpu.h b/include/asm-sh/fpu.h new file mode 100644 index 0000000..33db698 --- /dev/null +++ b/include/asm-sh/fpu.h @@ -0,0 +1,44 @@ +#ifndef __ASM_SH_FPU_H +#define __ASM_SH_FPU_H + +#define SR_FD 0x00008000 + +#ifndef __ASSEMBLY__ +#include <asm/ptrace.h> + +#ifdef CONFIG_SH_FPU +static inline void release_fpu(struct pt_regs *regs) +{ + regs->sr |= SR_FD; +} + +static inline void grab_fpu(struct pt_regs *regs) +{ + regs->sr &= ~SR_FD; +} + +struct task_struct; + +extern void save_fpu(struct task_struct *__tsk, struct pt_regs *regs); +#else +#define release_fpu(regs) do { } while (0) +#define grab_fpu(regs) do { } while (0) +#define save_fpu(tsk, regs) do { } while (0) +#endif + +#define unlazy_fpu(tsk, regs) do { \ + if (test_tsk_thread_flag(tsk, TIF_USEDFPU)) { \ + save_fpu(tsk, regs); \ + } \ +} while (0) + +#define clear_fpu(tsk, regs) do { \ + if (test_tsk_thread_flag(tsk, TIF_USEDFPU)) { \ + clear_tsk_thread_flag(tsk, TIF_USEDFPU); \ + release_fpu(regs); \ + } \ +} while (0) + +#endif /* __ASSEMBLY__ */ + +#endif /* __ASM_SH_FPU_H */ |