123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- #undef vmdispatch
- #undef vmcase
- #undef vmbreak
- #define vmdispatch(x) goto *disptab[x];
- #define vmcase(l) L_##l:
- #define vmbreak vmfetch(); vmdispatch(GET_OPCODE(i));
- static void *disptab[] = {
- #if 0
- ** you can update the following list with this command:
- **
- ** sed -n '/^OP_/\!d; s/OP_/\&\&L_OP_/ ; s/,.*/,/ ; s/\/.*// ; p' lopcodes.h
- **
- #endif
- &&L_OP_MOVE,
- &&L_OP_LOADI,
- &&L_OP_LOADF,
- &&L_OP_LOADK,
- &&L_OP_LOADKX,
- &&L_OP_LOADBOOL,
- &&L_OP_LOADNIL,
- &&L_OP_GETUPVAL,
- &&L_OP_SETUPVAL,
- &&L_OP_GETTABUP,
- &&L_OP_GETTABLE,
- &&L_OP_GETI,
- &&L_OP_GETFIELD,
- &&L_OP_SETTABUP,
- &&L_OP_SETTABLE,
- &&L_OP_SETI,
- &&L_OP_SETFIELD,
- &&L_OP_NEWTABLE,
- &&L_OP_SELF,
- &&L_OP_ADDI,
- &&L_OP_SUBI,
- &&L_OP_MULI,
- &&L_OP_MODI,
- &&L_OP_POWI,
- &&L_OP_DIVI,
- &&L_OP_IDIVI,
- &&L_OP_BANDK,
- &&L_OP_BORK,
- &&L_OP_BXORK,
- &&L_OP_SHRI,
- &&L_OP_SHLI,
- &&L_OP_ADD,
- &&L_OP_SUB,
- &&L_OP_MUL,
- &&L_OP_MOD,
- &&L_OP_POW,
- &&L_OP_DIV,
- &&L_OP_IDIV,
- &&L_OP_BAND,
- &&L_OP_BOR,
- &&L_OP_BXOR,
- &&L_OP_SHL,
- &&L_OP_SHR,
- &&L_OP_UNM,
- &&L_OP_BNOT,
- &&L_OP_NOT,
- &&L_OP_LEN,
- &&L_OP_CONCAT,
- &&L_OP_CLOSE,
- &&L_OP_JMP,
- &&L_OP_EQ,
- &&L_OP_LT,
- &&L_OP_LE,
- &&L_OP_EQK,
- &&L_OP_EQI,
- &&L_OP_LTI,
- &&L_OP_LEI,
- &&L_OP_GTI,
- &&L_OP_GEI,
- &&L_OP_TEST,
- &&L_OP_TESTSET,
- &&L_OP_CALL,
- &&L_OP_TAILCALL,
- &&L_OP_RETURN,
- &&L_OP_RETURN0,
- &&L_OP_RETURN1,
- &&L_OP_FORLOOP1,
- &&L_OP_FORPREP1,
- &&L_OP_FORLOOP,
- &&L_OP_FORPREP,
- &&L_OP_TFORCALL,
- &&L_OP_TFORLOOP,
- &&L_OP_SETLIST,
- &&L_OP_CLOSURE,
- &&L_OP_VARARG,
- &&L_OP_PREPVARARG,
- &&L_OP_EXTRAARG
- };
|