rlm@1: /* rlm@1: ** $Id: lopcodes.c,v 1.37.1.1 2007/12/27 13:02:25 roberto Exp $ rlm@1: ** See Copyright Notice in lua.h rlm@1: */ rlm@1: rlm@1: rlm@1: #define lopcodes_c rlm@1: #define LUA_CORE rlm@1: rlm@1: rlm@1: #include "lopcodes.h" rlm@1: rlm@1: rlm@1: /* ORDER OP */ rlm@1: rlm@1: const char *const luaP_opnames[NUM_OPCODES+1] = { rlm@1: "MOVE", rlm@1: "LOADK", rlm@1: "LOADBOOL", rlm@1: "LOADNIL", rlm@1: "GETUPVAL", rlm@1: "GETGLOBAL", rlm@1: "GETTABLE", rlm@1: "SETGLOBAL", rlm@1: "SETUPVAL", rlm@1: "SETTABLE", rlm@1: "NEWTABLE", rlm@1: "SELF", rlm@1: "ADD", rlm@1: "SUB", rlm@1: "MUL", rlm@1: "DIV", rlm@1: "MOD", rlm@1: "POW", rlm@1: "UNM", rlm@1: "NOT", rlm@1: "LEN", rlm@1: "CONCAT", rlm@1: "JMP", rlm@1: "EQ", rlm@1: "LT", rlm@1: "LE", rlm@1: "TEST", rlm@1: "TESTSET", rlm@1: "CALL", rlm@1: "TAILCALL", rlm@1: "RETURN", rlm@1: "FORLOOP", rlm@1: "FORPREP", rlm@1: "TFORLOOP", rlm@1: "SETLIST", rlm@1: "CLOSE", rlm@1: "CLOSURE", rlm@1: "VARARG", rlm@1: NULL rlm@1: }; rlm@1: rlm@1: rlm@1: #define opmode(t,a,b,c,m) (((t)<<7) | ((a)<<6) | ((b)<<4) | ((c)<<2) | (m)) rlm@1: rlm@1: const lu_byte luaP_opmodes[NUM_OPCODES] = { rlm@1: /* T A B C mode opcode */ rlm@1: opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_MOVE */ rlm@1: ,opmode(0, 1, OpArgK, OpArgN, iABx) /* OP_LOADK */ rlm@1: ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_LOADBOOL */ rlm@1: ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_LOADNIL */ rlm@1: ,opmode(0, 1, OpArgU, OpArgN, iABC) /* OP_GETUPVAL */ rlm@1: ,opmode(0, 1, OpArgK, OpArgN, iABx) /* OP_GETGLOBAL */ rlm@1: ,opmode(0, 1, OpArgR, OpArgK, iABC) /* OP_GETTABLE */ rlm@1: ,opmode(0, 0, OpArgK, OpArgN, iABx) /* OP_SETGLOBAL */ rlm@1: ,opmode(0, 0, OpArgU, OpArgN, iABC) /* OP_SETUPVAL */ rlm@1: ,opmode(0, 0, OpArgK, OpArgK, iABC) /* OP_SETTABLE */ rlm@1: ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_NEWTABLE */ rlm@1: ,opmode(0, 1, OpArgR, OpArgK, iABC) /* OP_SELF */ rlm@1: ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_ADD */ rlm@1: ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_SUB */ rlm@1: ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_MUL */ rlm@1: ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_DIV */ rlm@1: ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_MOD */ rlm@1: ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_POW */ rlm@1: ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_UNM */ rlm@1: ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_NOT */ rlm@1: ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_LEN */ rlm@1: ,opmode(0, 1, OpArgR, OpArgR, iABC) /* OP_CONCAT */ rlm@1: ,opmode(0, 0, OpArgR, OpArgN, iAsBx) /* OP_JMP */ rlm@1: ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_EQ */ rlm@1: ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_LT */ rlm@1: ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_LE */ rlm@1: ,opmode(1, 1, OpArgR, OpArgU, iABC) /* OP_TEST */ rlm@1: ,opmode(1, 1, OpArgR, OpArgU, iABC) /* OP_TESTSET */ rlm@1: ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_CALL */ rlm@1: ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_TAILCALL */ rlm@1: ,opmode(0, 0, OpArgU, OpArgN, iABC) /* OP_RETURN */ rlm@1: ,opmode(0, 1, OpArgR, OpArgN, iAsBx) /* OP_FORLOOP */ rlm@1: ,opmode(0, 1, OpArgR, OpArgN, iAsBx) /* OP_FORPREP */ rlm@1: ,opmode(1, 0, OpArgN, OpArgU, iABC) /* OP_TFORLOOP */ rlm@1: ,opmode(0, 0, OpArgU, OpArgU, iABC) /* OP_SETLIST */ rlm@1: ,opmode(0, 0, OpArgN, OpArgN, iABC) /* OP_CLOSE */ rlm@1: ,opmode(0, 1, OpArgU, OpArgN, iABx) /* OP_CLOSURE */ rlm@1: ,opmode(0, 1, OpArgU, OpArgN, iABC) /* OP_VARARG */ rlm@1: }; rlm@1: