- 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