diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2003-05-14 09:09:12 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2003-05-14 09:09:12 -0300 |
| commit | c116dcb92b2ee36ef5c4541a88e73540837f1057 (patch) | |
| tree | 1fbe7cdf10cc6d390b6f716c81aa40e11ee60375 /lopcodes.c | |
| parent | 6d268b0b00ae63e5d06aedc4fb3cec105123a565 (diff) | |
| download | lua-c116dcb92b2ee36ef5c4541a88e73540837f1057.tar.gz lua-c116dcb92b2ee36ef5c4541a88e73540837f1057.tar.bz2 lua-c116dcb92b2ee36ef5c4541a88e73540837f1057.zip | |
better information about instruction behavior (use of arguments)
Diffstat (limited to 'lopcodes.c')
| -rw-r--r-- | lopcodes.c | 85 |
1 files changed, 41 insertions, 44 deletions
| @@ -1,7 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: lopcodes.c,v 1.22 2002/12/04 17:38:31 roberto Exp roberto $ | 2 | ** $Id: lopcodes.c,v 1.23 2003/05/13 20:15:59 roberto Exp roberto $ |
| 3 | ** extracted automatically from lopcodes.h by mkprint.lua | ||
| 4 | ** DO NOT EDIT | ||
| 5 | ** See Copyright Notice in lua.h | 3 | ** See Copyright Notice in lua.h |
| 6 | */ | 4 | */ |
| 7 | 5 | ||
| @@ -14,6 +12,8 @@ | |||
| 14 | #include "lopcodes.h" | 12 | #include "lopcodes.h" |
| 15 | 13 | ||
| 16 | 14 | ||
| 15 | /* ORDER OP */ | ||
| 16 | |||
| 17 | #ifdef LUA_OPNAMES | 17 | #ifdef LUA_OPNAMES |
| 18 | 18 | ||
| 19 | const char *const luaP_opnames[] = { | 19 | const char *const luaP_opnames[] = { |
| @@ -57,48 +57,45 @@ const char *const luaP_opnames[] = { | |||
| 57 | 57 | ||
| 58 | #endif | 58 | #endif |
| 59 | 59 | ||
| 60 | #define opmode(t,b,bk,ck,sa,k,m) (((t)<<OpModeT) | \ | 60 | #define opmode(t,a,b,c,m) (((t)<<7) | ((a)<<6) | ((b)<<4) | ((c)<<2) | (m)) |
| 61 | ((b)<<OpModeBreg) | ((bk)<<OpModeBrk) | ((ck)<<OpModeCrk) | \ | ||
| 62 | ((sa)<<OpModesetA) | ((k)<<OpModeK) | (m)) | ||
| 63 | |||
| 64 | 61 | ||
| 65 | const lu_byte luaP_opmodes[NUM_OPCODES] = { | 62 | const lu_byte luaP_opmodes[NUM_OPCODES] = { |
| 66 | /* T B Bk Ck sA K mode opcode */ | 63 | /* T A B C mode opcode */ |
| 67 | opmode(0, 1, 0, 0, 1, 0, iABC) /* OP_MOVE */ | 64 | opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_MOVE */ |
| 68 | ,opmode(0, 0, 0, 0, 1, 1, iABx) /* OP_LOADK */ | 65 | ,opmode(0, 1, OpArgK, OpArgN, iABx) /* OP_LOADK */ |
| 69 | ,opmode(0, 0, 0, 0, 1, 0, iABC) /* OP_LOADBOOL */ | 66 | ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_LOADBOOL */ |
| 70 | ,opmode(0, 1, 0, 0, 1, 0, iABC) /* OP_LOADNIL */ | 67 | ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_LOADNIL */ |
| 71 | ,opmode(0, 0, 0, 0, 1, 0, iABC) /* OP_GETUPVAL */ | 68 | ,opmode(0, 1, OpArgU, OpArgN, iABC) /* OP_GETUPVAL */ |
| 72 | ,opmode(0, 0, 0, 0, 1, 1, iABx) /* OP_GETGLOBAL */ | 69 | ,opmode(0, 1, OpArgK, OpArgN, iABx) /* OP_GETGLOBAL */ |
| 73 | ,opmode(0, 1, 0, 1, 1, 0, iABC) /* OP_GETTABLE */ | 70 | ,opmode(0, 1, OpArgR, OpArgK, iABC) /* OP_GETTABLE */ |
| 74 | ,opmode(0, 0, 0, 0, 0, 1, iABx) /* OP_SETGLOBAL */ | 71 | ,opmode(0, 0, OpArgK, OpArgN, iABx) /* OP_SETGLOBAL */ |
| 75 | ,opmode(0, 0, 0, 0, 0, 0, iABC) /* OP_SETUPVAL */ | 72 | ,opmode(0, 0, OpArgU, OpArgN, iABC) /* OP_SETUPVAL */ |
| 76 | ,opmode(0, 0, 1, 1, 0, 0, iABC) /* OP_SETTABLE */ | 73 | ,opmode(0, 0, OpArgK, OpArgK, iABC) /* OP_SETTABLE */ |
| 77 | ,opmode(0, 0, 0, 0, 1, 0, iABC) /* OP_NEWTABLE */ | 74 | ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_NEWTABLE */ |
| 78 | ,opmode(0, 1, 0, 1, 1, 0, iABC) /* OP_SELF */ | 75 | ,opmode(0, 1, OpArgR, OpArgK, iABC) /* OP_SELF */ |
| 79 | ,opmode(0, 0, 1, 1, 1, 0, iABC) /* OP_ADD */ | 76 | ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_ADD */ |
| 80 | ,opmode(0, 0, 1, 1, 1, 0, iABC) /* OP_SUB */ | 77 | ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_SUB */ |
| 81 | ,opmode(0, 0, 1, 1, 1, 0, iABC) /* OP_MUL */ | 78 | ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_MUL */ |
| 82 | ,opmode(0, 0, 1, 1, 1, 0, iABC) /* OP_DIV */ | 79 | ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_DIV */ |
| 83 | ,opmode(0, 0, 1, 1, 1, 0, iABC) /* OP_POW */ | 80 | ,opmode(0, 1, OpArgK, OpArgK, iABC) /* OP_POW */ |
| 84 | ,opmode(0, 1, 0, 0, 1, 0, iABC) /* OP_UNM */ | 81 | ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_UNM */ |
| 85 | ,opmode(0, 1, 0, 0, 1, 0, iABC) /* OP_NOT */ | 82 | ,opmode(0, 1, OpArgR, OpArgN, iABC) /* OP_NOT */ |
| 86 | ,opmode(0, 1, 0, 1, 1, 0, iABC) /* OP_CONCAT */ | 83 | ,opmode(0, 1, OpArgR, OpArgR, iABC) /* OP_CONCAT */ |
| 87 | ,opmode(0, 0, 0, 0, 0, 0, iAsBx) /* OP_JMP */ | 84 | ,opmode(0, 0, OpArgR, OpArgN, iAsBx) /* OP_JMP */ |
| 88 | ,opmode(1, 0, 1, 1, 0, 0, iABC) /* OP_EQ */ | 85 | ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_EQ */ |
| 89 | ,opmode(1, 0, 1, 1, 0, 0, iABC) /* OP_LT */ | 86 | ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_LT */ |
| 90 | ,opmode(1, 0, 1, 1, 0, 0, iABC) /* OP_LE */ | 87 | ,opmode(1, 0, OpArgK, OpArgK, iABC) /* OP_LE */ |
| 91 | ,opmode(1, 1, 0, 0, 1, 0, iABC) /* OP_TEST */ | 88 | ,opmode(1, 1, OpArgR, OpArgU, iABC) /* OP_TEST */ |
| 92 | ,opmode(0, 0, 0, 0, 0, 0, iABC) /* OP_CALL */ | 89 | ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_CALL */ |
| 93 | ,opmode(0, 0, 0, 0, 0, 0, iABC) /* OP_TAILCALL */ | 90 | ,opmode(0, 1, OpArgU, OpArgU, iABC) /* OP_TAILCALL */ |
| 94 | ,opmode(0, 0, 0, 0, 0, 0, iABC) /* OP_RETURN */ | 91 | ,opmode(0, 0, OpArgU, OpArgN, iABC) /* OP_RETURN */ |
| 95 | ,opmode(0, 0, 0, 0, 0, 0, iAsBx) /* OP_FORLOOP */ | 92 | ,opmode(0, 1, OpArgR, OpArgN, iAsBx) /* OP_FORLOOP */ |
| 96 | ,opmode(0, 0, 0, 0, 0, 0, iAsBx) /* OP_FORPREP */ | 93 | ,opmode(0, 1, OpArgR, OpArgN, iAsBx) /* OP_FORPREP */ |
| 97 | ,opmode(1, 0, 0, 0, 0, 0, iABC) /* OP_TFORLOOP */ | 94 | ,opmode(1, 0, OpArgN, OpArgU, iABC) /* OP_TFORLOOP */ |
| 98 | ,opmode(0, 0, 0, 0, 0, 0, iAsBx) /* OP_TFORPREP */ | 95 | ,opmode(0, 0, OpArgR, OpArgN, iAsBx) /* OP_TFORPREP */ |
| 99 | ,opmode(0, 0, 0, 0, 0, 0, iABx) /* OP_SETLIST */ | 96 | ,opmode(0, 0, OpArgU, OpArgN, iABx) /* OP_SETLIST */ |
| 100 | ,opmode(0, 0, 0, 0, 0, 0, iABx) /* OP_SETLISTO */ | 97 | ,opmode(0, 0, OpArgU, OpArgN, iABx) /* OP_SETLISTO */ |
| 101 | ,opmode(0, 0, 0, 0, 0, 0, iABC) /* OP_CLOSE */ | 98 | ,opmode(0, 0, OpArgN, OpArgN, iABC) /* OP_CLOSE */ |
| 102 | ,opmode(0, 0, 0, 0, 1, 0, iABx) /* OP_CLOSURE */ | 99 | ,opmode(0, 1, OpArgU, OpArgN, iABx) /* OP_CLOSURE */ |
| 103 | }; | 100 | }; |
| 104 | 101 | ||
