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