diff options
Diffstat (limited to 'arch/powerpc/math-emu/mtfsfi.c')
-rw-r--r-- | arch/powerpc/math-emu/mtfsfi.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/powerpc/math-emu/mtfsfi.c b/arch/powerpc/math-emu/mtfsfi.c new file mode 100644 index 000000000000..71df854baa7e --- /dev/null +++ b/arch/powerpc/math-emu/mtfsfi.c | |||
@@ -0,0 +1,23 @@ | |||
1 | #include <linux/types.h> | ||
2 | #include <linux/errno.h> | ||
3 | #include <asm/uaccess.h> | ||
4 | |||
5 | #include "soft-fp.h" | ||
6 | |||
7 | int | ||
8 | mtfsfi(unsigned int crfD, unsigned int IMM) | ||
9 | { | ||
10 | u32 mask = 0xf; | ||
11 | |||
12 | if (!crfD) | ||
13 | mask = 9; | ||
14 | |||
15 | __FPU_FPSCR &= ~(mask << ((7 - crfD) << 2)); | ||
16 | __FPU_FPSCR |= (IMM & 0xf) << ((7 - crfD) << 2); | ||
17 | |||
18 | #ifdef DEBUG | ||
19 | printk("%s: %d %x: %08lx\n", __FUNCTION__, crfD, IMM, __FPU_FPSCR); | ||
20 | #endif | ||
21 | |||
22 | return 0; | ||
23 | } | ||