|
4 | 4 | // SPDX-FileCopyrightText: 2025-2026 Sergey Sharshunov <s.sharshunov@gmail.com> |
5 | 5 |
|
6 | 6 | #include "arch_53.h" |
| 7 | + |
| 8 | +const ut8 luaP_opmodes53[LUA_NUM_OPCODES] = { |
| 9 | + /* T A B C mode opcode */ |
| 10 | + opmode(0, 1, OpArgR, OpArgN, iABC), /* OP_MOVE */ |
| 11 | + opmode(0, 1, OpArgK, OpArgN, iABx), /* OP_LOADK */ |
| 12 | + opmode(0, 1, OpArgN, OpArgN, iABx), /* OP_LOADKX */ |
| 13 | + opmode(0, 1, OpArgU, OpArgU, iABC), /* OP_LOADBOOL */ |
| 14 | + opmode(0, 1, OpArgU, OpArgN, iABC), /* OP_LOADNIL */ |
| 15 | + opmode(0, 1, OpArgU, OpArgN, iABC), /* OP_GETUPVAL */ |
| 16 | + opmode(0, 1, OpArgU, OpArgK, iABC), /* OP_GETTABUP */ |
| 17 | + opmode(0, 1, OpArgR, OpArgK, iABC), /* OP_GETTABLE */ |
| 18 | + opmode(0, 0, OpArgK, OpArgK, iABC), /* OP_SETTABUP */ |
| 19 | + opmode(0, 0, OpArgU, OpArgN, iABC), /* OP_SETUPVAL */ |
| 20 | + opmode(0, 0, OpArgK, OpArgK, iABC), /* OP_SETTABLE */ |
| 21 | + opmode(0, 1, OpArgU, OpArgU, iABC), /* OP_NEWTABLE */ |
| 22 | + opmode(0, 1, OpArgR, OpArgK, iABC), /* OP_SELF */ |
| 23 | + opmode(0, 1, OpArgK, OpArgK, iABC), /* OP_ADD */ |
| 24 | + opmode(0, 1, OpArgK, OpArgK, iABC), /* OP_SUB */ |
| 25 | + opmode(0, 1, OpArgK, OpArgK, iABC), /* OP_MUL */ |
| 26 | + opmode(0, 1, OpArgK, OpArgK, iABC), /* OP_MOD */ |
| 27 | + opmode(0, 1, OpArgK, OpArgK, iABC), /* OP_POW */ |
| 28 | + opmode(0, 1, OpArgK, OpArgK, iABC), /* OP_DIV */ |
| 29 | + opmode(0, 1, OpArgK, OpArgK, iABC), /* OP_IDIV */ |
| 30 | + opmode(0, 1, OpArgK, OpArgK, iABC), /* OP_BAND */ |
| 31 | + opmode(0, 1, OpArgK, OpArgK, iABC), /* OP_BOR */ |
| 32 | + opmode(0, 1, OpArgK, OpArgK, iABC), /* OP_BXOR */ |
| 33 | + opmode(0, 1, OpArgK, OpArgK, iABC), /* OP_SHL */ |
| 34 | + opmode(0, 1, OpArgK, OpArgK, iABC), /* OP_SHR */ |
| 35 | + opmode(0, 1, OpArgR, OpArgN, iABC), /* OP_UNM */ |
| 36 | + opmode(0, 1, OpArgR, OpArgN, iABC), /* OP_BNOT */ |
| 37 | + opmode(0, 1, OpArgR, OpArgN, iABC), /* OP_NOT */ |
| 38 | + opmode(0, 1, OpArgR, OpArgN, iABC), /* OP_LEN */ |
| 39 | + opmode(0, 1, OpArgR, OpArgR, iABC), /* OP_CONCAT */ |
| 40 | + opmode(0, 0, OpArgR, OpArgN, iAsBx), /* OP_JMP */ |
| 41 | + opmode(1, 0, OpArgK, OpArgK, iABC), /* OP_EQ */ |
| 42 | + opmode(1, 0, OpArgK, OpArgK, iABC), /* OP_LT */ |
| 43 | + opmode(1, 0, OpArgK, OpArgK, iABC), /* OP_LE */ |
| 44 | + opmode(1, 0, OpArgN, OpArgU, iABC), /* OP_TEST */ |
| 45 | + opmode(1, 1, OpArgR, OpArgU, iABC), /* OP_TESTSET */ |
| 46 | + opmode(0, 1, OpArgU, OpArgU, iABC), /* OP_CALL */ |
| 47 | + opmode(0, 1, OpArgU, OpArgU, iABC), /* OP_TAILCALL */ |
| 48 | + opmode(0, 0, OpArgU, OpArgN, iABC), /* OP_RETURN */ |
| 49 | + opmode(0, 1, OpArgR, OpArgN, iAsBx), /* OP_FORLOOP */ |
| 50 | + opmode(0, 1, OpArgR, OpArgN, iAsBx), /* OP_FORPREP */ |
| 51 | + opmode(0, 0, OpArgN, OpArgU, iABC), /* OP_TFORCALL */ |
| 52 | + opmode(0, 1, OpArgR, OpArgN, iAsBx), /* OP_TFORLOOP */ |
| 53 | + opmode(0, 0, OpArgU, OpArgU, iABC), /* OP_SETLIST */ |
| 54 | + opmode(0, 1, OpArgU, OpArgN, iABx), /* OP_CLOSURE */ |
| 55 | + opmode(0, 1, OpArgU, OpArgN, iABC), /* OP_VARARG */ |
| 56 | + opmode(0, 0, OpArgU, OpArgU, iAx) /* OP_EXTRAARG */ |
| 57 | +}; |
| 58 | + |
7 | 59 | #define lua_strcase(case_str) if ( \ |
8 | 60 | ((limit) <= sizeof(case_str) - 1) && \ |
9 | 61 | rz_str_ncasecmp((name), (case_str), sizeof(case_str) - 1) == 0) |
10 | 62 |
|
11 | 63 | LuaOpNameList get_lua53_opnames(void) { |
12 | | - LuaOpNameList list = RZ_NEWS(char *, LUA_NUM_OPCODES + 1); |
| 64 | + const LuaOpNameList list = RZ_NEWS(char *, LUA_NUM_OPCODES + 1); |
13 | 65 | if (list == NULL) { |
14 | 66 | RZ_LOG_ERROR("Cannot allocate lua53 opcode list.\n"); |
15 | 67 | return NULL; |
|
0 commit comments