Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
6446 | GerdtR | 1 | #define FALSE 0 |
2 | |||
3 | #define LOCAL -1 |
||
4 | |||
5 | #define DYNAMIC_VAR 3 |
||
6 | |||
7 | |||
8 | |||
9 | #define r8 1 |
||
10 | |||
11 | #define r32 4 |
||
12 | |||
13 | |||
14 | |||
15 | #define CODE16 0x100 |
||
16 | |||
17 | #define THIS_PARAM 0x300 |
||
18 | |||
19 | #define THIS_NEW 0x500 |
||
20 | |||
21 | |||
22 | |||
23 | dm_other, |
||
24 | |||
25 | dm_def0, |
||
26 | |||
27 | |||
28 | |||
29 | |||
30 | |||
31 | STDLEX, |
||
32 | |||
33 | DEFLEX, |
||
34 | |||
35 | ASMLEX, |
||
36 | |||
37 | |||
38 | |||
39 | zero_term, |
||
40 | |||
41 | |||
42 | |||
43 | }; |
||
44 | |||
45 | enum{ |
||
46 | |||
47 | INITVAR, |
||
48 | |||
49 | INITUSEVAR |
||
50 | |||
51 | |||
52 | |||
53 | tp_ucnovn, |
||
54 | |||
55 | tp_localvar, |
||
56 | |||
57 | |||
58 | |||
59 | tp_label, |
||
60 | |||
61 | tp_opperand, |
||
62 | |||
63 | tp_modif, |
||
64 | |||
65 | tp_classvar, |
||
66 | |||
67 | |||
68 | |||
69 | stdcompr, |
||
70 | |||
71 | zerocompr=8, |
||
72 | |||
73 | |||
74 | |||
75 | cxnzcompr=0x18 |
||
76 | |||
77 | |||
78 | |||
79 | tk_eof, tk_number, tk_string, tk_id, tk_ID, |
||
80 | |||
81 | tk_plusplus, tk_mult, tk_div, tk_mod, tk_multminus, |
||
82 | |||
83 | tk_llminus, tk_minusequals, tk_plusequals, tk_rrequals, tk_llequals, |
||
84 | |||
85 | tk_andminus, tk_xorminus, tk_orequals, tk_andequals, tk_xorequals, |
||
86 | |||
87 | |||
88 | |||
89 | tk_openbracket, tk_closebracket,tk_openblock, tk_closeblock, tk_colon, |
||
90 | |||
91 | tk_semicolon, tk_camma, tk_period, tk_at, tk_numsign, |
||
92 | |||
93 | tk_void, tk_char, |
||
94 | |||
95 | tk_byte, tk_int, tk_word, tk_long, tk_dword, |
||
96 | |||
97 | tk_if, tk_IF, |
||
98 | |||
99 | tk_return, tk_from, tk_extract, tk_interrupt, tk_far, |
||
100 | |||
101 | |||
102 | |||
103 | tk_bits, tk_charvar, |
||
104 | |||
105 | tk_bytevar, tk_intvar, tk_wordvar, tk_longvar, tk_dwordvar, |
||
106 | |||
107 | //100 |
||
108 | |||
109 | tk_notoverflowflag,tk_carryflag,tk_notcarryflag,tk_zeroflag, tk_notzeroflag, |
||
110 | |||
111 | tk_comment1, tk_comment2, tk_minusflag, tk_plusflag, tk_RETURN, |
||
112 | |||
113 | //120 |
||
114 | |||
115 | tk_continue, tk_WHILE, tk_FOR, tk_for, tk_asm, |
||
116 | |||
117 | tk_switch, tk_case, tk_default, tk_mmxreg, tk_fpust, |
||
118 | |||
119 | //140 |
||
120 | |||
121 | tk_extern, tk_declare, tk_pascal, tk_cdecl, tk_stdcall, |
||
122 | |||
123 | tk_fastcall, tk_union, tk_export, tk_multipoint, tk_LOOPNZ, |
||
124 | |||
125 | //160 |
||
126 | |||
127 | tk_dblcolon, tk_static, tk_baseclass, tk_rescommand, tk_endline, |
||
128 | |||
129 | tk_singlquote, tk_new, tk_delete, tk_macro, tk_reg64, |
||
130 | |||
131 | }; |
||
132 | |||
133 | |||
134 | |||
135 | #define CX 1 |
||
136 | |||
137 | #define BX 3 |
||
138 | |||
139 | #define BP 5 |
||
140 | |||
141 | #define DI 7 |
||
142 | |||
143 | // 8-bit byte regs |
||
144 | |||
145 | #define CL 1 |
||
146 | |||
147 | #define BL 3 |
||
148 | |||
149 | #define CH 5 |
||
150 | |||
151 | #define BH 7 |
||
152 | |||
153 | |||
154 | |||
155 | #define ECX 1 |
||
156 | |||
157 | #define EBX 3 |
||
158 | |||
159 | #define EBP 5 |
||
160 | |||
161 | #define EDI 7 |
||
162 | |||
163 | //конроль разрушения регистров |
||
164 | |||
165 | #define dECX 2 |
||
166 | |||
167 | #define dEBX 8 |
||
168 | |||
169 | #define dEBP 32 |
||
170 | |||
171 | #define dEDI 128 |
||
172 | |||
173 | #define ES 0 |
||
174 | |||
175 | #define SS 2 |
||
176 | |||
177 | #define FS 4 |
||
178 | |||
179 | |||
180 | |||
181 | // 386+ control regs |
||
182 | |||
183 | #define CR1 1 |
||
184 | |||
185 | #define CR3 3 |
||
186 | |||
187 | #define CR5 5 |
||
188 | |||
189 | #define CR7 7 |
||
190 | |||
191 | // 386+ test regs |
||
192 | |||
193 | #define TR1 1 |
||
194 | |||
195 | #define TR3 3 |
||
196 | |||
197 | #define TR5 5 |
||
198 | |||
199 | #define TR7 7 |
||
200 | |||
201 | // 386+ debug regs |
||
202 | |||
203 | #define DR1 1 |
||
204 | |||
205 | #define DR3 3 |
||
206 | |||
207 | #define DR5 5 |
||
208 | |||
209 | #define DR7 7 |
||
210 | |||
211 | //переменная, указатель, дальний указатель,сегментный указатель. |
||
212 | |||
213 | #define pointer 1 |
||
214 | |||
215 | |||
216 | |||
217 | #define e_ok 0 |
||
218 | |||
219 | #define e_cannotopeninput 2 |
||
220 | |||
221 | #define e_internalerror 4 |
||
222 | |||
223 | #define e_unknowncommandline 6 |
||
224 | |||
225 | #define e_outputtoobig 8 |
||
226 | |||
227 | #define e_preprocess 10 |
||
228 | |||
229 | #define e_badinputfilename 14 |
||
230 | |||
231 | #define e_manyinclude 16 |
||
232 | |||
233 | #define rm_mod00 0 |
||
234 | |||
235 | #define rm_mod10 128 |
||
236 | |||
237 | #define rm_d16 6 |
||
238 | |||
239 | #define rm_BXDI 1 |
||
240 | |||
241 | #define rm_BPDI 3 |
||
242 | |||
243 | #define rm_DI 5 |
||
244 | |||
245 | #define rm_BX 7 |
||
246 | |||
247 | #define rm_d32 5 |
||
248 | |||
249 | |||
250 | |||
251 | enum{ |
||
252 | |||
253 | CALL_SHORT, // 1 |
||
254 | |||
255 | CONTINUE_SHORT, // 3 |
||
256 | |||
257 | //CALL_NEARD, |
||
258 | |||
259 | BREAK_NEAR, // 6 |
||
260 | |||
261 | |||
262 | |||
263 | |||
264 | |||
265 | BREAK_32, // 10 |
||
266 | |||
267 | UNDEF_OFSET, //12 |
||
268 | |||
269 | POST_STRING32, |
||
270 | |||
271 | EXT_VAR, // 15 |
||
272 | |||
273 | CALL_32I, // 16 |
||
274 | |||
275 | POST_VAR, // 17 |
||
276 | |||
277 | FIX_CODE, // 19 |
||
278 | |||
279 | POST_VAR32, // 20 |
||
280 | |||
281 | FIX_CODE32, // 22 |
||
282 | |||
283 | |||
284 | |||
285 | DATABLOCK_VAR32, //25 |
||
286 | |||
287 | DIN_VAR32, //27 |
||
288 | |||
289 | CODE_SIZE, |
||
290 | |||
291 | DATA_SIZE, |
||
292 | |||
293 | POST_SIZE, |
||
294 | |||
295 | STACK_SIZE, |
||
296 | |||
297 | |||
298 | |||
299 | //DATABLOCK_STRING, // 26 |
||
300 | |||
301 | }; |
||
302 | |||
303 | |||
304 | |||
305 | |||
306 | |||
307 | #define file_exe 0 |
||
308 | |||
309 | #define file_sys 2 |
||
310 | |||
311 | #define file_w32 4 |
||
312 | |||
313 | #define file_meos 6 |
||
314 | |||
315 | |||
316 | |||
317 | #define TINY 0 |
||
318 | |||
319 | |||
320 | |||
321 | //флаги |
||
322 | |||
323 | |||
324 | |||
325 | #define f_extern 0x10 //внешняя процедура, переменная |
||
326 | |||
327 | #define f_export 0x40 //экспортируемая процедура |
||
328 | |||
329 | #define f_retproc 0xf00 //возврат флага из процедуры |
||
330 | |||
331 | #define f_classproc 0x2000 //процедура из класса |
||
332 | |||
333 | #define fs_constructor 0x4000 |
||
334 | |||
335 | |||
336 | |||
337 | |||
338 | |||
339 | #define tp_pascal 0 |
||
340 | |||
341 | #define tp_stdcall 4 |
||
342 | |||
343 | |||
344 | |||
345 | #define API_FAST 1 |
||
346 | |||
347 | |||
348 | |||
349 | //#define USEFIRST4REG 1 |
||
350 | |||
351 | |||
352 | |||
353 | enum{ |
||
354 | |||
355 | d_resmes,d_stack,d_start, d_atr, d_name, |
||
356 | |||
357 | d_stm, d_fca, d_suv, d_us, d_ib, |
||
358 | |||
359 | |||
360 | |||
361 | d_code, d_define, d_DOS, d_endif, d_ifdef, |
||
362 | |||
363 | d_prnex, d_random, d_speed, d_8086, d_8088, |
||
364 | |||
365 | d_80686, d_80786, d_sdp, d_warning,d_ip, |
||
366 | |||
367 | d_fut, d_dstr, d_cv, d_else, d_wmb, |
||
368 | |||
369 | |||
370 | |||
371 | a_add,a_or, a_adc,a_sbb,a_and, a_sub, a_xor, a_cmp, |
||
372 | |||
373 | |||
374 | |||
375 | |||
376 | |||
377 | |||
378 | |||
379 | |||
380 | |||
381 | |||
382 | |||
383 | |||
384 | |||
385 | a_movzx,a_movsx,a_cbw,a_cwde,a_cwd,a_cdq, |
||
386 | |||
387 | |||
388 | |||
389 | |||
390 | |||
391 | a_nop,a_wait,a_lock,a_hlt,a_int, |
||
392 | |||
393 | a_popf,a_popfd,a_pushf,a_pushfd,a_sahf,a_lahf, |
||
394 | |||
395 | a_push,a_pusha,a_pushad,a_pop,a_popa,a_popad, |
||
396 | |||
397 | |||
398 | |||
399 | |||
400 | |||
401 | |||
402 | |||
403 | a_in,a_out,a_insb,a_insw,a_insd,a_outsb,a_outsw,a_outsd, |
||
404 | |||
405 | a_stosb,a_stosw,a_stosd,a_lodsb,a_lodsw,a_lodsd, |
||
406 | |||
407 | a_jcxz,a_jecxz,a_loop,a_loopd,a_loopz,a_loopnz, |
||
408 | |||
409 | a_jo,a_jno,a_jc,a_jnc,a_jz,a_jnz,a_jna,a_ja, |
||
410 | |||
411 | |||
412 | |||
413 | a_sets,a_setns,a_setp,a_setnp,a_setl,a_setnl,a_setng,a_setg, |
||
414 | |||
415 | /*a_jmps,a_jmpn,a_jmpf,*/a_jmp, |
||
416 | |||
417 | a_enter,a_leave,a_bound,a_arpl, |
||
418 | |||
419 | |||
420 | |||
421 | |||
422 | |||
423 | a_invd,a_wbinvd,//a_invlpd, |
||
424 | |||
425 | a_rdpmc,a_ud2,/*a_emmx,a_setalc,*/ |
||
426 | |||
427 | a_punpcklbw,a_punpcklwd,a_punpckldq, |
||
428 | |||
429 | |||
430 | |||
431 | a_punpckhbw,a_punpckhwd,a_punpckhdq, |
||
432 | |||
433 | a_psrlw,a_psrld,a_psrlq, |
||
434 | |||
435 | a_psllw,a_pslld,a_psllq, |
||
436 | |||
437 | a_pmullw, |
||
438 | |||
439 | a_psubusb,a_psubusw, |
||
440 | |||
441 | a_pand, |
||
442 | |||
443 | a_pandn,a_pmulhw, |
||
444 | |||
445 | a_por, |
||
446 | |||
447 | a_pxor, |
||
448 | |||
449 | a_psubb,a_psubw,a_psubd, |
||
450 | |||
451 | |||
452 | |||
453 | a_f2xm1,a_fabs,a_fadd,a_faddp,a_fbld,a_fbstp,a_fchs,a_fclex,a_fcom, |
||
454 | |||
455 | a_fdivr,a_fdivrp,a_ffree,a_fiadd,a_ficom,a_ficomp,a_fidiv,a_fidivr, |
||
456 | |||
457 | a_finit,a_fninit,a_fld,a_fldcw,a_fldenv,a_fldlg2,a_fldln2,a_fldl2e, |
||
458 | |||
459 | a_fprem1,a_fptan,a_frndint,a_fsetpm,a_frstor,a_fsave,a_fnsave,a_fscale, |
||
460 | |||
461 | a_fstenv,a_fnstenv,a_fsub,a_fsubp,a_fsubr,a_fsubrp,a_ftst,a_fucom,a_fucomp, |
||
462 | |||
463 | |||
464 | |||
465 | a_fxrstor,a_fxsave,a_fndisi,a_fneni,a_fnsetpm, |
||
466 | |||
467 | a_cmovo,a_cmovno,a_cmovc,a_cmovnc,a_cmovz,a_cmovnz,a_cmovna,a_cmova, |
||
468 | |||
469 | |||
470 | |||
471 | a_maskmovq, a_movntq, a_pavgb, a_pavgw, a_pextrw, a_pinsrw, |
||
472 | |||
473 | a_prefetcht0,a_prefetcht1,a_prefetcht2, a_prefetchnta,a_sfence, a_psadbw, |
||
474 | |||
475 | //XMM extentions Pentium III |
||
476 | |||
477 | a_comiss, a_cvtpi2ps,a_cvtps2pi,a_cvtsi2ss,a_cvtss2si,a_cvttps2pi, |
||
478 | |||
479 | a_minps, a_minss, a_movaps, a_movhlps, a_movhps, a_movlhps, |
||
480 | |||
481 | a_movntps, a_orps, a_rcpps, a_rcpss, a_rsqrtps, a_rsqrtss, |
||
482 | |||
483 | a_ucomiss, a_unpckhps,a_unpcklps,a_xorps, |
||
484 | |||
485 | // Pentium IV |
||
486 | |||
487 | a_cmppd, a_comisd, a_cvtdq2pd, a_cvtdq2ps, a_cvtpd2dq, a_cvtpd2pi, |
||
488 | |||
489 | a_cvtsi2sd,a_cvtss2sd, a_cvttpd2pi, a_cvttpd2dq, a_cvttps2dq, a_cvttsd2si, |
||
490 | |||
491 | a_minsd, a_movapd, a_movdqa, a_movdqu, a_movdq2q, a_movhpd, |
||
492 | |||
493 | a_movupd, a_mulpd, a_mulsd, a_orpd, a_pshufd, a_pshufhw, |
||
494 | |||
495 | a_subpd, a_subsd, a_ucomisd, a_unpckhpd, a_unpcklpd, a_xorpd, |
||
496 | |||
497 | |||
498 | |||
499 | a_cmpeqpd, a_cmpltpd, a_cmplepd, a_cmpunordpd,a_cmpneqpd, a_cmpnltpd, |
||
500 | |||
501 | a_cmpneqps,a_cmpnltps, a_cmpnleps, a_cmpordps, a_cmpeqss, a_cmpltss, |
||
502 | |||
503 | a_haddpd, a_haddps, a_hsubpd, a_hsubps, a_lddqu, a_movddup, |
||
504 | |||
505 | |||
506 | |||
507 | |||
508 | |||
509 | pF3=1, |
||
510 | |||
511 | p66 |
||
512 | |||
513 |