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 };
00102 

ContextLogger2—ContextLogger2 Logger Daemon Internals—Generated on Mon May 2 13:49:54 2011 by Doxygen 1.6.1