mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-12-05 17:27:26 +01:00
* x86 instruction table updated to nasm 0.98.37:
- sse3 aka prescott support
- small fixes
This commit is contained in:
parent
df906eda61
commit
f495796796
@ -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',
|
||||
'aaa',
|
||||
@ -83,6 +83,7 @@
|
||||
'finit',
|
||||
'fist',
|
||||
'fistp',
|
||||
'fisttp',
|
||||
'fisub',
|
||||
'fisubr',
|
||||
'fld',
|
||||
@ -191,6 +192,7 @@
|
||||
'lsl',
|
||||
'lss',
|
||||
'ltr',
|
||||
'monitor',
|
||||
'mov',
|
||||
'movd',
|
||||
'movq',
|
||||
@ -200,6 +202,7 @@
|
||||
'movs',
|
||||
'movz',
|
||||
'mul',
|
||||
'mwait',
|
||||
'neg',
|
||||
'nop',
|
||||
'not',
|
||||
@ -375,6 +378,7 @@
|
||||
'xlat',
|
||||
'xlatb',
|
||||
'xor',
|
||||
'xstore',
|
||||
'cmov',
|
||||
'j',
|
||||
'set',
|
||||
@ -546,5 +550,15 @@
|
||||
'ucomisd',
|
||||
'unpckhpd',
|
||||
'unpcklpd',
|
||||
'xorpd'
|
||||
'xorpd',
|
||||
'addsubpd',
|
||||
'addsubps',
|
||||
'haddpd',
|
||||
'haddps',
|
||||
'hsubpd',
|
||||
'hsubps',
|
||||
'lddqu',
|
||||
'movddup',
|
||||
'movshdup',
|
||||
'movsldup'
|
||||
);
|
||||
|
||||
@ -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,
|
||||
@ -83,6 +83,7 @@ attsufNONE,
|
||||
attsufNONE,
|
||||
attsufFPUint,
|
||||
attsufFPUint,
|
||||
attsufNONE,
|
||||
attsufFPUint,
|
||||
attsufFPUint,
|
||||
attsufFPU,
|
||||
@ -191,6 +192,7 @@ attsufNONE,
|
||||
attsufINT,
|
||||
attsufINT,
|
||||
attsufINT,
|
||||
attsufNONE,
|
||||
attsufINT,
|
||||
attsufNONE,
|
||||
attsufNONE,
|
||||
@ -200,6 +202,7 @@ attsufNONE,
|
||||
attsufINT,
|
||||
attsufINT,
|
||||
attsufINT,
|
||||
attsufNONE,
|
||||
attsufINT,
|
||||
attsufNONE,
|
||||
attsufINT,
|
||||
@ -375,6 +378,7 @@ attsufINT,
|
||||
attsufNONE,
|
||||
attsufNONE,
|
||||
attsufINT,
|
||||
attsufNONE,
|
||||
attsufINT,
|
||||
attsufNONE,
|
||||
attsufINT,
|
||||
@ -546,5 +550,15 @@ attsufNONE,
|
||||
attsufNONE,
|
||||
attsufNONE,
|
||||
attsufNONE,
|
||||
attsufNONE,
|
||||
attsufNONE,
|
||||
attsufNONE,
|
||||
attsufNONE,
|
||||
attsufNONE,
|
||||
attsufNONE,
|
||||
attsufNONE,
|
||||
attsufNONE,
|
||||
attsufNONE,
|
||||
attsufNONE,
|
||||
attsufNONE
|
||||
);
|
||||
|
||||
@ -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',
|
||||
'aaa',
|
||||
@ -83,6 +83,7 @@
|
||||
'finit',
|
||||
'fist',
|
||||
'fistp',
|
||||
'fisttp',
|
||||
'fisub',
|
||||
'fisubr',
|
||||
'fld',
|
||||
@ -191,6 +192,7 @@
|
||||
'lsl',
|
||||
'lss',
|
||||
'ltr',
|
||||
'monitor',
|
||||
'mov',
|
||||
'movd',
|
||||
'movq',
|
||||
@ -200,6 +202,7 @@
|
||||
'movsx',
|
||||
'movzx',
|
||||
'mul',
|
||||
'mwait',
|
||||
'neg',
|
||||
'nop',
|
||||
'not',
|
||||
@ -375,6 +378,7 @@
|
||||
'xlat',
|
||||
'xlatb',
|
||||
'xor',
|
||||
'xstore',
|
||||
'cmov',
|
||||
'j',
|
||||
'set',
|
||||
@ -546,5 +550,15 @@
|
||||
'ucomisd',
|
||||
'unpckhpd',
|
||||
'unpcklpd',
|
||||
'xorpd'
|
||||
'xorpd',
|
||||
'addsubpd',
|
||||
'addsubps',
|
||||
'haddpd',
|
||||
'haddps',
|
||||
'hsubpd',
|
||||
'hsubps',
|
||||
'lddqu',
|
||||
'movddup',
|
||||
'movshdup',
|
||||
'movsldup'
|
||||
);
|
||||
|
||||
@ -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 }
|
||||
1650;
|
||||
|
||||
@ -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_AAA,
|
||||
@ -83,6 +83,7 @@ A_FINCSTP,
|
||||
A_FINIT,
|
||||
A_FIST,
|
||||
A_FISTP,
|
||||
A_FISTTP,
|
||||
A_FISUB,
|
||||
A_FISUBR,
|
||||
A_FLD,
|
||||
@ -191,6 +192,7 @@ A_LOOPZ,
|
||||
A_LSL,
|
||||
A_LSS,
|
||||
A_LTR,
|
||||
A_MONITOR,
|
||||
A_MOV,
|
||||
A_MOVD,
|
||||
A_MOVQ,
|
||||
@ -200,6 +202,7 @@ A_MOVSW,
|
||||
A_MOVSX,
|
||||
A_MOVZX,
|
||||
A_MUL,
|
||||
A_MWAIT,
|
||||
A_NEG,
|
||||
A_NOP,
|
||||
A_NOT,
|
||||
@ -375,6 +378,7 @@ A_XCHG,
|
||||
A_XLAT,
|
||||
A_XLATB,
|
||||
A_XOR,
|
||||
A_XSTORE,
|
||||
A_CMOVcc,
|
||||
A_Jcc,
|
||||
A_SETcc,
|
||||
@ -546,5 +550,15 @@ A_SUBSD,
|
||||
A_UCOMISD,
|
||||
A_UNPCKHPD,
|
||||
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
|
||||
);
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
{ don't edit, this file is generated from i386ins.dat }
|
||||
{ don't edit, this file is generated from x86ins.dat }
|
||||
(
|
||||
(Ch: (Ch_None, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_MEAX, Ch_WFlags, Ch_None)),
|
||||
@ -83,6 +83,7 @@
|
||||
(Ch: (Ch_FPU, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_Wop1, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_Wop1, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_Wop1, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_FPU, Ch_ROp1, Ch_None)),
|
||||
(Ch: (Ch_FPU, Ch_ROp1, Ch_None)),
|
||||
(Ch: (Ch_Rop1, Ch_FPU, Ch_None)),
|
||||
@ -191,6 +192,7 @@
|
||||
(Ch: (Ch_Wop2, Ch_WFlags, Ch_None)),
|
||||
(Ch: (Ch_Wop2, Ch_ROP1, Ch_None)),
|
||||
(Ch: (Ch_None, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_None, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
|
||||
(Ch: (Ch_Rop1, Ch_Wop2, Ch_None)),
|
||||
(Ch: (Ch_Rop1, Ch_Wop2, Ch_None)),
|
||||
@ -200,6 +202,7 @@
|
||||
(Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
|
||||
(Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
|
||||
(Ch: (Ch_RWEAX, Ch_WEDX, Ch_WFlags)),
|
||||
(Ch: (Ch_None, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_Mop1, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_None, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_Mop1, Ch_WFlags, Ch_None)),
|
||||
@ -375,6 +378,7 @@
|
||||
(Ch: (Ch_WEAX, Ch_REBX, Ch_None)),
|
||||
(Ch: (Ch_WEAX, Ch_REBX, Ch_None)),
|
||||
(Ch: (Ch_Mop2, Ch_Rop1, Ch_WFlags)),
|
||||
(Ch: void \3\x0F\xA7\xC0 P6,CYRIX),
|
||||
(Ch: (Ch_ROp1, Ch_WOp2, Ch_RFLAGS)),
|
||||
(Ch: (Ch_None, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_RFLAGS, Ch_WOp1, Ch_None)),
|
||||
@ -546,5 +550,15 @@
|
||||
(Ch: (Ch_All, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_All, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_All, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_All, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_All, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_All, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_All, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_All, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_All, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_All, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_All, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_All, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_All, Ch_None, Ch_None)),
|
||||
(Ch: (Ch_All, Ch_None, Ch_None))
|
||||
);
|
||||
|
||||
@ -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;
|
||||
@ -2156,6 +2156,27 @@
|
||||
code : #192#1#223#135;
|
||||
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;
|
||||
ops : 1;
|
||||
@ -3990,6 +4011,20 @@
|
||||
code : #192#1#15#15#131;
|
||||
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;
|
||||
ops : 2;
|
||||
@ -4578,6 +4613,20 @@
|
||||
code : #209#192#1#247#132;
|
||||
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;
|
||||
ops : 1;
|
||||
@ -7816,9 +7865,16 @@
|
||||
opcode : A_SLDT;
|
||||
ops : 1;
|
||||
optypes : (ot_reg16,ot_none,ot_none);
|
||||
code : #192#1#15#15#128;
|
||||
code : #208#1#15#15#128;
|
||||
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;
|
||||
ops : 0;
|
||||
@ -7858,9 +7914,16 @@
|
||||
opcode : A_SMSW;
|
||||
ops : 1;
|
||||
optypes : (ot_reg16,ot_none,ot_none);
|
||||
code : #192#2#15#1#132;
|
||||
code : #208#2#15#1#132;
|
||||
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;
|
||||
ops : 0;
|
||||
@ -8124,7 +8187,7 @@
|
||||
opcode : A_SYSEXIT;
|
||||
ops : 0;
|
||||
optypes : (ot_none,ot_none,ot_none);
|
||||
code : #2#15#54;
|
||||
code : #2#15#53;
|
||||
flags : if_p6 or if_priv
|
||||
),
|
||||
(
|
||||
@ -9401,13 +9464,6 @@
|
||||
code : #192#2#15#23#65;
|
||||
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;
|
||||
ops : 2;
|
||||
@ -9429,13 +9485,6 @@
|
||||
code : #192#2#15#19#65;
|
||||
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;
|
||||
ops : 2;
|
||||
@ -11337,7 +11386,7 @@
|
||||
opcode : A_UNPCKHPD;
|
||||
ops : 2;
|
||||
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
|
||||
),
|
||||
(
|
||||
@ -11367,5 +11416,138 @@
|
||||
optypes : (ot_xmmreg,ot_memory,ot_none);
|
||||
code : #193#3#102#15#87#72;
|
||||
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
|
||||
)
|
||||
);
|
||||
|
||||
@ -220,7 +220,7 @@ begin
|
||||
insns:=0;
|
||||
maxinfolen:=0;
|
||||
{ open dat file }
|
||||
assign(infile,'i386ins.dat');
|
||||
assign(infile,'..\x86\x86ins.dat');
|
||||
reset(infile);
|
||||
{ create inc files }
|
||||
openinc(insfile,'i386tab.inc');
|
||||
@ -429,7 +429,12 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.2 2003-09-03 15:55:02 peter
|
||||
Revision 1.3 2003-09-09 12:54:45 florian
|
||||
* x86 instruction table updated to nasm 0.98.37:
|
||||
- sse3 aka prescott support
|
||||
- small fixes
|
||||
|
||||
Revision 1.2 2003/09/03 15:55:02 peter
|
||||
* NEWRA branch merged
|
||||
|
||||
Revision 1.1.2.1 2003/08/27 19:13:10 peter
|
||||
|
||||
@ -103,6 +103,7 @@ interface
|
||||
OT_REG_RCX = $00221008;
|
||||
{$endif x86_64}
|
||||
OT_REG_DX = $00241002;
|
||||
OT_REG_EDX = $00241004;
|
||||
|
||||
OT_REG_SREG = $00081002; { any segment register }
|
||||
OT_REG_CS = $01081002; { CS }
|
||||
@ -263,6 +264,8 @@ implementation
|
||||
IF_SSE = $00010000;
|
||||
{ SSE2 instructions }
|
||||
IF_SSE2 = $00020000;
|
||||
{ SSE3 instructions }
|
||||
IF_SSE3 = $00040000;
|
||||
{ the mask for processor types }
|
||||
{IF_PMASK = longint($FF000000);}
|
||||
{ the mask for disassembly "prefer" }
|
||||
@ -277,6 +280,8 @@ implementation
|
||||
IF_KATMAI = $07000000; { Katmai instructions }
|
||||
{ Willamette instructions }
|
||||
IF_WILLAMETTE = $08000000;
|
||||
{ Prescott instructions }
|
||||
IF_PRESCOTT = $09000000;
|
||||
IF_CYRIX = $10000000; { Cyrix-specific instruction }
|
||||
IF_AMD = $20000000; { AMD-specific instruction }
|
||||
{ added flags }
|
||||
@ -2228,7 +2233,12 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.18 2003-09-07 22:09:35 peter
|
||||
Revision 1.19 2003-09-09 12:54:45 florian
|
||||
* x86 instruction table updated to nasm 0.98.37:
|
||||
- sse3 aka prescott support
|
||||
- small fixes
|
||||
|
||||
Revision 1.18 2003/09/07 22:09:35 peter
|
||||
* preparations for different default calling conventions
|
||||
* various RA fixes
|
||||
|
||||
|
||||
@ -570,6 +570,12 @@ mem32 \300\1\xDB\203 8086,FPU
|
||||
mem16 \320\300\1\xDF\203 8086,FPU
|
||||
mem64 \300\1\xDF\207 8086,FPU
|
||||
|
||||
[FISTTP]
|
||||
(Ch_Wop1, Ch_None, Ch_None)
|
||||
mem32 \300\1\xDD\201 PRESCOTT,FPU
|
||||
mem16 \300\1\xDB\201 PRESCOTT,FPU
|
||||
mem64 \300\1\xDF\201 PRESCOTT,FPU
|
||||
|
||||
[FISUB,fisubR]
|
||||
(Ch_FPU, Ch_ROp1, Ch_None)
|
||||
mem16 \300\1\xDE\204 8086,FPU
|
||||
@ -1157,6 +1163,11 @@ mem \300\1\x0F\17\203 286,PROT,PRIV
|
||||
mem16 \300\1\x0F\17\203 286,PROT,PRIV
|
||||
reg16 \300\1\x0F\17\203 286,PROT,PRIV
|
||||
|
||||
[MONITOR]
|
||||
(Ch_None, Ch_None, Ch_None)
|
||||
void \3\x0F\x01\xC8 PRESCOTT
|
||||
reg_eax,reg_ecx,reg_edx \3\x0F\x01\xC8 PRESCOTT,ND
|
||||
|
||||
[MOV,movX]
|
||||
(Ch_Wop2, Ch_Rop1, Ch_None)
|
||||
mem,reg_cs \320\300\1\x8C\201 8086,SM
|
||||
@ -1269,6 +1280,12 @@ rm8 \300\1\xF6\204 8086
|
||||
rm16 \320\300\1\xF7\204 8086
|
||||
rm32 \321\300\1\xF7\204 386
|
||||
|
||||
[MWAIT]
|
||||
(Ch_None, Ch_None, Ch_None)
|
||||
void \3\x0F\x01\xC9 PRESCOTT
|
||||
reg_eax,reg_ecx \3\x0F\x01\xC9 PRESCOTT,ND
|
||||
|
||||
|
||||
[NEG,negX]
|
||||
(Ch_Mop1, Ch_None, Ch_None)
|
||||
rm8 \300\1\xF6\203 8086
|
||||
@ -2150,7 +2167,8 @@ mem \300\2\x0F\x01\201 286
|
||||
(Ch_Wop1, Ch_None, Ch_None)
|
||||
mem \300\1\x0F\17\200 286
|
||||
mem16 \300\1\x0F\17\200 286
|
||||
reg16 \300\1\x0F\17\200 286
|
||||
reg16 \320\1\x0F\17\200 286
|
||||
reg32 \321\1\x0F\17\200 386
|
||||
|
||||
[SMI]
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
@ -2168,7 +2186,8 @@ void \2\x0F\x7E 486,CYRIX,ND
|
||||
(Ch_Wop1, Ch_None, Ch_None)
|
||||
mem \300\2\x0F\x01\204 286
|
||||
mem16 \300\2\x0F\x01\204 286
|
||||
reg16 \300\2\x0F\x01\204 286
|
||||
reg16 \320\2\x0F\x01\204 286
|
||||
reg32 \321\2\x0F\x01\204 386
|
||||
|
||||
[STC]
|
||||
(Ch_WFlags, Ch_None, Ch_None)
|
||||
@ -2248,7 +2267,7 @@ void \2\x0F\x34 P6
|
||||
|
||||
[SYSEXIT]
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
void \2\x0F\x36 P6,PRIV
|
||||
void \2\x0F\x35 P6,PRIV
|
||||
|
||||
[SYSRET]
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
@ -2395,6 +2414,10 @@ mem,imm8 \300\1\x80\206\21 8086,SM
|
||||
mem,imm16 \320\300\1\x81\206\31 8086,SM
|
||||
mem,imm32 \321\300\1\x81\206\41 386,SM
|
||||
|
||||
[XSTORE]
|
||||
void \3\x0F\xA7\xC0 P6,CYRIX
|
||||
|
||||
|
||||
[CMOVcc,cmovCCX]
|
||||
(Ch_ROp1, Ch_WOp2, Ch_RFLAGS)
|
||||
reg16,mem \320\301\1\x0F\330\x40\110 P6,SM
|
||||
@ -2614,7 +2637,6 @@ xmmreg,xmmreg \2\x0F\x29\101 KATMAI,SSE
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
xmmreg,mem \301\2\x0F\x16\110 KATMAI,SSE
|
||||
mem,xmmreg \300\2\x0F\x17\101 KATMAI,SSE
|
||||
xmmreg,xmmreg \2\x0F\x16\101 KATMAI,SSE,ND
|
||||
|
||||
[MOVLHPS]
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
@ -2624,7 +2646,6 @@ xmmreg,xmmreg \2\x0F\x16\110 KATMAI,SSE
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
xmmreg,mem \301\2\x0F\x12\110 KATMAI,SSE
|
||||
mem,xmmreg \300\2\x0F\x13\101 KATMAI,SSE
|
||||
xmmreg,xmmreg \2\x0F\x12\101 KATMAI,SSE,ND
|
||||
|
||||
[MOVHLPS]
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
@ -3306,7 +3327,7 @@ xmmreg,mem \301\3\x66\x0F\x2E\110 WILLAMETTE,SSE2
|
||||
[UNPCKHPD]
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
xmmreg,xmmreg \3\x66\x0F\x15\110 WILLAMETTE,SSE2
|
||||
mem,xmmreg \300\3\x66\x0F\x15\101 WILLAMETTE,SSE2,SM
|
||||
mem,xmmreg \300\3\x66\x0F\x15\110 WILLAMETTE,SSE2,SM
|
||||
|
||||
[UNPCKLPD]
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
@ -3318,9 +3339,66 @@ xmmreg,mem \301\3\x66\x0F\x14\110 WILLAMETTE,SSE2,SM
|
||||
xmmreg,xmmreg \3\x66\x0F\x57\110 WILLAMETTE,SSE2
|
||||
xmmreg,mem \301\3\x66\x0F\x57\110 WILLAMETTE,SSE2,SM
|
||||
|
||||
;
|
||||
; Prescott New Instructions (SSE3)
|
||||
;
|
||||
[ADDSUBPD]
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
xmmreg,mem \301\3\x66\x0F\xD0\110 PRESCOTT,SSE3,SM
|
||||
xmmreg,xmmreg \3\x66\x0F\xD0\110 PRESCOTT,SSE3
|
||||
|
||||
[ADDSUBPS]
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
xmmreg,mem \301\3\xF2\x0F\xD0\110 PRESCOTT,SSE3,SM
|
||||
xmmreg,xmmreg \3\xF2\x0F\xD0\110 PRESCOTT,SSE3
|
||||
|
||||
[HADDPD]
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
xmmreg,mem \301\3\x66\x0F\x7C\110 PRESCOTT,SSE3,SM
|
||||
xmmreg,xmmreg \3\x66\x0F\x7C\110 PRESCOTT,SSE3
|
||||
|
||||
[HADDPS]
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
xmmreg,mem \301\3\xF2\x0F\x7C\110 PRESCOTT,SSE3,SM
|
||||
xmmreg,xmmreg \3\xF2\x0F\x7C\110 PRESCOTT,SSE3
|
||||
|
||||
[HSUBPD]
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
xmmreg,mem \301\3\x66\x0F\x7D\110 PRESCOTT,SSE3,SM
|
||||
xmmreg,xmmreg \3\x66\x0F\x7D\110 PRESCOTT,SSE3
|
||||
|
||||
[HSUBPS]
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
xmmreg,mem \301\3\xF2\x0F\x7D\110 PRESCOTT,SSE3,SM
|
||||
xmmreg,xmmreg \3\xF2\x0F\x7D\110 PRESCOTT,SSE3
|
||||
|
||||
[LDDQU]
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
xmmreg,mem \3\xF2\x0F\xF0\110 PRESCOTT,SSE3
|
||||
|
||||
[MOVDDUP]
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
xmmreg,mem \301\3\xF2\x0F\x12\110 PRESCOTT,SSE3
|
||||
xmmreg,xmmreg \3\xF2\x0F\x12\110 PRESCOTT,SSE3
|
||||
|
||||
[MOVSHDUP]
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
xmmreg,mem \301\3\xF3\x0F\x16\110 PRESCOTT,SSE3
|
||||
xmmreg,xmmreg \3\xF3\x0F\x16\110 PRESCOTT,SSE3
|
||||
|
||||
[MOVSLDUP]
|
||||
(Ch_All, Ch_None, Ch_None)
|
||||
xmmreg,mem \301\3\xF3\x0F\x12\110 PRESCOTT,SSE3
|
||||
xmmreg,xmmreg \3\xF3\x0F\x12\110 PRESCOTT,SSE3
|
||||
|
||||
;
|
||||
; $Log$
|
||||
; Revision 1.2 2003-09-03 15:55:02 peter
|
||||
; Revision 1.3 2003-09-09 12:54:45 florian
|
||||
; * x86 instruction table updated to nasm 0.98.37:
|
||||
; - sse3 aka prescott support
|
||||
; - small fixes
|
||||
;
|
||||
; Revision 1.2 2003/09/03 15:55:02 peter
|
||||
; * NEWRA branch merged
|
||||
;
|
||||
; Revision 1.1.2.1 2003/08/27 19:55:54 peter
|
||||
|
||||
Loading…
Reference in New Issue
Block a user