summaryrefslogtreecommitdiff
path: root/src/luac/opcode.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/luac/opcode.c')
-rw-r--r--src/luac/opcode.c102
1 files changed, 0 insertions, 102 deletions
diff --git a/src/luac/opcode.c b/src/luac/opcode.c
deleted file mode 100644
index c2d4ae7d..00000000
--- a/src/luac/opcode.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
-** $Id: opcode.c,v 1.9 1999/05/25 19:58:55 lhf Exp $
-** opcode information
-** See Copyright Notice in lua.h
-*/
-
-#include "luac.h"
-
-enum { /* for Opcode.args */
- ARGS_NONE,
- ARGS_B,
- ARGS_W,
- ARGS_BB,
- ARGS_WB
-};
-
-static Opcode Info[]= /* ORDER lopcodes.h */
-{
-#include "opcode.h"
-};
-
-static Opcode Fake[]= /* ORDER luac.h */
-{
-{ "NOP", NOP, NOP, ARGS_NONE, -1, -1 },
-{ "STACK", STACK, STACK, ARGS_B, -1, -1 },
-{ "ARGS", ARGS, ARGS, ARGS_B, -1, -1 },
-{ "VARARGS", VARARGS, VARARGS, ARGS_B, -1, -1 },
-};
-
-#define NOPCODES (sizeof(Info)/sizeof(Info[0]))
-
-int luaU_opcodeinfo(TProtoFunc* tf, Byte* p, Opcode* I, char* xFILE, int xLINE)
-{
- Opcode OP;
- Byte* code=tf->code;
- int op=*p;
- int size=1;
- if (p==code) /* first byte is STACK */
- {
- OP=Fake[-STACK];
- OP.arg=op;
- }
- else if (p==code+1) /* second byte is ARGS or VARARGS */
- {
- if (op<ZEROVARARG)
- {
- OP=Fake[-ARGS];
- OP.arg=op;
- }
- else
- {
- OP=Fake[-VARARGS];
- OP.arg=op-ZEROVARARG;
- }
- }
- else if (op==NOP) /* NOP is fake */
- {
- OP=Fake[0];
- }
- else if (op>=NOPCODES) /* cannot happen */
- {
- luaL_verror("[%s:%d] bad opcode %d at pc=%d" IN,
- xFILE,xLINE,op,(int)(p-code),INLOC);
- return 0;
- }
- else /* ordinary opcode */
- {
- OP=Info[op];
- switch (OP.args)
- {
- case ARGS_NONE: size=1;
- break;
- case ARGS_B: size=2; OP.arg=p[1];
- break;
- case ARGS_W: size=3; OP.arg=(p[1]<<8)+p[2];
- break;
- case ARGS_BB: size=3; OP.arg=p[1]; OP.arg2=p[2];
- break;
- case ARGS_WB: size=4; OP.arg=(p[1]<<8)+p[2]; OP.arg2=p[3];
- break;
- default: /* cannot happen */
- luaL_verror("[%s:%d] bad args %d for %s at pc=%d" IN,
- __FILE__,__LINE__,OP.args,OP.name,(int)(p-code),INLOC);
- break;
- }
- }
- *I=OP;
- return size;
-}
-
-int luaU_codesize(TProtoFunc* tf)
-{
- Byte* code=tf->code;
- Byte* p=code;
- for (;;)
- {
- Opcode OP;
- p+=INFO(tf,p,&OP);
- if (OP.op==ENDCODE) break;
- }
- return p-code;
-}