home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / gnu / os-include / inline / mathieeedoubbas.h < prev    next >
C/C++ Source or Header  |  1994-09-22  |  5KB  |  194 lines

  1. #ifndef _INLINE_MATHIEEEDOUBBAS_H
  2. #define _INLINE_MATHIEEEDOUBBAS_H
  3.  
  4. #include <sys/cdefs.h>
  5. #include <inline/stubs.h>
  6.  
  7. __BEGIN_DECLS
  8.  
  9. #ifndef BASE_EXT_DECL
  10. #define BASE_EXT_DECL
  11. #define BASE_EXT_DECL0 extern struct MathIEEEBase * MathIeeeDoubBasBase;
  12. #endif
  13. #ifndef BASE_PAR_DECL
  14. #define BASE_PAR_DECL
  15. #define BASE_PAR_DECL0 void
  16. #endif
  17. #ifndef BASE_NAME
  18. #define BASE_NAME MathIeeeDoubBasBase
  19. #endif
  20.  
  21. BASE_EXT_DECL0
  22.  
  23. extern __inline DOUBLE 
  24. IEEEDPAbs (BASE_PAR_DECL DOUBLE parm)
  25. {
  26.   BASE_EXT_DECL
  27.   register DOUBLE  _res  __asm("d0");
  28.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  29.   register DOUBLE d0 __asm("d0") = parm;
  30.   __asm __volatile ("jsr a6@(-0x36)"
  31.   : "=r" (_res)
  32.   : "r" (a6), "r" (d0)
  33.   : "a0","a1","d0","d1", "memory");
  34.   return _res;
  35. }
  36. extern __inline DOUBLE 
  37. IEEEDPAdd (BASE_PAR_DECL DOUBLE leftParm,DOUBLE rightParm)
  38. {
  39.   BASE_EXT_DECL
  40.   register DOUBLE  _res  __asm("d0");
  41.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  42.   register DOUBLE d0 __asm("d0") = leftParm;
  43.   register DOUBLE d2 __asm("d2") = rightParm;
  44.   __asm __volatile ("jsr a6@(-0x42)"
  45.   : "=r" (_res)
  46.   : "r" (a6), "r" (d0), "r" (d2)
  47.   : "a0","a1","d0","d1","d2","d3", "memory");
  48.   return _res;
  49. }
  50. extern __inline DOUBLE 
  51. IEEEDPCeil (BASE_PAR_DECL DOUBLE parm)
  52. {
  53.   BASE_EXT_DECL
  54.   register DOUBLE  _res  __asm("d0");
  55.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  56.   register DOUBLE d0 __asm("d0") = parm;
  57.   __asm __volatile ("jsr a6@(-0x60)"
  58.   : "=r" (_res)
  59.   : "r" (a6), "r" (d0)
  60.   : "a0","a1","d0","d1", "memory");
  61.   return _res;
  62. }
  63. extern __inline LONG 
  64. IEEEDPCmp (BASE_PAR_DECL DOUBLE leftParm,DOUBLE rightParm)
  65. {
  66.   BASE_EXT_DECL
  67.   register LONG  _res  __asm("d0");
  68.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  69.   register DOUBLE d0 __asm("d0") = leftParm;
  70.   register DOUBLE d2 __asm("d2") = rightParm;
  71.   __asm __volatile ("jsr a6@(-0x2a)"
  72.   : "=r" (_res)
  73.   : "r" (a6), "r" (d0), "r" (d2)
  74.   : "a0","a1","d0","d1","d2","d3", "memory");
  75.   return _res;
  76. }
  77. extern __inline DOUBLE 
  78. IEEEDPDiv (BASE_PAR_DECL DOUBLE dividend,DOUBLE divisor)
  79. {
  80.   BASE_EXT_DECL
  81.   register DOUBLE  _res  __asm("d0");
  82.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  83.   register DOUBLE d0 __asm("d0") = dividend;
  84.   register DOUBLE d2 __asm("d2") = divisor;
  85.   __asm __volatile ("jsr a6@(-0x54)"
  86.   : "=r" (_res)
  87.   : "r" (a6), "r" (d0), "r" (d2)
  88.   : "a0","a1","d0","d1","d2","d3", "memory");
  89.   return _res;
  90. }
  91. extern __inline LONG 
  92. IEEEDPFix (BASE_PAR_DECL DOUBLE parm)
  93. {
  94.   BASE_EXT_DECL
  95.   register LONG  _res  __asm("d0");
  96.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  97.   register DOUBLE d0 __asm("d0") = parm;
  98.   __asm __volatile ("jsr a6@(-0x1e)"
  99.   : "=r" (_res)
  100.   : "r" (a6), "r" (d0)
  101.   : "a0","a1","d0","d1", "memory");
  102.   return _res;
  103. }
  104. extern __inline DOUBLE 
  105. IEEEDPFloor (BASE_PAR_DECL DOUBLE parm)
  106. {
  107.   BASE_EXT_DECL
  108.   register DOUBLE  _res  __asm("d0");
  109.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  110.   register DOUBLE d0 __asm("d0") = parm;
  111.   __asm __volatile ("jsr a6@(-0x5a)"
  112.   : "=r" (_res)
  113.   : "r" (a6), "r" (d0)
  114.   : "a0","a1","d0","d1", "memory");
  115.   return _res;
  116. }
  117. extern __inline DOUBLE 
  118. IEEEDPFlt (BASE_PAR_DECL long integer)
  119. {
  120.   BASE_EXT_DECL
  121.   register DOUBLE  _res  __asm("d0");
  122.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  123.   register long d0 __asm("d0") = integer;
  124.   __asm __volatile ("jsr a6@(-0x24)"
  125.   : "=r" (_res)
  126.   : "r" (a6), "r" (d0)
  127.   : "a0","a1","d0","d1", "memory");
  128.   return _res;
  129. }
  130. extern __inline DOUBLE 
  131. IEEEDPMul (BASE_PAR_DECL DOUBLE factor1,DOUBLE factor2)
  132. {
  133.   BASE_EXT_DECL
  134.   register DOUBLE  _res  __asm("d0");
  135.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  136.   register DOUBLE d0 __asm("d0") = factor1;
  137.   register DOUBLE d2 __asm("d2") = factor2;
  138.   __asm __volatile ("jsr a6@(-0x4e)"
  139.   : "=r" (_res)
  140.   : "r" (a6), "r" (d0), "r" (d2)
  141.   : "a0","a1","d0","d1","d2","d3", "memory");
  142.   return _res;
  143. }
  144. extern __inline DOUBLE 
  145. IEEEDPNeg (BASE_PAR_DECL DOUBLE parm)
  146. {
  147.   BASE_EXT_DECL
  148.   register DOUBLE  _res  __asm("d0");
  149.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  150.   register DOUBLE d0 __asm("d0") = parm;
  151.   __asm __volatile ("jsr a6@(-0x3c)"
  152.   : "=r" (_res)
  153.   : "r" (a6), "r" (d0)
  154.   : "a0","a1","d0","d1", "memory");
  155.   return _res;
  156. }
  157. extern __inline DOUBLE 
  158. IEEEDPSub (BASE_PAR_DECL DOUBLE leftParm,DOUBLE rightParm)
  159. {
  160.   BASE_EXT_DECL
  161.   register DOUBLE  _res  __asm("d0");
  162.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  163.   register DOUBLE d0 __asm("d0") = leftParm;
  164.   register DOUBLE d2 __asm("d2") = rightParm;
  165.   __asm __volatile ("jsr a6@(-0x48)"
  166.   : "=r" (_res)
  167.   : "r" (a6), "r" (d0), "r" (d2)
  168.   : "a0","a1","d0","d1","d2","d3", "memory");
  169.   return _res;
  170. }
  171. extern __inline LONG 
  172. IEEEDPTst (BASE_PAR_DECL DOUBLE parm)
  173. {
  174.   BASE_EXT_DECL
  175.   register LONG  _res  __asm("d0");
  176.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  177.   register DOUBLE d0 __asm("d0") = parm;
  178.   __asm __volatile ("jsr a6@(-0x30)"
  179.   : "=r" (_res)
  180.   : "r" (a6), "r" (d0)
  181.   : "a0","a1","d0","d1", "memory");
  182.   return _res;
  183. }
  184.  
  185. #undef BASE_EXT_DECL
  186. #undef BASE_EXT_DECL0
  187. #undef BASE_PAR_DECL
  188. #undef BASE_PAR_DECL0
  189. #undef BASE_NAME
  190.  
  191. __END_DECLS
  192.  
  193. #endif /* _INLINE_MATHIEEEDOUBBAS_H */
  194.