home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V6 / usr / source / s3 / pow.s < prev    next >
Encoding:
Text File  |  1975-05-13  |  552 b   |  61 lines

  1. .globl    pow, _pow
  2. .globl    log, exp
  3.  
  4. _pow:
  5.     mov    r5,-(sp)
  6.     mov    sp,r5
  7.     movf    4(r5),fr0
  8.     movf    12.(r5),fr1
  9.     jsr    pc,pow
  10.     mov    (sp)+,r5
  11.     rts    pc
  12.  
  13. pow:
  14.  
  15. / 0^0~ is 0
  16.  
  17.     tstf    fr0
  18.     cfcc
  19.     bne    1f
  20.     tstf    fr1
  21.     cfcc
  22.     beq    bad
  23.     rts    pc
  24. 1:
  25.  
  26. / -^i is +^i fixed sign
  27.  
  28.     bpl    1f
  29.     movf    fr1,-(sp)
  30.     modf    $one,fr1
  31.     cfcc
  32.     bne    bad1
  33.     movf    (sp)+,fr1
  34.     absf    fr0
  35.     jsr    pc,1f
  36.     bes    bad
  37.     movf    fr1,-(sp)
  38.     modf    $half,fr1
  39.     cfcc
  40.     beq    2f
  41.     negf    fr0
  42. 2:
  43.     movf    (sp)+,fr1
  44.     rts    pc
  45. 1:
  46.     jsr    pc,log
  47.     bes    1f
  48.     mulf     fr1,fr0
  49.     jsr    pc,exp
  50. 1:
  51.     rts    pc
  52.  
  53. bad1:
  54.     movf    (sp)+,fr1
  55. bad:
  56.     sec
  57.     rts    pc
  58.  
  59. one = 40200
  60. half = 40000
  61.