diff options
Diffstat (limited to 'opcode.h')
-rw-r--r-- | opcode.h | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -1,6 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | ** TeCGraf - PUC-Rio | 2 | ** TeCGraf - PUC-Rio |
3 | ** $Id: opcode.h,v 2.1 1994/04/20 22:07:57 celes Exp celes $ | 3 | ** $Id: opcode.h,v 2.2 1994/07/19 21:27:18 celes Exp celes $ |
4 | */ | 4 | */ |
5 | 5 | ||
6 | #ifndef opcode_h | 6 | #ifndef opcode_h |
@@ -34,6 +34,12 @@ typedef union | |||
34 | float f; | 34 | float f; |
35 | } CodeFloat; | 35 | } CodeFloat; |
36 | 36 | ||
37 | typedef union | ||
38 | { | ||
39 | struct {char c1; char c2; char c3; char c4;} m; | ||
40 | Byte *b; | ||
41 | } CodeCode; | ||
42 | |||
37 | typedef enum | 43 | typedef enum |
38 | { | 44 | { |
39 | PUSHNIL, | 45 | PUSHNIL, |
@@ -42,6 +48,7 @@ typedef enum | |||
42 | PUSHWORD, | 48 | PUSHWORD, |
43 | PUSHFLOAT, | 49 | PUSHFLOAT, |
44 | PUSHSTRING, | 50 | PUSHSTRING, |
51 | PUSHFUNCTION, | ||
45 | PUSHLOCAL0, PUSHLOCAL1, PUSHLOCAL2, PUSHLOCAL3, PUSHLOCAL4, | 52 | PUSHLOCAL0, PUSHLOCAL1, PUSHLOCAL2, PUSHLOCAL3, PUSHLOCAL4, |
46 | PUSHLOCAL5, PUSHLOCAL6, PUSHLOCAL7, PUSHLOCAL8, PUSHLOCAL9, | 53 | PUSHLOCAL5, PUSHLOCAL6, PUSHLOCAL7, PUSHLOCAL8, PUSHLOCAL9, |
47 | PUSHLOCAL, | 54 | PUSHLOCAL, |
@@ -143,6 +150,8 @@ typedef struct | |||
143 | #define get_word(code,pc) {code.m.c1 = *pc++; code.m.c2 = *pc++;} | 150 | #define get_word(code,pc) {code.m.c1 = *pc++; code.m.c2 = *pc++;} |
144 | #define get_float(code,pc) {code.m.c1 = *pc++; code.m.c2 = *pc++;\ | 151 | #define get_float(code,pc) {code.m.c1 = *pc++; code.m.c2 = *pc++;\ |
145 | code.m.c3 = *pc++; code.m.c4 = *pc++;} | 152 | code.m.c3 = *pc++; code.m.c4 = *pc++;} |
153 | #define get_code(code,pc) {code.m.c1 = *pc++; code.m.c2 = *pc++;\ | ||
154 | code.m.c3 = *pc++; code.m.c4 = *pc++;} | ||
146 | 155 | ||
147 | 156 | ||
148 | 157 | ||