lopcodes.c

Go to the documentation of this file.
00001 /*
00002 ** $Id: lopcodes.c,v 1.37.1.1 2007/12/27 13:02:25 roberto Exp $
00003 ** See Copyright Notice in lua.h
00004 */
00005 
00006 
00007 #define lopcodes_c
00008 #define LUA_CORE
00009 
00010 
00011 #include "lopcodes.h"
00012 
00013 
00014 /* ORDER OP */
00015 
00016 const char *const luaP_opnames[NUM_OPCODES+1] = {
00017   "MOVE",
00018   "LOADK",
00019   "LOADBOOL",
00020   "LOADNIL",
00021   "GETUPVAL",
00022   "GETGLOBAL",
00023   "GETTABLE",
00024   "SETGLOBAL",
00025   "SETUPVAL",
00026   "SETTABLE",
00027   "NEWTABLE",
00028   "SELF",
00029   "ADD",
00030   "SUB",
00031   "MUL",
00032   "DIV",
00033   "MOD",
00034   "POW",
00035   "UNM",
00036   "NOT",
00037   "LEN",
00038   "CONCAT",
00039   "JMP",
00040   "EQ",
00041   "LT",
00042   "LE",
00043   "TEST",
00044   "TESTSET",
00045   "CALL",
00046   "TAILCALL",
00047   "RETURN",
00048   "FORLOOP",
00049   "FORPREP",
00050   "TFORLOOP",
00051   "SETLIST",
00052   "CLOSE",
00053   "CLOSURE",
00054   "VARARG",
00055   NULL
00056 };
00057 
00058 
00059 #define opmode(t,a,b,c,m) (((t)<<7) | ((a)<<6) | ((b)<<4) | ((c)<<2) | (m))
00060 
00061 const lu_byte luaP_opmodes[NUM_OPCODES] = {
00062 /*       T  A    B       C     mode        opcode   */
00063   opmode(0, 1, OpArgR, OpArgN, iABC)        /* OP_MOVE */
00064  ,opmode(0, 1, OpArgK, OpArgN, iABx)        /* OP_LOADK */
00065  ,opmode(0, 1, OpArgU, OpArgU, iABC)        /* OP_LOADBOOL */
00066  ,opmode(0, 1, OpArgR, OpArgN, iABC)        /* OP_LOADNIL */
00067  ,opmode(0, 1, OpArgU, OpArgN, iABC)        /* OP_GETUPVAL */
00068  ,opmode(0, 1, OpArgK, OpArgN, iABx)        /* OP_GETGLOBAL */
00069  ,opmode(0, 1, OpArgR, OpArgK, iABC)        /* OP_GETTABLE */
00070  ,opmode(0, 0, OpArgK, OpArgN, iABx)        /* OP_SETGLOBAL */
00071  ,opmode(0, 0, OpArgU, OpArgN, iABC)        /* OP_SETUPVAL */
00072  ,opmode(0, 0, OpArgK, OpArgK, iABC)        /* OP_SETTABLE */
00073  ,opmode(0, 1, OpArgU, OpArgU, iABC)        /* OP_NEWTABLE */
00074  ,opmode(0, 1, OpArgR, OpArgK, iABC)        /* OP_SELF */
00075  ,opmode(0, 1, OpArgK, OpArgK, iABC)        /* OP_ADD */
00076  ,opmode(0, 1, OpArgK, OpArgK, iABC)        /* OP_SUB */
00077  ,opmode(0, 1, OpArgK, OpArgK, iABC)        /* OP_MUL */
00078  ,opmode(0, 1, OpArgK, OpArgK, iABC)        /* OP_DIV */
00079  ,opmode(0, 1, OpArgK, OpArgK, iABC)        /* OP_MOD */
00080  ,opmode(0, 1, OpArgK, OpArgK, iABC)        /* OP_POW */
00081  ,opmode(0, 1, OpArgR, OpArgN, iABC)        /* OP_UNM */
00082  ,opmode(0, 1, OpArgR, OpArgN, iABC)        /* OP_NOT */
00083  ,opmode(0, 1, OpArgR, OpArgN, iABC)        /* OP_LEN */
00084  ,opmode(0, 1, OpArgR, OpArgR, iABC)        /* OP_CONCAT */
00085  ,opmode(0, 0, OpArgR, OpArgN, iAsBx)       /* OP_JMP */
00086  ,opmode(1, 0, OpArgK, OpArgK, iABC)        /* OP_EQ */
00087  ,opmode(1, 0, OpArgK, OpArgK, iABC)        /* OP_LT */
00088  ,opmode(1, 0, OpArgK, OpArgK, iABC)        /* OP_LE */
00089  ,opmode(1, 1, OpArgR, OpArgU, iABC)        /* OP_TEST */
00090  ,opmode(1, 1, OpArgR, OpArgU, iABC)        /* OP_TESTSET */
00091  ,opmode(0, 1, OpArgU, OpArgU, iABC)        /* OP_CALL */
00092  ,opmode(0, 1, OpArgU, OpArgU, iABC)        /* OP_TAILCALL */
00093  ,opmode(0, 0, OpArgU, OpArgN, iABC)        /* OP_RETURN */
00094  ,opmode(0, 1, OpArgR, OpArgN, iAsBx)       /* OP_FORLOOP */
00095  ,opmode(0, 1, OpArgR, OpArgN, iAsBx)       /* OP_FORPREP */
00096  ,opmode(1, 0, OpArgN, OpArgU, iABC)        /* OP_TFORLOOP */
00097  ,opmode(0, 0, OpArgU, OpArgU, iABC)        /* OP_SETLIST */
00098  ,opmode(0, 0, OpArgN, OpArgN, iABC)        /* OP_CLOSE */
00099  ,opmode(0, 1, OpArgU, OpArgN, iABx)        /* OP_CLOSURE */
00100  ,opmode(0, 1, OpArgU, OpArgN, iABC)        /* OP_VARARG */
00101 };

Generated by  doxygen 1.6.2