diff options
Diffstat (limited to 'lopcodes.h')
-rw-r--r-- | lopcodes.h | 138 |
1 files changed, 69 insertions, 69 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lopcodes.h,v 1.26 1999/02/23 13:38:38 roberto Exp roberto $ | 2 | ** $Id: lopcodes.h,v 1.27 1999/02/24 17:55:51 roberto Exp roberto $ |
3 | ** Opcodes for Lua virtual machine | 3 | ** Opcodes for Lua virtual machine |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -17,97 +17,97 @@ | |||
17 | typedef enum { | 17 | typedef enum { |
18 | /* name parm before after side effect | 18 | /* name parm before after side effect |
19 | -----------------------------------------------------------------------------*/ | 19 | -----------------------------------------------------------------------------*/ |
20 | ENDCODE,/* - - - */ | 20 | ENDCODE,/* - - - */ |
21 | RETCODE,/* b - - */ | 21 | RETCODE,/* b - - */ |
22 | 22 | ||
23 | PUSHNIL,/* b - nil_0...nil_b */ | 23 | PUSHNIL,/* b - nil_0...nil_b */ |
24 | POP,/* b - - TOP-=b */ | 24 | POP,/* b - - TOP-=b */ |
25 | POPDUP,/* b v v TOP-=b */ | 25 | POPDUP,/* b v v TOP-=b */ |
26 | 26 | ||
27 | PUSHNUMBERW,/* w - (float)w */ | 27 | PUSHNUMBERW,/* w - (float)w */ |
28 | PUSHNUMBER,/* b - (float)b */ | 28 | PUSHNUMBER,/* b - (float)b */ |
29 | 29 | ||
30 | PUSHNUMBERNEGW,/* w - (float)-w */ | 30 | PUSHNUMBERNEGW,/* w - (float)-w */ |
31 | PUSHNUMBERNEG,/* b - (float)-b */ | 31 | PUSHNUMBERNEG,/* b - (float)-b */ |
32 | 32 | ||
33 | PUSHCONSTANTW,/*w - CNST[w] */ | 33 | PUSHCONSTANTW,/*w - CNST[w] */ |
34 | PUSHCONSTANT,/* b - CNST[b] */ | 34 | PUSHCONSTANT,/* b - CNST[b] */ |
35 | 35 | ||
36 | PUSHUPVALUE,/* b - Closure[b] */ | 36 | PUSHUPVALUE,/* b - Closure[b] */ |
37 | 37 | ||
38 | PUSHLOCAL,/* b - LOC[b] */ | 38 | PUSHLOCAL,/* b - LOC[b] */ |
39 | 39 | ||
40 | GETGLOBALW,/* w - VAR[CNST[w]] */ | 40 | GETGLOBALW,/* w - VAR[CNST[w]] */ |
41 | GETGLOBAL,/* b - VAR[CNST[b]] */ | 41 | GETGLOBAL,/* b - VAR[CNST[b]] */ |
42 | 42 | ||
43 | GETTABLE,/* - i t t[i] */ | 43 | GETTABLE,/* - i t t[i] */ |
44 | 44 | ||
45 | GETDOTTEDW,/* w t t[CNST[w]] */ | 45 | GETDOTTEDW,/* w t t[CNST[w]] */ |
46 | GETDOTTED,/* b t t[CNST[b]] */ | 46 | GETDOTTED,/* b t t[CNST[b]] */ |
47 | 47 | ||
48 | PUSHSELFW,/* w t t t[CNST[w]] */ | 48 | PUSHSELFW,/* w t t t[CNST[w]] */ |
49 | PUSHSELF,/* b t t t[CNST[b]] */ | 49 | PUSHSELF,/* b t t t[CNST[b]] */ |
50 | 50 | ||
51 | CREATEARRAYW,/* w - newarray(size = w) */ | 51 | CREATEARRAYW,/* w - newarray(size = w) */ |
52 | CREATEARRAY,/* b - newarray(size = b) */ | 52 | CREATEARRAY,/* b - newarray(size = b) */ |
53 | 53 | ||
54 | SETLOCAL,/* b x - LOC[b]=x */ | 54 | SETLOCAL,/* b x - LOC[b]=x */ |
55 | SETLOCALDUP,/* b x x LOC[b]=x */ | 55 | SETLOCALDUP,/* b x x LOC[b]=x */ |
56 | 56 | ||
57 | SETGLOBALW,/* w x - VAR[CNST[w]]=x */ | 57 | SETGLOBALW,/* w x - VAR[CNST[w]]=x */ |
58 | SETGLOBAL,/* b x - VAR[CNST[b]]=x */ | 58 | SETGLOBAL,/* b x - VAR[CNST[b]]=x */ |
59 | SETGLOBALDUPW,/*w x x VAR[CNST[w]]=x */ | 59 | SETGLOBALDUPW,/*w x x VAR[CNST[w]]=x */ |
60 | SETGLOBALDUP,/* b x x VAR[CNST[b]]=x */ | 60 | SETGLOBALDUP,/* b x x VAR[CNST[b]]=x */ |
61 | 61 | ||
62 | SETTABLEPOP,/* - v i t - t[i]=v */ | 62 | SETTABLEPOP,/* - v i t - t[i]=v */ |
63 | SETTABLEPOPDUP,/* - v i t v t[i]=v */ | 63 | SETTABLEPOPDUP,/* - v i t v t[i]=v */ |
64 | 64 | ||
65 | SETTABLE,/* b v a_b...a_1 i t a_b...a_1 i t t[i]=v */ | 65 | SETTABLE,/* b v a_b...a_1 i t a_b...a_1 i t t[i]=v */ |
66 | SETTABLEDUP,/* b v a_b...a_1 i t v a_b...a_1 i t t[i]=v */ | 66 | SETTABLEDUP,/* b v a_b...a_1 i t v a_b...a_1 i t t[i]=v */ |
67 | 67 | ||
68 | SETLISTW,/* w c v_c...v_1 t - t[i+w*FPF]=v_i */ | 68 | SETLISTW,/* w c v_c...v_1 t - t[i+w*FPF]=v_i */ |
69 | SETLIST,/* b c v_c...v_1 t - t[i+b*FPF]=v_i */ | 69 | SETLIST,/* b c v_c...v_1 t - t[i+b*FPF]=v_i */ |
70 | 70 | ||
71 | SETMAP,/* b v_b k_b ...v_0 k_0 t t t[k_i]=v_i */ | 71 | SETMAP,/* b v_b k_b ...v_0 k_0 t t t[k_i]=v_i */ |
72 | 72 | ||
73 | NEQOP,/* - y x (x~=y)? 1 : nil */ | 73 | NEQOP,/* - y x (x~=y)? 1 : nil */ |
74 | EQOP,/* - y x (x==y)? 1 : nil */ | 74 | EQOP,/* - y x (x==y)? 1 : nil */ |
75 | LTOP,/* - y x (x<y)? 1 : nil */ | 75 | LTOP,/* - y x (x<y)? 1 : nil */ |
76 | LEOP,/* - y x (x<y)? 1 : nil */ | 76 | LEOP,/* - y x (x<y)? 1 : nil */ |
77 | GTOP,/* - y x (x>y)? 1 : nil */ | 77 | GTOP,/* - y x (x>y)? 1 : nil */ |
78 | GEOP,/* - y x (x>=y)? 1 : nil */ | 78 | GEOP,/* - y x (x>=y)? 1 : nil */ |
79 | ADDOP,/* - y x x+y */ | 79 | ADDOP,/* - y x x+y */ |
80 | SUBOP,/* - y x x-y */ | 80 | SUBOP,/* - y x x-y */ |
81 | MULTOP,/* - y x x*y */ | 81 | MULTOP,/* - y x x*y */ |
82 | DIVOP,/* - y x x/y */ | 82 | DIVOP,/* - y x x/y */ |
83 | POWOP,/* - y x x^y */ | 83 | POWOP,/* - y x x^y */ |
84 | CONCOP,/* - y x x..y */ | 84 | CONCOP,/* - y x x..y */ |
85 | MINUSOP,/* - x -x */ | 85 | MINUSOP,/* - x -x */ |
86 | NOTOP,/* - x (x==nil)? 1 : nil */ | 86 | NOTOP,/* - x (x==nil)? 1 : nil */ |
87 | 87 | ||
88 | ONTJMPW,/* w x (x!=nil)? x : - (x!=nil)? PC+=w */ | 88 | ONTJMPW,/* w x (x!=nil)? x : - (x!=nil)? PC+=w */ |
89 | ONTJMP,/* b x (x!=nil)? x : - (x!=nil)? PC+=b */ | 89 | ONTJMP,/* b x (x!=nil)? x : - (x!=nil)? PC+=b */ |
90 | ONFJMPW,/* w x (x==nil)? x : - (x==nil)? PC+=w */ | 90 | ONFJMPW,/* w x (x==nil)? x : - (x==nil)? PC+=w */ |
91 | ONFJMP,/* b x (x==nil)? x : - (x==nil)? PC+=b */ | 91 | ONFJMP,/* b x (x==nil)? x : - (x==nil)? PC+=b */ |
92 | JMPW,/* w - - PC+=w */ | 92 | JMPW,/* w - - PC+=w */ |
93 | JMP,/* b - - PC+=b */ | 93 | JMP,/* b - - PC+=b */ |
94 | IFFJMPW,/* w x - (x==nil)? PC+=w */ | 94 | IFFJMPW,/* w x - (x==nil)? PC+=w */ |
95 | IFFJMP,/* b x - (x==nil)? PC+=b */ | 95 | IFFJMP,/* b x - (x==nil)? PC+=b */ |
96 | IFTUPJMPW,/* w x - (x!=nil)? PC-=w */ | 96 | IFTUPJMPW,/* w x - (x!=nil)? PC-=w */ |
97 | IFTUPJMP,/* b x - (x!=nil)? PC-=b */ | 97 | IFTUPJMP,/* b x - (x!=nil)? PC-=b */ |
98 | IFFUPJMPW,/* w x - (x==nil)? PC-=w */ | 98 | IFFUPJMPW,/* w x - (x==nil)? PC-=w */ |
99 | IFFUPJMP,/* b x - (x==nil)? PC-=b */ | 99 | IFFUPJMP,/* b x - (x==nil)? PC-=b */ |
100 | 100 | ||
101 | CLOSUREW,/* w c v_c...v_1 closure(CNST[w], v_c...v_1) */ | 101 | CLOSUREW,/* w c v_c...v_1 closure(CNST[w], v_c...v_1) */ |
102 | CLOSURE,/* b c v_c...v_1 closure(CNST[b], v_c...v_1) */ | 102 | CLOSURE,/* b c v_c...v_1 closure(CNST[b], v_c...v_1) */ |
103 | 103 | ||
104 | CALLFUNC,/* b c v_c...v_1 f r_b...r_1 f(v1,...,v_c) */ | 104 | CALLFUNC,/* b c v_c...v_1 f r_b...r_1 f(v1,...,v_c) */ |
105 | 105 | ||
106 | SETLINEW,/* w - - LINE=w */ | 106 | SETLINEW,/* w - - LINE=w */ |
107 | SETLINE,/* b - - LINE=b */ | 107 | SETLINE,/* b - - LINE=b */ |
108 | 108 | ||
109 | LONGARGW,/* w (add w*(1<<16) to arg of next instruction) */ | 109 | LONGARGW,/* w (add w*(1<<16) to arg of next instruction) */ |
110 | LONGARG,/* b (add b*(1<<16) to arg of next instruction) */ | 110 | LONGARG,/* b (add b*(1<<16) to arg of next instruction) */ |
111 | 111 | ||
112 | CHECKSTACK /* b (assert #temporaries == b; only for internal debuging!) */ | 112 | CHECKSTACK /* b (assert #temporaries == b; only for internal debuging!) */ |
113 | 113 | ||