diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1999-02-25 18:07:26 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1999-02-25 18:07:26 -0300 |
| commit | 6a853fcb8b9e333d768c739c36c99b144bbde607 (patch) | |
| tree | 5645e5fbe3a43f15044591be30c5d4607cb7357c /lopcodes.h | |
| parent | 31bea2190b25e5b6687d92d807af522378168bfa (diff) | |
| download | lua-6a853fcb8b9e333d768c739c36c99b144bbde607.tar.gz lua-6a853fcb8b9e333d768c739c36c99b144bbde607.tar.bz2 lua-6a853fcb8b9e333d768c739c36c99b144bbde607.zip | |
details (from lhf)
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 | ||
