1#include <linux/types.h> 2#include <linux/errno.h> 3#include <asm/uaccess.h> 4 5#include <asm/sfp-machine.h> 6#include <math-emu/soft-fp.h> 7#include <math-emu/double.h> 8 9int 10fctiwz(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