ieee.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  *  arch/s390/kernel/ieee.h
  3.  *
  4.  *  S390 version
  5.  *    Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
  6.  *    Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
  7.  */
  8. #include <linux/sched.h>
  9. static    inline void _adddf(int R1,int R2)
  10. {
  11.   current->tss.fprs[R1].fd = current->tss.fprs[R1].fd +
  12.                              current->tss.fprs[R2].fd;
  13. }
  14. static    inline void _subdf(int R1,int R2)
  15. {
  16.   current->tss.fprs[R1].fd = current->tss.fprs[R1].fd -
  17.                              current->tss.fprs[R2].fd;
  18. }
  19. static    inline void _muldf(int R1,int R2)
  20. {
  21.   current->tss.fprs[R1].fd = current->tss.fprs[R1].fd *
  22.                              current->tss.fprs[R2].fd;
  23. }
  24. static    inline void _divdf(int R1,int R2)
  25. {
  26.   current->tss.fprs[R1].fd = current->tss.fprs[R1].fd /
  27.                              current->tss.fprs[R2].fd;
  28. }
  29. static    inline void _negdf(int R1,int R2)
  30. {
  31.   current->tss.fprs[R1].fd = -current->tss.fprs[R1].fd;
  32. }
  33. static    inline void _fixdfsi(int R1,int R2)
  34. {
  35.   current->tss.regs->gprs[R1] = (__u32) current->tss.fprs[R2].fd;
  36. }
  37. static    inline void _extendsidf(int R1,int R2)
  38. {
  39.   current->tss.fprs[R1].fd = (double) current->tss.regs->gprs[R2];
  40. }
  41. static    inline  void _addsf(int R1,int R2)
  42. {
  43.   current->tss.fprs[R1].ff = current->tss.fprs[R1].ff +
  44.                              current->tss.fprs[R2].ff;
  45. }
  46. static    inline  void _subsf(int R1,int R2)
  47. {
  48.   current->tss.fprs[R1].ff = current->tss.fprs[R1].ff -
  49.                              current->tss.fprs[R2].ff;
  50. }
  51. static    inline void _mulsf(int R1,int R2)
  52. {
  53.   current->tss.fprs[R1].ff = current->tss.fprs[R1].ff *
  54.                              current->tss.fprs[R2].ff;
  55. }
  56. static    inline void _divsf(int R1,int R2)
  57. {
  58.   current->tss.fprs[R1].ff = current->tss.fprs[R1].ff /
  59.                              current->tss.fprs[R2].ff;
  60. }
  61. static    inline void _negsf(int R1,int R2)
  62. {
  63.   current->tss.fprs[R1].ff = -current->tss.fprs[R1].ff;
  64. }
  65. static    inline void _fixsfsi(int R1,int R2)
  66. {
  67.   current->tss.regs->gprs[R1] = (__u32) current->tss.fprs[R2].ff;
  68. }
  69. static    inline void _extendsisf(int R1,int R2)
  70. {
  71.   current->tss.fprs[R1].ff = (double) current->tss.regs->gprs[R2];
  72. }