- Linus: drop support for old-style Makefiles entirely. Big.
[davej-history.git] / arch / ppc / math-emu / mtfsf.c
blobcb406dd53bffd3ab6e72b740a1f2f19124ef5f08
1 /* $Id: mtfsf.c,v 1.1 1999/08/23 19:00:19 cort Exp $
2 */
4 #include <linux/types.h>
5 #include <linux/errno.h>
6 #include <asm/uaccess.h>
8 #include "soft-fp.h"
10 int
11 mtfsf(unsigned int FM, u32 *frB)
13 u32 mask;
15 if (FM == 0)
16 return 0;
18 if (FM == 0xff)
19 mask = 0x9fffffff;
20 else {
21 mask = 0;
22 if (FM & (1 << 0))
23 mask |= 0x90000000;
24 if (FM & (1 << 1))
25 mask |= 0x0f000000;
26 if (FM & (1 << 2))
27 mask |= 0x00f00000;
28 if (FM & (1 << 3))
29 mask |= 0x000f0000;
30 if (FM & (1 << 4))
31 mask |= 0x0000f000;
32 if (FM & (1 << 5))
33 mask |= 0x00000f00;
34 if (FM & (1 << 6))
35 mask |= 0x000000f0;
36 if (FM & (1 << 7))
37 mask |= 0x0000000f;
40 __FPU_FPSCR &= ~(mask);
41 __FPU_FPSCR |= (frB[1] & mask);
43 #ifdef DEBUG
44 printk("%s: %02x %p: %08lx\n", __FUNCTION__, FM, frB, __FPU_FPSCR);
45 #endif
47 return 0;