lopcodes.c 3.2 KB

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