Annotation of 40BSD/cmd/sdb/optab.c, revision 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.