2
0
Эх сурвалжийг харах

documentation of opcode meanings (thanks to lhf)

Roberto Ierusalimschy 29 жил өмнө
parent
commit
8c37d3b9d6
1 өөрчлөгдсөн 76 нэмэгдсэн , 53 устгасан
  1. 76 53
      opcode.h

+ 76 - 53
opcode.h

@@ -1,6 +1,6 @@
 /*
 /*
 ** TeCGraf - PUC-Rio
 ** TeCGraf - PUC-Rio
-** $Id: opcode.h,v 3.21 1996/05/28 21:07:32 roberto Exp roberto $
+** $Id: opcode.h,v 3.22 1996/09/24 21:46:44 roberto Exp roberto $
 */
 */
 
 
 #ifndef opcode_h
 #ifndef opcode_h
@@ -15,60 +15,83 @@
 #define FIELDS_PER_FLUSH 40
 #define FIELDS_PER_FLUSH 40
 
 
 
 
-typedef enum 
-{ 
- PUSHNIL,
- PUSH0, PUSH1, PUSH2,
- PUSHBYTE,
- PUSHWORD,
- PUSHFLOAT,
- PUSHSTRING,
- PUSHFUNCTION,
- PUSHLOCAL0, PUSHLOCAL1, PUSHLOCAL2, PUSHLOCAL3, PUSHLOCAL4,
- PUSHLOCAL5, PUSHLOCAL6, PUSHLOCAL7, PUSHLOCAL8, PUSHLOCAL9,
- PUSHLOCAL,
- PUSHGLOBAL,
- PUSHINDEXED,
- PUSHSELF,
- STORELOCAL0, STORELOCAL1, STORELOCAL2, STORELOCAL3, STORELOCAL4,
- STORELOCAL5, STORELOCAL6, STORELOCAL7, STORELOCAL8, STORELOCAL9,
- STORELOCAL,
- STOREGLOBAL,
- STOREINDEXED0,
- STOREINDEXED,
- STORELIST0,
- STORELIST,
- STORERECORD,
- ADJUST0,
- ADJUST,
- CREATEARRAY,
- EQOP,
- LTOP,
- LEOP,
- GTOP,
- GEOP,
- ADDOP,
- SUBOP,
- MULTOP,
- DIVOP,
- POWOP,
- CONCOP,
- MINUSOP,
- NOTOP,
- ONTJMP,
- ONFJMP,
- JMP,
- UPJMP,
- IFFJMP,
- IFFUPJMP,
- POP,
- CALLFUNC,
- RETCODE0,
- RETCODE,
- SETLINE,
- VARARGS
+typedef enum {
+/* name          parm    before          after           side effect
+-----------------------------------------------------------------------------*/
+
+PUSHNIL,/*		-		nil  */
+PUSH0,/*		-		0.0  */
+PUSH1,/*		-		1.0  */
+PUSH2,/*		-		2.0  */
+PUSHBYTE,/*	b	-		(float)b  */
+PUSHWORD,/*	w	-		(float)w  */
+PUSHFLOAT,/*	f	-		f  */
+PUSHSTRING,/*	w	-		STR[w]  */
+PUSHFUNCTION,/*	p	-		FUN(p)  */
+PUSHLOCAL0,/*		-		LOC[0]  */
+PUSHLOCAL1,/*		-		LOC[1]  */
+PUSHLOCAL2,/*		-		LOC[2]  */
+PUSHLOCAL3,/*		-		LOC[3]  */
+PUSHLOCAL4,/*		-		LOC[4]  */
+PUSHLOCAL5,/*		-		LOC[5]  */
+PUSHLOCAL6,/*		-		LOC[6]  */
+PUSHLOCAL7,/*		-		LOC[7]  */
+PUSHLOCAL8,/*		-		LOC[8]  */
+PUSHLOCAL9,/*		-		LOC[9]  */
+PUSHLOCAL,/*	w	-		LOC[w]  */
+PUSHGLOBAL,/*	w	-		VAR[w]  */
+PUSHINDEXED,/*		i t		t[i]  */
+PUSHSELF,/*	w	t		t t[STR[w]]  */
+STORELOCAL0,/*		x		-		LOC[0]=x  */
+STORELOCAL1,/*		x		-		LOC[1]=x  */
+STORELOCAL2,/*		x		-		LOC[2]=x  */
+STORELOCAL3,/*		x		-		LOC[3]=x  */
+STORELOCAL4,/*		x		-		LOC[4]=x  */
+STORELOCAL5,/*		x		-		LOC[5]=x  */
+STORELOCAL6,/*		x		-		LOC[6]=x  */
+STORELOCAL7,/*		x		-		LOC[7]=x  */
+STORELOCAL8,/*		x		-		LOC[8]=x  */
+STORELOCAL9,/*		x		-		LOC[9]=x  */
+STORELOCAL,/*	w	x		-		LOC[w]=x  */
+STOREGLOBAL,/*	w	x		-		VAR[w]=x  */
+STOREINDEXED0,/*	v i t		-		t[i]=v  */
+STOREINDEXED,/*	b	v a_b...a_1 i t	a_b...a_1 i t	t[i]=v  */
+STORELIST0,/*	w	v_w...v_1 t	-		t[i]=v_i  */
+STORELIST,/*	w n	v_w...v_1 t	-		t[i+n*FPF]=v_i  */
+STORERECORD,/*	n
+		w_n...w_1 v_n...v_1 t	-		t[STR[w_i]]=v_i  */
+ADJUST0,/*		-		-		TOP=BASE  */
+ADJUST,/*	b	-		-		TOP=BASE+b  */
+CREATEARRAY,/*	w	-		newarray(size = w)  */
+EQOP,/*			y x		(x==y)? 1 : nil  */
+LTOP,/*			y x		(x<y)? 1 : nil  */
+LEOP,/*			y x		(x<y)? 1 : nil  */
+GTOP,/*			y x		(x>y)? 1 : nil  */
+GEOP,/*			y x		(x>=y)? 1 : nil  */
+ADDOP,/*		y x		x+y  */
+SUBOP,/*		y x		x-y  */
+MULTOP,/*		y x		x*y  */
+DIVOP,/*		y x		x/y  */
+POWOP,/*		y x		x^y  */
+CONCOP,/*		y x		x..y  */
+MINUSOP,/*		x		-x  */
+NOTOP,/*		x		(x==nil)? 1 : nil  */
+ONTJMP,/*		w	x	-		(x!=nil)? PC+=w  */
+ONFJMP,/*		w	x	-		(x==nil)? PC+=w  */
+JMP,/*		w	-		-		PC+=w  */
+UPJMP,/*		w	-	-		PC-=w  */
+IFFJMP,/*		w	x	-		(x==nil)? PC+=w  */
+IFFUPJMP,/*	w	x		-		(x==nil)? PC-=w  */
+POP,/*			x		-  */
+CALLFUNC,/*	n m	v_n...v_1 f	r_m...r_1	f(v1,...,v_n)  */
+RETCODE0,
+RETCODE,/*	b	-		-  */
+SETLINE,/*	w	-		-		LINE=w  */
+VARARGS/*	b	v_n...v_1	{v_1...v_n;n=n}  */
+
 } OpCode;
 } OpCode;
 
 
+
 #define MULT_RET	255
 #define MULT_RET	255