1 #include <linux/types.h>
2 #include <linux/errno.h>
3 #include <asm/uaccess.h>
4
5 #include "soft-fp.h"
6 #include "double.h"
7
8 int
fctiwz(u32 * frD,void * frB)9 fctiwz(u32 *frD, void *frB)
10 {
11 FP_DECL_D(B);
12 u32 fpscr;
13 unsigned int r;
14
15 fpscr = __FPU_FPSCR;
16 __FPU_FPSCR &= ~(3);
17 __FPU_FPSCR |= FP_RND_ZERO;
18
19 __FP_UNPACK_D(B, frB);
20 FP_TO_INT_D(r, B, 32, 1);
21 frD[1] = r;
22
23 __FPU_FPSCR = fpscr;
24
25 #ifdef DEBUG
26 printk("%s: D %p, B %p: ", __FUNCTION__, frD, frB);
27 dump_double(frD);
28 printk("\n");
29 #endif
30
31 return 0;
32 }
33