Annotation of 40BSD/cmd/c2/c22.c, revision 1.1

1.1     ! root        1: static char sccsid[] = "@(#)c22.c 4.1 10/16/80";
        !             2: #include "c2.h"
        !             3: /* char c22[] = "@(#)c22.c 1.10 80/03/14 10:27:37"; */
        !             4: #define readonly
        !             5: 
        !             6: readonly char revbr[] = {
        !             7:        JNE, JEQ, JGT, JLT, JGE, JLE,
        !             8:        JNE, JEQ, JHI, JLO, JHIS, JLOS,
        !             9:        JBS, JBC, JLBS, JLBC, JBSC, JBCC, JBSS, JBCS };
        !            10: 
        !            11: /* cursed be the preprocessor, whose impotence and stupidity
        !            12: /* prevented this table being macro-generated from ../as/instrs
        !            13: */
        !            14: 
        !            15: readonly struct optab optab[] = {
        !            16: "jbr",JBR,
        !            17: "jeql",T(CBR,JEQ),
        !            18: "jneq",T(CBR,JNE),
        !            19: "jleq",T(CBR,JLE),
        !            20: "jgeq",T(CBR,JGE),
        !            21: "jlss",T(CBR,JLT),
        !            22: "jgtr",T(CBR,JGT),
        !            23: "jbc",T(CBR,JBC),
        !            24: "jbs",T(CBR,JBS),
        !            25: "jlequ",T(CBR,JLOS),
        !            26: "jgequ",T(CBR,JHIS),
        !            27: "jlssu",T(CBR,JLO),
        !            28: "jgtru",T(CBR,JHI),
        !            29: "jlbc",T(CBR,JLBC),
        !            30: "jlbs",T(CBR,JLBS),
        !            31: "jbcc",T(CBR,JBCC),
        !            32: "jbsc",T(CBR,JBSC),
        !            33: "jbcs",T(CBR,JBCS),
        !            34: "jbss",T(CBR,JBSS),
        !            35: "acbb",T(ACB,BYTE),
        !            36: "acbd",T(ACB,DOUBLE),
        !            37: "acbf",T(ACB,FLOAT),
        !            38: "acbl",T(ACB,LONG),
        !            39: "acbw",T(ACB,WORD),
        !            40: "addb2",T(ADD,U(BYTE,OP2)),
        !            41: "addb3",T(ADD,U(BYTE,OP3)),
        !            42: "addd2",T(ADD,U(DOUBLE,OP2)),
        !            43: "addd3",T(ADD,U(DOUBLE,OP3)),
        !            44: "addf2",T(ADD,U(FLOAT,OP2)),
        !            45: "addf3",T(ADD,U(FLOAT,OP3)),
        !            46: "addl2",T(ADD,U(LONG,OP2)),
        !            47: "addl3",T(ADD,U(LONG,OP3)),
        !            48: "addw2",T(ADD,U(WORD,OP2)),
        !            49: "addw3",T(ADD,U(WORD,OP3)),
        !            50: "aobleq",AOBLEQ,
        !            51: "aoblss",AOBLSS,
        !            52: "ashl",T(ASH,LONG),
        !            53: "ashq",T(ASH,QUAD),
        !            54: "bbc",T(CBR,JBC),
        !            55: "bbcc",T(CBR,JBCC),
        !            56: "bbcci",T(CBR,JBCC),
        !            57: "bbcs",T(CBR,JBCS),
        !            58: "bbs",T(CBR,JBS),
        !            59: "bbsc",T(CBR,JBSC),
        !            60: "bbss",T(CBR,JBSS),
        !            61: "bbssi",T(CBR,JBSS),
        !            62: "bcc",T(CBR,JHIS),
        !            63: "bcs",T(CBR,JLO),
        !            64: "beql",T(CBR,JEQ),
        !            65: "beqlu",T(CBR,JEQ),
        !            66: "bgeq",T(CBR,JGE),
        !            67: "bgequ",T(CBR,JHIS),
        !            68: "bgtr",T(CBR,JGT),
        !            69: "bgtru",T(CBR,JHI),
        !            70: "bicb2",T(BIC,U(BYTE,OP2)),
        !            71: "bicb3",T(BIC,U(BYTE,OP3)),
        !            72: "bicl2",T(BIC,U(LONG,OP2)),
        !            73: "bicl3",T(BIC,U(LONG,OP3)),
        !            74: "bicw2",T(BIC,U(WORD,OP2)),
        !            75: "bicw3",T(BIC,U(WORD,OP3)),
        !            76: "bisb2",T(BIS,U(BYTE,OP2)),
        !            77: "bisb3",T(BIS,U(BYTE,OP3)),
        !            78: "bisl2",T(BIS,U(LONG,OP2)),
        !            79: "bisl3",T(BIS,U(LONG,OP3)),
        !            80: "bisw2",T(BIS,U(WORD,OP2)),
        !            81: "bisw3",T(BIS,U(WORD,OP3)),
        !            82: "bitb",T(BIT,BYTE),
        !            83: "bitl",T(BIT,LONG),
        !            84: "bitw",T(BIT,WORD),
        !            85: "blbs",T(CBR,JLBS),
        !            86: "blbc",T(CBR,JLBC),
        !            87: "bleq",T(CBR,JLE),
        !            88: "blequ",T(CBR,JLOS),
        !            89: "blss",T(CBR,JLT),
        !            90: "blssu",T(CBR,JLO),
        !            91: "bneq",T(CBR,JNE),
        !            92: "bnequ",T(CBR,JNE),
        !            93: "brb",JBR,
        !            94: "brw",JBR,
        !            95: "bvc",T(CBR,0),
        !            96: "bvs",T(CBR,0),
        !            97: "callg",CALLS,
        !            98: "calls",CALLS,
        !            99: "caseb",T(CASE,BYTE),
        !           100: "casel",T(CASE,LONG),
        !           101: "casew",T(CASE,WORD),
        !           102: "clrb",T(CLR,BYTE),
        !           103: "clrd",T(CLR,DOUBLE),
        !           104: "clrf",T(CLR,FLOAT),
        !           105: "clrl",T(CLR,LONG),
        !           106: "clrq",T(CLR,QUAD),
        !           107: "clrw",T(CLR,WORD),
        !           108: "cmpb",T(CMP,BYTE),
        !           109: "cmpd",T(CMP,DOUBLE),
        !           110: "cmpf",T(CMP,FLOAT),
        !           111: "cmpl",T(CMP,LONG),
        !           112: "cmpw",T(CMP,WORD),
        !           113: "cvtbd",T(CVT,U(BYTE,DOUBLE)),
        !           114: "cvtbf",T(CVT,U(BYTE,FLOAT)),
        !           115: "cvtbl",T(CVT,U(BYTE,LONG)),
        !           116: "cvtbw",T(CVT,U(BYTE,WORD)),
        !           117: "cvtdb",T(CVT,U(DOUBLE,BYTE)),
        !           118: "cvtdf",T(CVT,U(DOUBLE,FLOAT)),
        !           119: "cvtdl",T(CVT,U(DOUBLE,LONG)),
        !           120: "cvtdw",T(CVT,U(DOUBLE,WORD)),
        !           121: "cvtfb",T(CVT,U(FLOAT,BYTE)),
        !           122: "cvtfd",T(CVT,U(FLOAT,DOUBLE)),
        !           123: "cvtfl",T(CVT,U(FLOAT,LONG)),
        !           124: "cvtfw",T(CVT,U(FLOAT,WORD)),
        !           125: "cvtlb",T(CVT,U(LONG,BYTE)),
        !           126: "cvtld",T(CVT,U(LONG,DOUBLE)),
        !           127: "cvtlf",T(CVT,U(LONG,FLOAT)),
        !           128: "cvtlw",T(CVT,U(LONG,WORD)),
        !           129: "cvtrdl",T(CVT,U(DOUBLE,LONG)),
        !           130: "cvtrfl",T(CVT,U(FLOAT,LONG)),
        !           131: "cvtwb",T(CVT,U(WORD,BYTE)),
        !           132: "cvtwd",T(CVT,U(WORD,DOUBLE)),
        !           133: "cvtwf",T(CVT,U(WORD,FLOAT)),
        !           134: "cvtwl",T(CVT,U(WORD,LONG)),
        !           135: "decb",T(DEC,BYTE),
        !           136: "decl",T(DEC,LONG),
        !           137: "decw",T(DEC,WORD),
        !           138: "divb2",T(DIV,U(BYTE,OP2)),
        !           139: "divb3",T(DIV,U(BYTE,OP3)),
        !           140: "divd2",T(DIV,U(DOUBLE,OP2)),
        !           141: "divd3",T(DIV,U(DOUBLE,OP3)),
        !           142: "divf2",T(DIV,U(FLOAT,OP2)),
        !           143: "divf3",T(DIV,U(FLOAT,OP3)),
        !           144: "divl2",T(DIV,U(LONG,OP2)),
        !           145: "divl3",T(DIV,U(LONG,OP3)),
        !           146: "divw2",T(DIV,U(WORD,OP2)),
        !           147: "divw3",T(DIV,U(WORD,OP3)),
        !           148: "extv",T(EXTV,LONG),
        !           149: "extzv",T(EXTZV,LONG),
        !           150: "incb",T(INC,BYTE),
        !           151: "incl",T(INC,LONG),
        !           152: "incw",T(INC,WORD),
        !           153: "insv",T(INSV,-1),
        !           154: "jmp",JMP,
        !           155: "mcomb",T(COM,BYTE),
        !           156: "mcoml",T(COM,LONG),
        !           157: "mcomw",T(COM,WORD),
        !           158: "mnegb",T(NEG,BYTE),
        !           159: "mnegd",T(NEG,DOUBLE),
        !           160: "mnegf",T(NEG,FLOAT),
        !           161: "mnegl",T(NEG,LONG),
        !           162: "mnegw",T(NEG,WORD),
        !           163: "movab",T(MOVA,BYTE),
        !           164: "movad",T(MOVA,DOUBLE),
        !           165: "movaf",T(MOVA,FLOAT),
        !           166: "moval",T(MOVA,LONG),
        !           167: "movaq",T(MOVA,QUAD),
        !           168: "movaw",T(MOVA,WORD),
        !           169: "movb",T(MOV,BYTE),
        !           170: "movd",T(MOV,DOUBLE),
        !           171: "movf",T(MOV,FLOAT),
        !           172: "movl",T(MOV,LONG),
        !           173: "movq",T(MOV,QUAD),
        !           174: "movw",T(MOV,WORD),
        !           175: "movzbl",T(MOVZ,U(BYTE,LONG)),
        !           176: "movzbw",T(MOVZ,U(BYTE,WORD)),
        !           177: "movzwl",T(MOVZ,U(WORD,LONG)),
        !           178: "mulb2",T(MUL,U(BYTE,OP2)),
        !           179: "mulb3",T(MUL,U(BYTE,OP3)),
        !           180: "muld2",T(MUL,U(DOUBLE,OP2)),
        !           181: "muld3",T(MUL,U(DOUBLE,OP3)),
        !           182: "mulf2",T(MUL,U(FLOAT,OP2)),
        !           183: "mulf3",T(MUL,U(FLOAT,OP3)),
        !           184: "mull2",T(MUL,U(LONG,OP2)),
        !           185: "mull3",T(MUL,U(LONG,OP3)),
        !           186: "mulw2",T(MUL,U(WORD,OP2)),
        !           187: "mulw3",T(MUL,U(WORD,OP3)),
        !           188: "pushab",T(PUSHA,BYTE),
        !           189: "pushad",T(PUSHA,DOUBLE),
        !           190: "pushaf",T(PUSHA,FLOAT),
        !           191: "pushal",T(PUSHA,LONG),
        !           192: "pushaq",T(PUSHA,QUAD),
        !           193: "pushaw",T(PUSHA,WORD),
        !           194: "pushl",T(PUSH,LONG),
        !           195: "ret",T(JBR,RET),
        !           196: "sobgeq",SOBGEQ,
        !           197: "sobgtr",SOBGTR,
        !           198: "subb2",T(SUB,U(BYTE,OP2)),
        !           199: "subb3",T(SUB,U(BYTE,OP3)),
        !           200: "subd2",T(SUB,U(DOUBLE,OP2)),
        !           201: "subd3",T(SUB,U(DOUBLE,OP3)),
        !           202: "subf2",T(SUB,U(FLOAT,OP2)),
        !           203: "subf3",T(SUB,U(FLOAT,OP3)),
        !           204: "subl2",T(SUB,U(LONG,OP2)),
        !           205: "subl3",T(SUB,U(LONG,OP3)),
        !           206: "subw2",T(SUB,U(WORD,OP2)),
        !           207: "subw3",T(SUB,U(WORD,OP3)),
        !           208: "tstb",T(TST,BYTE),
        !           209: "tstd",T(TST,DOUBLE),
        !           210: "tstf",T(TST,FLOAT),
        !           211: "tstl",T(TST,LONG),
        !           212: "tstw",T(TST,WORD),
        !           213: "xorb2",T(XOR,U(BYTE,OP2)),
        !           214: "xorb3",T(XOR,U(BYTE,OP3)),
        !           215: "xorl2",T(XOR,U(LONG,OP2)),
        !           216: "xorl3",T(XOR,U(LONG,OP3)),
        !           217: "xorw2",T(XOR,U(WORD,OP2)),
        !           218: "xorw3",T(XOR,U(WORD,OP3)),
        !           219: "movc3",MOVC3,
        !           220: ".globl",EROU,
        !           221: ".text",TEXT,
        !           222: ".data",DATA,
        !           223: ".bss",BSS,
        !           224: ".align",ALIGN,
        !           225: ".word",WGEN,
        !           226: ".long",LGEN,
        !           227: ".set",SET,
        !           228: ".lcomm",LCOMM,
        !           229: ".comm",COMM,
        !           230: ".end",END,
        !           231: "rsb",T(JBR,RSB),
        !           232: "jsb",JSB,
        !           233: "mfpr",T(MFPR,LONG),
        !           234: "mtpr",T(MTPR,LONG),
        !           235: "prober",T(PROBER,BYTE),
        !           236: "probew",T(PROBEW,BYTE),
        !           237: "adawi",0,
        !           238: "addp4",0,
        !           239: "addp6",0,
        !           240: "adwc",0,
        !           241: "ashp",0,
        !           242: "bicpsw",0,
        !           243: "bispsw",0,
        !           244: "bpt",0,
        !           245: "bsbb",0,
        !           246: "bsbw",0,
        !           247: "chme",0,
        !           248: "chmk",0,
        !           249: "chms",0,
        !           250: "chmu",0,
        !           251: "cmpc3",0,
        !           252: "cmpc5",0,
        !           253: "cmpp3",0,
        !           254: "cmpp4",0,
        !           255: "cmpv",0,
        !           256: "cmpzv",0,
        !           257: "crc",0,
        !           258: "cvtlp",0,
        !           259: "cvtpl",0,
        !           260: "cvttp",0,
        !           261: "cvtpt",0,
        !           262: "cvtps",0,
        !           263: "cvtsp",0,
        !           264: "divp",0,
        !           265: "editpc",0,
        !           266: "ediv",0,
        !           267: "emodd",0,
        !           268: "emodf",0,
        !           269: "emul",0,
        !           270: "ffc",0,
        !           271: "ffs",0,
        !           272: "halt",0,
        !           273: "index",0,
        !           274: "insque",0,
        !           275: "ldpctx",0,
        !           276: "locc",0,
        !           277: "matchc",0,
        !           278: "movc5",0,
        !           279: "movp",0,
        !           280: "movpsl",0,
        !           281: "movtc",0,
        !           282: "movtuc",0,
        !           283: "mulp",0,
        !           284: "nop",0,
        !           285: "polyd",0,
        !           286: "polyf",0,
        !           287: "popr",0,
        !           288: "pushr",0,
        !           289: "rei",0,
        !           290: "remque",0,
        !           291: "rotl",0,
        !           292: "sbwc",0,
        !           293: "scanc",0,
        !           294: "skpc",0,
        !           295: "spanc",0,
        !           296: "subp4",0,
        !           297: "subp6",0,
        !           298: "svpctx",0,
        !           299: "xfc",0,
        !           300: "escd",0,
        !           301: "esce",0,
        !           302: "escf",0,
        !           303:        0,      0};

unix.superglobalmegacorp.com

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