home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Distributions / ucb / spencer_2bsd.tar.gz / 2bsd.tar / src / px / 24case.s < prev    next >
Text File  |  1980-02-17  |  624b  |  61 lines

  1. /
  2. / CASE OPERATORS
  3. /
  4. _CASE1OP:
  5.     bne    1f
  6.     mov    (lc)+,r3
  7. 1:
  8.     mov    lc,r0
  9.     add    r3,r0
  10.     add    r3,r0
  11.     mov    r3,r2
  12.     tst    (sp)+
  13. 1:
  14.     cmpb    (r0)+,-2(sp)
  15.     beq    5f
  16.     sob    r3,1b
  17.     mov    $ECASE,_perrno
  18.     error    ECASE
  19. _CASE2OP:
  20.     bne    1f
  21.     mov    (lc)+,r3
  22. 1:
  23.     mov    lc,r0
  24.     add    r3,r0
  25.     add    r3,r0
  26.     mov    r3,r2
  27.     tst    (sp)+
  28. 1:
  29.     cmp    (r0)+,-2(sp)
  30.     beq    5f
  31.     sob    r3,1b
  32.     mov    $ECASE,_perrno
  33.     error    ECASE
  34. _CASE4OP:
  35.     bne    1f
  36.     mov    (lc)+,r3
  37. 1:
  38.     mov    lc,r0
  39.     add    r3,r0
  40.     add    r3,r0
  41.     mov    r3,r2
  42.     cmp    (sp)+,(sp)+
  43. 1:
  44.     cmp    (r0)+,-4(sp)
  45.     beq    2f
  46.     tst    (r0)+
  47.     br    3f
  48. 2:
  49.     cmp    (r0)+,-2(sp)
  50.     beq    5f
  51. 3:
  52.     sob    r3,1b
  53.     mov    $ECASE,_perrno
  54.     error    ECASE
  55. 5:
  56.     sub    r3,r2
  57.     add    r2,r2
  58.     add    lc,r2
  59.     add    (r2),lc
  60.     return
  61.