fctiwz.c 480 B

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