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