3 ** $Id: opcode.h,v 3.20 1996/03/15 13:13:13 roberto Exp $
15 #define FIELDS_PER_FLUSH 40
27 PUSHLOCAL0
, PUSHLOCAL1
, PUSHLOCAL2
, PUSHLOCAL3
, PUSHLOCAL4
,
28 PUSHLOCAL5
, PUSHLOCAL6
, PUSHLOCAL7
, PUSHLOCAL8
, PUSHLOCAL9
,
33 STORELOCAL0
, STORELOCAL1
, STORELOCAL2
, STORELOCAL3
, STORELOCAL4
,
34 STORELOCAL5
, STORELOCAL6
, STORELOCAL7
, STORELOCAL8
, STORELOCAL9
,
92 /* Macros to access structure members */
93 #define tag(o) ((o)->tag)
94 #define nvalue(o) ((o)->value.n)
95 #define svalue(o) ((o)->value.ts->str)
96 #define tsvalue(o) ((o)->value.ts)
97 #define avalue(o) ((o)->value.a)
98 #define fvalue(o) ((o)->value.f)
99 #define uvalue(o) ((o)->value.u)
101 /* Macros to access symbol table */
102 #define s_object(i) (lua_table[i].object)
103 #define s_tag(i) (tag(&s_object(i)))
104 #define s_nvalue(i) (nvalue(&s_object(i)))
105 #define s_svalue(i) (svalue(&s_object(i)))
106 #define s_avalue(i) (avalue(&s_object(i)))
107 #define s_fvalue(i) (fvalue(&s_object(i)))
108 #define s_uvalue(i) (uvalue(&s_object(i)))
112 struct {Byte c1
; Byte c2
;} m
;
115 #define get_word(code,pc) {code.m.c1 = *pc++; code.m.c2 = *pc++;}
119 struct {Byte c1
; Byte c2
; Byte c3
; Byte c4
;} m
;
122 #define get_float(code,pc) {code.m.c1 = *pc++; code.m.c2 = *pc++;\
123 code.m.c3 = *pc++; code.m.c4 = *pc++;}
127 struct {Byte c1
; Byte c2
; Byte c3
; Byte c4
;} m
;
130 #define get_code(code,pc) {code.m.c1 = *pc++; code.m.c2 = *pc++;\
131 code.m.c3 = *pc++; code.m.c4 = *pc++;}
134 /* Exported functions */
135 void lua_parse (TFunc
*tf
); /* from "lua.stx" module */
136 void luaI_codedebugline (int line
); /* from "lua.stx" module */
137 void lua_travstack (int (*fn
)(Object
*));
138 Object
*luaI_Address (lua_Object o
);
139 void luaI_pushobject (Object
*o
);
140 void luaI_gcFB (Object
*o
);
141 int luaI_dorun (TFunc
*tf
);