home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V6 / usr / source / fort / f3 / f37.s < prev    next >
Encoding:
Text File  |  1975-07-17  |  1.1 KB  |  97 lines

  1. /
  2. /
  3.  
  4. / f37 -- goto statements of all kinds
  5.  
  6. .globl    sgoto
  7. .globl    intexp
  8.  
  9. .globl    e2
  10. .globl    code
  11. .globl    getsym
  12. .globl    error
  13. .globl    getlab
  14. .globl    rvalue
  15. .globl    convrt
  16. .globl    chrtab
  17.  
  18. sgoto:
  19.     movb    (r1),r0
  20.     cmpb    chrtab(r0),$4        / test digit
  21.     bne    1f            / not constant
  22.     jsr    r5,getlab
  23.         br 8f
  24.     jsr    r5,code
  25.         <    goto; .%d\n\0>; .even
  26.         r0
  27.     br    9f
  28. 1:
  29.     cmpb    (r1),$'(
  30.     beq    1f
  31.     jsr    r5,intexp
  32.     cmp    r0,$36.            / ,
  33.     beq    2f
  34.     jsr    r5,code
  35.         <    agoto\n\0>; .even
  36.     br    9f
  37. 2:
  38.     jsr    r5,code
  39.         <    cagoto\n\0>; .even
  40.     cmpb    (r1)+,$'(
  41.     bne    8f            / syntax
  42.     jsr    pc,stmlist
  43.     br    9f
  44. 1:
  45.     mov    r1,r4
  46. 1:
  47.     movb    (r1)+,r0
  48.     beq    8f
  49.     cmp    r0,$')
  50.     bne    1b
  51.     cmpb    (r1)+,$',
  52.     bne    8f
  53.     jsr    r5,intexp
  54.     mov    r1,-(sp)
  55.     jsr    r5,code
  56.         <    cgoto\n\0>; .even
  57.     mov    r4,r1
  58.     tstb    (r1)+
  59.     jsr    pc,stmlist
  60.     mov    (sp)+,r1
  61. 9:
  62.     tstb    (r1)
  63.     beq    1f
  64. 8:
  65.     jsr    r5,error; 35.
  66. 1:
  67.     rts    r5
  68.  
  69. stmlist:
  70.     jsr    r5,getlab
  71.         br 9f
  72.     jsr    r5,code
  73.         <    .%d\n\0>; .even
  74.         r0
  75.     movb    (r1)+,r0
  76.     cmp    r0,$',
  77.     beq    stmlist
  78.     cmp    r0,$')
  79.     bne    8f
  80.     jsr    r5,code
  81.         <    0\n\0>; .even
  82.     rts    pc
  83. 8:
  84.     jsr    r5,error; 35.
  85. 9:
  86.     rts    pc
  87.  
  88. intexp:
  89.     jsr    r5,e2
  90.     mov    r0,-(sp)
  91.     jsr    r5,rvalue
  92.     mov    $intcon,r2
  93.     jsr    r5,convrt
  94.     mov    (sp)+,r0
  95.     rts    r5
  96.  
  97.