aboutsummaryrefslogtreecommitdiff
path: root/src/lj_bc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_bc.h')
-rw-r--r--src/lj_bc.h21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/lj_bc.h b/src/lj_bc.h
index 83e2dea3..e1284916 100644
--- a/src/lj_bc.h
+++ b/src/lj_bc.h
@@ -178,7 +178,17 @@
178 _(ILOOP, rbase, ___, jump, ___) \ 178 _(ILOOP, rbase, ___, jump, ___) \
179 _(JLOOP, rbase, ___, lit, ___) \ 179 _(JLOOP, rbase, ___, lit, ___) \
180 \ 180 \
181 _(JMP, rbase, ___, jump, ___) 181 _(JMP, rbase, ___, jump, ___) \
182 \
183 /* Function headers. I/J = interp/JIT, F/V/C = fixarg/vararg/C func. */ \
184 _(FUNCF, rbase, ___, ___, ___) \
185 _(IFUNCF, rbase, ___, ___, ___) \
186 _(JFUNCF, rbase, ___, lit, ___) \
187 _(FUNCV, rbase, ___, ___, ___) \
188 _(IFUNCV, rbase, ___, ___, ___) \
189 _(JFUNCV, rbase, ___, lit, ___) \
190 _(FUNCC, ___, ___, ___, ___) \
191 _(FUNCCW, ___, ___, ___, ___)
182 192
183/* Bytecode opcode numbers. */ 193/* Bytecode opcode numbers. */
184typedef enum { 194typedef enum {
@@ -206,6 +216,10 @@ LJ_STATIC_ASSERT((int)BC_ITERL + 1 == (int)BC_IITERL);
206LJ_STATIC_ASSERT((int)BC_ITERL + 2 == (int)BC_JITERL); 216LJ_STATIC_ASSERT((int)BC_ITERL + 2 == (int)BC_JITERL);
207LJ_STATIC_ASSERT((int)BC_LOOP + 1 == (int)BC_ILOOP); 217LJ_STATIC_ASSERT((int)BC_LOOP + 1 == (int)BC_ILOOP);
208LJ_STATIC_ASSERT((int)BC_LOOP + 2 == (int)BC_JLOOP); 218LJ_STATIC_ASSERT((int)BC_LOOP + 2 == (int)BC_JLOOP);
219LJ_STATIC_ASSERT((int)BC_FUNCF + 1 == (int)BC_IFUNCF);
220LJ_STATIC_ASSERT((int)BC_FUNCF + 2 == (int)BC_JFUNCF);
221LJ_STATIC_ASSERT((int)BC_FUNCV + 1 == (int)BC_IFUNCV);
222LJ_STATIC_ASSERT((int)BC_FUNCV + 2 == (int)BC_JFUNCV);
209 223
210/* Stack slots used by FORI/FORL, relative to operand A. */ 224/* Stack slots used by FORI/FORL, relative to operand A. */
211enum { 225enum {
@@ -229,8 +243,9 @@ typedef enum {
229 243
230#define BCMODE(name, ma, mb, mc, mm) \ 244#define BCMODE(name, ma, mb, mc, mm) \
231 (BCM##ma|(BCM##mb<<3)|(BCM##mc<<7)|(MM_##mm<<11)), 245 (BCM##ma|(BCM##mb<<3)|(BCM##mc<<7)|(MM_##mm<<11)),
246#define BCMODE_FF 0
232 247
233LJ_DATA const uint16_t lj_bc_mode[BC__MAX+1]; 248LJ_DATA const uint16_t lj_bc_mode[];
234LJ_DATA const uint16_t lj_bc_ofs[BC__MAX+1]; 249LJ_DATA const uint16_t lj_bc_ofs[];
235 250
236#endif 251#endif