diff options
Diffstat (limited to 'kernel/arch/powerpc/math-emu/mtfsfi.c')
-rw-r--r-- | kernel/arch/powerpc/math-emu/mtfsfi.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/kernel/arch/powerpc/math-emu/mtfsfi.c b/kernel/arch/powerpc/math-emu/mtfsfi.c new file mode 100644 index 000000000..fd2acc268 --- /dev/null +++ b/kernel/arch/powerpc/math-emu/mtfsfi.c @@ -0,0 +1,24 @@ +#include <linux/types.h> +#include <linux/errno.h> +#include <asm/uaccess.h> + +#include <asm/sfp-machine.h> +#include <math-emu/soft-fp.h> + +int +mtfsfi(unsigned int crfD, unsigned int IMM) +{ + u32 mask = 0xf; + + if (!crfD) + mask = 9; + + __FPU_FPSCR &= ~(mask << ((7 - crfD) << 2)); + __FPU_FPSCR |= (IMM & 0xf) << ((7 - crfD) << 2); + +#ifdef DEBUG + printk("%s: %d %x: %08lx\n", __func__, crfD, IMM, __FPU_FPSCR); +#endif + + return 0; +} |