• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

lua/lopcodes.c

Go to the documentation of this file.
00001 /*
00002 ** $Id: lopcodes.c,v 1.37 2005/11/08 19:45:36 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 

Generated on Mon Nov 29 2010 05:18:45 for rpm by  doxygen 1.7.2