diff options
author | Kumar Gala <galak@kernel.crashing.org> | 2008-06-04 02:59:29 -0500 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2008-10-01 08:40:07 -0500 |
commit | d2b194ed820880eb19c43b9c10d9f5f30026ee54 (patch) | |
tree | 1ac21746a8c4395c7e7fd73a60202db892fe4d76 /arch/powerpc/math-emu/fdivs.c | |
parent | a969e76a7101bf5f3d369563df1ca1253dd6131b (diff) | |
download | kernel_samsung_smdk4412-d2b194ed820880eb19c43b9c10d9f5f30026ee54.tar.gz kernel_samsung_smdk4412-d2b194ed820880eb19c43b9c10d9f5f30026ee54.tar.bz2 kernel_samsung_smdk4412-d2b194ed820880eb19c43b9c10d9f5f30026ee54.zip |
powerpc/math-emu: Use kernel generic math-emu code
The math emulation code is centered around a set of generic macros that
provide the core of the emulation that are shared by the various
architectures and other projects (like glibc). Each arch implements its
own sfp-machine.h to specific various arch specific details.
For historic reasons that are now lost the powerpc math-emu code had
its own version of the common headers. This moves us to using the
kernel generic version and thus getting fixes when those are updated.
Also cleaned up exception/error reporting from the FP emulation functions.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/math-emu/fdivs.c')
-rw-r--r-- | arch/powerpc/math-emu/fdivs.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/arch/powerpc/math-emu/fdivs.c b/arch/powerpc/math-emu/fdivs.c index 24feed689c3..797f6a9a20b 100644 --- a/arch/powerpc/math-emu/fdivs.c +++ b/arch/powerpc/math-emu/fdivs.c @@ -2,9 +2,10 @@ #include <linux/errno.h> #include <asm/uaccess.h> -#include "soft-fp.h" -#include "double.h" -#include "single.h" +#include <asm/sfp-machine.h> +#include <math-emu/soft-fp.h> +#include <math-emu/double.h> +#include <math-emu/single.h> int fdivs(void *frD, void *frA, void *frB) @@ -12,14 +13,15 @@ fdivs(void *frD, void *frA, void *frB) FP_DECL_D(A); FP_DECL_D(B); FP_DECL_D(R); + FP_DECL_EX; int ret = 0; #ifdef DEBUG printk("%s: %p %p %p\n", __func__, frD, frA, frB); #endif - __FP_UNPACK_D(A, frA); - __FP_UNPACK_D(B, frB); + FP_UNPACK_DP(A, frA); + FP_UNPACK_DP(B, frB); #ifdef DEBUG printk("A: %ld %lu %lu %ld (%ld)\n", A_s, A_f1, A_f0, A_e, A_c); @@ -51,5 +53,7 @@ fdivs(void *frD, void *frA, void *frB) printk("D: %ld %lu %lu %ld (%ld)\n", R_s, R_f1, R_f0, R_e, R_c); #endif - return (ret | __FP_PACK_DS(frD, R)); + __FP_PACK_DS(frD, R); + + return FP_CUR_EXCEPTIONS; } |