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) 06/06/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 }; 273