projects
/
linux-2.6
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
blame
|
history
|
raw
|
HEAD
Merge with /home/shaggy/git/linus-clean/
[linux-2.6]
/
arch
/
ppc
/
math-emu
/
mtfsf.c
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
mtfsf(unsigned int FM, u32 *frB)
9
{
10
u32 mask;
11
12
if (FM == 0)
13
return 0;
14
15
if (FM == 0xff)
16
mask = 0x9fffffff;
17
else {
18
mask = 0;
19
if (FM & (1 << 0))
20
mask |= 0x90000000;
21
if (FM & (1 << 1))
22
mask |= 0x0f000000;
23
if (FM & (1 << 2))
24
mask |= 0x00f00000;
25
if (FM & (1 << 3))
26
mask |= 0x000f0000;
27
if (FM & (1 << 4))
28
mask |= 0x0000f000;
29
if (FM & (1 << 5))
30
mask |= 0x00000f00;
31
if (FM & (1 << 6))
32
mask |= 0x000000f0;
33
if (FM & (1 << 7))
34
mask |= 0x0000000f;
35
}
36
37
__FPU_FPSCR &= ~(mask);
38
__FPU_FPSCR |= (frB[1] & mask);
39
40
#ifdef DEBUG
41
printk("%s: %02x %p: %08lx\n", __FUNCTION__, FM, frB, __FPU_FPSCR);
42
#endif
43
44
return 0;
45
}