Subversion Repositories Kolibri OS

Rev

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

  1. #define NUM_ASM_MODIF 12
  2.  
  3.  
  4.  
  5. char *asmmodif[]={
  6.  
  7.         "FAR",  "SHORT",  "NEAR", "DUP",   "INT","WORD","LONG","DWORD",
  8.  
  9.         "TBYTE","LDOUBLE","QWORD","DOUBLE"
  10.  
  11. };
  12.  
  13. //á«®¢  ¬®¤¨ä¨ª â®àë
  14.  
  15. #define m_far   1
  16.  
  17. #define m_short 2
  18.  
  19. #define m_near  4
  20.  
  21. #define m_dup   8
  22.  
  23. #define m_int   16
  24.  
  25. #define m_word  32
  26.  
  27. #define m_long  64
  28.  
  29. #define m_dword 128
  30.  
  31. #define m_tbyte 256
  32.  
  33. #define m_ldouble 512
  34.  
  35. #define m_qword   1024
  36.  
  37. #define m_double  2048
  38.  
  39.  
  40.  
  41. //ª®­à®«ì à §àã襭¨ï ॣ¨áâ஢
  42.  
  43. #define d1par 256       //¯® ¯¥à¢®¬ã ®¯¥à ­¤ã
  44.  
  45. #define d2par 512       //¯® 2 ®¯¥à ­¤ã
  46.  
  47.  
  48.  
  49. struct ASMPAR
  50.  
  51. {
  52.  
  53.         unsigned char num;  //ç¨á«® ®¯¥à ­¤®¢ ¬« ¤è¨¥ 4 ¡¨â  ¬¨­¨¬ «ì­®¥ ç¨á«®,
  54.  
  55.                             // áâ à訥 4 ¬ ªá¨¬ «ì­®¥, ¥á«¨ 0, ⮠⮫쪮 ¬« ¤è¥¥,
  56.  
  57.                             // ¥á«¨ 15, â® ­¥®£à ­¨ç¥­®
  58.  
  59.         unsigned char chip; // ­¥®¡å®¤¨¬ë© cpu
  60.  
  61.         unsigned short reg; // à §àãè ¥¬ë¥ ॣ¨áâàë
  62.  
  63.         unsigned short mod; // á«®¢®-¬®¤¨ä¨ª â®à
  64.  
  65. }asmpar[]={
  66.  
  67.         2,0,d1par,0,    //a_add
  68.  
  69.         2,0,d1par,0,    //a_or
  70.  
  71.         2,0,d1par,0,    //a_adc
  72.  
  73.         2,0,d1par,0,    //a_sbb
  74.  
  75.         2,0,d1par,0,    //a_and
  76.  
  77.         2,0,d1par,0,    //a_sub
  78.  
  79.         2,0,d1par,0,    //a_xor
  80.  
  81.         2,0,d1par,0,    //a_cmp
  82.  
  83.         1,0,d1par,0,    //a_not
  84.  
  85.         1,0,d1par,0,    //a_neg
  86.  
  87.         1,0,dEAX|dEDX,0,        //a_mul
  88.  
  89.         0,0,0,0,
  90.  
  91.         1,0,dEAX|dEDX,0,        //a_div=a_mul+2
  92.  
  93.         1,0,dEAX|dEDX,0,        //a_idiv
  94.  
  95.         2,0,d1par,0,    //a_rol
  96.  
  97.         2,0,d1par,0,    //a_ror
  98.  
  99.         2,0,d1par,0,    //a_rcl
  100.  
  101.         2,0,d1par,0,    //a_rcr
  102.  
  103.         2,0,d1par,0,    //a_shl
  104.  
  105.         2,0,d1par,0,    //a_shr
  106.  
  107.         0,0,0,0,
  108.  
  109.         2,0,d1par,0,    //a_sar=a_shr+2
  110.  
  111.         2,3,0,0,        //a_bt
  112.  
  113.         2,3,d1par,0,    //a_bts
  114.  
  115.         2,3,d1par,0,    //a_btr
  116.  
  117.         2,3,d1par,0,    //a_btc
  118.  
  119.         1,0,d1par,0,    //a_inc
  120.  
  121.         1,0,d1par,0,    //a_dec
  122.  
  123.         2,0,0,0,        //a_test
  124.  
  125.         0x31,0,d1par|dEAX|dEDX,0,       //a_imul
  126.  
  127.         3,3,d1par,0,    //a_shld
  128.  
  129.         3,3,d1par,0,    //a_shrd
  130.  
  131.         0,0,dEAX,0,     //a_daa
  132.  
  133.         0,0,dEAX,0,     //a_das
  134.  
  135.         0,0,dEAX,0,     //a_aaa
  136.  
  137.         0,0,dEAX,0,     //a_aas
  138.  
  139.         0x10,0,dEAX,0//a_aam
  140.  
  141.         0x10,0,dEAX,0//a_aad
  142.  
  143.         2,3,d1par,0,    //a_movzx
  144.  
  145.         2,3,d1par,0,    //a_movsx
  146.  
  147.         0,0,dEAX,0,     //a_cbw
  148.  
  149.         0,3,dEAX,0,     //a_cwde
  150.  
  151.         0,0,dEDX,0,     //a_cwd
  152.  
  153.         0,3,dEDX,0,     //a_cdq,
  154.  
  155.         1,4,d1par,0,    //a_bswap
  156.  
  157.         0,0,dEAX,0,     //a_xlat
  158.  
  159.         2,3,d1par,0,    //a_bsf
  160.  
  161.         2,3,d1par,0,    //a_bsr
  162.  
  163.         2,4,d1par|dEAX,0,       //a_cmpxchg
  164.  
  165.         1,5,d1par|dEDX|dEAX,0//a_cmpxchg8b
  166.  
  167.         2,4,d1par|d2par,0,      //a_xadd
  168.  
  169.         0,0,0,0,        //a_nop
  170.  
  171.         0,0,0,0,        //a_wait
  172.  
  173.         0,0,0,0,        //a_lock
  174.  
  175.         0,0,0,0,        //a_hlt
  176.  
  177.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,0//a_int
  178.  
  179.         0,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,0//a_into
  180.  
  181.         0,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,0//a_iret
  182.  
  183.         0,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,0//a_iretd
  184.  
  185.         0,0,0,0,        //a_popf
  186.  
  187.         0,3,0,0,        //a_popfd
  188.  
  189.         0,0,0,0,        //a_pushf
  190.  
  191.         0,3,0,0,        //a_pushfd
  192.  
  193.         0,0,0,0,        //a_sahf
  194.  
  195.         0,0,dEAX,0,     //a_lahf
  196.  
  197.         0,0,0,0,        //a_cmc
  198.  
  199.         0,0,0,0,        //a_clc
  200.  
  201.         0,0,0,0,        //a_stc
  202.  
  203.         0,0,0,0,        //a_cli
  204.  
  205.         0,0,0,0,        //a_sti
  206.  
  207.         0,0,0,0,        //a_cld
  208.  
  209.         0,0,0,0,        //a_std
  210.  
  211.         0xF1,0,0,m_int|m_word|m_long|m_dword,   //a_push
  212.  
  213.         0,2,0,0,        //a_pusha
  214.  
  215.         0,3,0,0,        //a_pushad
  216.  
  217.         0xF1,0,d1par,0, //a_pop
  218.  
  219.         0,2,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,0//a_popa
  220.  
  221.         0,3,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,0//a_popad
  222.  
  223.         2,0,d1par|d2par,0,      //a_xchg
  224.  
  225.         2,0,d1par,0,    //a_mov
  226.  
  227.         2,0,d1par,0,    //a_lea
  228.  
  229.         2,3,d1par,0,    //a_lfs
  230.  
  231.         2,3,d1par,0,    //a_lgs
  232.  
  233.         2,3,d1par,0,    //a_lss
  234.  
  235.         2,0,d1par,0,    //a_les
  236.  
  237.         2,0,d1par,0,    //a_lds
  238.  
  239.         0,3,0,0,        //a_adrsiz
  240.  
  241.         2,0,dEAX,0,     //a_in
  242.  
  243.         2,0,0,0,        //a_out
  244.  
  245.         0,2,dEAX|dEDI,0,        //a_insb
  246.  
  247.         0,2,dEAX|dEDI,0,        //a_insw
  248.  
  249.         0,3,dEAX|dEDI,0,        //a_insd
  250.  
  251.         0,2,dESI,0,     //a_outsb
  252.  
  253.         0,2,dESI,0,     //a_outsw
  254.  
  255.         0,3,dESI,0,     //a_outsd
  256.  
  257.         0,0,dEDI|dESI,0,        //a_movsb
  258.  
  259.         0,0,dEDI|dESI,0,        //a_movsw
  260.  
  261.         0x20,3,dEDI|dESI,0,     //a_movsd
  262.  
  263.         0,0,dEDI|dESI,0,        //a_cmpsb
  264.  
  265.         0,0,dEDI|dESI,0,        //a_cmpsw
  266.  
  267.         0x20,3,dEDI|dESI,0,     //a_cmpsd
  268.  
  269.         0,0,dEDI,0,     //a_stosb
  270.  
  271.         0,0,dEDI,0,     //a_stosw
  272.  
  273.         0,3,dEDI,0,     //a_stosd
  274.  
  275.         0,0,dEAX|dESI,0,        //a_lodsb
  276.  
  277.         0,0,dEAX|dESI,0,        //a_lodsw
  278.  
  279.         0,3,dEAX|dESI,0,        //a_lodsd
  280.  
  281.         0,0,dEDI,0,     //a_scasb
  282.  
  283.         0,0,dEDI,0,     //a_scasw
  284.  
  285.         0,3,dEDI,0,     //a_scasd
  286.  
  287.         0,0,dECX,0,     //a_repnz
  288.  
  289.         0,0,dECX,0,     //a_rep
  290.  
  291.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,       //a_jcxz
  292.  
  293.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,       //a_jecxz
  294.  
  295.         1,0,dECX,0,     //a_loop
  296.  
  297.         1,3,dECX,0,     //a_loopd
  298.  
  299.         1,0,dECX,0,     //a_loopz
  300.  
  301.         1,0,dECX,0,     //a_loopnz
  302.  
  303.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,       //a_jo
  304.  
  305.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,       //a_jno
  306.  
  307.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,       //a_jc
  308.  
  309.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,       //a_jnc
  310.  
  311.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,       //a_jz
  312.  
  313.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,       //a_jnz
  314.  
  315.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,       //a_jna
  316.  
  317.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,       //a_ja
  318.  
  319.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,       //a_js
  320.  
  321.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,       //a_jns
  322.  
  323.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,       //a_jp
  324.  
  325.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,       //a_jnp
  326.  
  327.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,       //a_jl
  328.  
  329.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,       //a_jnl
  330.  
  331.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,       //a_jng
  332.  
  333.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,       //a_jg
  334.  
  335.         1,3,d1par,0,    //a_seto
  336.  
  337.         1,3,d1par,0,    //a_setno
  338.  
  339.         1,3,d1par,0,    //a_setc
  340.  
  341.         1,3,d1par,0,    //a_setnc
  342.  
  343.         1,3,d1par,0,    //a_setz
  344.  
  345.         1,3,d1par,0,    //a_setnz
  346.  
  347.         1,3,d1par,0,    //a_setna
  348.  
  349.         1,3,d1par,0,    //a_seta
  350.  
  351.         1,3,d1par,0,    //a_sets
  352.  
  353.         1,3,d1par,0,    //a_setns
  354.  
  355.         1,3,d1par,0,    //a_setp
  356.  
  357.         1,3,d1par,0,    //a_setnp
  358.  
  359.         1,3,d1par,0,    //a_setl
  360.  
  361.         1,3,d1par,0,    //a_setnl
  362.  
  363.         1,3,d1par,0,    //a_setng
  364.  
  365.         1,3,d1par,0,    //a_setg
  366.  
  367.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near|m_short,       //a_jmp
  368.  
  369.         1,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,m_far|m_near,       //a_call/*a_callf,*/
  370.  
  371.         0x10,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,0,       //a_ret
  372.  
  373.         0x10,0,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,0,       //a_retf
  374.  
  375.         2,2,dEBP|dESP,0,        //a_enter
  376.  
  377.         0,2,dEBP|dESP,0,        //a_leave
  378.  
  379.         2,2,dEAX|dEBX|dECX|dEDX|dESI|dEDI|dEBP|dESP,0//a_bound
  380.  
  381.         2,2,d1par,0,    //a_arpl
  382.  
  383.         1,2,d1par,0,    //a_sldt
  384.  
  385.         1,2,d1par,0,    //a_str
  386.  
  387.         1,2,0,0,        //a_lldt
  388.  
  389.         1,2,0,0,        //a_ltr
  390.  
  391.         1,2,0,0,        //a_verr
  392.  
  393.         1,2,0,0,        //a_verw
  394.  
  395.         2,2,d1par,0,    //a_lar
  396.  
  397.         2,2,d1par,0,    //a_lsl
  398.  
  399.         1,2,d1par,0,    //a_sgdt
  400.  
  401.         1,2,d1par,0,    //a_sidt
  402.  
  403.         1,2,0,0,        //a_lgdt
  404.  
  405.         1,2,0,0,        //a_lidt
  406.  
  407.         1,2,d1par,0,    //a_smsw
  408.  
  409.         1,2,0,0,        //a_lmsw
  410.  
  411.         0,2,0,0,        //a_clts
  412.  
  413.         0,4,0,0,        //a_invd
  414.  
  415.         0,4,0,0,        //a_wbinvd
  416.  
  417.         //a_invlpd,
  418.  
  419.         0,5,0,0,        //a_wrmsr
  420.  
  421.         0,5,dEAX|dEBX|dECX|dEDX,0,      //a_cpuid
  422.  
  423.         0,5,dEAX|dEDX,0,        //a_rdmsr
  424.  
  425.         0,5,dEAX|dEDX,0,        //a_rdtsc
  426.  
  427.         0,5,0,0,        //a_rsm
  428.  
  429.         0,7,dEAX|dEDX,0,        //a_rdpmc
  430.  
  431.         0,7,0,0,        //a_ud2
  432.  
  433.         /*a_emmx,a_setalc,*/
  434.  
  435.         2,8,0,0,        //a_punpcklbw
  436.  
  437.         2,8,0,0,        //a_punpcklwd
  438.  
  439.         2,8,0,0,        //a_punpckldq
  440.  
  441.         2,8,0,0,        //a_packsswb
  442.  
  443.         2,8,0,0,        //a_pcmpgtb
  444.  
  445.         2,8,0,0,        //a_pcmpgtw
  446.  
  447.         2,8,0,0,        //a_pcmpgtd
  448.  
  449.         2,8,0,0,        //a_packuswb
  450.  
  451.         2,8,0,0,        //a_punpckhbw
  452.  
  453.         2,8,0,0,        //a_punpckhwd
  454.  
  455.         2,8,0,0,        //a_punpckhdq
  456.  
  457.         2,8,0,0,        //a_packssdw
  458.  
  459.         2,6,0,0,        //a_psrlw
  460.  
  461.         2,6,0,0,        //a_psrld
  462.  
  463.         2,6,0,0,        //a_psrlq
  464.  
  465.         2,6,0,0,        //a_psraw
  466.  
  467.         2,6,0,0,        //a_psrad
  468.  
  469.         2,6,0,0,        //a_psllw
  470.  
  471.         2,6,0,0,        //a_pslld
  472.  
  473.         2,6,0,0,        //a_psllq
  474.  
  475.         2,8,0,0,        //a_pcmpeqb
  476.  
  477.         2,8,0,0,        //a_pcmpeqw
  478.  
  479.         2,8,0,0,        //a_pcmpeqd
  480.  
  481.         2,8,0,0,        //a_pmullw
  482.  
  483.         2,6,d1par,0,    //a_movd
  484.  
  485.         2,6,d1par,0,    //a_movq
  486.  
  487.         2,8,0,0,        //a_psubusb
  488.  
  489.         2,8,0,0,        //a_psubusw
  490.  
  491.         0,6,0,0,        //a_emms
  492.  
  493.         2,8,0,0,        //a_pand
  494.  
  495.         2,8,0,0,        //a_paddusb
  496.  
  497.         2,8,0,0,        //a_paddusw
  498.  
  499.         2,8,0,0,        //a_pandn
  500.  
  501.         2,8,0,0,        //a_pmulhw
  502.  
  503.         2,8,0,0,        //a_psubsb
  504.  
  505.         2,8,0,0,        //a_psubsw
  506.  
  507.         2,8,0,0,        //a_por
  508.  
  509.         2,8,0,0,        //a_paddsb
  510.  
  511.         2,8,0,0,        //a_paddsw
  512.  
  513.         2,8,0,0,        //a_pxor
  514.  
  515.         2,8,0,0,        //a_pmaddwd
  516.  
  517.         2,8,0,0,        //a_psubb
  518.  
  519.         2,8,0,0,        //a_psubw
  520.  
  521.         2,8,0,0,        //a_psubd
  522.  
  523.         2,8,0,0,        //a_paddb
  524.  
  525.         2,8,0,0,        //a_paddw
  526.  
  527.         2,8,0,0,        //a_paddd
  528.  
  529.         0xF1,0,0,m_dup, //a_db
  530.  
  531.         0xF1,0,0,m_dup, //a_dw
  532.  
  533.         0xF1,3,0,m_dup, //a_dd
  534.  
  535.         1,4,0,0,        //a_invlpg
  536.  
  537.         0,2,0,0,        //a_loadall
  538.  
  539.         0,3,0,0,        //a_opsiz
  540.  
  541.         0,2,0,0,        //a_f2xm1
  542.  
  543.         0,0,0,0,        //a_fabs
  544.  
  545.         0x21,0,0,m_double,      //a_fadd
  546.  
  547.         0x20,0,0,0,     //a_faddp
  548.  
  549.         1,0,0,m_qword|m_tbyte,  //a_fbld
  550.  
  551.         1,0,d1par,m_qword|m_tbyte,      //a_fbstp
  552.  
  553.         0,0,0,0,        //a_fchs
  554.  
  555.         0,0,0,0,        //a_fclex
  556.  
  557.         0x10,0,0,m_double,      //a_fcom
  558.  
  559.         0x10,0,0,m_double,      //a_fcomp
  560.  
  561.         0,0,0,0,        //a_fnclex
  562.  
  563.         0,0,0,0,        //a_fcompp
  564.  
  565.         0,3,0,0,        //a_fcos
  566.  
  567.         0,0,0,0,        //a_fdecstr
  568.  
  569.         0,0,0,0,        //a_fdisi
  570.  
  571.         0x21,0,0,m_double,      //a_fdiv
  572.  
  573.         0x20,0,0,0,     //a_fdivp
  574.  
  575.         0x21,0,0,m_double,      //a_fdivr
  576.  
  577.         0x20,0,0,0,     //a_fdivrp
  578.  
  579.         1,0,0,0,        //a_ffree
  580.  
  581.         1,0,0,0,        //a_fiadd
  582.  
  583.         1,0,0,0,        //a_ficom
  584.  
  585.         1,0,0,0,        //a_ficomp
  586.  
  587.         1,0,0,0,        //a_fidiv
  588.  
  589.         1,0,0,0,        //a_fidivr
  590.  
  591.         1,0,0,0,        //a_fild
  592.  
  593.         1,0,0,m_qword|m_tbyte,  //a_fildq
  594.  
  595.         1,0,0,0,        //a_fimul
  596.  
  597.         1,0,d1par,0,    //a_fist
  598.  
  599.         1,0,d1par,0,    //a_fistp
  600.  
  601.         1,0,0,0,        //a_fisub
  602.  
  603.         1,0,0,0,        //a_fisubr
  604.  
  605.         0,0,0,0,        //a_feni
  606.  
  607.         0,0,0,0,        //a_fincstr
  608.  
  609.         0,0,0,0,        //a_finit
  610.  
  611.         0,0,0,0,        //a_fninit
  612.  
  613.         1,0,0,m_qword|m_double|m_tbyte|m_ldouble,       //a_fld
  614.  
  615.         1,0,0,0,        //a_fldcw
  616.  
  617.         1,0,0,m_tbyte|m_qword,  //a_fldenv
  618.  
  619.         0,0,0,0,        //a_fldlg2
  620.  
  621.         0,0,0,0,        //a_fldln2
  622.  
  623.         0,0,0,0,        //a_fldl2e
  624.  
  625.         0,0,0,0,        //a_fldl2t
  626.  
  627.         0,0,0,0,        //a_fldpi
  628.  
  629.         0,0,0,0,        //a_fldz
  630.  
  631.         0,0,0,0,        //a_fld1
  632.  
  633.         0x21,0,0,0,     //a_fmul
  634.  
  635.         0x20,0,0,0,     //a_fmulp
  636.  
  637.         0,0,0,0,        //a_fnop
  638.  
  639.         0,0,0,0,        //a_fpatan
  640.  
  641.         0,0,0,0,        //a_fprem
  642.  
  643.         0,3,0,0,        //a_fprem1
  644.  
  645.         0,0,0,0,        //a_fptan
  646.  
  647.         0,0,0,0,        //a_frndint
  648.  
  649.         0,2,0,0,        //a_fsetpm
  650.  
  651.         1,0,0,m_tbyte|m_qword,  //a_frstor
  652.  
  653.         1,0,d1par,m_tbyte|m_qword,      //a_fsave
  654.  
  655.         1,0,d1par,m_tbyte|m_qword,      //a_fnsave
  656.  
  657.         0,0,0,0,        //a_fscale
  658.  
  659.         0,3,0,0,        //a_fsin
  660.  
  661.         0,3,0,0,        //a_fsincos
  662.  
  663.         0,0,0,0,        //a_fsqrt
  664.  
  665.         1,0,d1par,m_qword|m_double|m_tbyte|m_ldouble,   //a_fst
  666.  
  667.         1,0,d1par,0,    //a_fstcw
  668.  
  669.         1,0,d1par,0,    //a_fnstcw
  670.  
  671.         1,0,d1par,m_qword|m_double|m_tbyte|m_ldouble,   //a_fstp
  672.  
  673.         1,0,d1par,0,    //a_fstsw
  674.  
  675.         1,0,d1par,0,    //a_fnstsw
  676.  
  677.         1,0,d1par,m_tbyte|m_qword,      //a_fstenv
  678.  
  679.         1,0,d1par,m_tbyte|m_qword,      //a_fnstenv
  680.  
  681.         0x21,0,0,m_double,      //a_fsub
  682.  
  683.         0x20,0,0,0,     //a_fsubp
  684.  
  685.         0x21,0,0,m_double,      //a_fsubr
  686.  
  687.         0x20,0,0,0,     //a_fsubrp
  688.  
  689.         0,0,0,0,        //a_ftst
  690.  
  691.         0x10,0,0,0,     //a_fucom
  692.  
  693.         0x10,0,0,0,     //a_fucomp
  694.  
  695.         0,3,0,0,        //a_fucompp
  696.  
  697.         0x10,0,0,0,     //a_fxch
  698.  
  699.         0,0,0,0,        //a_fwait
  700.  
  701.         0,0,0,0,        //a_fxam
  702.  
  703.         0,0,0,0,        //a_fxtract
  704.  
  705.         0,0,0,0,        //a_fyl2x
  706.  
  707.         0,0,0,0,        //a_fyl2xp1
  708.  
  709.         0,7,0,0,        //a_sysenter
  710.  
  711.         0,7,0,0,        //a_sysexit
  712.  
  713.         0x21,7,0,0,     //a_fcmovb
  714.  
  715.         0x21,7,0,0,     //a_fcmove
  716.  
  717.         0x21,7,0,0,     //a_fcmovbe
  718.  
  719.         0x21,7,0,0,     //a_fcmovu
  720.  
  721.         0x21,7,0,0,     //a_fcmovnb
  722.  
  723.         0x21,7,0,0,     //a_fcmovne
  724.  
  725.         0x21,7,0,0,     //a_fcmovnbe
  726.  
  727.         0x21,7,0,0,     //a_fcmovnu
  728.  
  729.         0x21,7,0,0,     //a_fcomi
  730.  
  731.         0x21,7,0,0,     //a_fcomip
  732.  
  733.         0x21,7,0,0,     //a_fucomi
  734.  
  735.         0x21,7,0,0,     //a_fucomip
  736.  
  737.         1,8,0,0,        //a_fxrstor
  738.  
  739.         1,8,d1par,0,    //a_fxsave
  740.  
  741.         0,0,0,0,        //a_fndisi
  742.  
  743.         0,0,0,0,        //a_fneni
  744.  
  745.         0,2,0,0,        //a_fnsetpm
  746.  
  747.         2,7,d1par,0,    //a_cmovo
  748.  
  749.         2,7,d1par,0,    //a_cmovno
  750.  
  751.         2,7,d1par,0,    //a_cmovc
  752.  
  753.         2,7,d1par,0,    //a_cmovnc
  754.  
  755.         2,7,d1par,0,    //a_cmovz
  756.  
  757.         2,7,d1par,0,    //a_cmovnz
  758.  
  759.         2,7,d1par,0,    //a_cmovna
  760.  
  761.         2,7,d1par,0,    //a_cmova
  762.  
  763.         2,7,d1par,0,    //a_cmovs
  764.  
  765.         2,7,d1par,0,    //a_cmovns
  766.  
  767.         2,7,d1par,0,    //a_cmovp
  768.  
  769.         2,7,d1par,0,    //a_cmovnp
  770.  
  771.         2,7,d1par,0,    //a_cmovl
  772.  
  773.         2,7,d1par,0,    //a_cmovnl
  774.  
  775.         2,7,d1par,0,    //a_cmovng
  776.  
  777.         2,7,d1par,0,    //a_cmovg
  778.  
  779.         2,8,dEDI,0,     //a_maskmovq
  780.  
  781.         2,8,d1par,0,    //a_movntq
  782.  
  783.         2,8,0,0,        //a_pavgb
  784.  
  785.         2,8,0,0,        //a_pavgw
  786.  
  787.         3,8,d1par,0,    //a_pextrw
  788.  
  789.         3,8,0,0,        //a_pinsrw
  790.  
  791.         2,8,0,0,        //a_pmaxub
  792.  
  793.         2,8,0,0,        //a_pmaxsw
  794.  
  795.         2,8,0,0,        //a_pminub
  796.  
  797.         2,8,0,0,        //a_pminsw
  798.  
  799.         2,8,d1par,0,    //a_pmovmskb
  800.  
  801.         2,8,0,0,        //a_pmulhuw
  802.  
  803.         1,8,0,0,        //a_prefetcht0
  804.  
  805.         1,8,0,0,        //a_prefetcht1
  806.  
  807.         1,8,0,0,        //a_prefetcht2
  808.  
  809.         1,8,0,0,        //a_prefetchnta
  810.  
  811.         0,8,0,0,        //a_sfence
  812.  
  813.         2,8,0,0,        //a_psadbw
  814.  
  815.         3,8,0,0,        //a_pshufw
  816.  
  817.         2,8,0,0,        //a_addps
  818.  
  819.         2,8,0,0,        //a_addss
  820.  
  821.         2,8,0,0,        //a_andnps
  822.  
  823.         2,8,0,0,        //a_andps
  824.  
  825.         3,8,0,0,        //a_cmpps
  826.  
  827.         3,8,0,0,        //a_cmpss
  828.  
  829.         2,8,0,0,        //a_comiss
  830.  
  831.         2,8,0,0,        //a_cvtpi2ps
  832.  
  833.         2,8,0,0,        //a_cvtps2pi
  834.  
  835.         2,8,0,0,        //a_cvtsi2ss
  836.  
  837.         2,8,d1par,0,    //a_cvtss2si
  838.  
  839.         2,8,0,0,        //a_cvttps2pi
  840.  
  841.         2,8,d1par,0,    //a_cvttss2si
  842.  
  843.         2,8,0,0,        //a_divps
  844.  
  845.         2,8,0,0,        //a_divss
  846.  
  847.         1,8,0,0,        //a_ldmxcsr
  848.  
  849.         2,8,0,0,        //a_maxps
  850.  
  851.         2,8,0,0,        //a_maxss
  852.  
  853.         2,8,0,0,        //a_minps
  854.  
  855.         2,8,0,0,        //a_minss
  856.  
  857.         2,8,d1par,0,    //a_movaps
  858.  
  859.         2,8,0,0,        //a_movhlps
  860.  
  861.         2,8,d1par,0,    //a_movhps
  862.  
  863.         2,8,0,0,        //a_movlhps
  864.  
  865.         2,8,d1par,0,    //a_movlps
  866.  
  867.         2,8,d1par,0,    //a_movmskps
  868.  
  869.         2,8,d1par,0,    //a_movss
  870.  
  871.         2,8,d1par,0,    //a_movups
  872.  
  873.         2,8,0,0,        //a_mulps
  874.  
  875.         2,8,0,0,        //a_mulss,
  876.  
  877.         2,8,d1par,0,    //a_movntps
  878.  
  879.         2,8,0,0,        //a_orps
  880.  
  881.         2,8,0,0,        //a_rcpps
  882.  
  883.         2,8,0,0,        //a_rcpss
  884.  
  885.         2,8,0,0,        //a_rsqrtps
  886.  
  887.         2,8,0,0,        //a_rsqrtss
  888.  
  889.         3,8,0,0,        //a_shufps
  890.  
  891.         2,8,0,0,        //a_sqrtps
  892.  
  893.         2,8,0,0,        //a_sqrtss
  894.  
  895.         1,8,d1par,0,    //a_stmxcsr
  896.  
  897.         2,8,0,0,        //a_subps
  898.  
  899.         2,8,0,0,        //a_subss
  900.  
  901.         2,8,0,0,        //a_ucomiss
  902.  
  903.         2,8,0,0,        //a_unpckhps
  904.  
  905.         2,8,0,0,        //a_unpcklps
  906.  
  907.         2,8,0,0,        //a_xorps
  908.  
  909. // Pentium IV
  910.  
  911.         0,9,0,0,        //a_lfence
  912.  
  913.         0,9,0,0,        //a_mfence
  914.  
  915.         2,9,0,0,        //a_addpd
  916.  
  917.         2,9,0,0,        //a_addsd
  918.  
  919.         2,9,0,0,        //a_andpd
  920.  
  921.         2,9,0,0,        //a_andnpd
  922.  
  923.         3,9,0,0,        //a_cmppd
  924.  
  925.         2,9,0,0,        //a_comisd
  926.  
  927.         2,9,0,0,        //a_cvtdq2pd
  928.  
  929.         2,9,0,0,        //a_cvtdq2ps
  930.  
  931.         2,9,0,0,        //a_cvtpd2dq
  932.  
  933.         2,9,0,0,        //a_cvtpd2pi
  934.  
  935.         2,9,0,0,        //a_cvtpd2ps
  936.  
  937.         2,9,0,0,        //a_cvtpi2pd
  938.  
  939.         2,9,0,0,        //a_cvtps2dq
  940.  
  941.         2,9,0,0,        //a_cvtps2pd
  942.  
  943.         2,9,d1par,0,    //a_cvtsd2si
  944.  
  945.         2,9,0,0,        //a_cvtsd2ss
  946.  
  947.         2,9,0,0,        //a_cvtsi2sd
  948.  
  949.         2,9,0,0,        //a_cvtss2sd
  950.  
  951.         2,9,0,0,        //a_cvttpd2pi
  952.  
  953.         2,9,0,0,        //a_cvttpd2dq
  954.  
  955.         2,9,0,0,        //a_cvttps2dq
  956.  
  957.         2,9,d1par,0,    //a_cvttsd2si
  958.  
  959.         2,9,0,0,        //a_divpd
  960.  
  961.         2,9,0,0,        //a_divsd
  962.  
  963.         2,9,0,0,        //a_maskmovdqu
  964.  
  965.         2,9,0,0,        //a_maxpd
  966.  
  967.         2,9,0,0,        //a_maxsd
  968.  
  969.         2,9,0,0,        //a_minpd
  970.  
  971.         2,9,0,0,        //a_minsd
  972.  
  973.         2,9,d1par,0,    //a_movapd
  974.  
  975.         2,9,d1par,0,    //a_movdqa
  976.  
  977.         2,9,d1par,0,    //a_movdqu
  978.  
  979.         2,9,0,0,        //a_movdq2q
  980.  
  981.         2,9,d1par,0,    //a_movhpd
  982.  
  983.         2,9,d1par,0,    //a_movlpd
  984.  
  985.         2,9,d1par,0,    //a_movmskpd
  986.  
  987.         2,9,d1par,0,    //a_movntdq
  988.  
  989.         2,9,d1par,0,    //a_movntpd
  990.  
  991.         2,9,d1par,0,    //a_movnti
  992.  
  993.         2,9,0,0,        //a_movq2dq
  994.  
  995.         2,9,0,0,        //a_movupd
  996.  
  997.         2,9,0,0,        //a_mulpd
  998.  
  999.         2,9,0,0,        //a_mulsd
  1000.  
  1001.         2,9,0,0,        //a_orpd
  1002.  
  1003.         3,9,0,0,        //a_pshufd,
  1004.  
  1005.         3,9,0,0,        //a_pshufhw
  1006.  
  1007.         3,9,0,0,        //a_pshuflw
  1008.  
  1009.         2,9,0,0,        //a_pslldq
  1010.  
  1011.         2,9,0,0,        //a_psrldq
  1012.  
  1013.         3,9,0,0,        //a_shufpd
  1014.  
  1015.         2,9,0,0,        //a_sqrtpd
  1016.  
  1017.         2,9,0,0,        //a_sqrtsd
  1018.  
  1019.         2,9,0,0,        //a_subpd
  1020.  
  1021.         2,9,0,0,        //a_subsd
  1022.  
  1023.         2,9,0,0,        //a_ucomisd
  1024.  
  1025.         2,9,0,0,        //a_unpckhpd
  1026.  
  1027.         2,9,0,0,        //a_unpcklpd
  1028.  
  1029.         2,9,0,0,        //a_xorpd
  1030.  
  1031.         2,9,0,0,        //a_paddq
  1032.  
  1033.         2,9,0,0,        //a_pmuludq
  1034.  
  1035.         2,9,0,0,        //a_psubq
  1036.  
  1037.         2,9,0,0,        //a_punpckhqdq
  1038.  
  1039.         2,9,0,0,        //a_punpcklqdq
  1040.  
  1041.         1,9,0,0,        //a_clflush
  1042.  
  1043.         0,9,0,0,        //a_monitor
  1044.  
  1045.         0,9,0,0,        //a_mwait
  1046.  
  1047.         2,9,0,0,        //a_addsubpd
  1048.  
  1049.         2,9,0,0,        //a_addsubps
  1050.  
  1051.         2,9,0,0,        //a_cmpeqsd
  1052.  
  1053.         2,9,0,0,        //a_cmpltsd
  1054.  
  1055.         2,9,0,0,        //a_cmplesd
  1056.  
  1057.         2,9,0,0,        //a_cmpunordsd
  1058.  
  1059.         2,9,0,0,        //a_cmpneqsd
  1060.  
  1061.         2,9,0,0,        //a_cmpnltsd
  1062.  
  1063.         2,9,0,0,        //a_cmpnlesd
  1064.  
  1065.         2,9,0,0,        //a_cmpordsd
  1066.  
  1067.         2,9,0,0,        //a_cmpeqpd
  1068.  
  1069.         2,9,0,0,        //a_cmpltpd
  1070.  
  1071.         2,9,0,0,        //a_cmplepd
  1072.  
  1073.         2,9,0,0,        //a_cmpunordpd
  1074.  
  1075.         2,9,0,0,        //a_cmpneqpd
  1076.  
  1077.         2,9,0,0,        //a_cmpnltpd
  1078.  
  1079.         2,9,0,0,        //a_cmpnlepd
  1080.  
  1081.         2,9,0,0,        //a_cmpordpd
  1082.  
  1083.         2,9,0,0,        //a_cmpeqps
  1084.  
  1085.         2,9,0,0,        //a_cmpltps
  1086.  
  1087.         2,9,0,0,        //a_cmpleps
  1088.  
  1089.         2,9,0,0,        //a_cmpunordps
  1090.  
  1091.         2,9,0,0,        //a_cmpneqps
  1092.  
  1093.         2,9,0,0,        //a_cmpnltps
  1094.  
  1095.         2,9,0,0,        //a_cmpnleps
  1096.  
  1097.         2,9,0,0,        //a_cmpordps
  1098.  
  1099.         2,9,0,0,        //a_cmpeqss
  1100.  
  1101.         2,9,0,0,        //a_cmpltss
  1102.  
  1103.         2,9,0,0,        //a_cmpless
  1104.  
  1105.         2,9,0,0,        //a_cmpunordss
  1106.  
  1107.         2,9,0,0,        //a_cmpneqss
  1108.  
  1109.         2,9,0,0,        //a_cmpnltss
  1110.  
  1111.         2,9,0,0,        //a_cmpnless
  1112.  
  1113.         2,9,0,0,        //a_cmpordss
  1114.  
  1115.         2,9,0,0,        //a_haddpd
  1116.  
  1117.         2,9,0,0,        //a_haddps
  1118.  
  1119.         2,9,0,0,        //a_hsubpd
  1120.  
  1121.         2,9,0,0,        //a_hsubps
  1122.  
  1123.         2,9,0,0,        //a_lddqu
  1124.  
  1125.         2,9,0,0,        //a_movddup
  1126.  
  1127.         2,9,0,0,        //a_movshdup
  1128.  
  1129.         2,9,0,0,        //a_movsldup
  1130.  
  1131.         0,9,0,0 //a_pause
  1132.  
  1133. };
  1134.  
  1135.  
  1136.  
  1137.