summaryrefslogtreecommitdiff
path: root/src/icont/opcode.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/icont/opcode.c')
-rw-r--r--src/icont/opcode.c117
1 files changed, 117 insertions, 0 deletions
diff --git a/src/icont/opcode.c b/src/icont/opcode.c
new file mode 100644
index 0000000..a7d557e
--- /dev/null
+++ b/src/icont/opcode.c
@@ -0,0 +1,117 @@
+#include "link.h"
+#include "tproto.h"
+#include "opcode.h"
+
+/*
+ * Opcode table.
+ */
+
+struct opentry optable[] = {
+ "asgn", Op_Asgn,
+ "bang", Op_Bang,
+
+ "bscan", Op_Bscan,
+
+ "cat", Op_Cat,
+ "ccase", Op_Ccase,
+ "chfail", Op_Chfail,
+ "coact", Op_Coact,
+ "cofail", Op_Cofail,
+ "colm", Op_Colm, /* always recognized, possibly ignored*/
+ "compl", Op_Compl,
+ "con", Op_Con,
+ "coret", Op_Coret,
+ "create", Op_Create,
+ "cset", Op_Cset,
+ "declend", Op_Declend,
+ "diff", Op_Diff,
+ "div", Op_Div,
+ "dup", Op_Dup,
+ "efail", Op_Efail,
+ "end", Op_End,
+ "eqv", Op_Eqv,
+ "eret", Op_Eret,
+ "error", Op_Error,
+ "escan", Op_Escan,
+ "esusp", Op_Esusp,
+ "field", Op_Field,
+ "filen", Op_Filen,
+
+ "global", Op_Global,
+ "goto", Op_Goto,
+ "impl", Op_Impl,
+ "init", Op_Init,
+ "int", Op_Int,
+ "inter", Op_Inter,
+ "invocable", Op_Invocable,
+ "invoke", Op_Invoke,
+ "keywd", Op_Keywd,
+ "lab", Op_Lab,
+ "lconcat", Op_Lconcat,
+ "lexeq", Op_Lexeq,
+ "lexge", Op_Lexge,
+ "lexgt", Op_Lexgt,
+ "lexle", Op_Lexle,
+ "lexlt", Op_Lexlt,
+ "lexne", Op_Lexne,
+ "limit", Op_Limit,
+ "line", Op_Line,
+ "link", Op_Link,
+ "llist", Op_Llist,
+ "local", Op_Local,
+ "lsusp", Op_Lsusp,
+ "mark", Op_Mark,
+ "mark0", Op_Mark0,
+ "minus", Op_Minus,
+ "mod", Op_Mod,
+ "mult", Op_Mult,
+ "neg", Op_Neg,
+ "neqv", Op_Neqv,
+ "nonnull", Op_Nonnull,
+
+#ifdef LineCodes
+ "noop", Op_Noop,
+#endif /* LineCodes */
+
+ "null", Op_Null,
+ "number", Op_Number,
+ "numeq", Op_Numeq,
+ "numge", Op_Numge,
+ "numgt", Op_Numgt,
+ "numle", Op_Numle,
+ "numlt", Op_Numlt,
+ "numne", Op_Numne,
+ "pfail", Op_Pfail,
+ "plus", Op_Plus,
+ "pnull", Op_Pnull,
+ "pop", Op_Pop,
+ "power", Op_Power,
+ "pret", Op_Pret,
+ "proc", Op_Proc,
+ "psusp", Op_Psusp,
+ "push1", Op_Push1,
+ "pushn1", Op_Pushn1,
+ "random", Op_Random,
+ "rasgn", Op_Rasgn,
+ "real", Op_Real,
+ "record", Op_Record,
+ "refresh", Op_Refresh,
+ "rswap", Op_Rswap,
+ "sdup", Op_Sdup,
+ "sect", Op_Sect,
+ "size", Op_Size,
+ "str", Op_Str,
+ "subsc", Op_Subsc,
+ "swap", Op_Swap,
+ "tabmat", Op_Tabmat,
+ "tally", Op_Tally,
+ "toby", Op_Toby,
+ "trace", Op_Trace,
+ "unions", Op_Unions,
+ "unmark", Op_Unmark,
+ "value", Op_Value,
+ "var", Op_Var,
+ "version", Op_Version,
+ };
+
+int NOPCODES = sizeof(optable) / sizeof(struct opentry);