Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #define FALSE           0
  2.  
  3. #define TRUE            1
  4.  
  5. #define LOCAL           -1
  6.  
  7. #define DYNAMIC_POST 2
  8.  
  9. #define DYNAMIC_VAR  3
  10.  
  11. #define USED_DIN_VAR 4
  12.  
  13.  
  14.  
  15. #define r_undef 0
  16.  
  17. #define r8 1
  18.  
  19. #define r16 2
  20.  
  21. #define r32 4
  22.  
  23. #define r64 8
  24.  
  25. #define r128 16
  26.  
  27.  
  28.  
  29. #define CODE16 0x100
  30.  
  31. #define CODE32 0x200
  32.  
  33. #define THIS_PARAM 0x300
  34.  
  35. #define THIS_REG   0x400
  36.  
  37. #define THIS_NEW   0x500
  38.  
  39. #define THIS_ZEROSIZE 0x600
  40.  
  41.  
  42.  
  43. enum{
  44.  
  45.         dm_other,
  46.  
  47.         dm_none,
  48.  
  49.         dm_def0,
  50.  
  51.         dm_def,
  52.  
  53.         dm_if,
  54.  
  55. };
  56.  
  57.  
  58.  
  59. enum{
  60.  
  61.         STDLEX,
  62.  
  63.         RESLEX,
  64.  
  65.         DEFLEX,
  66.  
  67.         DEFLEX2,
  68.  
  69.         ASMLEX,
  70.  
  71. };
  72.  
  73.  
  74.  
  75. enum{
  76.  
  77.         zero_term,
  78.  
  79.         dos_term,
  80.  
  81.         no_term,
  82.  
  83.         s_unicod=4
  84.  
  85. };
  86.  
  87.  
  88.  
  89. enum{
  90.  
  91.         NOTINITVAR,
  92.  
  93.         INITVAR,
  94.  
  95.         USEDVAR,
  96.  
  97.         INITUSEVAR
  98.  
  99. };
  100.  
  101.  
  102.  
  103. enum{
  104.  
  105.         tp_ucnovn,
  106.  
  107.         tp_declare,
  108.  
  109.         tp_localvar,
  110.  
  111.         tp_paramvar,
  112.  
  113.         tp_postvar,
  114.  
  115.         tp_gvar,
  116.  
  117.         tp_label,
  118.  
  119.         tp_stopper,
  120.  
  121.         tp_opperand,
  122.  
  123.         tp_compare,
  124.  
  125.         tp_modif,
  126.  
  127.         tp_ofs,
  128.  
  129.         tp_classvar,
  130.  
  131. };
  132.  
  133.  
  134.  
  135. enum{
  136.  
  137.         stdcompr,
  138.  
  139.         voidcompr=4,
  140.  
  141.         zerocompr=8,
  142.  
  143.         ecxzcompr=0xc,
  144.  
  145.         cxzcompr=0x10,
  146.  
  147.         ecxnzcompr=0x14,
  148.  
  149.         cxnzcompr=0x18
  150.  
  151. };
  152.  
  153.  
  154.  
  155. enum{
  156.  
  157.         tk_eof,         tk_number,      tk_string,      tk_id,          tk_ID,
  158.  
  159.         tk_assign,      tk_swap,        tk_minus,       tk_plus,        tk_minusminus,
  160.  
  161.         tk_plusplus,    tk_mult,        tk_div,         tk_mod,         tk_multminus,
  162.  
  163.         tk_divminus,    tk_modminus,    tk_rr,          tk_ll,          tk_rrminus,
  164.  
  165.   tk_llminus,     tk_minusequals, tk_plusequals,  tk_rrequals,    tk_llequals,
  166.  
  167.         tk_or,          tk_and,         tk_xor,         tk_not,         tk_orminus,
  168.  
  169.         tk_andminus,    tk_xorminus,    tk_orequals,    tk_andequals,   tk_xorequals,
  170.  
  171.         tk_equalto,     tk_notequal,    tk_greater,     tk_greaterequal,tk_less,
  172.  
  173. //40
  174.  
  175.         tk_lessequal,   tk_oror,        tk_andand,      tk_openbrace,   tk_closebrace,
  176.  
  177.         tk_openbracket, tk_closebracket,tk_openblock,   tk_closeblock,  tk_colon,
  178.  
  179.  
  180.  
  181.         tk_semicolon,   tk_camma,       tk_period,      tk_at,          tk_numsign,
  182.  
  183.   tk_dollar,      tk_question,    tk_tilda,
  184.  
  185.                                                                                                                                                                                             tk_void,        tk_char,
  186.  
  187. //60
  188.  
  189.         tk_byte,        tk_int,         tk_word,        tk_long,        tk_dword,
  190.  
  191.         tk_float,       tk_qword,       tk_double,
  192.  
  193.                                                                                                   tk_if,          tk_IF,
  194.  
  195.         tk_else,        tk_ELSE,        tk_loop,        tk_do,          tk_while,
  196.  
  197.         tk_return,      tk_from,        tk_extract,     tk_interrupt,   tk_far,
  198.  
  199. //80
  200.  
  201.         tk_enum,        tk_seg,         tk_debugreg,    tk_controlreg,  tk_testreg,
  202.  
  203.         tk_undefproc,   tk_proc,        tk_interruptproc,
  204.  
  205.                                                                                                   tk_bits,        tk_charvar,
  206.  
  207. //90
  208.  
  209.         tk_bytevar,     tk_intvar,      tk_wordvar,     tk_longvar,     tk_dwordvar,
  210.  
  211.         tk_floatvar,    tk_qwordvar,    tk_doublevar,   tk_reg,         tk_beg,
  212.  
  213. //100
  214.  
  215.         tk_reg32,       tk_rmnumber,    tk_postnumber,  tk_locallabel,  tk_overflowflag,
  216.  
  217.         tk_notoverflowflag,tk_carryflag,tk_notcarryflag,tk_zeroflag,    tk_notzeroflag,
  218.  
  219. //110
  220.  
  221.         tk_comment1,    tk_comment2,            tk_minusflag,   tk_plusflag,    tk_RETURN,
  222.  
  223.         tk_dataptr,     tk_codeptr,     tk_postptr,     tk_stackstart,  tk_inline,
  224.  
  225. //120
  226.  
  227.         tk_GOTO,        tk_goto,        tk_BREAK,       tk_break,       tk_CONTINUE,
  228.  
  229.         tk_continue,    tk_WHILE,       tk_FOR,         tk_for,         tk_asm,
  230.  
  231. //130
  232.  
  233.         tk_switch,      tk_case,        tk_default,     tk_mmxreg,      tk_fpust,
  234.  
  235.         tk_multequals,  tk_divequals,   tk_struct,      tk_structvar,   tk_sizeof,
  236.  
  237. //140
  238.  
  239.         tk_undefofs,    tk_pointer,     tk_localpointer,tk_parampointer,tk_apiproc,
  240.  
  241.         tk_extern,      tk_declare,     tk_pascal,      tk_cdecl,       tk_stdcall,
  242.  
  243. //150
  244.  
  245.         tk_fastcall,    tk_union,       tk_export,      tk_multipoint,  tk_LOOPNZ,
  246.  
  247.         tk_loopnz,      tk_idasm,       tk_short,       tk_unsigned,    tk_signed,
  248.  
  249. //160
  250.  
  251.         tk_file,        tk_line,        tk_SWITCH,      tk_CASE,        tk_xmmreg,
  252.  
  253.         tk_dblcolon,    tk_static,      tk_baseclass,   tk_rescommand,  tk_endline,
  254.  
  255. //170
  256.  
  257.   tk_singlquote,        tk_new,         tk_delete,      tk_macro,       tk_reg64,
  258.  
  259.         tk_newline,     tk_apioffset,    tokens
  260.  
  261. };
  262.  
  263.  
  264.  
  265. // 16-bit word regs
  266.  
  267. #define AX              0
  268.  
  269. #define CX              1
  270.  
  271. #define DX              2
  272.  
  273. #define BX              3
  274.  
  275. #define SP              4
  276.  
  277. #define BP              5
  278.  
  279. #define SI              6
  280.  
  281. #define DI              7
  282.  
  283.  
  284.  
  285. // 8-bit byte regs
  286.  
  287. #define AL              0
  288.  
  289. #define CL              1
  290.  
  291. #define DL              2
  292.  
  293. #define BL              3
  294.  
  295. #define AH              4
  296.  
  297. #define CH              5
  298.  
  299. #define DH              6
  300.  
  301. #define BH              7
  302.  
  303.  
  304.  
  305. // 386+ 32-bit regs
  306.  
  307. #define EAX             0
  308.  
  309. #define ECX             1
  310.  
  311. #define EDX             2
  312.  
  313. #define EBX             3
  314.  
  315. #define ESP             4
  316.  
  317. #define EBP             5
  318.  
  319. #define ESI             6
  320.  
  321. #define EDI             7
  322.  
  323.  
  324.  
  325. //ª®­à®«ì à §àã襭¨ï ॣ¨áâ஢
  326.  
  327. #define dEAX 1
  328.  
  329. #define dECX 2
  330.  
  331. #define dEDX 4
  332.  
  333. #define dEBX 8
  334.  
  335. #define dESP 16
  336.  
  337. #define dEBP 32
  338.  
  339. #define dESI 64
  340.  
  341. #define dEDI 128
  342.  
  343.  
  344.  
  345. #define ES              0
  346.  
  347. #define CS              1
  348.  
  349. #define SS              2
  350.  
  351. #define DS              3
  352.  
  353. #define FS              4
  354.  
  355. #define GS              5
  356.  
  357. #define VARPOST 9
  358.  
  359. #define USEDSTR 10
  360.  
  361. // 386+ control regs
  362.  
  363. #define CR0             0
  364.  
  365. #define CR1             1
  366.  
  367. #define CR2             2
  368.  
  369. #define CR3             3
  370.  
  371. #define CR4             4
  372.  
  373. #define CR5             5
  374.  
  375. #define CR6             6
  376.  
  377. #define CR7             7
  378.  
  379.  
  380.  
  381. // 386+ test regs
  382.  
  383. #define TR0             0
  384.  
  385. #define TR1             1
  386.  
  387. #define TR2             2
  388.  
  389. #define TR3             3
  390.  
  391. #define TR4             4
  392.  
  393. #define TR5             5
  394.  
  395. #define TR6             6
  396.  
  397. #define TR7             7
  398.  
  399.  
  400.  
  401. // 386+ debug regs
  402.  
  403. #define DR0             0
  404.  
  405. #define DR1             1
  406.  
  407. #define DR2             2
  408.  
  409. #define DR3             3
  410.  
  411. #define DR4             4
  412.  
  413. #define DR5             5
  414.  
  415. #define DR6             6
  416.  
  417. #define DR7             7
  418.  
  419.  
  420.  
  421. //¯¥à¥¬¥­­ ï, 㪠§ â¥«ì, ¤ «ì­¨© 㪠§ â¥«ì,ᥣ¬¥­â­ë© 㪠§ â¥«ì.
  422.  
  423. #define variable        0
  424.  
  425. #define pointer         1
  426.  
  427. //#define       farpointer      2
  428.  
  429.  
  430.  
  431. // define exit codes
  432.  
  433. #define e_ok            0
  434.  
  435. #define e_outofmemory   1
  436.  
  437. #define e_cannotopeninput       2
  438.  
  439. #define e_toomanyerrors 3
  440.  
  441. #define e_internalerror 4
  442.  
  443. #define e_noinputspecified      5
  444.  
  445. #define e_unknowncommandline    6
  446.  
  447. #define e_entrynotfound 7
  448.  
  449. #define e_outputtoobig  8
  450.  
  451. #define e_notcreateoutput 9
  452.  
  453. #define e_preprocess 10
  454.  
  455. #define e_someerrors    13
  456.  
  457. #define e_badinputfilename      14
  458.  
  459. #define e_symbioerror   15
  460.  
  461. #define e_manyinclude   16
  462.  
  463.  
  464.  
  465. #define rm_mod00        0
  466.  
  467. #define rm_mod01        64
  468.  
  469. #define rm_mod10        128
  470.  
  471. #define rm_mod11        192
  472.  
  473. #define rm_d16          6
  474.  
  475. #define rm_BXSI         0
  476.  
  477. #define rm_BXDI         1
  478.  
  479. #define rm_BPSI         2
  480.  
  481. #define rm_BPDI         3
  482.  
  483. #define rm_SI           4
  484.  
  485. #define rm_DI           5
  486.  
  487. #define rm_BP           6
  488.  
  489. #define rm_BX           7
  490.  
  491. #define rm_sib          4
  492.  
  493. #define rm_d32          5
  494.  
  495. #define rm_EBP          5
  496.  
  497.  
  498.  
  499. // posttype values for call or jump types or post variables
  500.  
  501. enum{
  502.  
  503. CALL_NONE,      //0
  504.  
  505. CALL_SHORT,     // 1
  506.  
  507. BREAK_SHORT,    // 2
  508.  
  509. CONTINUE_SHORT, // 3
  510.  
  511. CALL_NEAR,      // 4
  512.  
  513. //CALL_NEARD,
  514.  
  515. JMP_NEAR,       // 5
  516.  
  517. BREAK_NEAR,     // 6
  518.  
  519. CONTINUE_NEAR,  // 7
  520.  
  521.  
  522.  
  523. CALL_32,        //8
  524.  
  525. //CALL_32D,
  526.  
  527. JMP_32, // 9
  528.  
  529. BREAK_32,       // 10
  530.  
  531. CONTINUE_32,    // 11
  532.  
  533. UNDEF_OFSET,    //12
  534.  
  535. POST_STRING,    //13
  536.  
  537. POST_STRING32,
  538.  
  539. CALL_EXT,       // 14
  540.  
  541. EXT_VAR,        // 15
  542.  
  543.  
  544.  
  545. CALL_32I,       // 16
  546.  
  547.  
  548.  
  549. POST_VAR,       // 17
  550.  
  551. FIX_VAR,        // 18
  552.  
  553. FIX_CODE,       // 19
  554.  
  555.  
  556.  
  557. POST_VAR32,     // 20
  558.  
  559. FIX_VAR32,      // 21
  560.  
  561. FIX_CODE32,     // 22
  562.  
  563.  
  564.  
  565. POST_FLOATNUM,  // 23
  566.  
  567. DATABLOCK_VAR,  //24
  568.  
  569. DATABLOCK_VAR32,        //25
  570.  
  571. DIN_VAR,        //26
  572.  
  573. DIN_VAR32,       //27
  574.  
  575.  
  576.  
  577. CODE_SIZE,
  578.  
  579. CODE_SIZE32,
  580.  
  581. DATA_SIZE,
  582.  
  583. DATA_SIZE32,
  584.  
  585. POST_SIZE,
  586.  
  587. POST_SIZE32,
  588.  
  589. STACK_SIZE,
  590.  
  591. STACK_SIZE32,
  592.  
  593.  
  594.  
  595. FIX_CODE_ADD,
  596.  
  597. //DATABLOCK_STRING,     // 26
  598.  
  599. //DATABLOCK_STRING32    // 27
  600.  
  601. };
  602.  
  603.  
  604.  
  605. #define POINTER 0x8000
  606.  
  607. #define NOTPOINTER (~POINTER)
  608.  
  609.  
  610.  
  611. // format of output file
  612.  
  613. #define file_exe        0
  614.  
  615. #define file_com        1
  616.  
  617. #define file_sys        2
  618.  
  619. #define file_rom        3
  620.  
  621. #define file_w32        4
  622.  
  623. #define file_d32        5
  624.  
  625. #define file_meos 6
  626.  
  627. #define file_bin  7
  628.  
  629.  
  630.  
  631. //â¨¯ë ¬®¤¥«¥© ¯ ¬ïâ¨
  632.  
  633. #define TINY            0
  634.  
  635. #define SMALL           1
  636.  
  637.  
  638.  
  639.  
  640.  
  641. //ä« £¨
  642.  
  643. #define f_reloc         1       // ¤à¥á ¬®¦¥â ¨§¬¥­¨âìáï
  644.  
  645. #define f_typeproc      6       //⨯ ¢ë§®¢  ¯à®æ¥¤ãàë
  646.  
  647. #define f_far           8       //¤ «ì­ïï ¯à®æ¥¤ãà 
  648.  
  649. #define f_extern        0x10    //¢­¥è­ïï ¯à®æ¥¤ãà , ¯¥à¥¬¥­­ ï
  650.  
  651. #define f_interrupt     0x20    //¯à¥à뢠­¨¥
  652.  
  653. #define f_export        0x40    //íªá¯®àâ¨à㥬 ï ¯à®æ¥¤ãà 
  654.  
  655. #define f_inline  0x80  //inline ¯à®æ¥¤ãà 
  656.  
  657. #define f_retproc 0xf00 //¢®§¢à â ä« £  ¨§ ¯à®æ¥¤ãàë
  658.  
  659. #define f_static  0x1000        //
  660.  
  661. #define f_classproc 0x2000      //¯à®æ¥¤ãà  ¨§ ª« áá 
  662.  
  663. //ä« £¨ ¯à®æ¥¤ãà ¢ áâàãªâãà å
  664.  
  665. #define fs_constructor 0x4000
  666.  
  667. #define fs_destructor 0x8000
  668.  
  669.  
  670.  
  671. #define f_useidx 0x10000        //¯¥à¥¬¥­­ ï ¨á¯®«ì§ã¥â ¨­¤¥ªá []
  672.  
  673.  
  674.  
  675. //â¨¯ë ¯à®æ¥¤ãà
  676.  
  677. #define tp_pascal       0
  678.  
  679. #define tp_cdecl        2
  680.  
  681. #define tp_stdcall      4
  682.  
  683. #define tp_fastcall     6
  684.  
  685.  
  686.  
  687. //â¨¯ë ¢ë§®¢  API ¯à®æ¥¤ãà
  688.  
  689. #define API_FAST        1
  690.  
  691. #define API_JMP         2
  692.  
  693.  
  694.  
  695. #define USEALLREG    8//0
  696.  
  697. //#define USEFIRST4REG 1
  698.  
  699. //#define USEONLY_AX   2
  700.  
  701.  
  702.  
  703. //­ã¬¥à æ¨ï ᯨ᪠ ¤¨à¥ªâ¨¢
  704.  
  705. enum{
  706.  
  707.         d_ctrl,  d_jump, d_command,d_argc, d_resize,
  708.  
  709.         d_resmes,d_stack,d_start,        d_atr,  d_name,
  710.  
  711.         d_com,   d_atex, d_dseg,   d_rsize,d_mdr,
  712.  
  713.         d_stm,   d_fca,  d_suv,    d_us,   d_ib,
  714.  
  715.         d_end1,
  716.  
  717.  
  718.  
  719.         d_align=d_end1, d_aligner,d_alignw,   //d_beep,
  720.  
  721.         d_code,  d_define, d_DOS,   d_endif,  d_ifdef,
  722.  
  723.         d_ifndef,d_incl,   d_error, /*d_pause,*/  d_print,
  724.  
  725.         d_prnex, d_random, d_speed, d_8086,   d_8088,
  726.  
  727.         d_80186, d_80286,  d_80386, d_80486,  d_80586,
  728.  
  729.         d_80686, d_80786,  d_sdp,   d_warning,d_ip,
  730.  
  731.         d_iav,   d_am32,   d_undef,     d_alignc,
  732.  
  733.         d_fut,   d_dstr,   d_cv,        d_else,         d_wmb,
  734.  
  735.         d_pragma,d_inline, d_if,    d_elif,   d_end};
  736.  
  737.  
  738.  
  739. enum{
  740.  
  741.         a_add,a_or, a_adc,a_sbb,a_and, a_sub, a_xor, a_cmp,
  742.  
  743.         a_not,a_neg,a_mul,a_div=a_mul+2,a_idiv,
  744.  
  745.  
  746.  
  747.         a_rol,a_ror,a_rcl,a_rcr,a_shl, a_shr, a_sar=a_shr+2,
  748.  
  749.  
  750.  
  751.         a_bt, a_bts,a_btr,a_btc,
  752.  
  753.  
  754.  
  755.         a_inc,a_dec,
  756.  
  757.  
  758.  
  759.         a_test,a_imul,
  760.  
  761.  
  762.  
  763.         a_shld,a_shrd,
  764.  
  765.  
  766.  
  767.         a_daa,a_das,a_aaa,a_aas,a_aam, a_aad,
  768.  
  769.   a_movzx,a_movsx,a_cbw,a_cwde,a_cwd,a_cdq,
  770.  
  771.         a_bswap,a_xlat,
  772.  
  773.  
  774.  
  775.         a_bsf,a_bsr,
  776.  
  777.  
  778.  
  779.         a_cmpxchg,a_cmpxchg8b,a_xadd,
  780.  
  781.         a_nop,a_wait,a_lock,a_hlt,a_int,
  782.  
  783.         a_into,a_iret,a_iretd,
  784.  
  785.         a_popf,a_popfd,a_pushf,a_pushfd,a_sahf,a_lahf,
  786.  
  787.         a_cmc,a_clc,a_stc,a_cli,a_sti,a_cld,a_std,
  788.  
  789.         a_push,a_pusha,a_pushad,a_pop,a_popa,a_popad,
  790.  
  791.         a_xchg,a_mov,a_lea,
  792.  
  793.  
  794.  
  795.   a_lfs,a_lgs,a_lss,
  796.  
  797.  
  798.  
  799.         a_les,a_lds,
  800.  
  801.  
  802.  
  803.         a_adrsiz,
  804.  
  805.         a_in,a_out,a_insb,a_insw,a_insd,a_outsb,a_outsw,a_outsd,
  806.  
  807.         a_movsb,a_movsw,a_movsd,a_cmpsb,a_cmpsw,a_cmpsd,
  808.  
  809.         a_stosb,a_stosw,a_stosd,a_lodsb,a_lodsw,a_lodsd,
  810.  
  811.         a_scasb,a_scasw,a_scasd,a_repnz,a_rep,
  812.  
  813.         a_jcxz,a_jecxz,a_loop,a_loopd,a_loopz,a_loopnz,
  814.  
  815.  
  816.  
  817.         a_jo,a_jno,a_jc,a_jnc,a_jz,a_jnz,a_jna,a_ja,
  818.  
  819.         a_js,a_jns,a_jp,a_jnp,a_jl,a_jnl,a_jng,a_jg,
  820.  
  821.  
  822.  
  823.         a_seto,a_setno,a_setc,a_setnc,a_setz,a_setnz,a_setna,a_seta,
  824.  
  825.         a_sets,a_setns,a_setp,a_setnp,a_setl,a_setnl,a_setng,a_setg,
  826.  
  827.  
  828.  
  829.         /*a_jmps,a_jmpn,a_jmpf,*/a_jmp,
  830.  
  831.         a_call,/*a_callf,*/a_ret,a_retf,
  832.  
  833.         a_enter,a_leave,a_bound,a_arpl,
  834.  
  835.         a_sldt,a_str,a_lldt,a_ltr,a_verr,a_verw,
  836.  
  837.  
  838.  
  839.         a_lar,a_lsl,
  840.  
  841.  
  842.  
  843.         a_sgdt,a_sidt,a_lgdt,a_lidt,a_smsw,a_lmsw,a_clts,
  844.  
  845.         a_invd,a_wbinvd,//a_invlpd,
  846.  
  847.         a_wrmsr,a_cpuid,a_rdmsr,a_rdtsc,a_rsm,
  848.  
  849.         a_rdpmc,a_ud2,/*a_emmx,a_setalc,*/
  850.  
  851.  
  852.  
  853.         a_punpcklbw,a_punpcklwd,a_punpckldq,
  854.  
  855.         a_packsswb,
  856.  
  857.         a_pcmpgtb,a_pcmpgtw,a_pcmpgtd,
  858.  
  859.         a_packuswb,
  860.  
  861.         a_punpckhbw,a_punpckhwd,a_punpckhdq,
  862.  
  863.   a_packssdw,
  864.  
  865.         a_psrlw,a_psrld,a_psrlq,
  866.  
  867.         a_psraw,a_psrad,
  868.  
  869.         a_psllw,a_pslld,a_psllq,
  870.  
  871.         a_pcmpeqb,a_pcmpeqw,a_pcmpeqd,
  872.  
  873.         a_pmullw,
  874.  
  875.         a_movd,a_movq,
  876.  
  877.         a_psubusb,a_psubusw,
  878.  
  879.         a_emms,
  880.  
  881.         a_pand,
  882.  
  883.         a_paddusb,a_paddusw,
  884.  
  885.         a_pandn,a_pmulhw,
  886.  
  887.         a_psubsb,a_psubsw,
  888.  
  889.         a_por,
  890.  
  891.         a_paddsb,a_paddsw,
  892.  
  893.         a_pxor,
  894.  
  895.         a_pmaddwd,
  896.  
  897.         a_psubb,a_psubw,a_psubd,
  898.  
  899.         a_paddb,a_paddw,a_paddd,
  900.  
  901.  
  902.  
  903.         a_db,a_dw,a_dd,a_invlpg,a_loadall,a_opsiz,
  904.  
  905.         a_f2xm1,a_fabs,a_fadd,a_faddp,a_fbld,a_fbstp,a_fchs,a_fclex,a_fcom,
  906.  
  907.         a_fcomp,a_fnclex,a_fcompp,a_fcos,a_fdecstr,a_fdisi,a_fdiv,a_fdivp,
  908.  
  909.         a_fdivr,a_fdivrp,a_ffree,a_fiadd,a_ficom,a_ficomp,a_fidiv,a_fidivr,
  910.  
  911.         a_fild,a_fildq,a_fimul,a_fist,a_fistp,a_fisub,a_fisubr,a_feni,a_fincstr,
  912.  
  913.         a_finit,a_fninit,a_fld,a_fldcw,a_fldenv,a_fldlg2,a_fldln2,a_fldl2e,
  914.  
  915.         a_fldl2t,a_fldpi,a_fldz,a_fld1,a_fmul,a_fmulp,a_fnop,a_fpatan,a_fprem,
  916.  
  917.         a_fprem1,a_fptan,a_frndint,a_fsetpm,a_frstor,a_fsave,a_fnsave,a_fscale,
  918.  
  919.         a_fsin,a_fsincos,a_fsqrt,a_fst,a_fstcw,a_fnstcw,a_fstp,a_fstsw,a_fnstsw,
  920.  
  921.         a_fstenv,a_fnstenv,a_fsub,a_fsubp,a_fsubr,a_fsubrp,a_ftst,a_fucom,a_fucomp,
  922.  
  923.         a_fucompp,a_fxch,a_fwait,a_fxam,a_fxtract,a_fyl2x,a_fyl2xp1,
  924.  
  925.         a_sysenter,a_sysexit,a_fcmovb,a_fcmove,a_fcmovbe,a_fcmovu,a_fcmovnb,
  926.  
  927.         a_fcmovne,a_fcmovnbe,a_fcmovnu,a_fcomi,a_fcomip,a_fucomi,a_fucomip,
  928.  
  929.         a_fxrstor,a_fxsave,a_fndisi,a_fneni,a_fnsetpm,
  930.  
  931.  
  932.  
  933.         a_cmovo,a_cmovno,a_cmovc,a_cmovnc,a_cmovz,a_cmovnz,a_cmovna,a_cmova,
  934.  
  935.         a_cmovs,a_cmovns,a_cmovp,a_cmovnp,a_cmovl,a_cmovnl,a_cmovng,a_cmovg,
  936.  
  937.  
  938.  
  939. //MMX Pentium III extention
  940.  
  941.         a_maskmovq,  a_movntq,    a_pavgb,      a_pavgw,      a_pextrw,  a_pinsrw,
  942.  
  943.         a_pmaxub,    a_pmaxsw,    a_pminub,     a_pminsw,     a_pmovmskb,a_pmulhuw,
  944.  
  945.         a_prefetcht0,a_prefetcht1,a_prefetcht2, a_prefetchnta,a_sfence,  a_psadbw,
  946.  
  947.         a_pshufw,
  948.  
  949. //XMM extentions Pentium III
  950.  
  951.         a_addps,    a_addss,   a_andnps,  a_andps,   a_cmpps,   a_cmpss,
  952.  
  953.         a_comiss,   a_cvtpi2ps,a_cvtps2pi,a_cvtsi2ss,a_cvtss2si,a_cvttps2pi,
  954.  
  955.         a_cvttss2si,a_divps,   a_divss,   a_ldmxcsr, a_maxps,   a_maxss,
  956.  
  957.         a_minps,    a_minss,   a_movaps,  a_movhlps, a_movhps,  a_movlhps,
  958.  
  959.         a_movlps,   a_movmskps,a_movss,   a_movups,  a_mulps,   a_mulss,
  960.  
  961.         a_movntps,  a_orps,    a_rcpps,   a_rcpss,   a_rsqrtps, a_rsqrtss,
  962.  
  963.         a_shufps,   a_sqrtps,  a_sqrtss,  a_stmxcsr, a_subps,   a_subss,
  964.  
  965.         a_ucomiss,  a_unpckhps,a_unpcklps,a_xorps,
  966.  
  967.  
  968.  
  969. // Pentium IV
  970.  
  971.         a_lfence,  a_mfence,    a_addpd,     a_addsd,     a_andpd,     a_andnpd,
  972.  
  973.         a_cmppd,   a_comisd,    a_cvtdq2pd,  a_cvtdq2ps,  a_cvtpd2dq,  a_cvtpd2pi,
  974.  
  975.         a_cvtpd2ps,a_cvtpi2pd,  a_cvtps2dq,  a_cvtps2pd,  a_cvtsd2si,  a_cvtsd2ss,
  976.  
  977.         a_cvtsi2sd,a_cvtss2sd,  a_cvttpd2pi, a_cvttpd2dq, a_cvttps2dq, a_cvttsd2si,
  978.  
  979.         a_divpd,   a_divsd,     a_maskmovdqu,a_maxpd,     a_maxsd,     a_minpd,
  980.  
  981.         a_minsd,   a_movapd,    a_movdqa,    a_movdqu,    a_movdq2q,   a_movhpd,
  982.  
  983.         a_movlpd,  a_movmskpd,  a_movntdq,   a_movntpd,   a_movnti,    a_movq2dq,
  984.  
  985.         a_movupd,  a_mulpd,     a_mulsd,     a_orpd,      a_pshufd,    a_pshufhw,
  986.  
  987.         a_pshuflw, a_pslldq,    a_psrldq,    a_shufpd,    a_sqrtpd,    a_sqrtsd,
  988.  
  989.         a_subpd,   a_subsd,     a_ucomisd,   a_unpckhpd,  a_unpcklpd,  a_xorpd,
  990.  
  991.         a_paddq,   a_pmuludq,   a_psubq,     a_punpckhqdq,a_punpcklqdq,a_clflush,
  992.  
  993.         a_monitor, a_mwait,     a_addsubpd,  a_addsubps,  a_cmpeqsd,   a_cmpltsd,
  994.  
  995.         a_cmplesd, a_cmpunordsd,a_cmpneqsd,  a_cmpnltsd,  a_cmpnlesd,  a_cmpordsd,
  996.  
  997.         a_cmpeqpd, a_cmpltpd,   a_cmplepd,   a_cmpunordpd,a_cmpneqpd,  a_cmpnltpd,
  998.  
  999.         a_cmpnlepd,a_cmpordpd,  a_cmpeqps,   a_cmpltps,   a_cmpleps,   a_cmpunordps,
  1000.  
  1001.         a_cmpneqps,a_cmpnltps,  a_cmpnleps,  a_cmpordps,  a_cmpeqss,   a_cmpltss,
  1002.  
  1003.         a_cmpless, a_cmpunordss,a_cmpneqss,  a_cmpnltss,  a_cmpnless,  a_cmpordss,
  1004.  
  1005.         a_haddpd,  a_haddps,    a_hsubpd,    a_hsubps,    a_lddqu,     a_movddup,
  1006.  
  1007.         a_movshdup,a_movsldup,  a_pause,
  1008.  
  1009.  
  1010.  
  1011.         a_end};
  1012.  
  1013.  
  1014.  
  1015. enum{
  1016.  
  1017.         pF3=1,
  1018.  
  1019.         pF2,
  1020.  
  1021.         p66
  1022.  
  1023. };
  1024.  
  1025.  
  1026.  
  1027.