mirror of
https://github.com/lua/lua.git
synced 2025-01-14 05:43:00 +08:00
df13f25948
In arithmetic/bitwise operators, the call to metamethods is made in a separate opcode following the main one. (The main opcode skips this next one when the operation succeeds.) This change reduces slightly the size of the binary and the complexity of the arithmetic/bitwise opcodes. It also simplfies the treatment of errors and yeld/resume in these operations, as there are much fewer cases to consider. (Only OP_MMBIN/OP_MMBINI/OP_MMBINK, instead of all variants of all arithmetic/bitwise operators.)
105 lines
1.1 KiB
C
105 lines
1.1 KiB
C
/*
|
|
** $Id: lopnames.h $
|
|
** Opcode names
|
|
** See Copyright Notice in lua.h
|
|
*/
|
|
|
|
#if !defined(lopnames_h)
|
|
#define lopnames_h
|
|
|
|
/* ORDER OP */
|
|
|
|
static const char *const opnames[] = {
|
|
"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",
|
|
"ADDK",
|
|
"SUBK",
|
|
"MULK",
|
|
"MODK",
|
|
"POWK",
|
|
"DIVK",
|
|
"IDIVK",
|
|
"BANDK",
|
|
"BORK",
|
|
"BXORK",
|
|
"SHRI",
|
|
"SHLI",
|
|
"ADD",
|
|
"SUB",
|
|
"MUL",
|
|
"MOD",
|
|
"POW",
|
|
"DIV",
|
|
"IDIV",
|
|
"BAND",
|
|
"BOR",
|
|
"BXOR",
|
|
"SHL",
|
|
"SHR",
|
|
"MMBIN",
|
|
"MMBINI",
|
|
"MMBINK",
|
|
"UNM",
|
|
"BNOT",
|
|
"NOT",
|
|
"LEN",
|
|
"CONCAT",
|
|
"CLOSE",
|
|
"TBC",
|
|
"JMP",
|
|
"EQ",
|
|
"LT",
|
|
"LE",
|
|
"EQK",
|
|
"EQI",
|
|
"LTI",
|
|
"LEI",
|
|
"GTI",
|
|
"GEI",
|
|
"TEST",
|
|
"TESTSET",
|
|
"CALL",
|
|
"TAILCALL",
|
|
"RETURN",
|
|
"RETURN0",
|
|
"RETURN1",
|
|
"FORLOOP",
|
|
"FORPREP",
|
|
"TFORPREP",
|
|
"TFORCALL",
|
|
"TFORLOOP",
|
|
"SETLIST",
|
|
"CLOSURE",
|
|
"VARARG",
|
|
"VARARGPREP",
|
|
"EXTRAARG",
|
|
NULL
|
|
};
|
|
|
|
#endif
|
|
|