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

unix.superglobalmegacorp.com

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