Annotation of 43BSD/contrib/icon/link/opcode.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Opcode table structure.
                      3:  */
                      4: 
                      5: struct opentry {
                      6:    char *op_name;              /* name of opcode */
                      7:    int   op_code;              /* opcode number */
                      8:    };
                      9: 
                     10: /*
                     11:  * External definitions.
                     12:  */
                     13: 
                     14: extern struct opentry optable[];
                     15: extern int NOPCODES;
                     16: 
                     17: /*
                     18:  * Opcode definitions used in icode.  These values must agree with those
                     19:  *  used in iconx/interp.s.
                     20:  */
                     21: 
                     22: /* Operators. */
                     23: 
                     24: #define OP_ASGN                  1
                     25: #define OP_BANG                  2
                     26: #define OP_CAT           3
                     27: #define OP_COMPL         4
                     28: #define OP_DIFF                  5
                     29: #define OP_DIV           6
                     30: #define OP_EQV           7
                     31: #define OP_INTER         8
                     32: #define OP_LCONCAT       9
                     33: #define OP_LEXEQ        10
                     34: #define OP_LEXGE        11
                     35: #define OP_LEXGT        12
                     36: #define OP_LEXLE        13
                     37: #define OP_LEXLT        14
                     38: #define OP_LEXNE        15
                     39: #define OP_MINUS        16
                     40: #define OP_MOD          17
                     41: #define OP_MULT                 18
                     42: #define OP_NEG          19
                     43: #define OP_NEQV                 20
                     44: #define OP_NONNULL      21
                     45: #define OP_NULL                 22
                     46: #define OP_NUMBER       23
                     47: #define OP_NUMEQ        24
                     48: #define OP_NUMGE        25
                     49: #define OP_NUMGT        26
                     50: #define OP_NUMLE        27
                     51: #define OP_NUMLT        28
                     52: #define OP_NUMNE        29
                     53: #define OP_PLUS                 30
                     54: #define OP_POWER        31
                     55: #define OP_RANDOM       32
                     56: #define OP_RASGN        33
                     57: #define OP_REFRESH      34
                     58: #define OP_RSWAP        35
                     59: #define OP_SECT                 36
                     60: #define OP_SIZE                 37
                     61: #define OP_SUBSC        38
                     62: #define OP_SWAP                 39
                     63: #define OP_TABMAT       40
                     64: #define OP_TOBY                 41
                     65: #define OP_UNIONCS      42
                     66: #define OP_VALUE        43
                     67: 
                     68: /* Instructions. */
                     69: 
                     70: #define OP_BSCAN        44
                     71: #define OP_CCASE        45
                     72: #define OP_CHFAIL       46
                     73: #define OP_COACT        47
                     74: #define OP_COFAIL       48
                     75: #define OP_CORET        49
                     76: #define OP_CREATE       50
                     77: #define OP_CSET         51
                     78: #define OP_DUP          52
                     79: #define OP_EFAIL        53
                     80: #define OP_ERET         54
                     81: #define OP_ESCAN        55
                     82: #define OP_ESUSP        56
                     83: #define OP_FIELD        57
                     84: #define OP_FILE                 58
                     85: #define OP_GOTO         59
                     86: #define OP_INCRES       60
                     87: #define OP_INIT         61
                     88: #define OP_INT          62
                     89: #define OP_INVOKE       63
                     90: #define OP_KEYWD        64
                     91: #define OP_LAB          65
                     92: #define OP_LIMIT        66
                     93: #define OP_LINE         67
                     94: #define OP_LLIST        68
                     95: #define OP_LSUSP        69
                     96: #define OP_MARK         70
                     97: #define OP_PFAIL        71
                     98: #define OP_PNULL        72
                     99: #define OP_POP          73
                    100: #define OP_PRET         74
                    101: #define OP_PSUSP        75
                    102: #define OP_PUSH1        76
                    103: #define OP_PUSHN1       77
                    104: #define OP_REAL         78
                    105: #define OP_SDUP         79
                    106: #define OP_STR          80
                    107: #define OP_UNMARK       81
                    108: #define OP_VAR          82
                    109: 
                    110: /* Declarations. */
                    111: 
                    112: #define OP_PROC                 83
                    113: #define OP_LOCAL        84
                    114: #define OP_CON          85
                    115: #define OP_DECLEND      86
                    116: #define OP_END          87
                    117: /* See below for OP_LINK. */
                    118: 
                    119: /* Global symbol table declarations. */
                    120: 
                    121: #define OP_RECORD       88
                    122: #define OP_IMPL                 89
                    123: #define OP_ERROR        90
                    124: #define OP_TRACE        91
                    125: #define OP_GLOBAL       92
                    126: 
                    127: /* Interpreter instructions not defined above. */
                    128: 
                    129: #define OP_ARG          93
                    130: #define OP_STATIC       94
                    131: #define OP_MARK0        95
                    132: #define OP_LINK                 96
                    133: /*
                    134:  * The following opcodes cannot be renumbered easily, for example, the
                    135:  *  interpreter assumes that OP_GLOBX is a multiple of 16.
                    136:  */
                    137: #define OP_GLOBX       112     /* 16 opcodes */
                    138: #define OP_LOCX                128     /* 16 opcodes */
                    139: #define OP_INTX                144     /* 16 opcodes */
                    140: #define OP_STATX       160     /*  8 opcodes */
                    141: #define OP_ARGX                168     /*  8 opcodes */
                    142: #define OP_UNMKX       176     /*  8 opcodes */
                    143: #define OP_INVKX       184     /*  8 opcodes */
                    144: #define OP_LINEX       192     /* 64 opcodes */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.