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

  1. f=r5
  2. g=r4
  3. .globl ofile
  4. .globl dogen
  5. .globl succ
  6. .globl g1,k
  7. .globl emit
  8.  
  9. emit:
  10.     mov    f,-(sp)
  11.     add    $g1,(sp)
  12.     mov    g,r1
  13. 1:            /look for a translation
  14.     cmp    (sp),r1
  15.     bge    3f    /none at all
  16.     bit    -(r1),$100001    
  17.     beq    1b
  18.             /move it to end of stak
  19.     mov    (r1)+,r0
  20. 1:
  21.     cmp    g,r1
  22.     ble    1f
  23.     mov    (r1),-2(r1)
  24.     mov    r0,(r1)+
  25.     br    1b
  26. 1:
  27.     mov    ofile,r0
  28.     jsr    pc,dogen
  29.     mov    g,r1
  30. 1:
  31.     cmp    (sp),r1    /try to find prev value of k
  32.     bge    1f    /nothing more in this stack frame
  33.     tst    -(r1)
  34.     bge    1b    /this isnt a k pointer (negative)
  35.     mov    (r1),k(f)
  36.     br    3f
  37. 1:
  38.     mov    f,r0    /go back to prev stack frame
  39.     mov    k(r0),k(f)
  40. 3:
  41.     tst    (sp)+
  42.     jmp    succ
  43.