annotate src/lua/lopcodes.c @ 135:eb6ba88088d3

Wrote a more efficient input-number-assembly program; 91 oc -> 60 oc.
author Dylan Holmes <ocsenave@gmail.com>
date Sun, 18 Mar 2012 05:13:19 -0500
parents 27763b933818
children
rev   line source
rlm@1 1 /*
rlm@1 2 ** $Id: lopcodes.c,v 1.37.1.1 2007/12/27 13:02:25 roberto Exp $
rlm@1 3 ** See Copyright Notice in lua.h
rlm@1 4 */
rlm@1 5
rlm@1 6
rlm@1 7 #define lopcodes_c
rlm@1 8 #define LUA_CORE
rlm@1 9
rlm@1 10
rlm@1 11 #include "lopcodes.h"
rlm@1 12
rlm@1 13
rlm@1 14 /* ORDER OP */
rlm@1 15
rlm@1 16 const char *const luaP_opnames[NUM_OPCODES+1] = {
rlm@1 17 "MOVE",
rlm@1 18 "LOADK",
rlm@1 19 "LOADBOOL",
rlm@1 20 "LOADNIL",
rlm@1 21 "GETUPVAL",
rlm@1 22 "GETGLOBAL",
rlm@1 23 "GETTABLE",
rlm@1 24 "SETGLOBAL",
rlm@1 25 "SETUPVAL",
rlm@1 26 "SETTABLE",
rlm@1 27 "NEWTABLE",
rlm@1 28 "SELF",
rlm@1 29 "ADD",
rlm@1 30 "SUB",
rlm@1 31 "MUL",
rlm@1 32 "DIV",
rlm@1 33 "MOD",
rlm@1 34 "POW",
rlm@1 35 "UNM",
rlm@1 36 "NOT",
rlm@1 37 "LEN",
rlm@1 38 "CONCAT",
rlm@1 39 "JMP",
rlm@1 40 "EQ",
rlm@1 41 "LT",
rlm@1 42 "LE",
rlm@1 43 "TEST",
rlm@1 44 "TESTSET",
rlm@1 45 "CALL",
rlm@1 46 "TAILCALL",
rlm@1 47 "RETURN",
rlm@1 48 "FORLOOP",
rlm@1 49 "FORPREP",
rlm@1 50 "TFORLOOP",
rlm@1 51 "SETLIST",
rlm@1 52 "CLOSE",
rlm@1 53 "CLOSURE",
rlm@1 54 "VARARG",
rlm@1 55 NULL
rlm@1 56 };
rlm@1 57
rlm@1 58
rlm@1 59 #define opmode(t,a,b,c,m) (((t)<<7) | ((a)<<6) | ((b)<<4) | ((c)<<2) | (m))
rlm@1 60
rlm@1 61 const lu_byte luaP_opmodes[NUM_OPCODES] = {
rlm@1 62 /* T A B C mode opcode */
rlm@1 63 opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_MOVE */
rlm@1 64 ,opmode(0, 1, OpArgK, OpArgN, iABx) /* OP_LOADK */
rlm@1 65 ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_LOADBOOL */
rlm@1 66 ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_LOADNIL */
rlm@1 67 ,opmode(0, 1, OpArgU, OpArgN, iABC) /* OP_GETUPVAL */
rlm@1 68 ,opmode(0, 1, OpArgK, OpArgN, iABx) /* OP_GETGLOBAL */
rlm@1 69 ,opmode(0, 1, OpArgR, OpArgK, iABC) /* OP_GETTABLE */
rlm@1 70 ,opmode(0, 0, OpArgK, OpArgN, iABx) /* OP_SETGLOBAL */
rlm@1 71 ,opmode(0, 0, OpArgU, OpArgN, iABC) /* OP_SETUPVAL */
rlm@1 72 ,opmode(0, 0, OpArgK, OpArgK, iABC) /* OP_SETTABLE */
rlm@1 73 ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_NEWTABLE */
rlm@1 74 ,opmode(0, 1, OpArgR, OpArgK, iABC) /* OP_SELF */
rlm@1 75 ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_ADD */
rlm@1 76 ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_SUB */
rlm@1 77 ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_MUL */
rlm@1 78 ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_DIV */
rlm@1 79 ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_MOD */
rlm@1 80 ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_POW */
rlm@1 81 ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_UNM */
rlm@1 82 ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_NOT */
rlm@1 83 ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_LEN */
rlm@1 84 ,opmode(0, 1, OpArgR, OpArgR, iABC) /* OP_CONCAT */
rlm@1 85 ,opmode(0, 0, OpArgR, OpArgN, iAsBx) /* OP_JMP */
rlm@1 86 ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_EQ */
rlm@1 87 ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_LT */
rlm@1 88 ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_LE */
rlm@1 89 ,opmode(1, 1, OpArgR, OpArgU, iABC) /* OP_TEST */
rlm@1 90 ,opmode(1, 1, OpArgR, OpArgU, iABC) /* OP_TESTSET */
rlm@1 91 ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_CALL */
rlm@1 92 ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_TAILCALL */
rlm@1 93 ,opmode(0, 0, OpArgU, OpArgN, iABC) /* OP_RETURN */
rlm@1 94 ,opmode(0, 1, OpArgR, OpArgN, iAsBx) /* OP_FORLOOP */
rlm@1 95 ,opmode(0, 1, OpArgR, OpArgN, iAsBx) /* OP_FORPREP */
rlm@1 96 ,opmode(1, 0, OpArgN, OpArgU, iABC) /* OP_TFORLOOP */
rlm@1 97 ,opmode(0, 0, OpArgU, OpArgU, iABC) /* OP_SETLIST */
rlm@1 98 ,opmode(0, 0, OpArgN, OpArgN, iABC) /* OP_CLOSE */
rlm@1 99 ,opmode(0, 1, OpArgU, OpArgN, iABx) /* OP_CLOSURE */
rlm@1 100 ,opmode(0, 1, OpArgU, OpArgN, iABC) /* OP_VARARG */
rlm@1 101 };
rlm@1 102