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

  1. #ifndef _INLINE_MATHIEEESINGBAS_H
  2. #define _INLINE_MATHIEEESINGBAS_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 * MathIeeeSingBasBase;
  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 MathIeeeSingBasBase
  19. #endif
  20.  
  21. BASE_EXT_DECL0
  22.  
  23. extern __inline FLOAT 
  24. IEEESPAbs (BASE_PAR_DECL FLOAT parm)
  25. {
  26.   BASE_EXT_DECL
  27.   register FLOAT  _res  __asm("d0");
  28.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  29.   register FLOAT 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 FLOAT 
  37. IEEESPAdd (BASE_PAR_DECL FLOAT leftParm,FLOAT rightParm)
  38. {
  39.   BASE_EXT_DECL
  40.   register FLOAT  _res  __asm("d0");
  41.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  42.   register FLOAT d0 __asm("d0") = leftParm;
  43.   register FLOAT d1 __asm("d1") = rightParm;
  44.   __asm __volatile ("jsr a6@(-0x42)"
  45.   : "=r" (_res)
  46.   : "r" (a6), "r" (d0), "r" (d1)
  47.   : "a0","a1","d0","d1", "memory");
  48.   return _res;
  49. }
  50. extern __inline FLOAT 
  51. IEEESPCeil (BASE_PAR_DECL FLOAT parm)
  52. {
  53.   BASE_EXT_DECL
  54.   register FLOAT  _res  __asm("d0");
  55.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  56.   register FLOAT 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. IEEESPCmp (BASE_PAR_DECL FLOAT leftParm,FLOAT rightParm)
  65. {
  66.   BASE_EXT_DECL
  67.   register LONG  _res  __asm("d0");
  68.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  69.   register FLOAT d0 __asm("d0") = leftParm;
  70.   register FLOAT d1 __asm("d1") = rightParm;
  71.   __asm __volatile ("jsr a6@(-0x2a)"
  72.   : "=r" (_res)
  73.   : "r" (a6), "r" (d0), "r" (d1)
  74.   : "a0","a1","d0","d1", "memory");
  75.   return _res;
  76. }
  77. extern __inline FLOAT 
  78. IEEESPDiv (BASE_PAR_DECL FLOAT dividend,FLOAT divisor)
  79. {
  80.   BASE_EXT_DECL
  81.   register FLOAT  _res  __asm("d0");
  82.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  83.   register FLOAT d0 __asm("d0") = dividend;
  84.   register FLOAT d1 __asm("d1") = divisor;
  85.   __asm __volatile ("jsr a6@(-0x54)"
  86.   : "=r" (_res)
  87.   : "r" (a6), "r" (d0), "r" (d1)
  88.   : "a0","a1","d0","d1", "memory");
  89.   return _res;
  90. }
  91. extern __inline LONG 
  92. IEEESPFix (BASE_PAR_DECL FLOAT parm)
  93. {
  94.   BASE_EXT_DECL
  95.   register LONG  _res  __asm("d0");
  96.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  97.   register FLOAT 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 FLOAT 
  105. IEEESPFloor (BASE_PAR_DECL FLOAT parm)
  106. {
  107.   BASE_EXT_DECL
  108.   register FLOAT  _res  __asm("d0");
  109.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  110.   register FLOAT 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 FLOAT 
  118. IEEESPFlt (BASE_PAR_DECL long integer)
  119. {
  120.   BASE_EXT_DECL
  121.   register FLOAT  _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 FLOAT 
  131. IEEESPMul (BASE_PAR_DECL FLOAT leftParm,FLOAT rightParm)
  132. {
  133.   BASE_EXT_DECL
  134.   register FLOAT  _res  __asm("d0");
  135.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  136.   register FLOAT d0 __asm("d0") = leftParm;
  137.   register FLOAT d1 __asm("d1") = rightParm;
  138.   __asm __volatile ("jsr a6@(-0x4e)"
  139.   : "=r" (_res)
  140.   : "r" (a6), "r" (d0), "r" (d1)
  141.   : "a0","a1","d0","d1", "memory");
  142.   return _res;
  143. }
  144. extern __inline FLOAT 
  145. IEEESPNeg (BASE_PAR_DECL FLOAT parm)
  146. {
  147.   BASE_EXT_DECL
  148.   register FLOAT  _res  __asm("d0");
  149.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  150.   register FLOAT 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 FLOAT 
  158. IEEESPSub (BASE_PAR_DECL FLOAT leftParm,FLOAT rightParm)
  159. {
  160.   BASE_EXT_DECL
  161.   register FLOAT  _res  __asm("d0");
  162.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  163.   register FLOAT d0 __asm("d0") = leftParm;
  164.   register FLOAT d1 __asm("d1") = rightParm;
  165.   __asm __volatile ("jsr a6@(-0x48)"
  166.   : "=r" (_res)
  167.   : "r" (a6), "r" (d0), "r" (d1)
  168.   : "a0","a1","d0","d1", "memory");
  169.   return _res;
  170. }
  171. extern __inline LONG 
  172. IEEESPTst (BASE_PAR_DECL FLOAT parm)
  173. {
  174.   BASE_EXT_DECL
  175.   register LONG  _res  __asm("d0");
  176.   register struct MathIEEEBase *a6 __asm("a6") = BASE_NAME;
  177.   register FLOAT 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_MATHIEEESINGBAS_H */
  194.