-- file OpTable.mesa
-- last edited by Sweet, 8-Oct-81 14:08:15
-- last edited by JGS,  3-Nov-81  9:15:19
-- last edited by Satterthwaite, December 14, 1982 4:23 pm

DIRECTORY
  OpTableDefs: TYPE USING [];

OpTable: PROGRAM EXPORTS OpTableDefs =
  BEGIN

-- generated by OpDefsGenerator from tOpCodes.txt, 14-Dec-82 16:21

  Q: TYPE = PRIVATE RECORD [
    push, pop: [0..7], length: [0..3]];

  OpParms: PRIVATE ARRAY [0..256) OF Q = [
--      NOOP        LL0        LL1        LL2   000-003
    Q[0,0,1],  Q[1,0,1],  Q[1,0,1],  Q[1,0,1],
--       LL3        LL4        LL5        LL6   004-007
    Q[1,0,1],  Q[1,0,1],  Q[1,0,1],  Q[1,0,1],
--       LL7        LL8        LL9       LL10   010-013
    Q[1,0,1],  Q[1,0,1],  Q[1,0,1],  Q[1,0,1],
--      LL11        LLB       LLD0       LLD1   014-017
    Q[1,0,1],  Q[1,0,2],  Q[2,0,1],  Q[2,0,1],
--      LLD2       LLD3       LLD4       LLD5   020-023
    Q[2,0,1],  Q[2,0,1],  Q[2,0,1],  Q[2,0,1],
--      LLD6       LLD7       LLD8      LLD10   024-027
    Q[2,0,1],  Q[2,0,1],  Q[2,0,1],  Q[2,0,1],
--      LLDB        SL0        SL1        SL2   030-033
    Q[2,0,2],  Q[0,1,1],  Q[0,1,1],  Q[0,1,1],
--       SL3        SL4        SL5        SL6   034-037
    Q[0,1,1],  Q[0,1,1],  Q[0,1,1],  Q[0,1,1],
--       SL7        SL8        SL9       SL10   040-043
    Q[0,1,1],  Q[0,1,1],  Q[0,1,1],  Q[0,1,1],
--       SLB       SLD0       SLD1       SLD2   044-047
    Q[0,1,2],  Q[0,2,1],  Q[0,2,1],  Q[0,2,1],
--      SLD3       SLD4       SLD5       SLD6   050-053
    Q[0,2,1],  Q[0,2,1],  Q[0,2,1],  Q[0,2,1],
--      SLD8        PL0        PL1        PL2   054-057
    Q[0,2,1],  Q[1,1,1],  Q[1,1,1],  Q[1,1,1],
--       PL3        PLB       PLD0       PLDB   060-063
    Q[1,1,1],  Q[1,1,2],  Q[2,2,1],  Q[2,2,2],
--       LG0        LG1        LG2        LGB   064-067
    Q[1,0,1],  Q[1,0,1],  Q[1,0,1],  Q[1,0,2],
--      LGD0       LGD2       LGDB        SGB   070-073
    Q[2,0,1],  Q[2,0,1],  Q[2,0,2],  Q[0,1,2],
--     BNDCK        BRK                         074-077
    Q[1,2,1],  Q[0,0,1],  Q[0,0,0],  Q[0,0,0],
--        R0         R1         RB        RL0   100-103
    Q[1,1,1],  Q[1,1,1],  Q[1,1,2],  Q[1,2,1],
--       RLB        RD0        RDB       RDL0   104-107
    Q[1,2,2],  Q[2,1,1],  Q[2,1,2],  Q[2,2,1],
--      RDLB         W0         WB        PSB   110-113
    Q[2,2,2],  Q[0,2,1],  Q[0,2,2],  Q[1,2,2],
--       WLB       PSLB        WDB       PSD0   114-117
    Q[0,3,2],  Q[2,3,2],  Q[0,3,2],  Q[1,3,1],
--      PSDB       WDLB      PSDLB      RLI00   120-123
    Q[1,3,2],  Q[0,4,2],  Q[2,4,2],  Q[1,0,1],
--     RLI01      RLI02      RLI03       RLIP   124-127
    Q[1,0,1],  Q[1,0,1],  Q[1,0,1],  Q[1,0,2],
--     RLILP     RLDI00      RLDIP     RLDILP   130-133
    Q[1,0,2],  Q[2,0,1],  Q[2,0,2],  Q[2,0,2],
--      RGIP      RGILP       WLIP      WLILP   134-137
    Q[1,0,2],  Q[1,0,2],  Q[0,1,2],  Q[0,1,2],
--    WLDILP         RS        RLS         WS   140-143
    Q[0,2,2],  Q[1,2,2],  Q[1,3,2],  Q[0,3,2],
--       WLS        R0F         RF       RL0F   144-147
    Q[0,4,2],  Q[1,1,2],  Q[1,1,3],  Q[1,2,2],
--       RLF       RLFS      RLIPF     RLILPF   150-153
    Q[1,2,3],  Q[1,3,1],  Q[1,0,3],  Q[1,0,3],
--       W0F         WF        PSF       PS0F   154-157
    Q[0,2,2],  Q[0,2,3],  Q[1,2,3],  Q[1,2,2],
--      WS0F       WL0F        WLF       PSLF   160-163
    Q[0,2,2],  Q[0,3,2],  Q[0,3,3],  Q[2,3,3],
--      WLFS       SLDB       SGDB       LLKB   164-167
    Q[0,4,1],  Q[0,2,2],  Q[0,2,2],  Q[1,0,2],
--      RKIB      RKDIB        LKB      SHIFT   170-173
    Q[1,0,2],  Q[2,0,2],  Q[0,0,2],  Q[1,2,1],
--   SHIFTSB                                    174-177
    Q[1,1,2],  Q[0,0,0],  Q[0,0,0],  Q[0,0,0],
--     CATCH         J2         J3         J4   200-203
    Q[0,0,2],  Q[0,0,1],  Q[0,0,1],  Q[0,0,1],
--        J6         J8         JB         JW   204-207
    Q[0,0,1],  Q[0,0,1],  Q[0,0,2],  Q[0,0,3],
--       JEP        JEB       JEBB       JNEP   210-213
    Q[0,1,2],  Q[0,2,2],  Q[0,1,3],  Q[0,1,2],
--      JNEB      JNEBB        JLB       JGEB   214-217
    Q[0,2,2],  Q[0,1,3],  Q[0,2,2],  Q[0,2,2],
--       JGB       JLEB       JULB      JUGEB   220-223
    Q[0,2,2],  Q[0,2,2],  Q[0,2,2],  Q[0,2,2],
--      JUGB      JULEB        JZ3        JZ4   224-227
    Q[0,2,2],  Q[0,2,2],  Q[0,1,1],  Q[0,1,1],
--       JZB       JNZ3       JNZ4       JNZB   230-233
    Q[0,1,2],  Q[0,1,1],  Q[0,1,1],  Q[0,1,2],
--       JIB        JIW        REC       REC2   234-237
    Q[0,2,3],  Q[0,2,3],  Q[1,0,1],  Q[2,0,1],
--       DIS       DIS2       EXCH      DEXCH   240-243
    Q[0,1,1],  Q[0,2,1],  Q[2,2,1],  Q[4,4,1],
--       DUP       DDUP      EXDIS        NEG   244-247
    Q[2,1,1],  Q[4,2,1],  Q[1,2,1],  Q[1,1,1],
--       INC        DEC       DINC        DBL   250-253
    Q[1,1,1],  Q[1,1,1],  Q[2,2,1],  Q[1,1,1],
--      DDBL       TRPL        AND        IOR   254-257
    Q[2,2,1],  Q[1,1,1],  Q[1,2,1],  Q[1,2,1],
--     ADDSB        ADD        SUB       DADD   260-263
    Q[1,1,2],  Q[1,2,1],  Q[1,2,1],  Q[2,4,1],
--      DSUB        ADC        ACD      AL0IB   264-267
    Q[2,4,1],  Q[2,3,1],  Q[2,3,1],  Q[1,0,2],
--       MUL       DCMP      UDCMP        ESC   270-273
    Q[1,2,1],  Q[1,4,1],  Q[1,4,1],  Q[0,0,2],
--      ESCL         LP                         274-277
    Q[0,0,3],  Q[2,1,1],  Q[0,0,0],  Q[0,0,0],
--       LI0        LI1        LI2        LI3   300-303
    Q[1,0,1],  Q[1,0,1],  Q[1,0,1],  Q[1,0,1],
--       LI4        LI5        LI6        LI7   304-307
    Q[1,0,1],  Q[1,0,1],  Q[1,0,1],  Q[1,0,1],
--       LI8        LI9       LI10       LIN1   310-313
    Q[1,0,1],  Q[1,0,1],  Q[1,0,1],  Q[1,0,1],
--      LINI        LIB        LIW       LINB   314-317
    Q[1,0,1],  Q[1,0,2],  Q[1,0,3],  Q[1,0,2],
--      LIHB       LID0        LA0        LA1   320-323
    Q[1,0,2],  Q[2,0,1],  Q[1,0,1],  Q[1,0,1],
--       LA2        LA3        LA6        LA8   324-327
    Q[1,0,1],  Q[1,0,1],  Q[1,0,1],  Q[1,0,1],
--       LAB        LAW        GA0        GAB   330-333
    Q[1,0,2],  Q[1,0,3],  Q[1,0,1],  Q[1,0,2],
--       GAW       EFC0       EFC1       EFC2   334-337
    Q[1,0,3],  Q[0,0,1],  Q[0,0,1],  Q[0,0,1],
--      EFC3       EFC4       EFC5       EFC6   340-343
    Q[0,0,1],  Q[0,0,1],  Q[0,0,1],  Q[0,0,1],
--      EFC7       EFC8       EFC9      EFC10   344-347
    Q[0,0,1],  Q[0,0,1],  Q[0,0,1],  Q[0,0,1],
--     EFC11      EFC12       EFCB       LFC1   350-353
    Q[0,0,1],  Q[0,0,1],  Q[0,0,2],  Q[0,0,1],
--      LFC2       LFC3       LFC4       LFC5   354-357
    Q[0,0,1],  Q[0,0,1],  Q[0,0,1],  Q[0,0,1],
--      LFCB        SFC        RET       KFCB   360-363
    Q[0,0,2],  Q[0,1,1],  Q[0,0,1],  Q[0,0,2],
--        D0         DB        BLT       BLTL   364-367
    Q[1,0,1],  Q[1,0,2],  Q[0,3,1],  Q[0,5,1],
--      BLTC      BLTCL      WCDLB     WCIDLB   370-373
    Q[0,3,1],  Q[0,4,1],  Q[0,4,2],  Q[0,4,2],
--    PSCDLB    PSCIDLB                RESRVD   374-377
    Q[2,4,2],  Q[2,4,2],  Q[0,0,0],  Q[0,0,1]];

  PushStack: PUBLIC PROC [b: [0..256)] RETURNS [[0..3]] =
    BEGIN
    RETURN [OpParms[b].push]
    END;

  PopStack: PUBLIC PROC [b: [0..256)] RETURNS [[0..7]] =
    BEGIN
    RETURN [OpParms[b].pop]
    END;


  InstLength: PUBLIC PROC [b: [0..256)] RETURNS [[0..3]] =
    BEGIN
    RETURN [OpParms[b].length]
    END;

  END.