home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Distributions / ucb / spencer_2bsd.tar.gz / 2bsd.tar / src / pascal / fpterp / fp2.s < prev    next >
Text File  |  1980-02-17  |  2KB  |  195 lines

  1. / fp2 -- floating point simulation
  2.  
  3. i.ldx:
  4.     mov    (r3)+,(r2)+
  5.     mov    (r3)+,(r2)+
  6.     bit    $m.ext,fpsr
  7.     beq    1f
  8.     mov    (r3)+,(r2)+
  9.     mov    (r3)+,(r2)+
  10.     rts    pc
  11. 1:
  12.     clr    (r2)+
  13.     clr    (r2)+
  14.     rts    pc
  15.  
  16. i.stx:
  17.     mov    (r2)+,(r3)+
  18.     mov    (r2)+,(r3)+
  19.     bit    $m.ext,fpsr
  20.     beq    1f
  21.     mov    (r2)+,(r3)+
  22.     mov    (r2)+,(r3)+
  23. 1:
  24.     rts    pc
  25.  
  26. i.clrx:
  27.     clr    (r3)+
  28.     clr    (r3)+
  29.     bit    $m.ext,fpsr
  30.     beq    1f
  31.     clr    (r3)+
  32.     clr    (r3)+
  33. 1:
  34.     rts    pc
  35.  
  36. i.negx:
  37.     tst    (r3)
  38.     beq    1f
  39.     add    $100000,(r3)
  40. 1:
  41.     rts    pc
  42.  
  43. i.absx:
  44.     bic    $!77777,(r3)
  45.     rts    pc
  46.  
  47. i.tstx:
  48.     rts    pc
  49.  
  50. i.cmpx:
  51.     mov    $areg,r5
  52.     tst    (r2)
  53.     bge    1f
  54.     tst    (r3)
  55.     bge    1f
  56.     cmp    (r2),(r3)
  57.     bgt    4f
  58.     blt    3f
  59. 1:
  60.     cmp    (r2)+,(r3)+
  61.     bgt    3f
  62.     blt    4f
  63.     cmp    (r2)+,(r3)+
  64.     bne    1f
  65.     bit    $m.ext,fpsr
  66.     beq    2f
  67.     cmp    (r2)+,(r3)+
  68.     bne    1f
  69.     cmp    (r2)+,(r3)+
  70.     beq    2f
  71. 1:
  72.     bhi    3f
  73. 4:
  74.     mov    $1,(r5)
  75.     rts    pc
  76. 3:
  77.     mov    $-1,(r5)
  78.     rts    pc
  79. 2:
  80.     clr    (r5)
  81.     rts    pc
  82.  
  83. i.ldcyx:
  84.     mov    (r3)+,(r2)+
  85.     mov    (r3)+,(r2)+
  86.     bit    $m.ext,fpsr
  87.     bne    1f
  88.     mov    (r3)+,(r2)+
  89.     mov    (r3)+,(r2)+
  90.     rts    pc
  91. 1:
  92.     clr    (r2)+
  93.     clr    (r2)+
  94.     rts    pc
  95.  
  96. i.stcxy:
  97.     mov    (r2)+,(r3)+
  98.     mov    (r2)+,(r3)+
  99.     bit    $m.ext,fpsr
  100.     bne    1f
  101.     clr    (r3)+
  102.     clr    (r3)+
  103. 1:
  104.     rts    pc
  105.  
  106. i.ldcjx:
  107.     mov    $asign,r0
  108.     mov    $1,(r0)+
  109.     mov    (r3)+,(r0)+
  110.     bit    $m.lngi,fpsr
  111.     beq    1f
  112.     mov    (r3)+,(r0)+
  113.     clr    (r0)+
  114.     clr    (r0)+
  115.     mov    $32.-8,(r0)+
  116.     jmp    saret
  117. 1:
  118.     clr    (r0)+
  119.     clr    (r0)+
  120.     clr    (r0)+
  121.     mov    $16.-8,(r0)
  122.     jmp    saret
  123.  
  124. i.stcxj:
  125.     mov    r3,r5
  126.     mov    $asign,r0
  127.     jsr    pc,seta
  128.     mov    $areg,r0
  129.     mov    (r0)+,r1
  130.     mov    (r0)+,r2
  131.     mov    (r0)+,r3
  132.     mov    aexp,r0
  133. 1:
  134.     cmp    r0,$48.-8
  135.     bge    1f
  136.     clc
  137.     ror    r1
  138.     ror    r2
  139.     ror    r3
  140.     inc    r0
  141.     br    1b
  142. 1:
  143.     bgt    xoflo
  144.     tst    r1
  145.     bne    xoflo
  146. 1:
  147.     bit    $m.lngi,fpsr
  148.     beq    1f
  149.     tst    asign
  150.     bge    2f
  151.     neg    r3
  152.     adc    r2
  153.     bcs    2f
  154.     neg    r2
  155. 2:
  156.     mov    r2,(r5)
  157.     mov    r3,2(r5)
  158.     rts    pc
  159. 1:
  160.     tst    r2
  161.     bne    xoflo
  162.     tst    asign
  163.     bge    2f
  164.     neg    r3
  165. 2:
  166.     mov    r3,(r5)
  167.     rts    pc
  168.  
  169. xoflo:
  170.     bis    $1,fpsr            / set fixed overflow (carry)
  171.     jmp    ret
  172.  
  173. i.ldexp:
  174.     mov    $asign,r0
  175.     jsr    pc,seta
  176.     mov    (r3),aexp
  177.     jsr    pc,reta
  178.     jmp    sret
  179.  
  180. i.stexp:
  181.     mov    $asign,r0
  182.     jsr    pc,seta
  183.     mov    aexp,(r3)
  184.     mov    r3,r5
  185.     jmp    sret
  186.  
  187. i.ldfps:
  188.     mov    (r3),fpsr
  189.     jmp    ret
  190.  
  191. i.stfps:
  192.     mov    fpsr,(r3)
  193.     jmp    ret
  194.  
  195.