Annotation of 40BSD/cmd/sdb/optab.c, revision 1.1.1.1

1.1       root        1: static char sccsid[] = "@(#)optab.c 4.1 10/9/80";
                      2: #include "defs.h"
                      3: 
                      4: /*
                      5:  *     Instruction printing routines.
                      6:  *             MACHINE DEPENDENT
                      7:  *
                      8:  */
                      9: 
                     10: /*
                     11:  * Argument access types
                     12:  */
                     13: #define ACCA   (8<<3)  /* address only */
                     14: #define ACCR   (1<<3)  /* read */
                     15: #define ACCW   (2<<3)  /* write */
                     16: #define ACCM   (3<<3)  /* modify */
                     17: #define ACCB   (4<<3)  /* branch displacement */
                     18: #define ACCI   (5<<3)  /* XFC code */
                     19: 
                     20: /*
                     21:  * Argument data types
                     22:  */
                     23: #define TYPB   0       /* byte */
                     24: #define TYPW   1       /* word */
                     25: #define TYPL   2       /* long */
                     26: #define TYPQ   3       /* quad */
                     27: #define TYPF   4       /* floating */
                     28: #define TYPD   5       /* double floating */
                     29: 
                     30: 
                     31: TYPE   struct optab    *OPTAB;
                     32: struct optab {
                     33:        char *iname;
                     34:        char val;
                     35:        char nargs;
                     36:        char argtype[6];
                     37: } optab[] = {
                     38: #define OP(a,b,c,d,e,f,g,h,i) {a,b,c,d,e,f,g,h,i}
                     39: #include "../as/instrs"
                     40: 0};
                     41: 
                     42: #define SYSTAB struct systab
                     43: SYSTAB {
                     44:        int     argc;
                     45:        char    *sname;
                     46: } systab[] = {
                     47:        1, "indir",
                     48:        0, "exit",
                     49:        0, "fork",
                     50:        2, "read",
                     51:        2, "write",
                     52:        2, "open",
                     53:        0, "close",
                     54:        0, "wait",
                     55:        2, "creat",
                     56:        2, "link",
                     57:        1, "unlink",
                     58:        2, "exec",
                     59:        1, "chdir",
                     60:        0, "time",
                     61:        3, "mknod",
                     62:        2, "chmod",
                     63:        2, "chown",
                     64:        1, "break",
                     65:        2, "stat",
                     66:        2, "seek",
                     67:        0, "getpid",
                     68:        3, "mount",
                     69:        1, "umount",
                     70:        0, "setuid",
                     71:        0, "getuid",
                     72:        0, "stime",
                     73:        3, "ptrace",
                     74:        0, "alarm",
                     75:        1, "fstat",
                     76:        0, "pause",
                     77:        1, "30",
                     78:        1, "stty",
                     79:        1, "gtty",
                     80:        0, "access",
                     81:        0, "nice",
                     82:        0, "sleep",
                     83:        0, "sync",
                     84:        1, "kill",
                     85:        0, "csw",
                     86:        0, "setpgrp",
                     87:        0, "tell",
                     88:        0, "dup",
                     89:        0, "pipe",
                     90:        1, "times",
                     91:        4, "profil",
                     92:        0, "tiu",
                     93:        0, "setgid",
                     94:        0, "getgid",
                     95:        2, "signal",
                     96:        0, "49",
                     97:        0, "50",
                     98:        0, "51",
                     99:        0, "52",
                    100:        0, "53",
                    101:        0, "54",
                    102:        0, "55",
                    103:        0, "56",
                    104:        0, "57",
                    105:        0, "58",
                    106:        0, "59",
                    107:        0, "60",
                    108:        0, "61",
                    109:        0, "62",
                    110:        0, "63",
                    111: };
                    112: 
                    113: STRING regname[] = { "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
                    114:                                        "r8", "r9", "r10","r11","ap", "fp", "sp", "pc"};
                    115: STRING fltimm[] = {
                    116: "0.5", "0.5625", "0.625", "0.6875", "0.75", "0.8125", "0.875", "0.9375",
                    117: "1.0", "1.125", "1.25", "1.375", "1.5", "1.625", "1.75", "1.875",
                    118: "2.0", "2.25", "2.5", "2.75", "3.0", "3.25", "3.5", "3.75",
                    119: "4.0", "4.5", "5.0", "5.5", "6.0", "6.5", "7.0", "7.5",
                    120: "8.0", "9.0", "10.0", "11.0", "12.0", "13.0", "14.0", "15.0",
                    121: "16.0", "18.0", "20.0", "22.0", "24.0", "26.0", "28.0", "30.0",
                    122: "32.0", "36.0", "40.0", "44.0", "48.0", "52.0", "56.0", "60.0",
                    123: "64.0", "72.0", "80.0", "88.0", "96.0", "104.0", "112.0", "120.0"
                    124: };
                    125: 
                    126: char *fmtr = {"%r"};
                    127: char *fmtR = {"%R"};
                    128: 
                    129: REGLIST reglist [] = {
                    130:                "p1lr", P1LR,
                    131:                "p1br",P1BR,
                    132:                "p0lr", P0LR,
                    133:                "p0br",P0BR,
                    134:                "ksp",KSP,
                    135:                "esp",ESP,
                    136:                "ssp",SSP,
                    137:                "psl", PSL,
                    138:                "pc", PC,
                    139:                "usp",USP,
                    140:                "fp", FP,
                    141:                "ap", AP,
                    142:                "r11", R11,
                    143:                "r10", R10,
                    144:                "r9", R9,
                    145:                "r8", R8,
                    146:                "r7", R7,
                    147:                "r6", R6,
                    148:                "r5", R5,
                    149:                "r4", R4,
                    150:                "r3", R3,
                    151:                "r2", R2,
                    152:                "r1", R1,
                    153:                "r0", R0,
                    154: };
                    155: 

unix.superglobalmegacorp.com

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