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