diff options
Diffstat (limited to 'lopcodes.h')
-rw-r--r-- | lopcodes.h | 30 |
1 files changed, 27 insertions, 3 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lopcodes.h,v 1.3 1997/09/19 21:17:52 roberto Exp roberto $ | 2 | ** $Id: lopcodes.h,v 1.4 1997/09/22 20:53:20 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 | */ |
@@ -29,10 +29,21 @@ PUSH2,/* - 2.0 */ | |||
29 | PUSHBYTE,/* b - (float)b */ | 29 | PUSHBYTE,/* b - (float)b */ |
30 | PUSHWORD,/* w - (float)w */ | 30 | PUSHWORD,/* w - (float)w */ |
31 | 31 | ||
32 | PUSHCONSTANT0,/* - CNST[0] */ | ||
33 | PUSHCONSTANT1,/* - CNST[1] */ | ||
34 | PUSHCONSTANT2,/* - CNST[2] */ | ||
35 | PUSHCONSTANT3,/* - CNST[3] */ | ||
36 | PUSHCONSTANT4,/* - CNST[4] */ | ||
37 | PUSHCONSTANT5,/* - CNST[5] */ | ||
38 | PUSHCONSTANT6,/* - CNST[6] */ | ||
39 | PUSHCONSTANT7,/* - CNST[7] */ | ||
40 | PUSHCONSTANT8,/* - CNST[8] */ | ||
41 | PUSHCONSTANT9,/* - CNST[9] */ | ||
32 | PUSHCONSTANTB,/*b - CNST[b] */ | 42 | PUSHCONSTANTB,/*b - CNST[b] */ |
33 | PUSHCONSTANT,/* w - CNST[w] */ | 43 | PUSHCONSTANT,/* w - CNST[w] */ |
34 | 44 | ||
35 | PUSHUPVALUE0, | 45 | PUSHUPVALUE0, |
46 | PUSHUPVALUE1, | ||
36 | PUSHUPVALUE,/* b - Closure[b] */ | 47 | PUSHUPVALUE,/* b - Closure[b] */ |
37 | 48 | ||
38 | PUSHLOCAL0,/* - LOC[0] */ | 49 | PUSHLOCAL0,/* - LOC[0] */ |
@@ -47,6 +58,16 @@ PUSHLOCAL8,/* - LOC[8] */ | |||
47 | PUSHLOCAL9,/* - LOC[9] */ | 58 | PUSHLOCAL9,/* - LOC[9] */ |
48 | PUSHLOCAL,/* b - LOC[b] */ | 59 | PUSHLOCAL,/* b - LOC[b] */ |
49 | 60 | ||
61 | GETGLOBAL0,/* - VAR[CNST[0]] */ | ||
62 | GETGLOBAL1,/* - VAR[CNST[1]] */ | ||
63 | GETGLOBAL2,/* - VAR[CNST[2]] */ | ||
64 | GETGLOBAL3,/* - VAR[CNST[3]] */ | ||
65 | GETGLOBAL4,/* - VAR[CNST[4]] */ | ||
66 | GETGLOBAL5,/* - VAR[CNST[5]] */ | ||
67 | GETGLOBAL6,/* - VAR[CNST[6]] */ | ||
68 | GETGLOBAL7,/* - VAR[CNST[7]] */ | ||
69 | GETGLOBAL8,/* - VAR[CNST[8]] */ | ||
70 | GETGLOBAL9,/* - VAR[CNST[9]] */ | ||
50 | GETGLOBALB,/* b - VAR[CNST[b]] */ | 71 | GETGLOBALB,/* b - VAR[CNST[b]] */ |
51 | GETGLOBAL,/* w - VAR[CNST[w]] */ | 72 | GETGLOBAL,/* w - VAR[CNST[w]] */ |
52 | 73 | ||
@@ -94,11 +115,14 @@ CONCOP,/* y x x..y */ | |||
94 | MINUSOP,/* x -x */ | 115 | MINUSOP,/* x -x */ |
95 | NOTOP,/* x (x==nil)? 1 : nil */ | 116 | NOTOP,/* x (x==nil)? 1 : nil */ |
96 | 117 | ||
97 | ONTJMP,/* w x (x!=nil)? x : - (x!=nil)? PC+=w */ | 118 | /* NOTICE: all jumps are relative to the position following the opcode */ |
98 | ONFJMP,/* w x (x==nil)? x : - (x==nil)? PC+=w */ | 119 | ONTJMP,/* b x (x!=nil)? x : - (x!=nil)? PC+=b */ |
120 | ONFJMP,/* b x (x==nil)? x : - (x==nil)? PC+=b */ | ||
99 | JMP,/* w - - PC+=w */ | 121 | JMP,/* w - - PC+=w */ |
122 | UPJMPB,/* b - - PC-=b */ | ||
100 | UPJMP,/* w - - PC-=w */ | 123 | UPJMP,/* w - - PC-=w */ |
101 | IFFJMP,/* w x - (x==nil)? PC+=w */ | 124 | IFFJMP,/* w x - (x==nil)? PC+=w */ |
125 | IFFUPJMPB,/* b x - (x==nil)? PC-=b */ | ||
102 | IFFUPJMP,/* w x - (x==nil)? PC-=w */ | 126 | IFFUPJMP,/* w x - (x==nil)? PC-=w */ |
103 | 127 | ||
104 | CLOSUREB,/* b v_1...v_n c(CNST[b]) */ | 128 | CLOSUREB,/* b v_1...v_n c(CNST[b]) */ |