diff options
Diffstat (limited to 'arch/powerpc/math-emu/stfs.c')
-rw-r--r-- | arch/powerpc/math-emu/stfs.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/arch/powerpc/math-emu/stfs.c b/arch/powerpc/math-emu/stfs.c index 8689aa48ef69..6122147356d1 100644 --- a/arch/powerpc/math-emu/stfs.c +++ b/arch/powerpc/math-emu/stfs.c | |||
@@ -2,23 +2,24 @@ | |||
2 | #include <linux/errno.h> | 2 | #include <linux/errno.h> |
3 | #include <asm/uaccess.h> | 3 | #include <asm/uaccess.h> |
4 | 4 | ||
5 | #include "soft-fp.h" | 5 | #include <asm/sfp-machine.h> |
6 | #include "double.h" | 6 | #include <math-emu/soft-fp.h> |
7 | #include "single.h" | 7 | #include <math-emu/double.h> |
8 | #include <math-emu/single.h> | ||
8 | 9 | ||
9 | int | 10 | int |
10 | stfs(void *frS, void *ea) | 11 | stfs(void *frS, void *ea) |
11 | { | 12 | { |
12 | FP_DECL_D(A); | 13 | FP_DECL_D(A); |
13 | FP_DECL_S(R); | 14 | FP_DECL_S(R); |
15 | FP_DECL_EX; | ||
14 | float f; | 16 | float f; |
15 | int err; | ||
16 | 17 | ||
17 | #ifdef DEBUG | 18 | #ifdef DEBUG |
18 | printk("%s: S %p, ea %p\n", __func__, frS, ea); | 19 | printk("%s: S %p, ea %p\n", __func__, frS, ea); |
19 | #endif | 20 | #endif |
20 | 21 | ||
21 | __FP_UNPACK_D(A, frS); | 22 | FP_UNPACK_DP(A, frS); |
22 | 23 | ||
23 | #ifdef DEBUG | 24 | #ifdef DEBUG |
24 | printk("A: %ld %lu %lu %ld (%ld)\n", A_s, A_f1, A_f0, A_e, A_c); | 25 | printk("A: %ld %lu %lu %ld (%ld)\n", A_s, A_f1, A_f0, A_e, A_c); |
@@ -30,12 +31,12 @@ stfs(void *frS, void *ea) | |||
30 | printk("R: %ld %lu %ld (%ld)\n", R_s, R_f, R_e, R_c); | 31 | printk("R: %ld %lu %ld (%ld)\n", R_s, R_f, R_e, R_c); |
31 | #endif | 32 | #endif |
32 | 33 | ||
33 | err = _FP_PACK_CANONICAL(S, 1, R); | 34 | _FP_PACK_CANONICAL(S, 1, R); |
34 | if (!err || !__FPU_TRAP_P(err)) { | 35 | if (!FP_CUR_EXCEPTIONS || !__FPU_TRAP_P(FP_CUR_EXCEPTIONS)) { |
35 | __FP_PACK_RAW_1(S, &f, R); | 36 | _FP_PACK_RAW_1_P(S, &f, R); |
36 | if (copy_to_user(ea, &f, sizeof(float))) | 37 | if (copy_to_user(ea, &f, sizeof(float))) |
37 | return -EFAULT; | 38 | return -EFAULT; |
38 | } | 39 | } |
39 | 40 | ||
40 | return err; | 41 | return FP_CUR_EXCEPTIONS; |
41 | } | 42 | } |