71 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
| ** $Id: lopcodes.c,v 1.55 2015/01/05 13:48:33 roberto Exp $
 | |
| ** Opcodes for Lua virtual machine
 | |
| ** See Copyright Notice in lua.h
 | |
| */
 | |
| 
 | |
| #define lopcodes_c
 | |
| #define LUA_CORE
 | |
| 
 | |
| #include "lopcodes.h"
 | |
| #include "lprefix.h"
 | |
| 
 | |
| #include <stddef.h>
 | |
| 
 | |
| namespace NS_SLUA {
 | |
| 
 | |
| /* ORDER OP */
 | |
| #define opmode(t,a,b,c,m) (((t)<<7) | ((a)<<6) | ((b)<<4) | ((c)<<2) | (m))
 | |
| 
 | |
| LUAI_DDEF const lu_byte luaP_opmodes[NUM_OPCODES] = {
 | |
| /*       T  A    B       C     mode		   opcode	*/
 | |
|   opmode(0, 1, OpArgR, OpArgN, iABC)		/* OP_MOVE */
 | |
|  ,opmode(0, 1, OpArgR, OpArgK, iABC)		/* OP_SELF */
 | |
|  ,opmode(0, 1, OpArgK, OpArgK, iABC)		/* OP_ADD */
 | |
|  ,opmode(0, 1, OpArgK, OpArgK, iABC)		/* OP_SUB */
 | |
|  ,opmode(0, 1, OpArgK, OpArgK, iABC)		/* OP_MUL */
 | |
|  ,opmode(0, 1, OpArgK, OpArgK, iABC)		/* OP_MOD */
 | |
|  ,opmode(0, 1, OpArgK, OpArgK, iABC)		/* OP_POW */
 | |
|  ,opmode(0, 1, OpArgK, OpArgK, iABC)		/* OP_DIV */
 | |
|  ,opmode(0, 1, OpArgK, OpArgK, iABC)		/* OP_IDIV */
 | |
|  ,opmode(0, 1, OpArgK, OpArgK, iABC)		/* OP_BAND */
 | |
|  ,opmode(0, 1, OpArgK, OpArgK, iABC)		/* OP_BOR */
 | |
|  ,opmode(0, 1, OpArgK, OpArgK, iABC)		/* OP_BXOR */
 | |
|  ,opmode(0, 1, OpArgK, OpArgK, iABC)		/* OP_SHL */
 | |
|  ,opmode(0, 1, OpArgK, OpArgK, iABC)		/* OP_SHR */
 | |
|  ,opmode(0, 1, OpArgR, OpArgN, iABC)		/* OP_UNM */
 | |
|  ,opmode(0, 1, OpArgR, OpArgN, iABC)		/* OP_BNOT */
 | |
|  ,opmode(0, 1, OpArgR, OpArgN, iABC)		/* OP_NOT */
 | |
|  ,opmode(0, 1, OpArgR, OpArgN, iABC)		/* OP_LEN */
 | |
|  ,opmode(0, 1, OpArgR, OpArgR, iABC)		/* OP_CONCAT */
 | |
|  ,opmode(0, 0, OpArgR, OpArgN, iAsBx)		/* OP_JMP */
 | |
|  ,opmode(1, 0, OpArgK, OpArgK, iABC)		/* OP_EQ */
 | |
|  ,opmode(1, 0, OpArgK, OpArgK, iABC)		/* OP_LT */
 | |
|  ,opmode(1, 0, OpArgK, OpArgK, iABC)		/* OP_LE */
 | |
|  ,opmode(1, 0, OpArgN, OpArgU, iABC)		/* OP_TEST */
 | |
|  ,opmode(1, 1, OpArgR, OpArgU, iABC)		/* OP_TESTSET */
 | |
|  ,opmode(0, 1, OpArgU, OpArgU, iABC)		/* OP_CALL */
 | |
|  ,opmode(0, 1, OpArgU, OpArgU, iABC)		/* OP_TAILCALL */
 | |
|  ,opmode(0, 0, OpArgU, OpArgN, iABC)		/* OP_RETURN */
 | |
|  ,opmode(0, 1, OpArgR, OpArgN, iAsBx)		/* OP_FORLOOP */
 | |
|  ,opmode(0, 1, OpArgR, OpArgN, iAsBx)		/* OP_FORPREP */
 | |
|  ,opmode(0, 0, OpArgN, OpArgU, iABC)		/* OP_TFORCALL */
 | |
|  ,opmode(0, 1, OpArgR, OpArgN, iAsBx)		/* OP_TFORLOOP */
 | |
|  ,opmode(0, 0, OpArgU, OpArgU, iABC)		/* OP_SETLIST */
 | |
|  ,opmode(0, 1, OpArgU, OpArgN, iABx)		/* OP_CLOSURE */
 | |
|  ,opmode(0, 1, OpArgU, OpArgN, iABC)		/* OP_VARARG */
 | |
|  ,opmode(0, 1, OpArgK, OpArgN, iABx)		/* OP_LOADK */
 | |
|  ,opmode(0, 1, OpArgN, OpArgN, iABx)		/* OP_LOADKX */
 | |
|  ,opmode(0, 1, OpArgU, OpArgU, iABC)		/* OP_LOADBOOL */
 | |
|  ,opmode(0, 1, OpArgU, OpArgN, iABC)		/* OP_LOADNIL */
 | |
|  ,opmode(0, 1, OpArgU, OpArgN, iABC)		/* OP_GETUPVAL */
 | |
|  ,opmode(0, 1, OpArgU, OpArgK, iABC)		/* OP_GETTABUP */
 | |
|  ,opmode(0, 1, OpArgR, OpArgK, iABC)		/* OP_GETTABLE */
 | |
|  ,opmode(0, 0, OpArgK, OpArgK, iABC)		/* OP_SETTABUP */
 | |
|  ,opmode(0, 0, OpArgU, OpArgN, iABC)		/* OP_SETUPVAL */
 | |
|  ,opmode(0, 0, OpArgK, OpArgK, iABC)		/* OP_SETTABLE */
 | |
|  ,opmode(0, 1, OpArgU, OpArgU, iABC)		/* OP_NEWTABLE */
 | |
|  ,opmode(0, 0, OpArgU, OpArgU, iAx)		/* OP_EXTRAARG */
 | |
| };
 | |
| 
 | |
| } // end NS_SLUA
 |