/*
 * Copyright (c) 1980 Regents of the University of California.
 * All rights reserved.  The Berkeley software License Agreement
 * specifies the terms and conditions for redistribution.
 */

#ifndef lint
static char sccsid[] = "@(#)optab.c	5.1 (Berkeley) 6/6/85";
#endif not lint

/*
 * px opcode table
 */

#include "optab.h"

OPTAB optab[] ={
	{ "badop00" },
	{ "nodump", PSUBOP, LWORD, HWORD, STRING },
	{ "beg", PSUBOP, LWORD, LWORD, LWORD, HWORD, STRING },
	{ "end" },
	{ "call", DISP, ADDR4 },
	{ "fcall" },
	{ "frtn", PSUBOP },
	{ "fsav", SUBOP, LWORD },
	{ "sdup2" },
	{ "sdup4" },
	{ "tra", ADDR2 },
	{ "tra4", ADDR4 },
	{ "goto", DISP, ADDR4 },
	{ "lino", PSUBOP },
	{ "push", PSUBOP },
	{ "badopnn" },
	{ "if", ADDR2 },
	{ "rel2", SUBOP },
	{ "rel4", SUBOP },
	{ "rel24", SUBOP },
	{ "rel42", SUBOP },
	{ "rel8", SUBOP },
	{ "relg", SUBOP, VLEN },
	{ "relt", SUBOP, VLEN },
	{ "rel28", SUBOP },
	{ "rel48", SUBOP },
	{ "rel82", SUBOP },
	{ "rel84", SUBOP },
	{ "and" },
	{ "or" },
	{ "not" },
	{ "badopnn" },
	{ "as2" },
	{ "as4" },
	{ "as24" },
	{ "as42" },
	{ "as21" },
	{ "as41" },
	{ "as28" },
	{ "as48" },
	{ "as8" },
	{ "as" },
	{ "inx2p2", PSUBOP },
	{ "inx4p2", PSUBOP },
	{ "inx2", PSUBOP, HWORD, HWORD },
	{ "inx4", PSUBOP, HWORD, HWORD },
	{ "off", PSUBOP },
	{ "nil" },
	{ "add2" },
	{ "add4" },
	{ "add24" },
	{ "add42" },
	{ "add28" },
	{ "add48" },
	{ "add82" },
	{ "add84" },
	{ "sub2" },
	{ "sub4" },
	{ "sub24" },
	{ "sub42" },
	{ "sub28" },
	{ "sub48" },
	{ "sub82" },
	{ "sub84" },
	{ "mul2" },
	{ "mul4" },
	{ "mul24" },
	{ "mul42" },
	{ "mul28" },
	{ "mul48" },
	{ "mul82" },
	{ "mul84" },
	{ "abs2" },
	{ "abs4" },
	{ "abs8" },
	{ "badopnn" },
	{ "neg2" },
	{ "neg4" },
	{ "neg8" },
	{ "badopnn" },
	{ "div2" },
	{ "div4" },
	{ "div24" },
	{ "div42" },
	{ "mod2" },
	{ "mod4" },
	{ "mod24" },
	{ "mod42" },
	{ "add8" },
	{ "sub8" },
	{ "mul8" },
	{ "dvd8" },
	{ "stoi" },
	{ "stod" },
	{ "itod" },
	{ "itos" },
	{ "dvd2" },
	{ "dvd4" },
	{ "dvd24" },
	{ "dvd42" },
	{ "dvd28" },
	{ "dvd48" },
	{ "dvd82" },
	{ "dvd84" },
	{ "rv1", DISP, ADDR2 },
	{ "rv14", DISP, ADDR2 },
	{ "rv2", DISP, ADDR2 },
	{ "rv24", DISP, ADDR2 },
	{ "rv4", DISP, ADDR2 },
	{ "rv8", DISP, ADDR2 },
	{ "rv", PSUBOP, DISP, ADDR2 },
	{ "lv", DISP, HWORD },
	{ "lrv1", DISP, ADDR4 },
	{ "lrv14", DISP, ADDR4 },
	{ "lrv2", DISP, ADDR4 },
	{ "lrv24", DISP, ADDR4 },
	{ "lrv4", DISP, ADDR4 },
	{ "lrv8", DISP, ADDR4 },
	{ "lrv", PSUBOP, DISP, ADDR4 },
	{ "llv", DISP, ADDR4 },
	{ "ind1" },
	{ "ind14" },
	{ "ind2" },
	{ "ind24" },
	{ "ind4" },
	{ "ind8" },
	{ "ind" },
	{ "badopnn" },
	{ "con1", SUBOP },
	{ "con14", SUBOP },
	{ "con2", HWORD },
	{ "con24", HWORD },
	{ "con4", LWORD },
	{ "con8", LWORD, LWORD },
	{ "con", HWORD },
	{ "lvcon", PSUBOP, STRING },
	{ "rang2", HWORD, HWORD },
	{ "rang42", HWORD, HWORD },
	{ "rsng2", HWORD },
	{ "rsng42", HWORD },
	{ "rang4", LWORD, LWORD },
	{ "rang24", LWORD, LWORD },
	{ "rsng4", LWORD },
	{ "rsng24", LWORD },
	{ "stlim" },
	{ "llimit" },
	{ "buff", PSUBOP },
	{ "halt" },
	{ "badopnn" },
	{ "badopnn" },
	{ "badopnn" },
	{ "badopnn" },
	{ "*ord2" },
	{ "*cong" },
	{ "*conc" },
	{ "*conc4" },
	{ "*abort" },
	{ "pxpbuf", HWORD },
	{ "count", HWORD },
	{ "badopnn" },
	{ "case1op", HWORD },
	{ "case2op", HWORD },
	{ "case4op", HWORD },
	{ "*casebeg" },
	{ "*case1" },
	{ "*case2" },
	{ "*case4" },
	{ "*caseend" },
	{ "addt" },
	{ "subt" },
	{ "mult" },
	{ "inct" },
	{ "cttot", PSUBOP, HWORD, HWORD },
	{ "card", PSUBOP },
	{ "in", PSUBOP, HWORD, HWORD },
	{ "asrt" },
	{ "for1u", HWORD, HWORD, ADDR2 },
	{ "for2u", HWORD, HWORD, ADDR2 },
	{ "for4u", LWORD, LWORD, ADDR2 },
	{ "for1d", HWORD, HWORD, ADDR2 },
	{ "for2d", HWORD, HWORD, ADDR2 },
	{ "for4d", LWORD, LWORD, ADDR2 },
	{ "badopnn" },
	{ "badopnn" },
	{ "reade", ADDR4 },
	{ "read4" },
	{ "readc" },
	{ "read8" },
	{ "readln" },
	{ "eof" },
	{ "eoln" },
	{ "badopnn" },
	{ "writec" },
	{ "writes" },
	{ "writef", PSUBOP },
	{ "writln" },
	{ "page" },
	{ "nam", ADDR4 },
	{ "max", PSUBOP, HWORD },
	{ "min", PSUBOP },
	{ "unit" },
	{ "unitinp" },
	{ "unitout" },
	{ "message" },
	{ "get" },
	{ "put" },
	{ "fnil" },
	{ "badopnn" },
	{ "defname" },
	{ "reset" },
	{ "rewrite" },
	{ "file" },
	{ "remove" },
	{ "flush" },
	{ "badopnn" },
	{ "badopnn" },
	{ "pack", PSUBOP, HWORD, HWORD, HWORD },
	{ "unpack", PSUBOP, HWORD, HWORD, HWORD },
	{ "new", PSUBOP },
	{ "dispose", PSUBOP },
	{ "dfdisp", PSUBOP },
	{ "argc" },
	{ "argv", PSUBOP },
	{ "badopnn" },
	{ "clck" },
	{ "wclck" },
	{ "sclck" },
	{ "date" },
	{ "time" },
	{ "undef" },
	{ "atan" },
	{ "cos" },
	{ "exp" },
	{ "ln" },
	{ "sin" },
	{ "sqrt" },
	{ "chr2" },
	{ "chr4" },
	{ "odd2" },
	{ "odd4" },
	{ "pred2" },
	{ "pred4" },
	{ "pred24" },
	{ "succ2" },
	{ "succ4" },
	{ "succ24" },
	{ "seed" },
	{ "random" },
	{ "expo" },
	{ "sqr2" },
	{ "sqr4" },
	{ "sqr8" },
	{ "round" },
	{ "trunc" },
};
