diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2001-06-28 16:58:57 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2001-06-28 16:58:57 -0300 |
| commit | 87a5fae45322dde56306de92d8eb8050506fb9ba (patch) | |
| tree | 936c39807a47dacf682d91e8aebef6a5e79408a6 | |
| parent | afed6c6864b0538be3bde402fcb74df01ba78ed4 (diff) | |
| download | lua-87a5fae45322dde56306de92d8eb8050506fb9ba.tar.gz lua-87a5fae45322dde56306de92d8eb8050506fb9ba.tar.bz2 lua-87a5fae45322dde56306de92d8eb8050506fb9ba.zip | |
tables describing opcodes
| -rw-r--r-- | lopcodes.c | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/lopcodes.c b/lopcodes.c new file mode 100644 index 00000000..f802f42b --- /dev/null +++ b/lopcodes.c | |||
| @@ -0,0 +1,108 @@ | |||
| 1 | /* | ||
| 2 | ** $Id$ | ||
| 3 | ** extracted automatically from lopcodes.h by mkprint.lua | ||
| 4 | ** DO NOT EDIT | ||
| 5 | ** See Copyright Notice in lua.h | ||
| 6 | */ | ||
| 7 | |||
| 8 | |||
| 9 | #define LUA_PRIVATE | ||
| 10 | #include "lua.h" | ||
| 11 | |||
| 12 | #include "lopcodes.h" | ||
| 13 | |||
| 14 | |||
| 15 | #ifdef LUA_OPNAMES | ||
| 16 | |||
| 17 | const l_char *const luaP_opnames[] = { | ||
| 18 | l_s("MOVE"), | ||
| 19 | l_s("LOADK"), | ||
| 20 | l_s("LOADINT"), | ||
| 21 | l_s("LOADNIL"), | ||
| 22 | l_s("LOADUPVAL"), | ||
| 23 | l_s("GETGLOBAL"), | ||
| 24 | l_s("GETTABLE"), | ||
| 25 | l_s("SETGLOBAL"), | ||
| 26 | l_s("SETTABLE"), | ||
| 27 | l_s("NEWTABLE"), | ||
| 28 | l_s("SELF"), | ||
| 29 | l_s("ADD"), | ||
| 30 | l_s("SUB"), | ||
| 31 | l_s("MUL"), | ||
| 32 | l_s("DIV"), | ||
| 33 | l_s("POW"), | ||
| 34 | l_s("UNM"), | ||
| 35 | l_s("NOT"), | ||
| 36 | l_s("CONCAT"), | ||
| 37 | l_s("JMP"), | ||
| 38 | l_s("CJMP"), | ||
| 39 | l_s("TESTEQ"), | ||
| 40 | l_s("TESTNE"), | ||
| 41 | l_s("TESTLT"), | ||
| 42 | l_s("TESTLE"), | ||
| 43 | l_s("TESTGT"), | ||
| 44 | l_s("TESTGE"), | ||
| 45 | l_s("TESTT"), | ||
| 46 | l_s("TESTF"), | ||
| 47 | l_s("NILJMP"), | ||
| 48 | l_s("CALL"), | ||
| 49 | l_s("RETURN"), | ||
| 50 | l_s("FORPREP"), | ||
| 51 | l_s("FORLOOP"), | ||
| 52 | l_s("TFORPREP"), | ||
| 53 | l_s("TFORLOOP"), | ||
| 54 | l_s("SETLIST"), | ||
| 55 | l_s("SETLISTO"), | ||
| 56 | l_s("CLOSURE") | ||
| 57 | }; | ||
| 58 | |||
| 59 | #endif | ||
| 60 | |||
| 61 | |||
| 62 | #define opmode(t,a,b,c,sa,k,m) (((t)<<OpModeT) | \ | ||
| 63 | ((b)<<OpModeBreg) | ((c)<<OpModeCreg) | \ | ||
| 64 | ((sa)<<OpModesetA) | ((k)<<OpModeK) | (m)) | ||
| 65 | |||
| 66 | const lu_byte luaP_opmodes[] = { | ||
| 67 | /* T J B C sA K mode opcode */ | ||
| 68 | opmode(0,0,1,0, 1,0,iABC), /* OP_MOVE */ | ||
| 69 | opmode(0,0,0,0, 1,1,iABc), /* OP_LOADK */ | ||
| 70 | opmode(0,0,0,0, 1,0,iAsBc), /* OP_LOADINT */ | ||
| 71 | opmode(0,0,1,0, 1,0,iABC), /* OP_LOADNIL */ | ||
| 72 | opmode(0,0,0,0, 1,0,iABc), /* OP_LOADUPVAL */ | ||
| 73 | opmode(0,0,0,0, 1,1,iABc), /* OP_GETGLOBAL */ | ||
| 74 | opmode(0,0,1,1, 1,0,iABC), /* OP_GETTABLE */ | ||
| 75 | opmode(0,0,0,0, 0,1,iABc), /* OP_SETGLOBAL */ | ||
| 76 | opmode(0,0,1,1, 0,0,iABC), /* OP_SETTABLE */ | ||
| 77 | opmode(0,0,0,0, 1,0,iABc), /* OP_NEWTABLE */ | ||
| 78 | opmode(0,0,1,1, 1,0,iABC), /* OP_SELF */ | ||
| 79 | opmode(0,0,1,1, 1,0,iABC), /* OP_ADD */ | ||
| 80 | opmode(0,0,1,1, 1,0,iABC), /* OP_SUB */ | ||
| 81 | opmode(0,0,1,1, 1,0,iABC), /* OP_MUL */ | ||
| 82 | opmode(0,0,1,1, 1,0,iABC), /* OP_DIV */ | ||
| 83 | opmode(0,0,1,1, 1,0,iABC), /* OP_POW */ | ||
| 84 | opmode(0,0,1,0, 1,0,iABC), /* OP_UNM */ | ||
| 85 | opmode(0,0,1,0, 1,0,iABC), /* OP_NOT */ | ||
| 86 | opmode(0,0,1,1, 1,0,iABC), /* OP_CONCAT */ | ||
| 87 | opmode(0,1,0,0, 0,0,iAsBc), /* OP_JMP */ | ||
| 88 | opmode(0,1,0,0, 0,0,iAsBc), /* OP_CJMP */ | ||
| 89 | opmode(1,0,0,1, 0,0,iABC), /* OP_TESTEQ */ | ||
| 90 | opmode(1,0,0,1, 0,0,iABC), /* OP_TESTNE */ | ||
| 91 | opmode(1,0,0,1, 0,0,iABC), /* OP_TESTLT */ | ||
| 92 | opmode(1,0,0,1, 0,0,iABC), /* OP_TESTLE */ | ||
| 93 | opmode(1,0,0,1, 0,0,iABC), /* OP_TESTGT */ | ||
| 94 | opmode(1,0,0,1, 0,0,iABC), /* OP_TESTGE */ | ||
| 95 | opmode(1,0,1,0, 1,0,iABC), /* OP_TESTT */ | ||
| 96 | opmode(1,0,1,0, 1,0,iABC), /* OP_TESTF */ | ||
| 97 | opmode(0,0,0,0, 1,0,iAsBc), /* OP_NILJMP */ | ||
| 98 | opmode(0,0,0,0, 0,0,iABC), /* OP_CALL */ | ||
| 99 | opmode(0,0,0,0, 0,0,iABC), /* OP_RETURN */ | ||
| 100 | opmode(0,0,0,0, 0,0,iAsBc), /* OP_FORPREP */ | ||
| 101 | opmode(0,0,0,0, 0,0,iAsBc), /* OP_FORLOOP */ | ||
| 102 | opmode(0,1,0,0, 0,0,iAsBc), /* OP_TFORPREP */ | ||
| 103 | opmode(0,1,0,0, 0,0,iAsBc), /* OP_TFORLOOP */ | ||
| 104 | opmode(0,0,0,0, 0,0,iABc), /* OP_SETLIST */ | ||
| 105 | opmode(0,0,0,0, 0,0,iABc), /* OP_SETLIST0 */ | ||
| 106 | opmode(0,0,0,0, 0,0,iABc) /* OP_CLOSURE */ | ||
| 107 | }; | ||
| 108 | |||
