1*5478Slinton /* Copyright (c) 1982 Regents of the University of California */ 2*5478Slinton 3*5478Slinton static char sccsid[] = "@(#)optab.c 1.1 01/18/82"; 4*5478Slinton 5*5478Slinton /* 6*5478Slinton * px opcode table 7*5478Slinton */ 8*5478Slinton 9*5478Slinton #include "optab.h" 10*5478Slinton 11*5478Slinton OPTAB optab[] ={ 12*5478Slinton { "badop00" }, 13*5478Slinton { "nodump", PSUBOP, LWORD, HWORD, STRING }, 14*5478Slinton { "beg", PSUBOP, LWORD, LWORD, LWORD, HWORD, STRING }, 15*5478Slinton { "end" }, 16*5478Slinton { "call", DISP, ADDR4 }, 17*5478Slinton { "fcall" }, 18*5478Slinton { "frtn", PSUBOP }, 19*5478Slinton { "fsav", SUBOP, LWORD }, 20*5478Slinton { "sdup2" }, 21*5478Slinton { "sdup4" }, 22*5478Slinton { "tra", ADDR2 }, 23*5478Slinton { "tra4", ADDR4 }, 24*5478Slinton { "goto", DISP, ADDR4 }, 25*5478Slinton { "lino", PSUBOP }, 26*5478Slinton { "push", PSUBOP }, 27*5478Slinton { "badopnn" }, 28*5478Slinton { "if", ADDR2 }, 29*5478Slinton { "rel2", SUBOP }, 30*5478Slinton { "rel4", SUBOP }, 31*5478Slinton { "rel24", SUBOP }, 32*5478Slinton { "rel42", SUBOP }, 33*5478Slinton { "rel8", SUBOP }, 34*5478Slinton { "relg", SUBOP, VLEN }, 35*5478Slinton { "relt", SUBOP, VLEN }, 36*5478Slinton { "rel28", SUBOP }, 37*5478Slinton { "rel48", SUBOP }, 38*5478Slinton { "rel82", SUBOP }, 39*5478Slinton { "rel84", SUBOP }, 40*5478Slinton { "and" }, 41*5478Slinton { "or" }, 42*5478Slinton { "not" }, 43*5478Slinton { "badopnn" }, 44*5478Slinton { "as2" }, 45*5478Slinton { "as4" }, 46*5478Slinton { "as24" }, 47*5478Slinton { "as42" }, 48*5478Slinton { "as21" }, 49*5478Slinton { "as41" }, 50*5478Slinton { "as28" }, 51*5478Slinton { "as48" }, 52*5478Slinton { "as8" }, 53*5478Slinton { "as" }, 54*5478Slinton { "inx2p2", PSUBOP }, 55*5478Slinton { "inx4p2", PSUBOP }, 56*5478Slinton { "inx2", PSUBOP, HWORD, HWORD }, 57*5478Slinton { "inx4", PSUBOP, HWORD, HWORD }, 58*5478Slinton { "off", PSUBOP }, 59*5478Slinton { "nil" }, 60*5478Slinton { "add2" }, 61*5478Slinton { "add4" }, 62*5478Slinton { "add24" }, 63*5478Slinton { "add42" }, 64*5478Slinton { "add28" }, 65*5478Slinton { "add48" }, 66*5478Slinton { "add82" }, 67*5478Slinton { "add84" }, 68*5478Slinton { "sub2" }, 69*5478Slinton { "sub4" }, 70*5478Slinton { "sub24" }, 71*5478Slinton { "sub42" }, 72*5478Slinton { "sub28" }, 73*5478Slinton { "sub48" }, 74*5478Slinton { "sub82" }, 75*5478Slinton { "sub84" }, 76*5478Slinton { "mul2" }, 77*5478Slinton { "mul4" }, 78*5478Slinton { "mul24" }, 79*5478Slinton { "mul42" }, 80*5478Slinton { "mul28" }, 81*5478Slinton { "mul48" }, 82*5478Slinton { "mul82" }, 83*5478Slinton { "mul84" }, 84*5478Slinton { "abs2" }, 85*5478Slinton { "abs4" }, 86*5478Slinton { "abs8" }, 87*5478Slinton { "badopnn" }, 88*5478Slinton { "neg2" }, 89*5478Slinton { "neg4" }, 90*5478Slinton { "neg8" }, 91*5478Slinton { "badopnn" }, 92*5478Slinton { "div2" }, 93*5478Slinton { "div4" }, 94*5478Slinton { "div24" }, 95*5478Slinton { "div42" }, 96*5478Slinton { "mod2" }, 97*5478Slinton { "mod4" }, 98*5478Slinton { "mod24" }, 99*5478Slinton { "mod42" }, 100*5478Slinton { "add8" }, 101*5478Slinton { "sub8" }, 102*5478Slinton { "mul8" }, 103*5478Slinton { "dvd8" }, 104*5478Slinton { "stoi" }, 105*5478Slinton { "stod" }, 106*5478Slinton { "itod" }, 107*5478Slinton { "itos" }, 108*5478Slinton { "dvd2" }, 109*5478Slinton { "dvd4" }, 110*5478Slinton { "dvd24" }, 111*5478Slinton { "dvd42" }, 112*5478Slinton { "dvd28" }, 113*5478Slinton { "dvd48" }, 114*5478Slinton { "dvd82" }, 115*5478Slinton { "dvd84" }, 116*5478Slinton { "rv1", DISP, ADDR2 }, 117*5478Slinton { "rv14", DISP, ADDR2 }, 118*5478Slinton { "rv2", DISP, ADDR2 }, 119*5478Slinton { "rv24", DISP, ADDR2 }, 120*5478Slinton { "rv4", DISP, ADDR2 }, 121*5478Slinton { "rv8", DISP, ADDR2 }, 122*5478Slinton { "rv", PSUBOP, DISP, ADDR2 }, 123*5478Slinton { "lv", DISP, HWORD }, 124*5478Slinton { "lrv1", DISP, ADDR4 }, 125*5478Slinton { "lrv14", DISP, ADDR4 }, 126*5478Slinton { "lrv2", DISP, ADDR4 }, 127*5478Slinton { "lrv24", DISP, ADDR4 }, 128*5478Slinton { "lrv4", DISP, ADDR4 }, 129*5478Slinton { "lrv8", DISP, ADDR4 }, 130*5478Slinton { "lrv", PSUBOP, DISP, ADDR4 }, 131*5478Slinton { "llv", DISP, ADDR4 }, 132*5478Slinton { "ind1" }, 133*5478Slinton { "ind14" }, 134*5478Slinton { "ind2" }, 135*5478Slinton { "ind24" }, 136*5478Slinton { "ind4" }, 137*5478Slinton { "ind8" }, 138*5478Slinton { "ind" }, 139*5478Slinton { "badopnn" }, 140*5478Slinton { "con1", SUBOP }, 141*5478Slinton { "con14", SUBOP }, 142*5478Slinton { "con2", HWORD }, 143*5478Slinton { "con24", HWORD }, 144*5478Slinton { "con4", LWORD }, 145*5478Slinton { "con8", LWORD, LWORD }, 146*5478Slinton { "con", HWORD }, 147*5478Slinton { "lvcon", PSUBOP, STRING }, 148*5478Slinton { "rang2", HWORD, HWORD }, 149*5478Slinton { "rang42", HWORD, HWORD }, 150*5478Slinton { "rsng2", HWORD }, 151*5478Slinton { "rsng42", HWORD }, 152*5478Slinton { "rang4", LWORD, LWORD }, 153*5478Slinton { "rang24", LWORD, LWORD }, 154*5478Slinton { "rsng4", LWORD }, 155*5478Slinton { "rsng24", LWORD }, 156*5478Slinton { "stlim" }, 157*5478Slinton { "llimit" }, 158*5478Slinton { "buff", PSUBOP }, 159*5478Slinton { "halt" }, 160*5478Slinton { "badopnn" }, 161*5478Slinton { "badopnn" }, 162*5478Slinton { "badopnn" }, 163*5478Slinton { "badopnn" }, 164*5478Slinton { "*ord2" }, 165*5478Slinton { "*cong" }, 166*5478Slinton { "*conc" }, 167*5478Slinton { "*conc4" }, 168*5478Slinton { "*abort" }, 169*5478Slinton { "pxpbuf", HWORD }, 170*5478Slinton { "count", HWORD }, 171*5478Slinton { "badopnn" }, 172*5478Slinton { "case1op", HWORD }, 173*5478Slinton { "case2op", HWORD }, 174*5478Slinton { "case4op", HWORD }, 175*5478Slinton { "*casebeg" }, 176*5478Slinton { "*case1" }, 177*5478Slinton { "*case2" }, 178*5478Slinton { "*case4" }, 179*5478Slinton { "*caseend" }, 180*5478Slinton { "addt" }, 181*5478Slinton { "subt" }, 182*5478Slinton { "mult" }, 183*5478Slinton { "inct" }, 184*5478Slinton { "cttot", PSUBOP, HWORD, HWORD }, 185*5478Slinton { "card", PSUBOP }, 186*5478Slinton { "in", PSUBOP, HWORD, HWORD }, 187*5478Slinton { "asrt" }, 188*5478Slinton { "for1u", HWORD, HWORD, ADDR2 }, 189*5478Slinton { "for2u", HWORD, HWORD, ADDR2 }, 190*5478Slinton { "for4u", LWORD, LWORD, ADDR2 }, 191*5478Slinton { "for1d", HWORD, HWORD, ADDR2 }, 192*5478Slinton { "for2d", HWORD, HWORD, ADDR2 }, 193*5478Slinton { "for4d", LWORD, LWORD, ADDR2 }, 194*5478Slinton { "badopnn" }, 195*5478Slinton { "badopnn" }, 196*5478Slinton { "reade", ADDR4 }, 197*5478Slinton { "read4" }, 198*5478Slinton { "readc" }, 199*5478Slinton { "read8" }, 200*5478Slinton { "readln" }, 201*5478Slinton { "eof" }, 202*5478Slinton { "eoln" }, 203*5478Slinton { "badopnn" }, 204*5478Slinton { "writec" }, 205*5478Slinton { "writes" }, 206*5478Slinton { "writef", PSUBOP }, 207*5478Slinton { "writln" }, 208*5478Slinton { "page" }, 209*5478Slinton { "nam", ADDR4 }, 210*5478Slinton { "max", PSUBOP, HWORD }, 211*5478Slinton { "min", PSUBOP }, 212*5478Slinton { "unit" }, 213*5478Slinton { "unitinp" }, 214*5478Slinton { "unitout" }, 215*5478Slinton { "message" }, 216*5478Slinton { "get" }, 217*5478Slinton { "put" }, 218*5478Slinton { "fnil" }, 219*5478Slinton { "badopnn" }, 220*5478Slinton { "defname", PSUBOP, HWORD }, 221*5478Slinton { "reset" }, 222*5478Slinton { "rewrite" }, 223*5478Slinton { "file" }, 224*5478Slinton { "remove" }, 225*5478Slinton { "flush" }, 226*5478Slinton { "badopnn" }, 227*5478Slinton { "badopnn" }, 228*5478Slinton { "pack", PSUBOP, HWORD, HWORD, HWORD }, 229*5478Slinton { "unpack", PSUBOP, HWORD, HWORD, HWORD }, 230*5478Slinton { "argc" }, 231*5478Slinton { "argv", PSUBOP }, 232*5478Slinton { "badopnn" }, 233*5478Slinton { "badopnn" }, 234*5478Slinton { "badopnn" }, 235*5478Slinton { "badopnn" }, 236*5478Slinton { "clck" }, 237*5478Slinton { "wclck" }, 238*5478Slinton { "sclck" }, 239*5478Slinton { "dispose", PSUBOP }, 240*5478Slinton { "new", PSUBOP }, 241*5478Slinton { "date" }, 242*5478Slinton { "time" }, 243*5478Slinton { "undef" }, 244*5478Slinton { "atan" }, 245*5478Slinton { "cos" }, 246*5478Slinton { "exp" }, 247*5478Slinton { "ln" }, 248*5478Slinton { "sin" }, 249*5478Slinton { "sqrt" }, 250*5478Slinton { "chr2" }, 251*5478Slinton { "chr4" }, 252*5478Slinton { "odd2" }, 253*5478Slinton { "odd4" }, 254*5478Slinton { "pred2" }, 255*5478Slinton { "pred4" }, 256*5478Slinton { "pred24" }, 257*5478Slinton { "succ2" }, 258*5478Slinton { "succ4" }, 259*5478Slinton { "succ24" }, 260*5478Slinton { "seed" }, 261*5478Slinton { "random" }, 262*5478Slinton { "expo" }, 263*5478Slinton { "sqr2" }, 264*5478Slinton { "sqr4" }, 265*5478Slinton { "sqr8" }, 266*5478Slinton { "round" }, 267*5478Slinton { "trunc" }, 268*5478Slinton }; 269