lopcodes.c
上传用户:yisoukefu
上传日期:2020-08-09
资源大小:39506k
文件大小:3k
源码类别:

其他游戏

开发平台:

Visual C++

  1. /*
  2. ** $Id: lopcodes.c,v 1.37 2005/11/08 19:45:36 roberto Exp $
  3. ** See Copyright Notice in lua.h
  4. */
  5. #define lopcodes_c
  6. #define LUA_CORE
  7. #include "lopcodes.h"
  8. /* ORDER OP */
  9. const char *const luaP_opnames[NUM_OPCODES+1] = {
  10.   "MOVE",
  11.   "LOADK",
  12.   "LOADBOOL",
  13.   "LOADNIL",
  14.   "GETUPVAL",
  15.   "GETGLOBAL",
  16.   "GETTABLE",
  17.   "SETGLOBAL",
  18.   "SETUPVAL",
  19.   "SETTABLE",
  20.   "NEWTABLE",
  21.   "SELF",
  22.   "ADD",
  23.   "SUB",
  24.   "MUL",
  25.   "DIV",
  26.   "MOD",
  27.   "POW",
  28.   "UNM",
  29.   "NOT",
  30.   "LEN",
  31.   "CONCAT",
  32.   "JMP",
  33.   "EQ",
  34.   "LT",
  35.   "LE",
  36.   "TEST",
  37.   "TESTSET",
  38.   "CALL",
  39.   "TAILCALL",
  40.   "RETURN",
  41.   "FORLOOP",
  42.   "FORPREP",
  43.   "TFORLOOP",
  44.   "SETLIST",
  45.   "CLOSE",
  46.   "CLOSURE",
  47.   "VARARG",
  48.   NULL
  49. };
  50. #define opmode(t,a,b,c,m) (((t)<<7) | ((a)<<6) | ((b)<<4) | ((c)<<2) | (m))
  51. const lu_byte luaP_opmodes[NUM_OPCODES] = {
  52. /*       T  A    B       C     mode    opcode */
  53.   opmode(0, 1, OpArgR, OpArgN, iABC)  /* OP_MOVE */
  54.  ,opmode(0, 1, OpArgK, OpArgN, iABx) /* OP_LOADK */
  55.  ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_LOADBOOL */
  56.  ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_LOADNIL */
  57.  ,opmode(0, 1, OpArgU, OpArgN, iABC) /* OP_GETUPVAL */
  58.  ,opmode(0, 1, OpArgK, OpArgN, iABx) /* OP_GETGLOBAL */
  59.  ,opmode(0, 1, OpArgR, OpArgK, iABC) /* OP_GETTABLE */
  60.  ,opmode(0, 0, OpArgK, OpArgN, iABx) /* OP_SETGLOBAL */
  61.  ,opmode(0, 0, OpArgU, OpArgN, iABC) /* OP_SETUPVAL */
  62.  ,opmode(0, 0, OpArgK, OpArgK, iABC) /* OP_SETTABLE */
  63.  ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_NEWTABLE */
  64.  ,opmode(0, 1, OpArgR, OpArgK, iABC) /* OP_SELF */
  65.  ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_ADD */
  66.  ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_SUB */
  67.  ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_MUL */
  68.  ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_DIV */
  69.  ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_MOD */
  70.  ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_POW */
  71.  ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_UNM */
  72.  ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_NOT */
  73.  ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_LEN */
  74.  ,opmode(0, 1, OpArgR, OpArgR, iABC) /* OP_CONCAT */
  75.  ,opmode(0, 0, OpArgR, OpArgN, iAsBx) /* OP_JMP */
  76.  ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_EQ */
  77.  ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_LT */
  78.  ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_LE */
  79.  ,opmode(1, 1, OpArgR, OpArgU, iABC) /* OP_TEST */
  80.  ,opmode(1, 1, OpArgR, OpArgU, iABC) /* OP_TESTSET */
  81.  ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_CALL */
  82.  ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_TAILCALL */
  83.  ,opmode(0, 0, OpArgU, OpArgN, iABC) /* OP_RETURN */
  84.  ,opmode(0, 1, OpArgR, OpArgN, iAsBx) /* OP_FORLOOP */
  85.  ,opmode(0, 1, OpArgR, OpArgN, iAsBx) /* OP_FORPREP */
  86.  ,opmode(1, 0, OpArgN, OpArgU, iABC) /* OP_TFORLOOP */
  87.  ,opmode(0, 0, OpArgU, OpArgU, iABC) /* OP_SETLIST */
  88.  ,opmode(0, 0, OpArgN, OpArgN, iABC) /* OP_CLOSE */
  89.  ,opmode(0, 1, OpArgU, OpArgN, iABx) /* OP_CLOSURE */
  90.  ,opmode(0, 1, OpArgU, OpArgN, iABC) /* OP_VARARG */
  91. };