lopcodes.c
上传用户:jxpjxmjjw
上传日期:2009-12-07
资源大小:5877k
文件大小:3k
源码类别:

模拟服务器

开发平台:

Visual C++

  1. /*
  2. ** $Id: lopcodes.c,v 1.1 2004/08/20 02:26:56 JH Exp $
  3. ** extracted automatically from lopcodes.h by mkprint.lua
  4. ** DO NOT EDIT
  5. ** See Copyright Notice in lua.h
  6. */
  7. #define lopcodes_c
  8. #include "lua.h"
  9. #include "lobject.h"
  10. #include "lopcodes.h"
  11. #ifdef LUA_OPNAMES
  12. const char *const luaP_opnames[] = {
  13.   "MOVE",
  14.   "LOADK",
  15.   "LOADBOOL",
  16.   "LOADNIL",
  17.   "GETUPVAL",
  18.   "GETGLOBAL",
  19.   "GETTABLE",
  20.   "SETGLOBAL",
  21.   "SETUPVAL",
  22.   "SETTABLE",
  23.   "NEWTABLE",
  24.   "SELF",
  25.   "ADD",
  26.   "SUB",
  27.   "MUL",
  28.   "DIV",
  29.   "POW",
  30.   "UNM",
  31.   "NOT",
  32.   "CONCAT",
  33.   "JMP",
  34.   "EQ",
  35.   "LT",
  36.   "LE",
  37.   "TEST",
  38.   "CALL",
  39.   "TAILCALL",
  40.   "RETURN",
  41.   "FORLOOP",
  42.   "TFORLOOP",
  43.   "TFORPREP",
  44.   "SETLIST",
  45.   "SETLISTO",
  46.   "CLOSE",
  47.   "CLOSURE"
  48. };
  49. #endif
  50. #define opmode(t,b,bk,ck,sa,k,m) (((t)<<OpModeT) | 
  51.    ((b)<<OpModeBreg) | ((bk)<<OpModeBrk) | ((ck)<<OpModeCrk) | 
  52.    ((sa)<<OpModesetA) | ((k)<<OpModeK) | (m))
  53. const lu_byte luaP_opmodes[NUM_OPCODES] = {
  54. /*       T  B Bk Ck sA  K  mode    opcode    */
  55.   opmode(0, 1, 0, 0, 1, 0, iABC) /* OP_MOVE */
  56.  ,opmode(0, 0, 0, 0, 1, 1, iABx) /* OP_LOADK */
  57.  ,opmode(0, 0, 0, 0, 1, 0, iABC) /* OP_LOADBOOL */
  58.  ,opmode(0, 1, 0, 0, 1, 0, iABC) /* OP_LOADNIL */
  59.  ,opmode(0, 0, 0, 0, 1, 0, iABC) /* OP_GETUPVAL */
  60.  ,opmode(0, 0, 0, 0, 1, 1, iABx) /* OP_GETGLOBAL */
  61.  ,opmode(0, 1, 0, 1, 1, 0, iABC) /* OP_GETTABLE */
  62.  ,opmode(0, 0, 0, 0, 0, 1, iABx) /* OP_SETGLOBAL */
  63.  ,opmode(0, 0, 0, 0, 0, 0, iABC) /* OP_SETUPVAL */
  64.  ,opmode(0, 0, 1, 1, 0, 0, iABC) /* OP_SETTABLE */
  65.  ,opmode(0, 0, 0, 0, 1, 0, iABC) /* OP_NEWTABLE */
  66.  ,opmode(0, 1, 0, 1, 1, 0, iABC) /* OP_SELF */
  67.  ,opmode(0, 0, 1, 1, 1, 0, iABC) /* OP_ADD */
  68.  ,opmode(0, 0, 1, 1, 1, 0, iABC) /* OP_SUB */
  69.  ,opmode(0, 0, 1, 1, 1, 0, iABC) /* OP_MUL */
  70.  ,opmode(0, 0, 1, 1, 1, 0, iABC) /* OP_DIV */
  71.  ,opmode(0, 0, 1, 1, 1, 0, iABC) /* OP_POW */
  72.  ,opmode(0, 1, 0, 0, 1, 0, iABC) /* OP_UNM */
  73.  ,opmode(0, 1, 0, 0, 1, 0, iABC) /* OP_NOT */
  74.  ,opmode(0, 1, 0, 1, 1, 0, iABC) /* OP_CONCAT */
  75.  ,opmode(0, 0, 0, 0, 0, 0, iAsBx) /* OP_JMP */
  76.  ,opmode(1, 0, 1, 1, 0, 0, iABC) /* OP_EQ */
  77.  ,opmode(1, 0, 1, 1, 0, 0, iABC) /* OP_LT */
  78.  ,opmode(1, 0, 1, 1, 0, 0, iABC) /* OP_LE */
  79.  ,opmode(1, 1, 0, 0, 1, 0, iABC) /* OP_TEST */
  80.  ,opmode(0, 0, 0, 0, 0, 0, iABC) /* OP_CALL */
  81.  ,opmode(0, 0, 0, 0, 0, 0, iABC) /* OP_TAILCALL */
  82.  ,opmode(0, 0, 0, 0, 0, 0, iABC) /* OP_RETURN */
  83.  ,opmode(0, 0, 0, 0, 0, 0, iAsBx) /* OP_FORLOOP */
  84.  ,opmode(1, 0, 0, 0, 0, 0, iABC) /* OP_TFORLOOP */
  85.  ,opmode(0, 0, 0, 0, 0, 0, iAsBx) /* OP_TFORPREP */
  86.  ,opmode(0, 0, 0, 0, 0, 0, iABx) /* OP_SETLIST */
  87.  ,opmode(0, 0, 0, 0, 0, 0, iABx) /* OP_SETLISTO */
  88.  ,opmode(0, 0, 0, 0, 0, 0, iABC) /* OP_CLOSE */
  89.  ,opmode(0, 0, 0, 0, 1, 0, iABx) /* OP_CLOSURE */
  90. };