Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6446 GerdtR 1
#define NUM_ASM_MODIF 12
2
 
3
 
4
 
5
	"TBYTE","LDOUBLE","QWORD","DOUBLE"
6
 
7
//слова модификаторы
8
 
9
#define m_short 2
10
 
11
#define m_dup   8
12
 
13
#define m_word  32
14
 
15
#define m_dword 128
16
 
17
#define m_ldouble 512
18
 
19
#define m_double  2048
20
 
21
//конроль разрушения регистров
22
 
23
#define d2par 512	//по 2 операнду
24
 
25
struct ASMPAR
26
 
27
	unsigned char num;  //число операндов младшие 4 бита минимальное число,
28
 
29
                            // если 15, то неограничено
30
 
31
	unsigned short reg; // разрушаемые регистры
32
 
33
}asmpar[]={
34
 
35
	2,0,d1par,0,	//a_or
36
 
37
	2,0,d1par,0,	//a_sbb
38
 
39
 
40
 
41
	2,0,d1par,0,	//a_cmp
42
 
43
	1,0,d1par,0,	//a_neg
44
 
45
	0,0,0,0,
46
 
47
 
48
 
49
	2,0,d1par,0,	//a_ror
50
 
51
	2,0,d1par,0,	//a_rcr
52
 
53
	2,0,d1par,0,	//a_shr
54
 
55
	2,0,d1par,0,	//a_sar=a_shr+2
56
 
57
	2,3,d1par,0,	//a_bts
58
 
59
	2,3,d1par,0,	//a_btc
60
 
61
	1,0,d1par,0,	//a_dec
62
 
63
	0x31,0,d1par|dEAX|dEDX,0,	//a_imul
64
 
65
	3,3,d1par,0,	//a_shrd
66
 
67
	0,0,dEAX,0,	//a_das
68
 
69
	0,0,dEAX,0,	//a_aas
70
 
71
	0x10,0,dEAX,0,	//a_aad
72
 
73
	2,3,d1par,0,	//a_movsx
74
 
75
	0,3,dEAX,0,	//a_cwde
76
 
77
	0,3,dEDX,0,	//a_cdq,
78
 
79
	0,0,dEAX,0,	//a_xlat
80
 
81
	2,3,d1par,0,	//a_bsr
82
 
83
	1,5,d1par|dEDX|dEAX,0,	//a_cmpxchg8b
84
 
85
	0,0,0,0,	//a_nop
86
 
87
	0,0,0,0,	//a_lock
88
 
89
	1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,0,	//a_int
90
 
91
	0,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,0,	//a_iret
92
 
93
	0,0,0,0,	//a_popf
94
 
95
	0,0,0,0,	//a_pushf
96
 
97
	0,0,0,0,	//a_sahf
98
 
99
	0,0,0,0,	//a_cmc
100
 
101
	0,0,0,0,	//a_stc
102
 
103
	0,0,0,0,	//a_sti
104
 
105
	0,0,0,0,	//a_std
106
 
107
	0,2,0,0,	//a_pusha
108
 
109
	0xF1,0,d1par,0,	//a_pop
110
 
111
	0,3,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,0,	//a_popad
112
 
113
	2,0,d1par,0,	//a_mov
114
 
115
	2,3,d1par,0,	//a_lfs
116
 
117
	2,3,d1par,0,	//a_lss
118
 
119
	2,0,d1par,0,	//a_lds
120
 
121
	2,0,dEAX,0,	//a_in
122
 
123
	0,2,dEAX|dEDI,0,	//a_insb
124
 
125
	0,3,dEAX|dEDI,0,	//a_insd
126
 
127
	0,2,dESI,0,	//a_outsw
128
 
129
	0,0,dEDI|dESI,0,	//a_movsb
130
 
131
	0x20,3,dEDI|dESI,0,	//a_movsd
132
 
133
	0,0,dEDI|dESI,0,	//a_cmpsw
134
 
135
	0,0,dEDI,0,	//a_stosb
136
 
137
	0,3,dEDI,0,	//a_stosd
138
 
139
	0,0,dEAX|dESI,0,	//a_lodsw
140
 
141
	0,0,dEDI,0,	//a_scasb
142
 
143
	0,3,dEDI,0,	//a_scasd
144
 
145
	0,0,dECX,0,	//a_rep
146
 
147
	1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,	//a_jecxz
148
 
149
	1,3,dECX,0,	//a_loopd
150
 
151
	1,0,dECX,0,	//a_loopnz
152
 
153
	1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,	//a_jno
154
 
155
	1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,	//a_jnc
156
 
157
	1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,	//a_jnz
158
 
159
	1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,	//a_ja
160
 
161
	1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,	//a_jns
162
 
163
	1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,	//a_jnp
164
 
165
	1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,	//a_jnl
166
 
167
	1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,	//a_jg
168
 
169
	1,3,d1par,0,	//a_setno
170
 
171
	1,3,d1par,0,	//a_setnc
172
 
173
	1,3,d1par,0,	//a_setnz
174
 
175
	1,3,d1par,0,	//a_seta
176
 
177
	1,3,d1par,0,	//a_setns
178
 
179
	1,3,d1par,0,	//a_setnp
180
 
181
	1,3,d1par,0,	//a_setnl
182
 
183
	1,3,d1par,0,	//a_setg
184
 
185
	1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near,	//a_call/*a_callf,*/
186
 
187
	0x10,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,0,	//a_retf
188
 
189
	0,2,dEBP|dESP,0,	//a_leave
190
 
191
	2,2,d1par,0,	//a_arpl
192
 
193
	1,2,d1par,0,	//a_str
194
 
195
	1,2,0,0,	//a_ltr
196
 
197
	1,2,0,0,	//a_verw
198
 
199
	2,2,d1par,0,	//a_lsl
200
 
201
	1,2,d1par,0,	//a_sidt
202
 
203
	1,2,0,0,	//a_lidt
204
 
205
	1,2,0,0,	//a_lmsw
206
 
207
	0,4,0,0,	//a_invd
208
 
209
	//a_invlpd,
210
 
211
	0,5,dEAX|dEBX|dECX|dEDX,0,	//a_cpuid
212
 
213
	0,5,dEAX|dEDX,0,	//a_rdtsc
214
 
215
	0,7,dEAX|dEDX,0,	//a_rdpmc
216
 
217
	/*a_emmx,a_setalc,*/
218
 
219
	2,8,0,0,	//a_punpcklwd
220
 
221
	2,8,0,0,	//a_packsswb
222
 
223
	2,8,0,0,	//a_pcmpgtw
224
 
225
	2,8,0,0,	//a_packuswb
226
 
227
	2,8,0,0,	//a_punpckhwd
228
 
229
	2,8,0,0,	//a_packssdw
230
 
231
	2,6,0,0,	//a_psrld
232
 
233
	2,6,0,0,	//a_psraw
234
 
235
	2,6,0,0,	//a_psllw
236
 
237
	2,6,0,0,	//a_psllq
238
 
239
	2,8,0,0,	//a_pcmpeqw
240
 
241
	2,8,0,0,	//a_pmullw
242
 
243
	2,6,d1par,0,	//a_movq
244
 
245
	2,8,0,0,	//a_psubusw
246
 
247
	2,8,0,0,	//a_pand
248
 
249
	2,8,0,0,	//a_paddusw
250
 
251
	2,8,0,0,	//a_pmulhw
252
 
253
	2,8,0,0,	//a_psubsw
254
 
255
	2,8,0,0,	//a_paddsb
256
 
257
	2,8,0,0,	//a_pxor
258
 
259
	2,8,0,0,	//a_psubb
260
 
261
	2,8,0,0,	//a_psubd
262
 
263
	2,8,0,0,	//a_paddw
264
 
265
	0xF1,0,0,m_dup,	//a_db
266
 
267
	0xF1,3,0,m_dup,	//a_dd
268
 
269
	0,2,0,0,	//a_loadall
270
 
271
	0,2,0,0,	//a_f2xm1
272
 
273
	0x21,0,0,m_double,	//a_fadd
274
 
275
	1,0,0,m_qword|m_tbyte,	//a_fbld
276
 
277
	0,0,0,0,	//a_fchs
278
 
279
	0x10,0,0,m_double,	//a_fcom
280
 
281
	0,0,0,0,	//a_fnclex
282
 
283
	0,3,0,0,	//a_fcos
284
 
285
	0,0,0,0,	//a_fdisi
286
 
287
	0x20,0,0,0,	//a_fdivp
288
 
289
	0x20,0,0,0,	//a_fdivrp
290
 
291
	1,0,0,0,	//a_fiadd
292
 
293
	1,0,0,0,	//a_ficomp
294
 
295
	1,0,0,0,	//a_fidivr
296
 
297
	1,0,0,m_qword|m_tbyte,	//a_fildq
298
 
299
	1,0,d1par,0,	//a_fist
300
 
301
	1,0,0,0,	//a_fisub
302
 
303
	0,0,0,0,	//a_feni
304
 
305
	0,0,0,0,	//a_finit
306
 
307
	1,0,0,m_qword|m_double|m_tbyte|m_ldouble,	//a_fld
308
 
309
	1,0,0,m_tbyte|m_qword,	//a_fldenv
310
 
311
	0,0,0,0,	//a_fldln2
312
 
313
	0,0,0,0,	//a_fldl2t
314
 
315
	0,0,0,0,	//a_fldz
316
 
317
	0x21,0,0,0,	//a_fmul
318
 
319
	0,0,0,0,	//a_fnop
320
 
321
	0,0,0,0,	//a_fprem
322
 
323
	0,0,0,0,	//a_fptan
324
 
325
	0,2,0,0,	//a_fsetpm
326
 
327
	1,0,d1par,m_tbyte|m_qword,	//a_fsave
328
 
329
	0,0,0,0,	//a_fscale
330
 
331
	0,3,0,0,	//a_fsincos
332
 
333
	1,0,d1par,m_qword|m_double|m_tbyte|m_ldouble,	//a_fst
334
 
335
	1,0,d1par,0,	//a_fnstcw
336
 
337
	1,0,d1par,0,	//a_fstsw
338
 
339
	1,0,d1par,m_tbyte|m_qword,	//a_fstenv
340
 
341
	0x21,0,0,m_double,	//a_fsub
342
 
343
	0x21,0,0,m_double,	//a_fsubr
344
 
345
	0,0,0,0,	//a_ftst
346
 
347
	0x10,0,0,0,	//a_fucomp
348
 
349
	0x10,0,0,0,	//a_fxch
350
 
351
	0,0,0,0,	//a_fxam
352
 
353
	0,0,0,0,	//a_fyl2x
354
 
355
	0,7,0,0,	//a_sysenter
356
 
357
	0x21,7,0,0,	//a_fcmovb
358
 
359
	0x21,7,0,0,	//a_fcmovbe
360
 
361
	0x21,7,0,0,	//a_fcmovnb
362
 
363
	0x21,7,0,0,	//a_fcmovnbe
364
 
365
	0x21,7,0,0,	//a_fcomi
366
 
367
	0x21,7,0,0,	//a_fucomi
368
 
369
	1,8,0,0,	//a_fxrstor
370
 
371
	0,0,0,0,	//a_fndisi
372
 
373
	0,2,0,0,	//a_fnsetpm
374
 
375
	2,7,d1par,0,	//a_cmovno
376
 
377
	2,7,d1par,0,	//a_cmovnc
378
 
379
	2,7,d1par,0,	//a_cmovnz
380
 
381
	2,7,d1par,0,	//a_cmova
382
 
383
	2,7,d1par,0,	//a_cmovns
384
 
385
	2,7,d1par,0,	//a_cmovnp
386
 
387
	2,7,d1par,0,	//a_cmovnl
388
 
389
	2,7,d1par,0,	//a_cmovg
390
 
391
	2,8,d1par,0,	//a_movntq
392
 
393
	2,8,0,0,	//a_pavgw
394
 
395
	3,8,0,0,	//a_pinsrw
396
 
397
	2,8,0,0,	//a_pmaxsw
398
 
399
	2,8,0,0,	//a_pminsw
400
 
401
	2,8,0,0,	//a_pmulhuw
402
 
403
	1,8,0,0,	//a_prefetcht1
404
 
405
	1,8,0,0,	//a_prefetchnta
406
 
407
	2,8,0,0,	//a_psadbw
408
 
409
	2,8,0,0,	//a_addps
410
 
411
	2,8,0,0,	//a_andnps
412
 
413
	3,8,0,0,	//a_cmpps
414
 
415
	2,8,0,0,	//a_comiss
416
 
417
	2,8,0,0,	//a_cvtps2pi
418
 
419
	2,8,d1par,0,	//a_cvtss2si
420
 
421
	2,8,d1par,0,	//a_cvttss2si
422
 
423
	2,8,0,0,	//a_divss
424
 
425
	2,8,0,0,	//a_maxps
426
 
427
	2,8,0,0,	//a_minps
428
 
429
	2,8,d1par,0,	//a_movaps
430
 
431
	2,8,d1par,0,	//a_movhps
432
 
433
	2,8,d1par,0,	//a_movlps
434
 
435
	2,8,d1par,0,	//a_movss
436
 
437
	2,8,0,0,	//a_mulps
438
 
439
	2,8,d1par,0,	//a_movntps
440
 
441
	2,8,0,0,	//a_rcpps
442
 
443
	2,8,0,0,	//a_rsqrtps
444
 
445
	3,8,0,0,	//a_shufps
446
 
447
	2,8,0,0,	//a_sqrtss
448
 
449
	2,8,0,0,	//a_subps
450
 
451
	2,8,0,0,	//a_ucomiss
452
 
453
	2,8,0,0,	//a_unpcklps
454
 
455
// Pentium IV
456
 
457
	0,9,0,0,	//a_mfence
458
 
459
	2,9,0,0,	//a_addsd
460
 
461
	2,9,0,0,	//a_andnpd
462
 
463
	2,9,0,0,	//a_comisd
464
 
465
	2,9,0,0,	//a_cvtdq2ps
466
 
467
	2,9,0,0,	//a_cvtpd2pi
468
 
469
	2,9,0,0,	//a_cvtpi2pd
470
 
471
	2,9,0,0,	//a_cvtps2pd
472
 
473
	2,9,0,0,	//a_cvtsd2ss
474
 
475
	2,9,0,0,	//a_cvtss2sd
476
 
477
	2,9,0,0,	//a_cvttpd2dq
478
 
479
	2,9,d1par,0,	//a_cvttsd2si
480
 
481
	2,9,0,0,	//a_divsd
482
 
483
	2,9,0,0,	//a_maxpd
484
 
485
	2,9,0,0,	//a_minpd
486
 
487
	2,9,d1par,0,	//a_movapd
488
 
489
	2,9,d1par,0,	//a_movdqu
490
 
491
	2,9,d1par,0,	//a_movhpd
492
 
493
	2,9,d1par,0,	//a_movmskpd
494
 
495
	2,9,d1par,0,	//a_movntpd
496
 
497
	2,9,0,0,	//a_movq2dq
498
 
499
	2,9,0,0,	//a_mulpd
500
 
501
	2,9,0,0,	//a_orpd
502
 
503
	3,9,0,0,	//a_pshufhw
504
 
505
	2,9,0,0,	//a_pslldq
506
 
507
	3,9,0,0,	//a_shufpd
508
 
509
	2,9,0,0,	//a_sqrtsd
510
 
511
	2,9,0,0,	//a_subsd
512
 
513
	2,9,0,0,	//a_unpckhpd
514
 
515
	2,9,0,0,	//a_xorpd
516
 
517
	2,9,0,0,	//a_pmuludq
518
 
519
	2,9,0,0,	//a_punpckhqdq
520
 
521
	1,9,0,0,	//a_clflush
522
 
523
	0,9,0,0,	//a_mwait
524
 
525
	2,9,0,0,	//a_addsubps
526
 
527
	2,9,0,0,	//a_cmpltsd
528
 
529
	2,9,0,0,	//a_cmpunordsd
530
 
531
	2,9,0,0,	//a_cmpnltsd
532
 
533
	2,9,0,0,	//a_cmpordsd
534
 
535
	2,9,0,0,	//a_cmpltpd
536
 
537
	2,9,0,0,	//a_cmpunordpd
538
 
539
	2,9,0,0,	//a_cmpnltpd
540
 
541
	2,9,0,0,	//a_cmpordpd
542
 
543
	2,9,0,0,	//a_cmpltps
544
 
545
	2,9,0,0,	//a_cmpunordps
546
 
547
	2,9,0,0,	//a_cmpnltps
548
 
549
	2,9,0,0,	//a_cmpordps
550
 
551
	2,9,0,0,	//a_cmpltss
552
 
553
	2,9,0,0,	//a_cmpunordss
554
 
555
	2,9,0,0,	//a_cmpnltss
556
 
557
	2,9,0,0,	//a_cmpordss
558
 
559
	2,9,0,0,	//a_haddps
560
 
561
	2,9,0,0,	//a_hsubps
562
 
563
	2,9,0,0,	//a_movddup
564
 
565
	2,9,0,0,	//a_movsldup
566
 
567
};
568