home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / programm / programi / gcc_9112.lzh / include20 / inline / mathieeesingbas.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-15  |  4.5 KB  |  218 lines

  1. #include <inline/stub.h>
  2. #ifndef BASE_EXT_DECL
  3. #define BASE_EXT_DECL extern struct MathIeeeSingBasBase * MathIeeeSingBasBase;
  4. #endif
  5. #ifndef BASE_PAR_DECL
  6. #define BASE_PAR_DECL
  7. #define BASE_PAR_DECL0 void
  8. #endif
  9. #ifndef BASE_NAME
  10. #define BASE_NAME MathIeeeSingBasBase
  11. #endif
  12. __inline static LONG IEEESPFix(BASE_PAR_DECL FLOAT parm)
  13. {
  14.     BASE_EXT_DECL
  15.     register LONG res __asm("d0");
  16.     register void *a6 __asm ("a6");
  17.     register FLOAT d0 __asm("d0");
  18.  
  19.     a6 = BASE_NAME;
  20.     d0 = parm;
  21.     __asm volatile ("
  22.     jsr a6@(-0x1e)"
  23.     : "=g" (res)
  24.     : "g" (a6), "g" (d0)
  25.     : "d0", "d1", "a0", "a1");
  26.     return res;
  27. }
  28. __inline static FLOAT IEEESPFlt(BASE_PAR_DECL long int integer)
  29. {
  30.     BASE_EXT_DECL
  31.     register FLOAT res __asm("d0");
  32.     register void *a6 __asm ("a6");
  33.     register long int d0 __asm("d0");
  34.  
  35.     a6 = BASE_NAME;
  36.     d0 = integer;
  37.     __asm volatile ("
  38.     jsr a6@(-0x24)"
  39.     : "=g" (res)
  40.     : "g" (a6), "g" (d0)
  41.     : "d0", "d1", "a0", "a1");
  42.     return res;
  43. }
  44. __inline static LONG IEEESPCmp(BASE_PAR_DECL FLOAT leftParm, FLOAT rightParm)
  45. {
  46.     BASE_EXT_DECL
  47.     register LONG res __asm("d0");
  48.     register void *a6 __asm ("a6");
  49.     register FLOAT d0 __asm("d0");
  50.     register FLOAT d1 __asm("d1");
  51.  
  52.     a6 = BASE_NAME;
  53.     d0 = leftParm;
  54.     d1 = rightParm;
  55.     __asm volatile ("
  56.     jsr a6@(-0x2a)"
  57.     : "=g" (res)
  58.     : "g" (a6), "g" (d0), "g" (d1)
  59.     : "d0", "d1", "a0", "a1");
  60.     return res;
  61. }
  62. __inline static LONG IEEESPTst(BASE_PAR_DECL FLOAT parm)
  63. {
  64.     BASE_EXT_DECL
  65.     register LONG res __asm("d0");
  66.     register void *a6 __asm ("a6");
  67.     register FLOAT d0 __asm("d0");
  68.  
  69.     a6 = BASE_NAME;
  70.     d0 = parm;
  71.     __asm volatile ("
  72.     jsr a6@(-0x30)"
  73.     : "=g" (res)
  74.     : "g" (a6), "g" (d0)
  75.     : "d0", "d1", "a0", "a1");
  76.     return res;
  77. }
  78. __inline static FLOAT IEEESPAbs(BASE_PAR_DECL FLOAT parm)
  79. {
  80.     BASE_EXT_DECL
  81.     register FLOAT res __asm("d0");
  82.     register void *a6 __asm ("a6");
  83.     register FLOAT d0 __asm("d0");
  84.  
  85.     a6 = BASE_NAME;
  86.     d0 = parm;
  87.     __asm volatile ("
  88.     jsr a6@(-0x36)"
  89.     : "=g" (res)
  90.     : "g" (a6), "g" (d0)
  91.     : "d0", "d1", "a0", "a1");
  92.     return res;
  93. }
  94. __inline static FLOAT IEEESPNeg(BASE_PAR_DECL FLOAT parm)
  95. {
  96.     BASE_EXT_DECL
  97.     register FLOAT res __asm("d0");
  98.     register void *a6 __asm ("a6");
  99.     register FLOAT d0 __asm("d0");
  100.  
  101.     a6 = BASE_NAME;
  102.     d0 = parm;
  103.     __asm volatile ("
  104.     jsr a6@(-0x3c)"
  105.     : "=g" (res)
  106.     : "g" (a6), "g" (d0)
  107.     : "d0", "d1", "a0", "a1");
  108.     return res;
  109. }
  110. __inline static FLOAT IEEESPAdd(BASE_PAR_DECL FLOAT leftParm, FLOAT rightParm)
  111. {
  112.     BASE_EXT_DECL
  113.     register FLOAT res __asm("d0");
  114.     register void *a6 __asm ("a6");
  115.     register FLOAT d0 __asm("d0");
  116.     register FLOAT d1 __asm("d1");
  117.  
  118.     a6 = BASE_NAME;
  119.     d0 = leftParm;
  120.     d1 = rightParm;
  121.     __asm volatile ("
  122.     jsr a6@(-0x42)"
  123.     : "=g" (res)
  124.     : "g" (a6), "g" (d0), "g" (d1)
  125.     : "d0", "d1", "a0", "a1");
  126.     return res;
  127. }
  128. __inline static FLOAT IEEESPSub(BASE_PAR_DECL FLOAT leftParm, FLOAT rightParm)
  129. {
  130.     BASE_EXT_DECL
  131.     register FLOAT res __asm("d0");
  132.     register void *a6 __asm ("a6");
  133.     register FLOAT d0 __asm("d0");
  134.     register FLOAT d1 __asm("d1");
  135.  
  136.     a6 = BASE_NAME;
  137.     d0 = leftParm;
  138.     d1 = rightParm;
  139.     __asm volatile ("
  140.     jsr a6@(-0x48)"
  141.     : "=g" (res)
  142.     : "g" (a6), "g" (d0), "g" (d1)
  143.     : "d0", "d1", "a0", "a1");
  144.     return res;
  145. }
  146. __inline static FLOAT IEEESPMul(BASE_PAR_DECL FLOAT leftParm, FLOAT rightParm)
  147. {
  148.     BASE_EXT_DECL
  149.     register FLOAT res __asm("d0");
  150.     register void *a6 __asm ("a6");
  151.     register FLOAT d0 __asm("d0");
  152.     register FLOAT d1 __asm("d1");
  153.  
  154.     a6 = BASE_NAME;
  155.     d0 = leftParm;
  156.     d1 = rightParm;
  157.     __asm volatile ("
  158.     jsr a6@(-0x4e)"
  159.     : "=g" (res)
  160.     : "g" (a6), "g" (d0), "g" (d1)
  161.     : "d0", "d1", "a0", "a1");
  162.     return res;
  163. }
  164. __inline static FLOAT IEEESPDiv(BASE_PAR_DECL FLOAT dividend, FLOAT divisor)
  165. {
  166.     BASE_EXT_DECL
  167.     register FLOAT res __asm("d0");
  168.     register void *a6 __asm ("a6");
  169.     register FLOAT d0 __asm("d0");
  170.     register FLOAT d1 __asm("d1");
  171.  
  172.     a6 = BASE_NAME;
  173.     d0 = dividend;
  174.     d1 = divisor;
  175.     __asm volatile ("
  176.     jsr a6@(-0x54)"
  177.     : "=g" (res)
  178.     : "g" (a6), "g" (d0), "g" (d1)
  179.     : "d0", "d1", "a0", "a1");
  180.     return res;
  181. }
  182. __inline static FLOAT IEEESPFloor(BASE_PAR_DECL FLOAT parm)
  183. {
  184.     BASE_EXT_DECL
  185.     register FLOAT res __asm("d0");
  186.     register void *a6 __asm ("a6");
  187.     register FLOAT d0 __asm("d0");
  188.  
  189.     a6 = BASE_NAME;
  190.     d0 = parm;
  191.     __asm volatile ("
  192.     jsr a6@(-0x5a)"
  193.     : "=g" (res)
  194.     : "g" (a6), "g" (d0)
  195.     : "d0", "d1", "a0", "a1");
  196.     return res;
  197. }
  198. __inline static FLOAT IEEESPCeil(BASE_PAR_DECL FLOAT parm)
  199. {
  200.     BASE_EXT_DECL
  201.     register FLOAT res __asm("d0");
  202.     register void *a6 __asm ("a6");
  203.     register FLOAT d0 __asm("d0");
  204.  
  205.     a6 = BASE_NAME;
  206.     d0 = parm;
  207.     __asm volatile ("
  208.     jsr a6@(-0x60)"
  209.     : "=g" (res)
  210.     : "g" (a6), "g" (d0)
  211.     : "d0", "d1", "a0", "a1");
  212.     return res;
  213. }
  214. #undef BASE_EXT_DECL
  215. #undef BASE_PAR_DECL
  216. #undef BASE_PAR_DECL0
  217. #undef BASE_NAME
  218.