/*
** $Id: lopcodes.c,v 1.79 2018/02/21 15:49:32 roberto Exp roberto $
** Opcodes for Lua virtual machine
** See Copyright Notice in lua.h
*/

#define lopcodes_c
#define LUA_CORE

#include "lprefix.h"


#include <stddef.h>

#include "lopcodes.h"


/* ORDER OP */

LUAI_DDEF const char *const luaP_opnames[NUM_OPCODES+1] = {
  "MOVE",
  "LOADI",
  "LOADF",
  "LOADK",
  "LOADKX",
  "LOADBOOL",
  "LOADNIL",
  "GETUPVAL",
  "SETUPVAL",
  "GETTABUP",
  "GETTABLE",
  "GETI",
  "GETFIELD",
  "SETTABUP",
  "SETTABLE",
  "SETI",
  "SETFIELD",
  "NEWTABLE",
  "SELF",
  "ADDI",
  "SUBI",
  "MULI",
  "MODI",
  "POWI",
  "DIVI",
  "IDIVI",
  "BANDK",
  "BORK",
  "BXORK",
  "SHRI",
  "SHLI",
  "ADD",
  "SUB",
  "MUL",
  "MOD",
  "POW",
  "DIV",
  "IDIV",
  "BAND",
  "BOR",
  "BXOR",
  "SHL",
  "SHR",
  "UNM",
  "BNOT",
  "NOT",
  "LEN",
  "CONCAT",
  "CLOSE",
  "JMP",
  "EQ",
  "LT",
  "LE",
  "EQK",
  "EQI",
  "LTI",
  "LEI",
  "GTI",
  "GEI",
  "TEST",
  "TESTSET",
  "UNDEF",
  "ISDEF",
  "CALL",
  "TAILCALL",
  "RETURN",
  "RETURN0",
  "RETURN1",
  "FORLOOP1",
  "FORPREP1",
  "FORLOOP",
  "FORPREP",
  "TFORCALL",
  "TFORLOOP",
  "SETLIST",
  "CLOSURE",
  "VARARG",
  "PREPVARARG",
  "EXTRAARG",
  NULL
};


LUAI_DDEF const lu_byte luaP_opmodes[NUM_OPCODES] = {
/*       OT IT T  A  mode		   opcode  */
  opmode(0, 0, 0, 1, iABC)		/* OP_MOVE */
 ,opmode(0, 0, 0, 1, iAsBx)		/* OP_LOADI */
 ,opmode(0, 0, 0, 1, iAsBx)		/* OP_LOADF */
 ,opmode(0, 0, 0, 1, iABx)		/* OP_LOADK */
 ,opmode(0, 0, 0, 1, iABx)		/* OP_LOADKX */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_LOADBOOL */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_LOADNIL */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_GETUPVAL */
 ,opmode(0, 0, 0, 0, iABC)		/* OP_SETUPVAL */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_GETTABUP */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_GETTABLE */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_GETI */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_GETFIELD */
 ,opmode(0, 0, 0, 0, iABC)		/* OP_SETTABUP */
 ,opmode(0, 0, 0, 0, iABC)		/* OP_SETTABLE */
 ,opmode(0, 0, 0, 0, iABC)		/* OP_SETI */
 ,opmode(0, 0, 0, 0, iABC)		/* OP_SETFIELD */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_NEWTABLE */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_SELF */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_ADDI */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_SUBI */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_MULI */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_MODI */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_POWI */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_DIVI */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_IDIVI */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_BANDK */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_BORK */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_BXORK */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_SHRI */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_SHLI */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_ADD */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_SUB */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_MUL */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_MOD */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_POW */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_DIV */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_IDIV */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_BAND */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_BOR */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_BXOR */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_SHL */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_SHR */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_UNM */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_BNOT */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_NOT */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_LEN */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_CONCAT */
 ,opmode(0, 0, 0, 0, iABC)		/* OP_CLOSE */
 ,opmode(0, 0, 0, 0, isJ)		/* OP_JMP */
 ,opmode(0, 0, 1, 0, iABC)		/* OP_EQ */
 ,opmode(0, 0, 1, 0, iABC)		/* OP_LT */
 ,opmode(0, 0, 1, 0, iABC)		/* OP_LE */
 ,opmode(0, 0, 1, 0, iABC)		/* OP_EQK */
 ,opmode(0, 0, 1, 0, iABC)		/* OP_EQI */
 ,opmode(0, 0, 1, 0, iABC)		/* OP_LTI */
 ,opmode(0, 0, 1, 0, iABC)		/* OP_LEI */
 ,opmode(0, 0, 1, 0, iABC)		/* OP_GTI */
 ,opmode(0, 0, 1, 0, iABC)		/* OP_GEI */
 ,opmode(0, 0, 1, 0, iABC)		/* OP_TEST */
 ,opmode(0, 0, 1, 1, iABC)		/* OP_TESTSET */
 ,opmode(0, 0, 0, 0, iABC)		/* OP_UNDEF */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_ISDEF */
 ,opmode(1, 1, 0, 1, iABC)		/* OP_CALL */
 ,opmode(1, 1, 0, 1, iABC)		/* OP_TAILCALL */
 ,opmode(0, 1, 0, 0, iABC)		/* OP_RETURN */
 ,opmode(0, 0, 0, 0, iABC)		/* OP_RETURN0 */
 ,opmode(0, 0, 0, 0, iABC)		/* OP_RETURN1 */
 ,opmode(0, 0, 0, 1, iABx)		/* OP_FORLOOP1 */
 ,opmode(0, 0, 0, 1, iABx)		/* OP_FORPREP1 */
 ,opmode(0, 0, 0, 1, iABx)		/* OP_FORLOOP */
 ,opmode(0, 0, 0, 1, iABx)		/* OP_FORPREP */
 ,opmode(0, 0, 0, 0, iABC)		/* OP_TFORCALL */
 ,opmode(0, 0, 0, 1, iABx)		/* OP_TFORLOOP */
 ,opmode(0, 1, 0, 0, iABC)		/* OP_SETLIST */
 ,opmode(0, 0, 0, 1, iABx)		/* OP_CLOSURE */
 ,opmode(1, 0, 0, 1, iABC)		/* OP_VARARG */
 ,opmode(0, 0, 0, 1, iABC)		/* OP_PREPVARARG */
 ,opmode(0, 0, 0, 0, iAx)		/* OP_EXTRAARG */
};

