alistair23-linux/arch/powerpc/math-emu/types.c
Kumar Gala 5cd272085b powerpc: move math-emu over to arch/powerpc
Towards the goal of having arch/powerpc not build anything over in arch/ppc
move math-emu over.  Also, killed some references to arch/ppc/ in the
arch/powerpc Makefile which should belong in drivers/ when the particular
sub-arch's move over to arch/powerpc.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
2006-03-27 23:43:27 -06:00

52 lines
961 B
C

#include "soft-fp.h"
#include "double.h"
#include "single.h"
void
fp_unpack_d(long *_s, unsigned long *_f1, unsigned long *_f0,
long *_e, long *_c, void *val)
{
FP_DECL_D(X);
__FP_UNPACK_RAW_2(D, X, val);
_FP_UNPACK_CANONICAL(D, 2, X);
*_s = X_s;
*_f1 = X_f1;
*_f0 = X_f0;
*_e = X_e;
*_c = X_c;
}
int
fp_pack_d(void *val, long X_s, unsigned long X_f1,
unsigned long X_f0, long X_e, long X_c)
{
int exc;
exc = _FP_PACK_CANONICAL(D, 2, X);
if (!exc || !__FPU_TRAP_P(exc))
__FP_PACK_RAW_2(D, val, X);
return exc;
}
int
fp_pack_ds(void *val, long X_s, unsigned long X_f1,
unsigned long X_f0, long X_e, long X_c)
{
FP_DECL_S(__X);
int exc;
FP_CONV(S, D, 1, 2, __X, X);
exc = _FP_PACK_CANONICAL(S, 1, __X);
if (!exc || !__FPU_TRAP_P(exc)) {
_FP_UNPACK_CANONICAL(S, 1, __X);
FP_CONV(D, S, 2, 1, X, __X);
exc |= _FP_PACK_CANONICAL(D, 2, X);
if (!exc || !__FPU_TRAP_P(exc))
__FP_PACK_RAW_2(D, val, X);
}
return exc;
}