1 /******************************************************************************
2 *
3 * Copyright (C) 2006, The Gentee Group. All rights reserved.
4 * This file is part of the Gentee open source project <http://www.gentee.com>.
5 *
6 * THIS FILE IS PROVIDED UNDER THE TERMS OF THE GENTEE LICENSE ("AGREEMENT").
7 * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE CONSTITUTES RECIPIENTS
8 * ACCEPTANCE OF THE AGREEMENT.
9 *
10 * cmdlist_h 17.02.2009 0.0.A.
11 *
12 * Author: Generated with 'cmdlist' program
13 *
14 * Summary: This file contains a list of the embedded byte-code commands.
15 *
16 ******************************************************************************/
17
18 #ifndef _CMDLIST_
19 #define _CMDLIST_
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif // __cplusplus
24
25 #include "../common/types.h"
26
27 #define CMDCOUNT 236
28 #define STACK_COUNT 218
29
30 enum {
31 CNone, // 0x0, 0 Error command
32 TInt, // 0x1, 1 int type
33 TUint, // 0x2, 2 uint type
34 TByte, // 0x3, 3 byte type
35 TUbyte, // 0x4, 4 ubyte type
36 TShort, // 0x5, 5 short type
37 TUshort, // 0x6, 6 ushort type
38 TFloat, // 0x7, 7 float type
39 TDouble, // 0x8, 8 double type
40 TLong, // 0x9, 9 long type
41 TUlong, // 0xA, 10 ulong type
42 TReserved, // 0xB, 11 reserved type
43 TBuf, // 0xC, 12 buf type
44 TStr, // 0xD, 13 str type
45 TArr, // 0xE, 14 arr type
46 TCollection, // 0xF, 15 collection type
47 TAny, // 0x10, 16 any type
48 TFordata, // 0x11, 17 foreach type
49 CNop, // 0x12, 18 The command does nothing
50 CGoto, // 0x13, 19 The unconditional jump.
51 CGotonocls, // 0x14, 20 The unconditional jump without clearing stack.
52 CIfze, // 0x15, 21 The conditional jump
53 CIfznocls, // 0x16, 22 The conditional jump without clearing stack
54 CIfnze, // 0x17, 23 The conditional jump
55 CIfnznocls, // 0x18, 24 The conditional jump without clearing stack.
56 CByload, // 0x19, 25 The next ubyte push into stack. GE only
57 CShload, // 0x1A, 26 The next ushort push into stack. GE only
58 CDwload, // 0x1B, 27 The next uint push into stack.
59 CCmdload, // 0x1C, 28 The next ID push into stack.
60 CResload, // 0x1D, 29 The next ID (resource) push into stack.
61 CQwload, // 0x1E, 30 The next ulong push into stack.
62 CDwsload, // 0x1F, 31 The next uints ( cmd 1 ) ( cmd 2 ) push into the stack
63 CVarload, // 0x20, 32 Load the value of parameter or variable with number ( cmd 1)
64 CVarptrload, // 0x21, 33 Load the pointer to value of parameter or variable with number ( cmd 1)
65 CDatasize, // 0x22, 34 Load the pointer to the next data and the size
66 CLoglongtrue, // 0x23, 35 Return 1 if ulong in stack is not zero
67 CLognot, // 0x24, 36 Logical not
68 CLoglongnot, // 0x25, 37 Logical NOT for long ulong
69 CDup, // 0x26, 38 Duplicate top value
70 CDuplong, // 0x27, 39 Duplicate two top value
71 CTop, // 0x28, 40 Return the pointer to top
72 CPop, // 0x29, 41 Delete the top value
73 CGetUB, // 0x2A, 42 * ( pubyte )
74 CGetB, // 0x2B, 43 * ( pbyte )
75 CGetUS, // 0x2C, 44 * ( pushort )
76 CGetS, // 0x2D, 45 * ( pshort )
77 CGetI, // 0x2E, 46 * ( puint && pint && float )
78 CGetL, // 0x2F, 47 * ( pulong && plong && double )
79 CSetUB, // 0x30, 48 * ( pubyte ) =
80 CSetB, // 0x31, 49 * ( pbyte ) =
81 CSetUS, // 0x32, 50 * ( pushort ) =
82 CSetS, // 0x33, 51 * ( pshort ) =
83 CSetI, // 0x34, 52 * ( puint && pint && float ) =
84 CSetL, // 0x35, 53 * ( pulong && plong && double ) =
85 CAddUIUI, // 0x36, 54 +
86 CSubUIUI, // 0x37, 55 -
87 CMulUIUI, // 0x38, 56 *
88 CDivUIUI, // 0x39, 57 /
89 CModUIUI, // 0x3A, 58 %
90 CAndUIUI, // 0x3B, 59 &
91 COrUIUI, // 0x3C, 60 |
92 CXorUIUI, // 0x3D, 61 ^
93 CLeftUIUI, // 0x3E, 62 <<
94 CRightUIUI, // 0x3F, 63 >>
95 CLessUIUI, // 0x40, 64 <
96 CGreaterUIUI, // 0x41, 65 >
97 CEqUIUI, // 0x42, 66 ==
98 CNotUI, // 0x43, 67 ~
99 CIncLeftUI, // 0x44, 68 ++i
100 CIncRightUI, // 0x45, 69 i++
101 CDecLeftUI, // 0x46, 70 --i
102 CDecRightUI, // 0x47, 71 i--
103 CAddUI, // 0x48, 72 +=
104 CSubUI, // 0x49, 73 -=
105 CMulUI, // 0x4A, 74 *=
106 CDivUI, // 0x4B, 75 /=
107 CModUI, // 0x4C, 76 %=
108 CAndUI, // 0x4D, 77 &=
109 COrUI, // 0x4E, 78 |=
110 CXorUI, // 0x4F, 79 ^=
111 CLeftUI, // 0x50, 80 <<=
112 CRightUI, // 0x51, 81 >>=
113 CVarsInit, // 0x52, 82 Initialize variables in block cmd1
114 CGetText, // 0x53, 83 Get current output of text function
115 CSetText, // 0x54, 84 Print string to current output of text function
116 CPtrglobal, // 0x55, 85 Get to the global variable
117 CSubcall, // 0x56, 86 Call a subfunc cmd 1 - goto
118 CSubret, // 0x57, 87 The number of returned uint cmd 1
119 CSubpar, // 0x58, 88 Parameters of subfunc. cmd 1 - Set block
120 CSubreturn, // 0x59, 89 Return from a subfunc
121 CCmdcall, // 0x5A, 90 Call a funcion
122 CCallstd, // 0x5B, 91 Call a stdcall or cdecl funcion
123 CReturn, // 0x5C, 92 Return from the function.
124 CAsm, // 0x5D, 93 Assembler
125 CDbgTrace, // 0x5E, 94 Debug line tracing
126 CDbgFunc, // 0x5F, 95 Debug func entering
127 CMulII, // 0x60, 96 *
128 CDivII, // 0x61, 97 /
129 CModII, // 0x62, 98 %
130 CLeftII, // 0x63, 99 <<
131 CRightII, // 0x64, 100 >>
132 CSignI, // 0x65, 101 change sign
133 CLessII, // 0x66, 102 <
134 CGreaterII, // 0x67, 103 >
135 CMulI, // 0x68, 104 *=
136 CDivI, // 0x69, 105 /=
137 CModI, // 0x6A, 106 %=
138 CLeftI, // 0x6B, 107 <<=
139 CRightI, // 0x6C, 108 >>=
140 CMulB, // 0x6D, 109 *=
141 CDivB, // 0x6E, 110 /=
142 CModB, // 0x6F, 111 %=
143 CLeftB, // 0x70, 112 <<=
144 CRightB, // 0x71, 113 >>=
145 CMulS, // 0x72, 114 *=
146 CDivS, // 0x73, 115 /=
147 CModS, // 0x74, 116 %=
148 CLeftS, // 0x75, 117 <<=
149 CRightS, // 0x76, 118 >>=
150 Cd2f, // 0x77, 119 double 2 float
151 Cd2i, // 0x78, 120 double 2 int
152 Cd2l, // 0x79, 121 double 2 long
153 Cf2d, // 0x7A, 122 float 2 double
154 Cf2i, // 0x7B, 123 float 2 int
155 Cf2l, // 0x7C, 124 float 2 long
156 Ci2d, // 0x7D, 125 int 2 double
157 Ci2f, // 0x7E, 126 int 2 float
158 Ci2l, // 0x7F, 127 int 2 long
159 Cl2d, // 0x80, 128 long 2 double
160 Cl2f, // 0x81, 129 long 2 float
161 Cl2i, // 0x82, 130 long 2 int
162 Cui2d, // 0x83, 131 uint 2 double
163 Cui2f, // 0x84, 132 uint 2 float
164 Cui2l, // 0x85, 133 uint 2 long
165 CAddULUL, // 0x86, 134 +
166 CSubULUL, // 0x87, 135 -
167 CMulULUL, // 0x88, 136 *
168 CDivULUL, // 0x89, 137 /
169 CModULUL, // 0x8A, 138 %
170 CAndULUL, // 0x8B, 139 &
171 COrULUL, // 0x8C, 140 |
172 CXorULUL, // 0x8D, 141 ^
173 CLeftULUL, // 0x8E, 142 <<
174 CRightULUL, // 0x8F, 143 >>
175 CLessULUL, // 0x90, 144 <
176 CGreaterULUL, // 0x91, 145 >
177 CEqULUL, // 0x92, 146 ==
178 CNotUL, // 0x93, 147 ~
179 CIncLeftUL, // 0x94, 148 ++
180 CIncRightUL, // 0x95, 149 ++
181 CDecLeftUL, // 0x96, 150 --
182 CDecRightUL, // 0x97, 151 --
183 CAddUL, // 0x98, 152 +=
184 CSubUL, // 0x99, 153 -=
185 CMulUL, // 0x9A, 154 *=
186 CDivUL, // 0x9B, 155 /=
187 CModUL, // 0x9C, 156 %
188 CAndUL, // 0x9D, 157 &=
189 COrUL, // 0x9E, 158 |=
190 CXorUL, // 0x9F, 159 &=
191 CLeftUL, // 0xA0, 160 <<=
192 CRightUL, // 0xA1, 161 >>=
193 CMulLL, // 0xA2, 162 *
194 CDivLL, // 0xA3, 163 /
195 CModLL, // 0xA4, 164 %
196 CLeftLL, // 0xA5, 165 <<=
197 CRightLL, // 0xA6, 166 >>=
198 CSignL, // 0xA7, 167 sign
199 CLessLL, // 0xA8, 168 <
200 CGreaterLL, // 0xA9, 169 >
201 CMulL, // 0xAA, 170 *=
202 CDivL, // 0xAB, 171 /=
203 CModL, // 0xAC, 172 %=
204 CLeftL, // 0xAD, 173 <<=
205 CRightL, // 0xAE, 174 >>=
206 CAddFF, // 0xAF, 175 +
207 CSubFF, // 0xB0, 176 -
208 CMulFF, // 0xB1, 177 *
209 CDivFF, // 0xB2, 178 /
210 CSignF, // 0xB3, 179 sign
211 CLessFF, // 0xB4, 180 <
212 CGreaterFF, // 0xB5, 181 >
213 CEqFF, // 0xB6, 182 ==
214 CIncLeftF, // 0xB7, 183 ++
215 CIncRightF, // 0xB8, 184 ++
216 CDecLeftF, // 0xB9, 185 --
217 CDecRightF, // 0xBA, 186 --
218 CAddF, // 0xBB, 187 +=
219 CSubF, // 0xBC, 188 -=
220 CMulF, // 0xBD, 189 *=
221 CDivF, // 0xBE, 190 /=
222 CAddDD, // 0xBF, 191 +
223 CSubDD, // 0xC0, 192 -
224 CMulDD, // 0xC1, 193 *
225 CDivDD, // 0xC2, 194 /
226 CSignD, // 0xC3, 195 sign
227 CLessDD, // 0xC4, 196 <
228 CGreaterDD, // 0xC5, 197 >
229 CEqDD, // 0xC6, 198 ==
230 CIncLeftD, // 0xC7, 199 ++
231 CIncRightD, // 0xC8, 200 ++
232 CDecLeftD, // 0xC9, 201 --
233 CDecRightD, // 0xCA, 202 --
234 CAddD, // 0xCB, 203 +=
235 CSubD, // 0xCC, 204 -=
236 CMulD, // 0xCD, 205 *=
237 CDivD, // 0xCE, 206 /=
238 CIncLeftUB, // 0xCF, 207 ++
239 CIncRightUB, // 0xD0, 208 ++
240 CDecLeftUB, // 0xD1, 209 --
241 CDecRightUB, // 0xD2, 210 --
242 CAddUB, // 0xD3, 211 +=
243 CSubUB, // 0xD4, 212 -=
244 CMulUB, // 0xD5, 213 *=
245 CDivUB, // 0xD6, 214 /=
246 CModUB, // 0xD7, 215 %=
247 CAndUB, // 0xD8, 216 &=
248 COrUB, // 0xD9, 217 |=
249 CXorUB, // 0xDA, 218 ^=
250 CLeftUB, // 0xDB, 219 <<=
251 CRightUB, // 0xDC, 220 >>=
252 CIncLeftUS, // 0xDD, 221 ++
253 CIncRightUS, // 0xDE, 222 ++
254 CDecLeftUS, // 0xDF, 223 --
255 CDecRightUS, // 0xE0, 224 --
256 CAddUS, // 0xE1, 225 +=
257 CSubUS, // 0xE2, 226 -=
258 CMulUS, // 0xE3, 227 *=
259 CDivUS, // 0xE4, 228 /=
260 CModUS, // 0xE5, 229 %=
261 CAndUS, // 0xE6, 230 &=
262 COrUS, // 0xE7, 231 |=
263 CXorUS, // 0xE8, 232 ^=
264 CLeftUS, // 0xE9, 233 <<=
265 CRightUS, // 0xEA, 234 >>=
266 CCollectadd, // 0xEB, 235 Run-time loading collection
267
268 };
269
270 extern const ubyte shifts[];
271 extern const ubyte embtypes[];
272
273 #ifdef __cplusplus
274 }
275 #endif // __cplusplus
276
277 #endif // _CMDLIST_
278