Browse Source

* updated instruction includes from new instruction table

florian 21 years ago
parent
commit
c72e3a8eea

+ 18 - 2
compiler/x86_64/x64att.inc

@@ -1,4 +1,4 @@
-{ don't edit, this file is generated from i386ins.dat }
+{ don't edit, this file is generated from x86ins.dat }
 (
 (
 'none',
 'none',
 'aaa',
 'aaa',
@@ -83,6 +83,7 @@
 'finit',
 'finit',
 'fist',
 'fist',
 'fistp',
 'fistp',
+'fisttp',
 'fisub',
 'fisub',
 'fisubr',
 'fisubr',
 'fld',
 'fld',
@@ -191,15 +192,18 @@
 'lsl',
 'lsl',
 'lss',
 'lss',
 'ltr',
 'ltr',
+'monitor',
 'mov',
 'mov',
 'movd',
 'movd',
 'movq',
 'movq',
 'movsb',
 'movsb',
+'movsd',
 'movsl',
 'movsl',
 'movsw',
 'movsw',
 'movs',
 'movs',
 'movz',
 'movz',
 'mul',
 'mul',
+'mwait',
 'neg',
 'neg',
 'nop',
 'nop',
 'not',
 'not',
@@ -375,6 +379,7 @@
 'xlat',
 'xlat',
 'xlatb',
 'xlatb',
 'xor',
 'xor',
+'xstore',
 'cmov',
 'cmov',
 'j',
 'j',
 'set',
 'set',
@@ -489,6 +494,7 @@
 'punpckhqdq',
 'punpckhqdq',
 'punpcklqdq',
 'punpcklqdq',
 'addpd',
 'addpd',
+'addsd',
 'andnpd',
 'andnpd',
 'andpd',
 'andpd',
 'cmpeqpd',
 'cmpeqpd',
@@ -546,5 +552,15 @@
 'ucomisd',
 'ucomisd',
 'unpckhpd',
 'unpckhpd',
 'unpcklpd',
 'unpcklpd',
-'xorpd'
+'xorpd',
+'addsubpd',
+'addsubps',
+'haddpd',
+'haddps',
+'hsubpd',
+'hsubps',
+'lddqu',
+'movddup',
+'movshdup',
+'movsldup'
 );
 );

+ 17 - 1
compiler/x86_64/x64atts.inc

@@ -1,4 +1,4 @@
-{ don't edit, this file is generated from i386ins.dat }
+{ don't edit, this file is generated from x86ins.dat }
 (
 (
 attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
@@ -83,6 +83,7 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufFPUint,
 attsufFPUint,
 attsufFPUint,
 attsufFPUint,
+attsufNONE,
 attsufFPUint,
 attsufFPUint,
 attsufFPUint,
 attsufFPUint,
 attsufFPU,
 attsufFPU,
@@ -191,15 +192,18 @@ attsufNONE,
 attsufINT,
 attsufINT,
 attsufINT,
 attsufINT,
 attsufINT,
 attsufINT,
+attsufNONE,
 attsufINT,
 attsufINT,
 attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
+attsufNONE,
 attsufINT,
 attsufINT,
 attsufINT,
 attsufINT,
 attsufINT,
 attsufINT,
+attsufNONE,
 attsufINT,
 attsufINT,
 attsufNONE,
 attsufNONE,
 attsufINT,
 attsufINT,
@@ -375,6 +379,7 @@ attsufINT,
 attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufINT,
 attsufINT,
+attsufNONE,
 attsufINT,
 attsufINT,
 attsufNONE,
 attsufNONE,
 attsufINT,
 attsufINT,
@@ -546,5 +551,16 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
 attsufNONE
 attsufNONE
 );
 );

+ 18 - 2
compiler/x86_64/x86_64in.inc

@@ -1,4 +1,4 @@
-{ don't edit, this file is generated from i386ins.dat }
+{ don't edit, this file is generated from x86ins.dat }
 (
 (
 'none',
 'none',
 'aaa',
 'aaa',
@@ -83,6 +83,7 @@
 'finit',
 'finit',
 'fist',
 'fist',
 'fistp',
 'fistp',
+'fisttp',
 'fisub',
 'fisub',
 'fisubr',
 'fisubr',
 'fld',
 'fld',
@@ -191,15 +192,18 @@
 'lsl',
 'lsl',
 'lss',
 'lss',
 'ltr',
 'ltr',
+'monitor',
 'mov',
 'mov',
 'movd',
 'movd',
 'movq',
 'movq',
 'movsb',
 'movsb',
 'movsd',
 'movsd',
+'movsl',
 'movsw',
 'movsw',
 'movsx',
 'movsx',
 'movzx',
 'movzx',
 'mul',
 'mul',
+'mwait',
 'neg',
 'neg',
 'nop',
 'nop',
 'not',
 'not',
@@ -375,6 +379,7 @@
 'xlat',
 'xlat',
 'xlatb',
 'xlatb',
 'xor',
 'xor',
+'xstore',
 'cmov',
 'cmov',
 'j',
 'j',
 'set',
 'set',
@@ -489,6 +494,7 @@
 'punpckhqdq',
 'punpckhqdq',
 'punpcklqdq',
 'punpcklqdq',
 'addpd',
 'addpd',
+'addsd',
 'andnpd',
 'andnpd',
 'andpd',
 'andpd',
 'cmpeqpd',
 'cmpeqpd',
@@ -546,5 +552,15 @@
 'ucomisd',
 'ucomisd',
 'unpckhpd',
 'unpckhpd',
 'unpcklpd',
 'unpcklpd',
-'xorpd'
+'xorpd',
+'addsubpd',
+'addsubps',
+'haddpd',
+'haddps',
+'hsubpd',
+'hsubps',
+'lddqu',
+'movddup',
+'movshdup',
+'movsldup'
 );
 );

+ 2 - 2
compiler/x86_64/x86_64no.inc

@@ -1,2 +1,2 @@
-{ don't edit, this file is generated from i386ins.dat }
-1624;
+{ don't edit, this file is generated from x86ins.dat }
+1652;

+ 18 - 2
compiler/x86_64/x86_64op.inc

@@ -1,4 +1,4 @@
-{ don't edit, this file is generated from i386ins.dat }
+{ don't edit, this file is generated from x86ins.dat }
 (
 (
 A_NONE,
 A_NONE,
 A_AAA,
 A_AAA,
@@ -83,6 +83,7 @@ A_FINCSTP,
 A_FINIT,
 A_FINIT,
 A_FIST,
 A_FIST,
 A_FISTP,
 A_FISTP,
+A_FISTTP,
 A_FISUB,
 A_FISUB,
 A_FISUBR,
 A_FISUBR,
 A_FLD,
 A_FLD,
@@ -191,15 +192,18 @@ A_LOOPZ,
 A_LSL,
 A_LSL,
 A_LSS,
 A_LSS,
 A_LTR,
 A_LTR,
+A_MONITOR,
 A_MOV,
 A_MOV,
 A_MOVD,
 A_MOVD,
 A_MOVQ,
 A_MOVQ,
 A_MOVSB,
 A_MOVSB,
 A_MOVSD,
 A_MOVSD,
+A_MOVSL,
 A_MOVSW,
 A_MOVSW,
 A_MOVSX,
 A_MOVSX,
 A_MOVZX,
 A_MOVZX,
 A_MUL,
 A_MUL,
+A_MWAIT,
 A_NEG,
 A_NEG,
 A_NOP,
 A_NOP,
 A_NOT,
 A_NOT,
@@ -375,6 +379,7 @@ A_XCHG,
 A_XLAT,
 A_XLAT,
 A_XLATB,
 A_XLATB,
 A_XOR,
 A_XOR,
+A_XSTORE,
 A_CMOVcc,
 A_CMOVcc,
 A_Jcc,
 A_Jcc,
 A_SETcc,
 A_SETcc,
@@ -489,6 +494,7 @@ A_PSUBQ,
 A_PUNPCKHQDQ,
 A_PUNPCKHQDQ,
 A_PUNPCKLQDQ,
 A_PUNPCKLQDQ,
 A_ADDPD,
 A_ADDPD,
+A_ADDSD,
 A_ANDNPD,
 A_ANDNPD,
 A_ANDPD,
 A_ANDPD,
 A_CMPEQPD,
 A_CMPEQPD,
@@ -546,5 +552,15 @@ A_SUBSD,
 A_UCOMISD,
 A_UCOMISD,
 A_UNPCKHPD,
 A_UNPCKHPD,
 A_UNPCKLPD,
 A_UNPCKLPD,
-A_XORPD
+A_XORPD,
+A_ADDSUBPD,
+A_ADDSUBPS,
+A_HADDPD,
+A_HADDPS,
+A_HSUBPD,
+A_HSUBPS,
+A_LDDQU,
+A_MOVDDUP,
+A_MOVSHDUP,
+A_MOVSLDUP
 );
 );

+ 217 - 21
compiler/x86_64/x86_64ta.inc

@@ -1,4 +1,4 @@
-{ don't edit, this file is generated from i386ins.dat }
+{ don't edit, this file is generated from x86ins.dat }
 (
 (
   (
   (
     opcode  : A_NONE;
     opcode  : A_NONE;
@@ -2156,6 +2156,27 @@
     code    : #192#1#223#135;
     code    : #192#1#223#135;
     flags   : if_8086 or if_fpu
     flags   : if_8086 or if_fpu
   ),
   ),
+  (
+    opcode  : A_FISTTP;
+    ops     : 1;
+    optypes : (ot_memory or ot_bits32,ot_none,ot_none);
+    code    : #192#1#221#129;
+    flags   : if_prescott or if_fpu
+  ),
+  (
+    opcode  : A_FISTTP;
+    ops     : 1;
+    optypes : (ot_memory or ot_bits16,ot_none,ot_none);
+    code    : #192#1#219#129;
+    flags   : if_prescott or if_fpu
+  ),
+  (
+    opcode  : A_FISTTP;
+    ops     : 1;
+    optypes : (ot_memory or ot_bits64,ot_none,ot_none);
+    code    : #192#1#223#129;
+    flags   : if_prescott or if_fpu
+  ),
   (
   (
     opcode  : A_FISUB;
     opcode  : A_FISUB;
     ops     : 1;
     ops     : 1;
@@ -3990,6 +4011,20 @@
     code    : #192#1#15#15#131;
     code    : #192#1#15#15#131;
     flags   : if_286 or if_prot or if_priv
     flags   : if_286 or if_prot or if_priv
   ),
   ),
+  (
+    opcode  : A_MONITOR;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none);
+    code    : #3#15#1#200;
+    flags   : if_prescott
+  ),
+  (
+    opcode  : A_MONITOR;
+    ops     : 3;
+    optypes : (ot_reg_eax,ot_reg_ecx,ot_reg_edx);
+    code    : #3#15#1#200;
+    flags   : if_prescott
+  ),
   (
   (
     opcode  : A_MOV;
     opcode  : A_MOV;
     ops     : 2;
     ops     : 2;
@@ -4494,6 +4529,13 @@
     code    : #193#3#242#15#16#72;
     code    : #193#3#242#15#16#72;
     flags   : if_willamette or if_sse2
     flags   : if_willamette or if_sse2
   ),
   ),
+  (
+    opcode  : A_MOVSL;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none);
+    code    : #209#1#165;
+    flags   : if_386
+  ),
   (
   (
     opcode  : A_MOVSW;
     opcode  : A_MOVSW;
     ops     : 0;
     ops     : 0;
@@ -4578,6 +4620,20 @@
     code    : #209#192#1#247#132;
     code    : #209#192#1#247#132;
     flags   : if_386
     flags   : if_386
   ),
   ),
+  (
+    opcode  : A_MWAIT;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none);
+    code    : #3#15#1#201;
+    flags   : if_prescott
+  ),
+  (
+    opcode  : A_MWAIT;
+    ops     : 2;
+    optypes : (ot_reg_eax,ot_reg_ecx,ot_none);
+    code    : #3#15#1#201;
+    flags   : if_prescott
+  ),
   (
   (
     opcode  : A_NEG;
     opcode  : A_NEG;
     ops     : 1;
     ops     : 1;
@@ -7816,9 +7872,16 @@
     opcode  : A_SLDT;
     opcode  : A_SLDT;
     ops     : 1;
     ops     : 1;
     optypes : (ot_reg16,ot_none,ot_none);
     optypes : (ot_reg16,ot_none,ot_none);
-    code    : #192#1#15#15#128;
+    code    : #208#1#15#15#128;
     flags   : if_286
     flags   : if_286
   ),
   ),
+  (
+    opcode  : A_SLDT;
+    ops     : 1;
+    optypes : (ot_reg32,ot_none,ot_none);
+    code    : #209#1#15#15#128;
+    flags   : if_386
+  ),
   (
   (
     opcode  : A_SMI;
     opcode  : A_SMI;
     ops     : 0;
     ops     : 0;
@@ -7858,9 +7921,16 @@
     opcode  : A_SMSW;
     opcode  : A_SMSW;
     ops     : 1;
     ops     : 1;
     optypes : (ot_reg16,ot_none,ot_none);
     optypes : (ot_reg16,ot_none,ot_none);
-    code    : #192#2#15#1#132;
+    code    : #208#2#15#1#132;
     flags   : if_286
     flags   : if_286
   ),
   ),
+  (
+    opcode  : A_SMSW;
+    ops     : 1;
+    optypes : (ot_reg32,ot_none,ot_none);
+    code    : #209#2#15#1#132;
+    flags   : if_386
+  ),
   (
   (
     opcode  : A_STC;
     opcode  : A_STC;
     ops     : 0;
     ops     : 0;
@@ -8124,7 +8194,7 @@
     opcode  : A_SYSEXIT;
     opcode  : A_SYSEXIT;
     ops     : 0;
     ops     : 0;
     optypes : (ot_none,ot_none,ot_none);
     optypes : (ot_none,ot_none,ot_none);
-    code    : #2#15#54;
+    code    : #2#15#53;
     flags   : if_p6 or if_priv
     flags   : if_p6 or if_priv
   ),
   ),
   (
   (
@@ -8785,6 +8855,13 @@
     code    : #209#192#1#129#134#33;
     code    : #209#192#1#129#134#33;
     flags   : if_386 or if_sm
     flags   : if_386 or if_sm
   ),
   ),
+  (
+    opcode  : A_XSTORE;
+    ops     : 0;
+    optypes : (ot_none,ot_none,ot_none);
+    code    : #3#15#167#192;
+    flags   : if_p6 or if_cyrix
+  ),
   (
   (
     opcode  : A_CMOVcc;
     opcode  : A_CMOVcc;
     ops     : 2;
     ops     : 2;
@@ -9401,13 +9478,6 @@
     code    : #192#2#15#23#65;
     code    : #192#2#15#23#65;
     flags   : if_katmai or if_sse
     flags   : if_katmai or if_sse
   ),
   ),
-  (
-    opcode  : A_MOVHPS;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #2#15#22#65;
-    flags   : if_katmai or if_sse
-  ),
   (
   (
     opcode  : A_MOVLHPS;
     opcode  : A_MOVLHPS;
     ops     : 2;
     ops     : 2;
@@ -9429,13 +9499,6 @@
     code    : #192#2#15#19#65;
     code    : #192#2#15#19#65;
     flags   : if_katmai or if_sse
     flags   : if_katmai or if_sse
   ),
   ),
-  (
-    opcode  : A_MOVLPS;
-    ops     : 2;
-    optypes : (ot_xmmreg,ot_xmmreg,ot_none);
-    code    : #2#15#18#65;
-    flags   : if_katmai or if_sse
-  ),
   (
   (
     opcode  : A_MOVHLPS;
     opcode  : A_MOVHLPS;
     ops     : 2;
     ops     : 2;
@@ -10508,14 +10571,14 @@
     flags   : if_willamette or if_sse2 or if_sm
     flags   : if_willamette or if_sse2 or if_sm
   ),
   ),
   (
   (
-    opcode  : A_ADDPD;
+    opcode  : A_ADDSD;
     ops     : 2;
     ops     : 2;
     optypes : (ot_xmmreg,ot_xmmreg,ot_none);
     optypes : (ot_xmmreg,ot_xmmreg,ot_none);
     code    : #217#3#242#15#88#72;
     code    : #217#3#242#15#88#72;
     flags   : if_willamette or if_sse2
     flags   : if_willamette or if_sse2
   ),
   ),
   (
   (
-    opcode  : A_ADDPD;
+    opcode  : A_ADDSD;
     ops     : 2;
     ops     : 2;
     optypes : (ot_xmmreg,ot_memory,ot_none);
     optypes : (ot_xmmreg,ot_memory,ot_none);
     code    : #193#217#3#242#15#88#72;
     code    : #193#217#3#242#15#88#72;
@@ -11337,7 +11400,7 @@
     opcode  : A_UNPCKHPD;
     opcode  : A_UNPCKHPD;
     ops     : 2;
     ops     : 2;
     optypes : (ot_memory,ot_xmmreg,ot_none);
     optypes : (ot_memory,ot_xmmreg,ot_none);
-    code    : #192#3#102#15#21#65;
+    code    : #192#3#102#15#21#72;
     flags   : if_willamette or if_sse2 or if_sm
     flags   : if_willamette or if_sse2 or if_sm
   ),
   ),
   (
   (
@@ -11367,5 +11430,138 @@
     optypes : (ot_xmmreg,ot_memory,ot_none);
     optypes : (ot_xmmreg,ot_memory,ot_none);
     code    : #193#3#102#15#87#72;
     code    : #193#3#102#15#87#72;
     flags   : if_willamette or if_sse2 or if_sm
     flags   : if_willamette or if_sse2 or if_sm
+  ),
+  (
+    opcode  : A_ADDSUBPD;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_memory,ot_none);
+    code    : #193#3#102#15#208#72;
+    flags   : if_prescott or if_sse3 or if_sm
+  ),
+  (
+    opcode  : A_ADDSUBPD;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #3#102#15#208#72;
+    flags   : if_prescott or if_sse3
+  ),
+  (
+    opcode  : A_ADDSUBPS;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_memory,ot_none);
+    code    : #193#3#242#15#208#72;
+    flags   : if_prescott or if_sse3 or if_sm
+  ),
+  (
+    opcode  : A_ADDSUBPS;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #3#242#15#208#72;
+    flags   : if_prescott or if_sse3
+  ),
+  (
+    opcode  : A_HADDPD;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_memory,ot_none);
+    code    : #193#3#102#15#124#72;
+    flags   : if_prescott or if_sse3 or if_sm
+  ),
+  (
+    opcode  : A_HADDPD;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #3#102#15#124#72;
+    flags   : if_prescott or if_sse3
+  ),
+  (
+    opcode  : A_HADDPS;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_memory,ot_none);
+    code    : #193#3#242#15#124#72;
+    flags   : if_prescott or if_sse3 or if_sm
+  ),
+  (
+    opcode  : A_HADDPS;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #3#242#15#124#72;
+    flags   : if_prescott or if_sse3
+  ),
+  (
+    opcode  : A_HSUBPD;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_memory,ot_none);
+    code    : #193#3#102#15#125#72;
+    flags   : if_prescott or if_sse3 or if_sm
+  ),
+  (
+    opcode  : A_HSUBPD;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #3#102#15#125#72;
+    flags   : if_prescott or if_sse3
+  ),
+  (
+    opcode  : A_HSUBPS;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_memory,ot_none);
+    code    : #193#3#242#15#125#72;
+    flags   : if_prescott or if_sse3 or if_sm
+  ),
+  (
+    opcode  : A_HSUBPS;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #3#242#15#125#72;
+    flags   : if_prescott or if_sse3
+  ),
+  (
+    opcode  : A_LDDQU;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_memory,ot_none);
+    code    : #3#242#15#240#72;
+    flags   : if_prescott or if_sse3
+  ),
+  (
+    opcode  : A_MOVDDUP;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_memory,ot_none);
+    code    : #193#3#242#15#18#72;
+    flags   : if_prescott or if_sse3
+  ),
+  (
+    opcode  : A_MOVDDUP;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #3#242#15#18#72;
+    flags   : if_prescott or if_sse3
+  ),
+  (
+    opcode  : A_MOVSHDUP;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_memory,ot_none);
+    code    : #193#3#243#15#22#72;
+    flags   : if_prescott or if_sse3
+  ),
+  (
+    opcode  : A_MOVSHDUP;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #3#243#15#22#72;
+    flags   : if_prescott or if_sse3
+  ),
+  (
+    opcode  : A_MOVSLDUP;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_memory,ot_none);
+    code    : #193#3#243#15#18#72;
+    flags   : if_prescott or if_sse3
+  ),
+  (
+    opcode  : A_MOVSLDUP;
+    ops     : 2;
+    optypes : (ot_xmmreg,ot_xmmreg,ot_none);
+    code    : #3#243#15#18#72;
+    flags   : if_prescott or if_sse3
   )
   )
 );
 );