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