commit 87a5fae45322dde56306de92d8eb8050506fb9ba
parent afed6c6864b0538be3bde402fcb74df01ba78ed4
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Thu, 28 Jun 2001 16:58:35 -0300
tables describing opcodes
Diffstat:
A | lopcodes.c | | | 108 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1 file changed, 108 insertions(+), 0 deletions(-)
diff --git a/lopcodes.c b/lopcodes.c
@@ -0,0 +1,108 @@
+/*
+** $Id$
+** extracted automatically from lopcodes.h by mkprint.lua
+** DO NOT EDIT
+** See Copyright Notice in lua.h
+*/
+
+
+#define LUA_PRIVATE
+#include "lua.h"
+
+#include "lopcodes.h"
+
+
+#ifdef LUA_OPNAMES
+
+const l_char *const luaP_opnames[] = {
+ l_s("MOVE"),
+ l_s("LOADK"),
+ l_s("LOADINT"),
+ l_s("LOADNIL"),
+ l_s("LOADUPVAL"),
+ l_s("GETGLOBAL"),
+ l_s("GETTABLE"),
+ l_s("SETGLOBAL"),
+ l_s("SETTABLE"),
+ l_s("NEWTABLE"),
+ l_s("SELF"),
+ l_s("ADD"),
+ l_s("SUB"),
+ l_s("MUL"),
+ l_s("DIV"),
+ l_s("POW"),
+ l_s("UNM"),
+ l_s("NOT"),
+ l_s("CONCAT"),
+ l_s("JMP"),
+ l_s("CJMP"),
+ l_s("TESTEQ"),
+ l_s("TESTNE"),
+ l_s("TESTLT"),
+ l_s("TESTLE"),
+ l_s("TESTGT"),
+ l_s("TESTGE"),
+ l_s("TESTT"),
+ l_s("TESTF"),
+ l_s("NILJMP"),
+ l_s("CALL"),
+ l_s("RETURN"),
+ l_s("FORPREP"),
+ l_s("FORLOOP"),
+ l_s("TFORPREP"),
+ l_s("TFORLOOP"),
+ l_s("SETLIST"),
+ l_s("SETLISTO"),
+ l_s("CLOSURE")
+};
+
+#endif
+
+
+#define opmode(t,a,b,c,sa,k,m) (((t)<<OpModeT) | \
+ ((b)<<OpModeBreg) | ((c)<<OpModeCreg) | \
+ ((sa)<<OpModesetA) | ((k)<<OpModeK) | (m))
+
+const lu_byte luaP_opmodes[] = {
+/* T J B C sA K mode opcode */
+ opmode(0,0,1,0, 1,0,iABC), /* OP_MOVE */
+ opmode(0,0,0,0, 1,1,iABc), /* OP_LOADK */
+ opmode(0,0,0,0, 1,0,iAsBc), /* OP_LOADINT */
+ opmode(0,0,1,0, 1,0,iABC), /* OP_LOADNIL */
+ opmode(0,0,0,0, 1,0,iABc), /* OP_LOADUPVAL */
+ opmode(0,0,0,0, 1,1,iABc), /* OP_GETGLOBAL */
+ opmode(0,0,1,1, 1,0,iABC), /* OP_GETTABLE */
+ opmode(0,0,0,0, 0,1,iABc), /* OP_SETGLOBAL */
+ opmode(0,0,1,1, 0,0,iABC), /* OP_SETTABLE */
+ opmode(0,0,0,0, 1,0,iABc), /* OP_NEWTABLE */
+ opmode(0,0,1,1, 1,0,iABC), /* OP_SELF */
+ opmode(0,0,1,1, 1,0,iABC), /* OP_ADD */
+ opmode(0,0,1,1, 1,0,iABC), /* OP_SUB */
+ opmode(0,0,1,1, 1,0,iABC), /* OP_MUL */
+ opmode(0,0,1,1, 1,0,iABC), /* OP_DIV */
+ opmode(0,0,1,1, 1,0,iABC), /* OP_POW */
+ opmode(0,0,1,0, 1,0,iABC), /* OP_UNM */
+ opmode(0,0,1,0, 1,0,iABC), /* OP_NOT */
+ opmode(0,0,1,1, 1,0,iABC), /* OP_CONCAT */
+ opmode(0,1,0,0, 0,0,iAsBc), /* OP_JMP */
+ opmode(0,1,0,0, 0,0,iAsBc), /* OP_CJMP */
+ opmode(1,0,0,1, 0,0,iABC), /* OP_TESTEQ */
+ opmode(1,0,0,1, 0,0,iABC), /* OP_TESTNE */
+ opmode(1,0,0,1, 0,0,iABC), /* OP_TESTLT */
+ opmode(1,0,0,1, 0,0,iABC), /* OP_TESTLE */
+ opmode(1,0,0,1, 0,0,iABC), /* OP_TESTGT */
+ opmode(1,0,0,1, 0,0,iABC), /* OP_TESTGE */
+ opmode(1,0,1,0, 1,0,iABC), /* OP_TESTT */
+ opmode(1,0,1,0, 1,0,iABC), /* OP_TESTF */
+ opmode(0,0,0,0, 1,0,iAsBc), /* OP_NILJMP */
+ opmode(0,0,0,0, 0,0,iABC), /* OP_CALL */
+ opmode(0,0,0,0, 0,0,iABC), /* OP_RETURN */
+ opmode(0,0,0,0, 0,0,iAsBc), /* OP_FORPREP */
+ opmode(0,0,0,0, 0,0,iAsBc), /* OP_FORLOOP */
+ opmode(0,1,0,0, 0,0,iAsBc), /* OP_TFORPREP */
+ opmode(0,1,0,0, 0,0,iAsBc), /* OP_TFORLOOP */
+ opmode(0,0,0,0, 0,0,iABc), /* OP_SETLIST */
+ opmode(0,0,0,0, 0,0,iABc), /* OP_SETLIST0 */
+ opmode(0,0,0,0, 0,0,iABc) /* OP_CLOSURE */
+};
+