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