home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / programm / programi / ixemupd_.lzh / ixemupd-920129 / library / mathsup.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-01-26  |  4.4 KB  |  232 lines

  1. extern struct MathIeeeDoubTransBase * MathIeeeDoubTransBase;
  2.  
  3. double const atan(double parm)
  4. {
  5.     register double res __asm("d0");
  6.     register void *a6 __asm ("a6");
  7.     register double d0 __asm("d0");
  8.  
  9.     a6 = MathIeeeDoubTransBase;
  10.     d0 = parm;
  11.     __asm volatile ("
  12.     jsr a6@(-0x1e)"
  13.     : "=r" (res)
  14.     : "r" (a6), "r" (d0)
  15.     : "d0", "d1", "a0", "a1");
  16.     return res;
  17. }
  18. double const sin(double parm)
  19. {
  20.     register double res __asm("d0");
  21.     register void *a6 __asm ("a6");
  22.     register double d0 __asm("d0");
  23.  
  24.     a6 = MathIeeeDoubTransBase;
  25.     d0 = parm;
  26.     __asm volatile ("
  27.     jsr a6@(-0x24)"
  28.     : "=r" (res)
  29.     : "r" (a6), "r" (d0)
  30.     : "d0", "d1", "a0", "a1");
  31.     return res;
  32. }
  33. double const cos(double parm)
  34. {
  35.     register double res __asm("d0");
  36.     register void *a6 __asm ("a6");
  37.     register double d0 __asm("d0");
  38.  
  39.     a6 = MathIeeeDoubTransBase;
  40.     d0 = parm;
  41.     __asm volatile ("
  42.     jsr a6@(-0x2a)"
  43.     : "=r" (res)
  44.     : "r" (a6), "r" (d0)
  45.     : "d0", "d1", "a0", "a1");
  46.     return res;
  47. }
  48. double const tan(double parm)
  49. {
  50.     register double res __asm("d0");
  51.     register void *a6 __asm ("a6");
  52.     register double d0 __asm("d0");
  53.  
  54.     a6 = MathIeeeDoubTransBase;
  55.     d0 = parm;
  56.     __asm volatile ("
  57.     jsr a6@(-0x30)"
  58.     : "=r" (res)
  59.     : "r" (a6), "r" (d0)
  60.     : "d0", "d1", "a0", "a1");
  61.     return res;
  62. }
  63. double sincos(double* pf2, double parm)
  64. {
  65.     register double res __asm("d0");
  66.     register void *a6 __asm ("a6");
  67.     register double* a0 __asm("a0");
  68.     register double d0 __asm("d0");
  69.  
  70.     a6 = MathIeeeDoubTransBase;
  71.     a0 = pf2;
  72.     d0 = parm;
  73.     __asm volatile ("
  74.     jsr a6@(-0x36)"
  75.     : "=r" (res)
  76.     : "r" (a6), "r" (a0), "r" (d0)
  77.     : "d0", "d1", "a0", "a1");
  78.     return res;
  79. }
  80. double const sinh(double parm)
  81. {
  82.     register double res __asm("d0");
  83.     register void *a6 __asm ("a6");
  84.     register double d0 __asm("d0");
  85.  
  86.     a6 = MathIeeeDoubTransBase;
  87.     d0 = parm;
  88.     __asm volatile ("
  89.     jsr a6@(-0x3c)"
  90.     : "=r" (res)
  91.     : "r" (a6), "r" (d0)
  92.     : "d0", "d1", "a0", "a1");
  93.     return res;
  94. }
  95. double const cosh(double parm)
  96. {
  97.     register double res __asm("d0");
  98.     register void *a6 __asm ("a6");
  99.     register double d0 __asm("d0");
  100.  
  101.     a6 = MathIeeeDoubTransBase;
  102.     d0 = parm;
  103.     __asm volatile ("
  104.     jsr a6@(-0x42)"
  105.     : "=r" (res)
  106.     : "r" (a6), "r" (d0)
  107.     : "d0", "d1", "a0", "a1");
  108.     return res;
  109. }
  110. double const tanh(double parm)
  111. {
  112.     register double res __asm("d0");
  113.     register void *a6 __asm ("a6");
  114.     register double d0 __asm("d0");
  115.  
  116.     a6 = MathIeeeDoubTransBase;
  117.     d0 = parm;
  118.     __asm volatile ("
  119.     jsr a6@(-0x48)"
  120.     : "=r" (res)
  121.     : "r" (a6), "r" (d0)
  122.     : "d0", "d1", "a0", "a1");
  123.     return res;
  124. }
  125. double const exp(double parm)
  126. {
  127.     register double res __asm("d0");
  128.     register void *a6 __asm ("a6");
  129.     register double d0 __asm("d0");
  130.  
  131.     a6 = MathIeeeDoubTransBase;
  132.     d0 = parm;
  133.     __asm volatile ("
  134.     jsr a6@(-0x4e)"
  135.     : "=r" (res)
  136.     : "r" (a6), "r" (d0)
  137.     : "d0", "d1", "a0", "a1");
  138.     return res;
  139. }
  140. double const log(double parm)
  141. {
  142.     register double res __asm("d0");
  143.     register void *a6 __asm ("a6");
  144.     register double d0 __asm("d0");
  145.  
  146.     a6 = MathIeeeDoubTransBase;
  147.     d0 = parm;
  148.     __asm volatile ("
  149.     jsr a6@(-0x54)"
  150.     : "=r" (res)
  151.     : "r" (a6), "r" (d0)
  152.     : "d0", "d1", "a0", "a1");
  153.     return res;
  154. }
  155. double const pow(double exp, double arg)
  156. {
  157.     register double res __asm("d0");
  158.     register void *a6 __asm ("a6");
  159.     register double d2 __asm("d2");
  160.     register double d3 __asm("d0");
  161.  
  162.     a6 = MathIeeeDoubTransBase;
  163.     d2 = exp;
  164.     d3 = arg;
  165.     __asm volatile ("
  166.     jsr a6@(-0x5a)"
  167.     : "=r" (res)
  168.     : "r" (a6), "r" (d2), "r" (d3)
  169.     : "d0", "d1", "a0", "a1", "d2", "d3");
  170.     return res;
  171. }
  172. double const sqrt(double parm)
  173. {
  174.     register double res __asm("d0");
  175.     register void *a6 __asm ("a6");
  176.     register double d0 __asm("d0");
  177.  
  178.     a6 = MathIeeeDoubTransBase;
  179.     d0 = parm;
  180.     __asm volatile ("
  181.     jsr a6@(-0x60)"
  182.     : "=r" (res)
  183.     : "r" (a6), "r" (d0)
  184.     : "d0", "d1", "a0", "a1");
  185.     return res;
  186. }
  187. double const asin(double parm)
  188. {
  189.     register double res __asm("d0");
  190.     register void *a6 __asm ("a6");
  191.     register double d0 __asm("d0");
  192.  
  193.     a6 = MathIeeeDoubTransBase;
  194.     d0 = parm;
  195.     __asm volatile ("
  196.     jsr a6@(-0x72)"
  197.     : "=r" (res)
  198.     : "r" (a6), "r" (d0)
  199.     : "d0", "d1", "a0", "a1");
  200.     return res;
  201. }
  202. double const acos(double parm)
  203. {
  204.     register double res __asm("d0");
  205.     register void *a6 __asm ("a6");
  206.     register double d0 __asm("d0");
  207.  
  208.     a6 = MathIeeeDoubTransBase;
  209.     d0 = parm;
  210.     __asm volatile ("
  211.     jsr a6@(-0x78)"
  212.     : "=r" (res)
  213.     : "r" (a6), "r" (d0)
  214.     : "d0", "d1", "a0", "a1");
  215.     return res;
  216. }
  217. double const log10(double parm)
  218. {
  219.     register double res __asm("d0");
  220.     register void *a6 __asm ("a6");
  221.     register double d0 __asm("d0");
  222.  
  223.     a6 = MathIeeeDoubTransBase;
  224.     d0 = parm;
  225.     __asm volatile ("
  226.     jsr a6@(-0x7e)"
  227.     : "=r" (res)
  228.     : "r" (a6), "r" (d0)
  229.     : "d0", "d1", "a0", "a1");
  230.     return res;
  231. }
  232.