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