MIPS: math-emu: Inline fpu_emulator_init_fpu()
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
#include <asm/mipsregs.h>
|
||||
#include <asm/cpu.h>
|
||||
#include <asm/cpu-features.h>
|
||||
#include <asm/fpu_emulator.h>
|
||||
#include <asm/hazards.h>
|
||||
#include <asm/processor.h>
|
||||
#include <asm/current.h>
|
||||
@@ -28,7 +29,6 @@
|
||||
struct sigcontext;
|
||||
struct sigcontext32;
|
||||
|
||||
extern void fpu_emulator_init_fpu(void);
|
||||
extern void _init_fpu(void);
|
||||
extern void _save_fp(struct task_struct *);
|
||||
extern void _restore_fp(struct task_struct *);
|
||||
@@ -156,15 +156,16 @@ static inline int init_fpu(void)
|
||||
int ret = 0;
|
||||
|
||||
preempt_disable();
|
||||
|
||||
if (cpu_has_fpu) {
|
||||
ret = __own_fpu();
|
||||
if (!ret)
|
||||
_init_fpu();
|
||||
} else {
|
||||
} else
|
||||
fpu_emulator_init_fpu();
|
||||
}
|
||||
|
||||
preempt_enable();
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@@ -23,9 +23,12 @@
|
||||
#ifndef _ASM_FPU_EMULATOR_H
|
||||
#define _ASM_FPU_EMULATOR_H
|
||||
|
||||
#include <linux/sched.h>
|
||||
#include <asm/break.h>
|
||||
#include <asm/thread_info.h>
|
||||
#include <asm/inst.h>
|
||||
#include <asm/local.h>
|
||||
#include <asm/processor.h>
|
||||
|
||||
#ifdef CONFIG_DEBUG_FS
|
||||
|
||||
@@ -71,4 +74,17 @@ int mm_isBranchInstr(struct pt_regs *regs, struct mm_decoded_insn dec_insn,
|
||||
*/
|
||||
#define BREAK_MATH (0x0000000d | (BRK_MEMU << 16))
|
||||
|
||||
#define SIGNALLING_NAN 0x7ff800007ff80000LL
|
||||
|
||||
static inline void fpu_emulator_init_fpu(void)
|
||||
{
|
||||
struct task_struct *t = current;
|
||||
int i;
|
||||
|
||||
t->thread.fpu.fcr31 = 0;
|
||||
|
||||
for (i = 0; i < 32; i++)
|
||||
set_fpr64(&t->thread.fpu.fpr[i], 0, SIGNALLING_NAN);
|
||||
}
|
||||
|
||||
#endif /* _ASM_FPU_EMULATOR_H */
|
||||
|
Reference in New Issue
Block a user