Subversion Repositories Kolibri OS

Rev

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