mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-20 08:49:48 +01:00
+ KNI instructions
This commit is contained in:
parent
631d19fc85
commit
bfe185d206
@ -1,6 +1,6 @@
|
||||
{
|
||||
$Id$
|
||||
Copyright (c) 1999 by Florian Klaempfl
|
||||
Copyright (c) 1999 by Florian Klaempfl and Peter Vreman
|
||||
|
||||
Contains the assembler object for the i386
|
||||
|
||||
@ -1116,7 +1116,8 @@ begin
|
||||
201,
|
||||
202,
|
||||
209,
|
||||
210 : ;
|
||||
210,
|
||||
217,218,219 : ;
|
||||
216 :
|
||||
begin
|
||||
inc(codes);
|
||||
@ -1422,8 +1423,11 @@ begin
|
||||
201,
|
||||
202,
|
||||
209,
|
||||
210 :
|
||||
210,
|
||||
217,218,219 :
|
||||
begin
|
||||
{ these are dissambler hints or 32 bit prefixes which
|
||||
are not needed }
|
||||
end;
|
||||
31,
|
||||
48,49,50,
|
||||
@ -1492,7 +1496,10 @@ end;
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.1 1999-08-04 00:22:57 florian
|
||||
Revision 1.2 1999-08-12 14:36:01 peter
|
||||
+ KNI instructions
|
||||
|
||||
Revision 1.1 1999/08/04 00:22:57 florian
|
||||
* renamed i386asm and i386base to cpuasm and cpubase
|
||||
|
||||
Revision 1.17 1999/08/01 23:55:53 michael
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
$Id$
|
||||
Copyright (c) 1999 by Florian Klaempfl
|
||||
Copyright (c) 1999 by Florian Klaempfl and Peter Vreman
|
||||
|
||||
Contains the base types for the i386
|
||||
|
||||
@ -35,8 +35,8 @@ uses
|
||||
|
||||
const
|
||||
{ Size of the instruction table converted by nasmconv.pas }
|
||||
instabentries = 1103;
|
||||
maxinfolen = 7;
|
||||
instabentries = 1292;
|
||||
maxinfolen = 8;
|
||||
|
||||
{ By default we want everything }
|
||||
{$define ATTOP}
|
||||
@ -107,6 +107,7 @@ const
|
||||
OT_REG16 = $00201002;
|
||||
OT_REG32 = $00201004;
|
||||
OT_MMXREG = $00201008; { MMX registers }
|
||||
OT_XMMREG = $00201010; { Katmai registers }
|
||||
OT_MEMORY = $00204000; { register number in 'basereg' }
|
||||
OT_MEM8 = $00204001;
|
||||
OT_MEM16 = $00204002;
|
||||
@ -144,28 +145,39 @@ const
|
||||
{ so UNITY == IMMEDIATE | ONENESS }
|
||||
OT_UNITY = $00802000; { for shift/rotate instructions }
|
||||
|
||||
{ Instruction flags }
|
||||
IF_SM = $0001; { size match first operand }
|
||||
IF_SM2 = $0002; { size match first two operands }
|
||||
IF_SB = $0004; { unsized operands can't be non-byte }
|
||||
IF_SW = $0008; { unsized operands can't be non-word }
|
||||
IF_SD = $0010; { unsized operands can't be nondword }
|
||||
IF_8086 = $0000; { 8086 instruction }
|
||||
IF_186 = $0100; { 186+ instruction }
|
||||
IF_286 = $0200; { 286+ instruction }
|
||||
IF_386 = $0300; { 386+ instruction }
|
||||
IF_486 = $0400; { 486+ instruction }
|
||||
IF_PENT = $0500; { Pentium instruction }
|
||||
IF_P6 = $0600; { P6 instruction }
|
||||
IF_CYRIX = $0800; { Cyrix-specific instruction }
|
||||
IF_PMASK = $0F00; { the mask for processor types }
|
||||
IF_PRIV = $1000; { it's a privileged instruction }
|
||||
IF_UNDOC = $2000; { it's an undocumented instruction }
|
||||
IF_FPU = $4000; { it's an FPU instruction }
|
||||
IF_MMX = $8000; { it's an MMX instruction }
|
||||
{Instruction flags }
|
||||
IF_SM = $00000001; { size match first two operands }
|
||||
IF_SM2 = $00000002;
|
||||
IF_SB = $00000004; { unsized operands can't be non-byte }
|
||||
IF_SW = $00000008; { unsized operands can't be non-word }
|
||||
IF_SD = $00000010; { unsized operands can't be nondword }
|
||||
IF_AR0 = $00000020; { SB, SW, SD applies to argument 0 }
|
||||
IF_AR1 = $00000040; { SB, SW, SD applies to argument 1 }
|
||||
IF_AR2 = $00000060; { SB, SW, SD applies to argument 2 }
|
||||
IF_ARMASK = $00000060; { mask for unsized argument spec }
|
||||
IF_PRIV = $00000100; { it's a privileged instruction }
|
||||
IF_SMM = $00000200; { it's only valid in SMM }
|
||||
IF_PROT = $00000400; { it's protected mode only }
|
||||
IF_UNDOC = $00001000; { it's an undocumented instruction }
|
||||
IF_FPU = $00002000; { it's an FPU instruction }
|
||||
IF_MMX = $00004000; { it's an MMX instruction }
|
||||
IF_3DNOW = $00008000; { it's a 3DNow! instruction }
|
||||
IF_SSE = $00010000; { it's a SSE (KNI, MMX2) instruction }
|
||||
IF_PMASK = $FF000000; { the mask for processor types }
|
||||
IF_PFMASK = $F001FF00; { the mask for disassembly "prefer" }
|
||||
IF_8086 = $00000000; { 8086 instruction }
|
||||
IF_186 = $01000000; { 186+ instruction }
|
||||
IF_286 = $02000000; { 286+ instruction }
|
||||
IF_386 = $03000000; { 386+ instruction }
|
||||
IF_486 = $04000000; { 486+ instruction }
|
||||
IF_PENT = $05000000; { Pentium instruction }
|
||||
IF_P6 = $06000000; { P6 instruction }
|
||||
IF_KATMAI = $07000000; { Katmai instructions }
|
||||
IF_CYRIX = $10000000; { Cyrix-specific instruction }
|
||||
IF_AMD = $20000000; { AMD-specific instruction }
|
||||
{ added flags }
|
||||
IF_PRE = $10000; { it's a prefix instruction }
|
||||
IF_PASS2 = $20000; { if the instruction can change in a second pass }
|
||||
IF_PRE = $40000000; { it's a prefix instruction }
|
||||
IF_PASS2 = $80000000; { if the instruction can change in a second pass }
|
||||
|
||||
type
|
||||
TAsmOp=(A_None,
|
||||
@ -196,7 +208,7 @@ type
|
||||
A_FUCOMI, A_FUCOMIP, A_FUCOMP, A_FUCOMPP, A_FWAIT,A_FXAM, A_FXCH,
|
||||
A_FXTRACT, A_FYL2X, A_FYL2XP1, A_HLT, A_IBTS, A_ICEBP, A_IDIV,
|
||||
A_IMUL, A_IN, A_INC, A_INSB, A_INSD, A_INSW, A_INT,
|
||||
A_INT01, A_INT1, A_INT3, A_INTO, A_INVD, A_INVLPG, A_IRET,
|
||||
A_INT01, A_INT1, A_INT03, A_INT3, A_INTO, A_INVD, A_INVLPG, A_IRET,
|
||||
A_IRETD, A_IRETW, A_JCXZ, A_JECXZ, A_JMP, A_LAHF, A_LAR, A_LDS,
|
||||
A_LEA, A_LEAVE, A_LES, A_LFS, A_LGDT, A_LGS, A_LIDT, A_LLDT,
|
||||
A_LMSW, A_LOADALL, A_LOADALL286, A_LODSB, A_LODSD, A_LODSW,
|
||||
@ -220,14 +232,27 @@ type
|
||||
A_PSUBSIW, A_PSUBSW, A_PSUBUSB, A_PSUBUSW, A_PSUBW, A_PUNPCKHBW,
|
||||
A_PUNPCKHDQ, A_PUNPCKHWD, A_PUNPCKLBW, A_PUNPCKLDQ, A_PUNPCKLWD,
|
||||
A_PUSH, A_PUSHA, A_PUSHAD, A_PUSHAW, A_PUSHF, A_PUSHFD,
|
||||
A_PUSHFW, A_PXOR, A_RCL, A_RCR, A_RDMSR, A_RDPMC, A_RDTSC,
|
||||
A_PUSHFW, A_PXOR, A_RCL, A_RCR, A_RDSHR, A_RDMSR, A_RDPMC, A_RDTSC,
|
||||
A_RESB, A_RET, A_RETF, A_RETN,
|
||||
A_ROL, A_ROR, A_RSM, A_SAHF, A_SAL, A_SALC, A_SAR, A_SBB,
|
||||
A_ROL, A_ROR, A_RSDC, A_RSLDT, A_RSM, A_SAHF, A_SAL, A_SALC, A_SAR, A_SBB,
|
||||
A_SCASB, A_SCASD, A_SCASW, A_SGDT, A_SHL, A_SHLD, A_SHR, A_SHRD,
|
||||
A_SIDT, A_SLDT, A_SMI, A_SMSW, A_STC, A_STD, A_STI, A_STOSB,
|
||||
A_STOSD, A_STOSW, A_STR, A_SUB, A_TEST, A_UMOV, A_VERR, A_VERW,
|
||||
A_WAIT, A_WBINVD, A_WRMSR, A_XADD, A_XBTS, A_XCHG, A_XLAT, A_XLATB,
|
||||
A_XOR, A_CMOVcc, A_Jcc, A_SETcc
|
||||
A_SIDT, A_SLDT, A_SMI, A_SMINT, A_SMINTOLD, A_SMSW, A_STC, A_STD, A_STI, A_STOSB,
|
||||
A_STOSD, A_STOSW, A_STR, A_SUB, A_SVDC, A_SVLDT, A_SVTS, A_SYSCALL, A_SYSENTER,
|
||||
A_SYSEXIT, A_SYSRET, A_TEST, A_UD1, A_UD2, A_UMOV, A_VERR, A_VERW,
|
||||
A_WAIT, A_WBINVD, A_WRSHR, A_WRMSR, A_XADD, A_XBTS, A_XCHG, A_XLAT, A_XLATB,
|
||||
A_XOR, A_CMOVcc, A_Jcc, A_SETcc,
|
||||
A_ADDPS, A_ADDSS, A_ANDNPS, A_ANDPS, A_CMPEQPS, A_CMPEQSS, A_CMPLEPS,
|
||||
A_CMPLESS, A_CMPLTPS, A_CMPLTSS, A_CMPNEQPS, A_CMPNEQSS, A_CMPNLEPS,
|
||||
A_CMPNLESS, A_CMPNLTPS, A_CMPNLTSS, A_CMPORDPS, A_CMPORDSS, A_CMPUNORDPS, A_CMPUNORDSS,
|
||||
A_CMPPS, A_CMPSS, A_COMISS, A_CVTPI2PS, A_CVTPS2PI, A_CVTSI2SS, A_CVTSS2SI,
|
||||
A_CVTTPS2PI, A_CVTTSS2SI, A_DIVPS, A_DIVSS, A_LDMXCSR, A_MAXPS, A_MAXSS, A_MINPS,
|
||||
A_MINSS, A_MOVAPS, A_MOVHPS, A_MOVLHPS, A_MOVLPS, A_MOVHLPS, A_MOVMSKPS,
|
||||
A_MOVNTPS, A_MOVSS, A_MOVUPS, A_MULPS, A_MULSS, A_ORPS, A_RCPPS, A_RCPSS,
|
||||
A_RSQRTPS, A_RSQRTSS, A_SHUFPS, A_SQRTPS, A_SQRTSS, A_STMXCSR, A_SUBPS, A_SUBSS,
|
||||
A_UCOMISS, A_UNPCKHPS, A_UNPCKLPS, A_XORPS, A_FXRSTOR, A_FXSAVE, A_PREFETCHNTA,
|
||||
A_PREFETCHT0, A_PREFETCHT1,A_PREFETCHT2,
|
||||
A_SFENCE, A_MASKMOVQ, A_MOVNTQ, A_PAVGB, A_PAVGW, A_PEXTRW, A_PINSRW, A_PMAXSW,
|
||||
A_PMAXUB, A_PMINSW, A_PMINUB, A_PMOVMSKB, A_PMULHUW, A_PSADBW, A_PSHUFW
|
||||
);
|
||||
|
||||
op2strtable=array[tasmop] of string[10];
|
||||
@ -253,63 +278,74 @@ const
|
||||
'lock','rep','repe','repne','repnz','repz',
|
||||
'segcs','seges','segds','segfs','seggs','segss',
|
||||
{ normal }
|
||||
'aaa', 'aad', 'aam', 'aas', 'adc', 'add', 'and', 'arpl',
|
||||
'bound', 'bsf', 'bsr', 'bswap', 'bt', 'btc', 'btr', 'bts',
|
||||
'call', 'cbw', 'cdq', 'clc', 'cld', 'cli', 'clts', 'cmc', 'cmp',
|
||||
'cmpsb', 'cmpsd', 'cmpsw', 'cmpxchg', 'cmpxchg486', 'cmpxchg8b',
|
||||
'cpuid', 'cwd', 'cwde', 'daa', 'das', 'dec', 'div', 'emms',
|
||||
'enter', 'equ', 'f2xm1', 'fabs',
|
||||
'fadd', 'faddp', 'fbld', 'fbstp', 'fchs', 'fclex', 'fcmovb',
|
||||
'fcmovbe', 'fcmove', 'fcmovnb', 'fcmovnbe', 'fcmovne',
|
||||
'fcmovnu', 'fcmovu', 'fcom', 'fcomi', 'fcomip', 'fcomp',
|
||||
'fcompp', 'fcos', 'fdecstp', 'fdisi', 'fdiv', 'fdivp', 'fdivr',
|
||||
'aaa','aad','aam','aas','adc','add','and','arpl',
|
||||
'bound','bsf','bsr','bswap','bt','btc','btr','bts',
|
||||
'call','cbw','cdq','clc','cld','cli','clts','cmc','cmp',
|
||||
'cmpsb','cmpsd','cmpsw','cmpxchg','cmpxchg486','cmpxchg8b',
|
||||
'cpuid','cwd','cwde','daa','das','dec','div','emms',
|
||||
'enter','equ','f2xm1','fabs',
|
||||
'fadd','faddp','fbld','fbstp','fchs','fclex','fcmovb',
|
||||
'fcmovbe','fcmove','fcmovnb','fcmovnbe','fcmovne',
|
||||
'fcmovnu','fcmovu','fcom','fcomi','fcomip','fcomp',
|
||||
'fcompp','fcos','fdecstp','fdisi','fdiv','fdivp','fdivr',
|
||||
'fdivrp',
|
||||
'femms',
|
||||
'feni', 'ffree', 'fiadd', 'ficom', 'ficomp', 'fidiv',
|
||||
'fidivr', 'fild', 'fimul', 'fincstp', 'finit', 'fist', 'fistp',
|
||||
'fisub', 'fisubr', 'fld', 'fld1', 'fldcw', 'fldenv', 'fldl2e',
|
||||
'fldl2t', 'fldlg2', 'fldln2', 'fldpi', 'fldz', 'fmul', 'fmulp',
|
||||
'fnclex', 'fndisi', 'fneni', 'fninit', 'fnop', 'fnsave',
|
||||
'fnstcw', 'fnstenv', 'fnstsw', 'fpatan', 'fprem', 'fprem1',
|
||||
'fptan', 'frndint', 'frstor', 'fsave', 'fscale', 'fsetpm',
|
||||
'fsin', 'fsincos', 'fsqrt', 'fst', 'fstcw', 'fstenv', 'fstp',
|
||||
'fstsw', 'fsub', 'fsubp', 'fsubr', 'fsubrp', 'ftst', 'fucom',
|
||||
'fucomi', 'fucomip', 'fucomp', 'fucompp', 'fwait', 'fxam', 'fxch',
|
||||
'fxtract', 'fyl2x', 'fyl2xp1', 'hlt', 'ibts', 'icebp', 'idiv',
|
||||
'imul', 'in', 'inc', 'insb', 'insd', 'insw', 'int',
|
||||
'int01', 'int1', 'int3', 'into', 'invd', 'invlpg', 'iret',
|
||||
'iretd', 'iretw', 'jcxz', 'jecxz', 'jmp', 'lahf', 'lar', 'lds',
|
||||
'lea', 'leave', 'les', 'lfs', 'lgdt', 'lgs', 'lidt', 'lldt',
|
||||
'lmsw', 'loadall', 'loadall286', 'lodsb', 'lodsd', 'lodsw',
|
||||
'loop', 'loope', 'loopne', 'loopnz', 'loopz', 'lsl', 'lss',
|
||||
'ltr', 'mov', 'movd', 'movq', 'movsb', 'movsd', 'movsw',
|
||||
'movsx', 'movzx', 'mul', 'neg', 'nop', 'not', 'or', 'out',
|
||||
'outsb', 'outsd', 'outsw', 'packssdw', 'packsswb', 'packuswb',
|
||||
'paddb', 'paddd', 'paddsb', 'paddsiw', 'paddsw', 'paddusb',
|
||||
'paddusw', 'paddw', 'pand', 'pandn', 'paveb',
|
||||
'pavgusb', 'pcmpeqb',
|
||||
'pcmpeqd', 'pcmpeqw', 'pcmpgtb', 'pcmpgtd', 'pcmpgtw',
|
||||
'feni','ffree','fiadd','ficom','ficomp','fidiv',
|
||||
'fidivr','fild','fimul','fincstp','finit','fist','fistp',
|
||||
'fisub','fisubr','fld','fld1','fldcw','fldenv','fldl2e',
|
||||
'fldl2t','fldlg2','fldln2','fldpi','fldz','fmul','fmulp',
|
||||
'fnclex','fndisi','fneni','fninit','fnop','fnsave',
|
||||
'fnstcw','fnstenv','fnstsw','fpatan','fprem','fprem1',
|
||||
'fptan','frndint','frstor','fsave','fscale','fsetpm',
|
||||
'fsin','fsincos','fsqrt','fst','fstcw','fstenv','fstp',
|
||||
'fstsw','fsub','fsubp','fsubr','fsubrp','ftst','fucom',
|
||||
'fucomi','fucomip','fucomp','fucompp','fwait','fxam','fxch',
|
||||
'fxtract','fyl2x','fyl2xp1','hlt','ibts','icebp','idiv',
|
||||
'imul','in','inc','insb','insd','insw','int',
|
||||
'int01','int1','int03','int3','into','invd','invlpg','iret',
|
||||
'iretd','iretw','jcxz','jecxz','jmp','lahf','lar','lds',
|
||||
'lea','leave','les','lfs','lgdt','lgs','lidt','lldt',
|
||||
'lmsw','loadall','loadall286','lodsb','lodsd','lodsw',
|
||||
'loop','loope','loopne','loopnz','loopz','lsl','lss',
|
||||
'ltr','mov','movd','movq','movsb','movsd','movsw',
|
||||
'movsx','movzx','mul','neg','nop','not','or','out',
|
||||
'outsb','outsd','outsw','packssdw','packsswb','packuswb',
|
||||
'paddb','paddd','paddsb','paddsiw','paddsw','paddusb',
|
||||
'paddusw','paddw','pand','pandn','paveb',
|
||||
'pavgusb','pcmpeqb',
|
||||
'pcmpeqd','pcmpeqw','pcmpgtb','pcmpgtd','pcmpgtw',
|
||||
'pdistib',
|
||||
'pf2id', 'pfacc', 'pfadd', 'pfcmpeq', 'pfcmpge', 'pfcmpgt',
|
||||
'pfmax', 'pfmin', 'pfmul', 'pfrcp', 'pfrcpit1', 'pfrcpit2',
|
||||
'pfrsqit1', 'pfrsqrt', 'pfsub', 'pfsubr', 'pi2fd',
|
||||
'pmachriw', 'pmaddwd', 'pmagw', 'pmulhriw', 'pmulhrwa', 'pmulhrwc',
|
||||
'pmulhw', 'pmullw', 'pmvgezb', 'pmvlzb', 'pmvnzb',
|
||||
'pmvzb', 'pop', 'popa', 'popad', 'popaw', 'popf', 'popfd',
|
||||
'popfw', 'por',
|
||||
'prefetch', 'prefetchw', 'pslld', 'psllq', 'psllw', 'psrad', 'psraw',
|
||||
'psrld', 'psrlq', 'psrlw', 'psubb', 'psubd', 'psubsb',
|
||||
'psubsiw', 'psubsw', 'psubusb', 'psubusw', 'psubw', 'punpckhbw',
|
||||
'punpckhdq', 'punpckhwd', 'punpcklbw', 'punpckldq', 'punpcklwd',
|
||||
'push', 'pusha', 'pushad', 'pushaw', 'pushf', 'pushfd',
|
||||
'pushfw', 'pxor', 'rcl', 'rcr', 'rdmsr', 'rdpmc', 'rdtsc',
|
||||
'resb', 'ret', 'retf', 'retn',
|
||||
'rol', 'ror', 'rsm', 'sahf', 'sal', 'salc', 'sar', 'sbb',
|
||||
'scasb', 'scasd', 'scasw', 'sgdt', 'shl', 'shld', 'shr', 'shrd',
|
||||
'sidt', 'sldt', 'smi', 'smsw', 'stc', 'std', 'sti', 'stosb',
|
||||
'stosd', 'stosw', 'str', 'sub', 'test', 'umov', 'verr', 'verw',
|
||||
'wait', 'wbinvd', 'wrmsr', 'xadd', 'xbts', 'xchg', 'xlat', 'xlatb',
|
||||
'xor','cmov','j','set'
|
||||
'pf2id','pfacc','pfadd','pfcmpeq','pfcmpge','pfcmpgt',
|
||||
'pfmax','pfmin','pfmul','pfrcp','pfrcpit1','pfrcpit2',
|
||||
'pfrsqit1','pfrsqrt','pfsub','pfsubr','pi2fd',
|
||||
'pmachriw','pmaddwd','pmagw','pmulhriw','pmulhrwa','pmulhrwc',
|
||||
'pmulhw','pmullw','pmvgezb','pmvlzb','pmvnzb',
|
||||
'pmvzb','pop','popa','popad','popaw','popf','popfd',
|
||||
'popfw','por',
|
||||
'prefetch','prefetchw','pslld','psllq','psllw','psrad','psraw',
|
||||
'psrld','psrlq','psrlw','psubb','psubd','psubsb',
|
||||
'psubsiw','psubsw','psubusb','psubusw','psubw','punpckhbw',
|
||||
'punpckhdq','punpckhwd','punpcklbw','punpckldq','punpcklwd',
|
||||
'push','pusha','pushad','pushaw','pushf','pushfd',
|
||||
'pushfw','pxor','rcl','rcr','rdshr','rdmsr','rdpmc','rdtsc',
|
||||
'resb','ret','retf','retn',
|
||||
'rol','ror','rsdc','rsldt','rsm','sahf','sal','salc','sar','sbb',
|
||||
'scasb','scasd','scasw','sgdt','shl','shld','shr','shrd',
|
||||
'sidt','sldt','smi','smint','smintold','smsw','stc','std','sti','stosb',
|
||||
'stosd','stosw','str','sub','svdc','svldt','svts','syscall','sysenter',
|
||||
'sysexit','sysret','test','ud1','ud2','umov','verr','verw',
|
||||
'wait','wbinvd','wrshr','wrmsr','xadd','xbts','xchg','xlat','xlatb',
|
||||
'xor','cmov','j','set',
|
||||
'addps','addss','andnps','andps','cmpeqps','cmpeqss','cmpleps','cmpless','cmpltps',
|
||||
'cmpltss','cmpneqps','cmpneqss','cmpnleps','cmpnless','cmpnltps','cmpnltss',
|
||||
'cmpordps','cmpordss','cmpunordps','cmpunordss','cmpps','cmpss','comiss','cvtpi2ps','cvtps2pi',
|
||||
'cvtsi2ss','cvtss2si','cvttps2pi','cvttss2si','divps','divss','ldmxcsr','maxps',
|
||||
'maxss','minps','minss','movaps','movhps','movlhps','movlps','movhlps','movmskps',
|
||||
'movntps','movss','movups','mulps','mulss','orps','rcpps','rcpss','rsqrtps','rsqrtss',
|
||||
'shufps','sqrtps','sqrtss','stmxcsr','subps','subss','ucomiss','unpckhps','unpcklps',
|
||||
'xorps','fxrstor','fxsave','prefetchnta','prefetcht0','prefetcht1','prefetcht2',
|
||||
'sfence','maskmovq','movntq','pavgb','pavgw','pextrw','pinsrw','pmaxsw','pmaxub',
|
||||
'pminsw','pminub','pmovmskb','pmulhuw','psadbw','pshufw'
|
||||
);
|
||||
{$endif INTELOP}
|
||||
|
||||
@ -319,62 +355,73 @@ const
|
||||
'lock','rep','repe','repne','repnz','repz',
|
||||
'cs','es','ds','fs','gs','ss',
|
||||
{ normal }
|
||||
'aaa', 'aad', 'aam', 'aas', 'adc', 'add', 'and', 'arpl',
|
||||
'bound', 'bsf', 'bsr', 'bswap', 'bt', 'btc', 'btr', 'bts',
|
||||
'call', 'cbtw', 'cltd', 'clc', 'cld', 'cli', 'clts', 'cmc', 'cmp',
|
||||
'cmpsb', 'cmpsl', 'cmpsw', 'cmpxchg', 'cmpxchg486', 'cmpxchg8b',
|
||||
'cpuid', 'cwtd', 'cwtl', 'daa', 'das', 'dec', 'div',
|
||||
'emms', 'enter', 'equ', 'f2xm1', 'fabs',
|
||||
'fadd', 'faddp', 'fbld', 'fbstp', 'fchs', 'fclex', 'fcmovb',
|
||||
'fcmovbe', 'fcmove', 'fcmovnb', 'fcmovnbe', 'fcmovne',
|
||||
'fcmovnu', 'fcmovu', 'fcom', 'fcomi', 'fcomip', 'fcomp',
|
||||
'fcompp', 'fcos', 'fdecstp', 'fdisi', 'fdiv', 'fdivp', 'fdivr',
|
||||
'fdivrp', 'femms',
|
||||
'feni', 'ffree', 'fiadd', 'ficom', 'ficomp', 'fidiv',
|
||||
'fidivr', 'fild', 'fimul', 'fincstp', 'finit', 'fist', 'fistp',
|
||||
'fisub', 'fisubr', 'fld', 'fld1', 'fldcw', 'fldenv', 'fldl2e',
|
||||
'fldl2t', 'fldlg2', 'fldln2', 'fldpi', 'fldz', 'fmul', 'fmulp',
|
||||
'fnclex', 'fndisi', 'fneni', 'fninit', 'fnop', 'fnsave',
|
||||
'fnstcw', 'fnstenv', 'fnstsw', 'fpatan', 'fprem', 'fprem1',
|
||||
'fptan', 'frndint', 'frstor', 'fsave', 'fscale', 'fsetpm',
|
||||
'fsin', 'fsincos', 'fsqrt', 'fst', 'fstcw', 'fstenv', 'fstp',
|
||||
'fstsw', 'fsub', 'fsubp', 'fsubr', 'fsubrp', 'ftst', 'fucom',
|
||||
'fucomi', 'fucomip', 'fucomp', 'fucompp', 'fwait', 'fxam', 'fxch',
|
||||
'fxtract', 'fyl2x', 'fyl2xp1', 'hlt', 'ibts', 'icebp', 'idiv',
|
||||
'imul', 'in', 'inc', 'insb', 'insl', 'insw', 'int',
|
||||
'int01', 'int1', 'int3', 'into', 'invd', 'invlpg', 'iret',
|
||||
'iretd', 'iretw', 'jcxz', 'jecxz', 'jmp', 'lahf', 'lar', 'lds',
|
||||
'lea', 'leave', 'les', 'lfs', 'lgdt', 'lgs', 'lidt', 'lldt',
|
||||
'lmsw', 'loadall', 'loadall286', 'lodsb', 'lodsl', 'lodsw',
|
||||
'loop', 'loope', 'loopne', 'loopnz', 'loopz', 'lsl', 'lss',
|
||||
'ltr', 'mov', 'movd', 'movq', 'movsb', 'movsl', 'movsw',
|
||||
'movs', 'movz', 'mul', 'neg', 'nop', 'not', 'or', 'out',
|
||||
'outsb', 'outsl', 'outsw', 'packssd', 'packssw', 'packusw',
|
||||
'paddb', 'paddd', 'paddsb', 'paddsiw', 'paddsw', 'paddusb',
|
||||
'paddusw', 'paddw', 'pand', 'pandn', 'paveb',
|
||||
'pavgusb', 'pcmpeqb',
|
||||
'pcmpeqd', 'pcmpeqw', 'pcmpgtb', 'pcmpgtd', 'pcmpgtw',
|
||||
'aaa','aad','aam','aas','adc','add','and','arpl',
|
||||
'bound','bsf','bsr','bswap','bt','btc','btr','bts',
|
||||
'call','cbtw','cltd','clc','cld','cli','clts','cmc','cmp',
|
||||
'cmpsb','cmpsl','cmpsw','cmpxchg','cmpxchg486','cmpxchg8b',
|
||||
'cpuid','cwtd','cwtl','daa','das','dec','div',
|
||||
'emms','enter','equ','f2xm1','fabs',
|
||||
'fadd','faddp','fbld','fbstp','fchs','fclex','fcmovb',
|
||||
'fcmovbe','fcmove','fcmovnb','fcmovnbe','fcmovne',
|
||||
'fcmovnu','fcmovu','fcom','fcomi','fcomip','fcomp',
|
||||
'fcompp','fcos','fdecstp','fdisi','fdiv','fdivp','fdivr',
|
||||
'fdivrp','femms',
|
||||
'feni','ffree','fiadd','ficom','ficomp','fidiv',
|
||||
'fidivr','fild','fimul','fincstp','finit','fist','fistp',
|
||||
'fisub','fisubr','fld','fld1','fldcw','fldenv','fldl2e',
|
||||
'fldl2t','fldlg2','fldln2','fldpi','fldz','fmul','fmulp',
|
||||
'fnclex','fndisi','fneni','fninit','fnop','fnsave',
|
||||
'fnstcw','fnstenv','fnstsw','fpatan','fprem','fprem1',
|
||||
'fptan','frndint','frstor','fsave','fscale','fsetpm',
|
||||
'fsin','fsincos','fsqrt','fst','fstcw','fstenv','fstp',
|
||||
'fstsw','fsub','fsubp','fsubr','fsubrp','ftst','fucom',
|
||||
'fucomi','fucomip','fucomp','fucompp','fwait','fxam','fxch',
|
||||
'fxtract','fyl2x','fyl2xp1','hlt','ibts','icebp','idiv',
|
||||
'imul','in','inc','insb','insl','insw','int',
|
||||
'int01','int1','int03','int3','into','invd','invlpg','iret',
|
||||
'iretd','iretw','jcxz','jecxz','jmp','lahf','lar','lds',
|
||||
'lea','leave','les','lfs','lgdt','lgs','lidt','lldt',
|
||||
'lmsw','loadall','loadall286','lodsb','lodsl','lodsw',
|
||||
'loop','loope','loopne','loopnz','loopz','lsl','lss',
|
||||
'ltr','mov','movd','movq','movsb','movsl','movsw',
|
||||
'movs','movz','mul','neg','nop','not','or','out',
|
||||
'outsb','outsl','outsw','packssd','packssw','packusw',
|
||||
'paddb','paddd','paddsb','paddsiw','paddsw','paddusb',
|
||||
'paddusw','paddw','pand','pandn','paveb',
|
||||
'pavgusb','pcmpeqb',
|
||||
'pcmpeqd','pcmpeqw','pcmpgtb','pcmpgtd','pcmpgtw',
|
||||
'pdistib',
|
||||
'pf2id', 'pfacc', 'pfadd', 'pfcmpeq', 'pfcmpge', 'pfcmpgt',
|
||||
'pfmax', 'pfmin', 'pfmul', 'pfrcp', 'pfrcpit1', 'pfrcpit2',
|
||||
'pfrsqit1', 'pfrsqrt', 'pfsub', 'pfsubr', 'pi2fd',
|
||||
'pmachriw', 'pmaddwd', 'pmagw', 'pmulhriw', 'pmulhrwa', 'pmulhrwc',
|
||||
'pmulhw', 'pmullw', 'pmvgezb', 'pmvlzb', 'pmvnzb',
|
||||
'pmvzb', 'pop', 'popa', 'popal', 'popaw', 'popf', 'popfl',
|
||||
'popfw', 'por',
|
||||
'prefetch', 'prefetchw', 'pslld', 'psllq', 'psllw', 'psrad', 'psraw',
|
||||
'psrld', 'psrlq', 'psrlw', 'psubb', 'psubd', 'psubsb',
|
||||
'psubsiw', 'psubsw', 'psubusb', 'psubusw', 'psubw', 'punpckhbw',
|
||||
'punpckhdq', 'punpckhwd', 'punpcklbw', 'punpckldq', 'punpcklwd',
|
||||
'push', 'pusha', 'pushal', 'pushaw', 'pushf', 'pushfl',
|
||||
'pushfw', 'pxor', 'rcl', 'rcr', 'rdmsr', 'rdpmc', 'rdtsc',
|
||||
'resb', 'ret', 'retf', 'retn',
|
||||
'rol', 'ror', 'rsm', 'sahf', 'sal', 'salc', 'sar', 'sbb',
|
||||
'scasb', 'scasl', 'scasw', 'sgdt', 'shl', 'shld', 'shr', 'shrd',
|
||||
'sidt', 'sldt', 'smi', 'smsw', 'stc', 'std', 'sti', 'stosb',
|
||||
'stosl', 'stosw', 'str', 'sub', 'test', 'umov', 'verr', 'verw',
|
||||
'wait', 'wbinvd', 'wrmsr', 'xadd', 'xbts', 'xchg', 'xlat', 'xlatb',
|
||||
'xor','cmov','j','set'
|
||||
'pf2id','pfacc','pfadd','pfcmpeq','pfcmpge','pfcmpgt',
|
||||
'pfmax','pfmin','pfmul','pfrcp','pfrcpit1','pfrcpit2',
|
||||
'pfrsqit1','pfrsqrt','pfsub','pfsubr','pi2fd',
|
||||
'pmachriw','pmaddwd','pmagw','pmulhriw','pmulhrwa','pmulhrwc',
|
||||
'pmulhw','pmullw','pmvgezb','pmvlzb','pmvnzb',
|
||||
'pmvzb','pop','popa','popal','popaw','popf','popfl',
|
||||
'popfw','por',
|
||||
'prefetch','prefetchw','pslld','psllq','psllw','psrad','psraw',
|
||||
'psrld','psrlq','psrlw','psubb','psubd','psubsb',
|
||||
'psubsiw','psubsw','psubusb','psubusw','psubw','punpckhbw',
|
||||
'punpckhdq','punpckhwd','punpcklbw','punpckldq','punpcklwd',
|
||||
'push','pusha','pushal','pushaw','pushf','pushfl',
|
||||
'pushfw','pxor','rcl','rcr','rdshr','rdmsr','rdpmc','rdtsc',
|
||||
'resb','ret','retf','retn',
|
||||
'rol','ror','rsdc','rsldt','rsm','sahf','sal','salc','sar','sbb',
|
||||
'scasb','scasl','scasw','sgdt','shl','shld','shr','shrd',
|
||||
'sidt','sldt','smi','smint','smintold','smsw','stc','std','sti','stosb',
|
||||
'stosl','stosw','str','sub','svdc','svldt','svts','syscall','sysenter',
|
||||
'sysexit','sysret','test','ud1','ud2','umov','verr','verw',
|
||||
'wait','wbinvd','wrshr','wrmsr','xadd','xbts','xchg','xlat','xlatb',
|
||||
'xor','cmov','j','set',
|
||||
'addps','addss','andnps','andps','cmpeqps','cmpeqss','cmpleps','cmpless','cmpltps',
|
||||
'cmpltss','cmpneqps','cmpneqss','cmpnleps','cmpnless','cmpnltps','cmpnltss',
|
||||
'cmpordps','cmpordss','cmpunordps','cmpunordss','cmpps','cmpss','comiss','cvtpi2ps','cvtps2pi',
|
||||
'cvtsi2ss','cvtss2si','cvttps2pi','cvttss2si','divps','divss','ldmxcsr','maxps',
|
||||
'maxss','minps','minss','movaps','movhps','movlhps','movlps','movhlps','movmskps',
|
||||
'movntps','movss','movups','mulps','mulss','orps','rcpps','rcpss','rsqrtps','rsqrtss',
|
||||
'shufps','sqrtps','sqrtss','stmxcsr','subps','subss','ucomiss','unpckhps','unpcklps',
|
||||
'xorps','fxrstor','fxsave','prefetchnta','prefetcht0','prefetcht1','prefetcht2',
|
||||
'sfence','maskmovq','movntq','pavgb','pavgw','pextrw','pinsrw','pmaxsw','pmaxub',
|
||||
'pminsw','pminub','pmovmskb','pmulhuw','psadbw','pshufw'
|
||||
);
|
||||
|
||||
att_nosuffix:array[tasmop] of boolean=(
|
||||
@ -401,24 +448,34 @@ const
|
||||
false,false,false,false,false,false,false,false,false,false,
|
||||
false,false,false,false,false,false,false,false,false,false,
|
||||
{ 200 }
|
||||
false,true,true,true,true,true,false,false,false,false,
|
||||
false,false,false,false,false,false,false,false,false,false,
|
||||
false,false,true,true,true,true,true,false,false,false,
|
||||
false,false,false,false,false,false,false,false,true,true,
|
||||
true,true,true,true,true,true,true,true,true,true,
|
||||
true,true,true,true,true,true,true,true,true,true,
|
||||
true,true,true,true,true,true,true,true,true,true,
|
||||
true,true,true,true,true,true,true,true,true,true,
|
||||
true,true,true,true,true,true,true,true,false,false,
|
||||
false,false,false,false,false,false,false,false,true,true,
|
||||
true,true,true,true,true,true,true,true,true,true,
|
||||
false,false,false,false,false,false,true,true,true,true,
|
||||
true,true,true,true,true,true,true,true,true,true,
|
||||
true,true,true,true,true,true,true,true,true,
|
||||
{ 300 }
|
||||
false,false,true,true,false,true,true,true,false,false,
|
||||
true,false,false,true,true,false,true,true,true,false,false,
|
||||
false,false,false,false,false,false,false,false,false,false,
|
||||
false,false,false,false,false,false,false,false,false,false,
|
||||
false,false,false,false,false,false,false,false,false,false,
|
||||
false,false,false,false,false,false,false,false,false,false,
|
||||
false,false,false,false,false,false,false,false,false,false,
|
||||
false
|
||||
false,false,false,false,false,false,false,false,false,false,
|
||||
false,false,false,false,false,false,true,true,true,true,
|
||||
true,true,true,true,true,true,true,true,true,true,
|
||||
true,true,true,true,true,true,true,true,true,true,
|
||||
{ 400 }
|
||||
true,true,true,true,true,true,true,true,true,true,
|
||||
true,true,true,true,true,true,true,true,true,true,
|
||||
true,true,true,true,true,true,true,true,true,true,
|
||||
true,true,true,true,true,true,true,true,true,true,
|
||||
true,true,true,true,true,true,true,true,true,true,
|
||||
true,true,true,true,true,true,true,true,true,true
|
||||
);
|
||||
|
||||
{$endif ATTOP}
|
||||
@ -477,9 +534,9 @@ type
|
||||
|
||||
const
|
||||
cond2str:array[TAsmCond] of string[3]=('',
|
||||
'a', 'ae', 'b', 'be', 'c', 'e', 'g', 'ge', 'l', 'le', 'na', 'nae',
|
||||
'nb', 'nbe', 'nc', 'ne', 'ng', 'nge', 'nl', 'nle', 'no', 'np',
|
||||
'ns', 'nz', 'o', 'p', 'pe', 'po', 's', 'z'
|
||||
'a','ae','b','be','c','e','g','ge','l','le','na','nae',
|
||||
'nb','nbe','nc','ne','ng','nge','nl','nle','no','np',
|
||||
'ns','nz','o','p','pe','po','s','z'
|
||||
);
|
||||
inverse_cond:array[TAsmCond] of TAsmCond=(C_None,
|
||||
C_NA,C_NAE,C_NB,C_NBE,C_NC,C_NE,C_NG,C_NGE,C_NL,C_NLE,C_A,C_AE,
|
||||
@ -557,7 +614,7 @@ const
|
||||
OT_REG_CREG,OT_REG_CREG,OT_REG_CREG,OT_REG_CR4,
|
||||
OT_REG_TREG,OT_REG_TREG,OT_REG_TREG,OT_REG_TREG,OT_REG_TREG,
|
||||
OT_MMXREG,OT_MMXREG,OT_MMXREG,OT_MMXREG,OT_MMXREG,OT_MMXREG,OT_MMXREG,OT_MMXREG,
|
||||
OT_MMXREG,OT_MMXREG,OT_MMXREG,OT_MMXREG,OT_MMXREG,OT_MMXREG,OT_MMXREG,OT_MMXREG
|
||||
OT_XMMREG,OT_XMMREG,OT_XMMREG,OT_XMMREG,OT_XMMREG,OT_XMMREG,OT_XMMREG,OT_XMMREG
|
||||
);
|
||||
|
||||
{$ifdef INTELOP}
|
||||
@ -1007,7 +1064,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.4 1999-08-07 14:20:58 florian
|
||||
Revision 1.5 1999-08-12 14:36:02 peter
|
||||
+ KNI instructions
|
||||
|
||||
Revision 1.4 1999/08/07 14:20:58 florian
|
||||
* some small problems fixed
|
||||
|
||||
Revision 1.3 1999/08/05 14:58:09 florian
|
||||
|
||||
@ -406,6 +406,7 @@ Const AsmInstr: Array[tasmop] Of TAsmInstrucProp = (
|
||||
{A_INT} (Ch: (C_All, C_None, C_None)), {don't know value of any register}
|
||||
{A_INT01} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{A_INT1} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{!!!} {A_INT03} (Ch: (C_None, C_None, C_None)),
|
||||
{A_INT3} (Ch: (C_None, C_None, C_None)),
|
||||
{A_INTO} (Ch: (C_All, C_None, C_None)), {don't know value of any register}
|
||||
{A_INVD} (Ch: (C_All, C_None, C_None)), { new }
|
||||
@ -551,6 +552,7 @@ Const AsmInstr: Array[tasmop] Of TAsmInstrucProp = (
|
||||
{A_PXOR} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{A_RCL} (Ch: (C_Mop2, C_Rop1, C_RWFlags)),
|
||||
{A_RCR} (Ch: (C_Mop2, C_Rop1, C_RWFlags)),
|
||||
{!!!} {A_RDSHR} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{A_RDMSR} (Ch: (C_WEAX, C_WEDX, C_None)), { new }
|
||||
{A_RDPMC} (Ch: (C_WEAX, C_WEDX, C_None)), { new }
|
||||
{A_RDTSC} (Ch: (C_WEAX, C_WEDX, C_None)), { new }
|
||||
@ -560,6 +562,8 @@ Const AsmInstr: Array[tasmop] Of TAsmInstrucProp = (
|
||||
{A_RETN} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{A_ROL} (Ch: (C_Mop2, C_Rop1, C_RWFlags)),
|
||||
{A_ROR} (Ch: (C_Mop2, C_Rop1, C_RWFlags)),
|
||||
{!!!} {A_RSDC} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{!!!} {A_RSLDT} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{A_RSM} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{A_SAHF} (Ch: (C_WFlags, C_REAX, C_None)),
|
||||
{A_SAL} (Ch: (C_Mop2, C_Rop1, C_RWFlags)),
|
||||
@ -577,6 +581,8 @@ Const AsmInstr: Array[tasmop] Of TAsmInstrucProp = (
|
||||
{A_SIDT} (Ch: (C_Wop1, C_None, C_None)),
|
||||
{A_SLDT} (Ch: (C_Wop1, C_None, C_None)),
|
||||
{A_SMI} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{!!!} {A_SMINT} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{!!!} {A_SMINTOLD} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{A_SMSW} (Ch: (C_Wop1, C_None, C_None)),
|
||||
{A_STC} (Ch: (C_WFlags, C_None, C_None)),
|
||||
{A_STD} (Ch: (C_SDirFlag, C_None, C_None)),
|
||||
@ -586,12 +592,22 @@ Const AsmInstr: Array[tasmop] Of TAsmInstrucProp = (
|
||||
{A_STOSW} (Ch: (C_REAX, C_WMemEDI, C_RWEDI)), { new }
|
||||
{A_STR} (Ch: (C_Wop1, C_None, C_None)),
|
||||
{A_SUB} (Ch: (C_Mop2, C_Rop1, C_WFlags)),
|
||||
{!!!} {A_SVDC} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{!!!} {A_SVLDT} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{!!!} {A_SVTS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{!!!} {A_SYSCALL} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{!!!} {A_SYSENTER} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{!!!} {A_SYSEXIT} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{!!!} {A_SYSRET} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{A_TEST} (Ch: (C_WFlags, C_Rop1, C_Rop2)),
|
||||
{!!!} {A_UD1} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{!!!} {A_UD2} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{A_UMOV} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{A_VERR} (Ch: (C_WFlags, C_None, C_None)),
|
||||
{A_VERW} (Ch: (C_WFlags, C_None, C_None)),
|
||||
{A_WAIT} (Ch: (C_None, C_None, C_None)),
|
||||
{A_WBINVD} (Ch: (C_None, C_None, C_None)), { new }
|
||||
{!!!} {A_WRSHR} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{A_WRMSR} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{A_XADD} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{A_XBTS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
@ -601,7 +617,91 @@ Const AsmInstr: Array[tasmop] Of TAsmInstrucProp = (
|
||||
{A_XOR} (Ch: (C_Mop2, C_Rop1, C_WFlags)),
|
||||
{A_CMOV} (Ch: (C_ROp1, C_WOp2, C_RFLAGS)), { new }
|
||||
{A_J} (Ch: (C_None, C_None, C_None)), { new }
|
||||
{A_SET} (Ch: (C_WEAX, C_RFLAGS, C_None)) { new }
|
||||
{A_SET} (Ch: (C_WEAX, C_RFLAGS, C_None)), { new }
|
||||
{!!!! From here everything is new !!!!!!!!}
|
||||
{ADDPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{ADDSS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{ANDNPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{ANDPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CMPEQPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CMPEQSS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CMPLEPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CMPLESS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CMPLTPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CMPLTSS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CMPNEQPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CMPNEQSS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CMPNLEPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CMPNLESS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CMPNLTPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CMPNLTSS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CMPORDPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CMPORDSS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CMPUNORDPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CMPUNORDSS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CMPPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CMPSS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{COMISS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CVTPI2PS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CVTPS2PI} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CVTSI2SS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CVTSS2SI} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CVTTPS2PI} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{CVTTSS2SI} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{DIVPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{DIVSS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{LDMXCSR} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{MAXPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{MAXSS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{MINPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{MINSS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{MOVAPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{MOVHPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{MOVLHPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{MOVLPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{MOVHLPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{MOVMSKPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{MOVNTPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{MOVSS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{MOVUPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{MULPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{MULSS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{ORPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{RCPPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{RCPSS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{RSQRTPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{RSQRTSS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{SHUFPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{SQRTPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{SQRTSS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{STMXCSR} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{SUBPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{SUBSS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{UCOMISS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{UNPCKHPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{UNPCKLPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{XORPS} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{FXRSTOR} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{FXSAVE} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{PREFETCHNTA} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{PREFETCHT0} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{PREFETCHT1} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{PREFETCHT2} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{SFENCE} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{MASKMOVQ} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{MOVNTQ} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{PAVGB} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{PAVGW} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{PEXTRW} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{PINSRW} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{PMAXSW} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{PMAXUB} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{PMINSW} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{PMINUB} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{PMOVMSKB} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{PMULHUW} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{PSADBW} (Ch: (C_All, C_None, C_None)), { new }
|
||||
{PSHUFW} (Ch: (C_All, C_None, C_None)) { new }
|
||||
);
|
||||
|
||||
Var
|
||||
@ -2237,7 +2337,10 @@ End.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.54 1999-08-05 15:01:52 jonas
|
||||
Revision 1.55 1999-08-12 14:36:03 peter
|
||||
+ KNI instructions
|
||||
|
||||
Revision 1.54 1999/08/05 15:01:52 jonas
|
||||
* fix in -darithopt code (sometimes crashed on 8/16bit regs)
|
||||
|
||||
Revision 1.53 1999/08/04 00:22:59 florian
|
||||
|
||||
1535
compiler/i386tab.inc
1535
compiler/i386tab.inc
File diff suppressed because it is too large
Load Diff
@ -87,8 +87,8 @@ AND rm32,imm \321\300\1\x81\204\41 386,SM
|
||||
AND mem,imm8 \300\1\x80\204\21 8086,SM
|
||||
AND mem,imm16 \320\300\1\x81\204\31 8086,SM
|
||||
AND mem,imm32 \321\300\1\x81\204\41 386,SM
|
||||
ARPL mem,reg16 \300\1\x63\101 286,PRIV,SM
|
||||
ARPL reg16,reg16 \300\1\x63\101 286,PRIV
|
||||
ARPL mem,reg16 \300\1\x63\101 286,PROT,SM
|
||||
ARPL reg16,reg16 \300\1\x63\101 286,PROT
|
||||
BOUND reg16,mem \320\301\1\x62\110 186
|
||||
BOUND reg32,mem \321\301\1\x62\110 386
|
||||
BSF reg16,mem \320\301\2\x0F\xBC\110 386,SM
|
||||
@ -127,6 +127,12 @@ BTS rm32,imm \321\300\2\x0F\xBA\205\25 386,SB
|
||||
CALL imm \322\1\xE8\64 8086
|
||||
CALL imm|near \322\1\xE8\64 8086
|
||||
CALL imm|far \322\1\x9A\34\37 8086,ND
|
||||
CALL imm16 \320\1\xE8\64 8086
|
||||
CALL imm16|near \320\1\xE8\64 8086
|
||||
CALL imm16|far \320\1\x9A\34\37 8086,ND
|
||||
CALL imm32 \321\1\xE8\64 8086
|
||||
CALL imm32|near \321\1\xE8\64 8086
|
||||
CALL imm32|far \321\1\x9A\34\37 8086,ND
|
||||
CALL imm:imm \322\1\x9A\35\30 8086
|
||||
CALL imm16:imm \320\1\x9A\31\30 8086
|
||||
CALL imm:imm16 \320\1\x9A\31\30 8086
|
||||
@ -173,9 +179,9 @@ CMP rm32,imm \321\300\1\x81\207\41 386,SM
|
||||
CMP mem,imm8 \300\1\x80\207\21 8086,SM
|
||||
CMP mem,imm16 \320\300\1\x81\207\31 8086,SM
|
||||
CMP mem,imm32 \321\300\1\x81\207\41 386,SM
|
||||
CMPSB void \1\xA6 8086
|
||||
CMPSD void \321\1\xA7 386
|
||||
CMPSW void \320\1\xA7 8086
|
||||
CMPSB void \332\1\xA6 8086
|
||||
CMPSD void \332\321\1\xA7 386
|
||||
CMPSW void \332\320\1\xA7 8086
|
||||
CMPXCHG mem,reg8 \300\2\x0F\xB0\101 PENT,SM
|
||||
CMPXCHG reg8,reg8 \300\2\x0F\xB0\101 PENT
|
||||
CMPXCHG mem,reg16 \320\300\2\x0F\xB1\101 PENT,SM
|
||||
@ -289,7 +295,7 @@ FDIVR fpu0,fpureg \1\xD8\11\xF8 8086,FPU
|
||||
FDIVRP void \2\xDE\xF9 8086,FPU
|
||||
FDIVRP fpureg \1\xDE\10\xF8 8086,FPU
|
||||
FDIVRP fpureg,fpu0 \1\xDE\10\xF8 8086,FPU
|
||||
FEMMS void \2\x0F\x0E PENT,MMX,FPU
|
||||
FEMMS void \2\x0F\x0E PENT,3DNOW
|
||||
FENI void \3\x9B\xDB\xE0 8086,FPU
|
||||
FFREE fpureg \1\xDD\10\xC0 8086,FPU
|
||||
FIADD mem32 \300\1\xDA\200 8086,FPU
|
||||
@ -420,12 +426,12 @@ FXTRACT void \2\xD9\xF4 8086,FPU
|
||||
FYL2X void \2\xD9\xF1 8086,FPU
|
||||
FYL2XP1 void \2\xD9\xF9 8086,FPU
|
||||
GS void \1\x65 386,PRE
|
||||
HLT void \1\xF4 8086
|
||||
HLT void \1\xF4 8086,PRIV
|
||||
IBTS mem,reg16 \320\300\2\x0F\xA7\101 386,SW,UNDOC,ND
|
||||
IBTS reg16,reg16 \320\300\2\x0F\xA7\101 386,UNDOC,ND
|
||||
IBTS mem,reg32 \321\300\2\x0F\xA7\101 386,SD,UNDOC,ND
|
||||
IBTS reg32,reg32 \321\300\2\x0F\xA7\101 386,UNDOC,ND
|
||||
ICEBP void \1\xF1 P6,ND
|
||||
ICEBP void \1\xF1 386,ND
|
||||
IDIV rm8 \300\1\xF6\207 8086
|
||||
IDIV rm16 \320\300\1\xF7\207 8086
|
||||
IDIV rm32 \321\300\1\xF7\207 386
|
||||
@ -463,12 +469,13 @@ INSB void \1\x6C 186
|
||||
INSD void \321\1\x6D 386
|
||||
INSW void \320\1\x6D 186
|
||||
INT imm \1\xCD\24 8086,SB
|
||||
INT01 void \1\xF1 P6,ND
|
||||
INT1 void \1\xF1 P6
|
||||
INT01 void \1\xF1 386,ND
|
||||
INT1 void \1\xF1 386
|
||||
INT03 void \1\xCC 8086,ND
|
||||
INT3 void \1\xCC 8086
|
||||
INTO void \1\xCE 8086
|
||||
INVD void \2\x0F\x08 486
|
||||
INVLPG mem \300\2\x0F\x01\207 486
|
||||
INVD void \2\x0F\x08 486,PRIV
|
||||
INVLPG mem \300\2\x0F\x01\207 486,PRIV
|
||||
IRET void \322\1\xCF 8086
|
||||
IRETD void \321\1\xCF 386
|
||||
IRETW void \320\1\xCF 8086
|
||||
@ -476,8 +483,14 @@ JCXZ imm \320\1\xE3\50 8086
|
||||
JECXZ imm \321\1\xE3\50 386
|
||||
JMP imm|short \1\xEB\50 8086
|
||||
JMP imm \322\1\xE9\64 8086,PASS2
|
||||
JMP imm|near \322\1\xE9\64 8086,PASS2
|
||||
JMP imm|near \322\1\xE9\64 8086,ND,PASS2
|
||||
JMP imm|far \322\1\xEA\34\37 8086,ND
|
||||
JMP imm16 \320\1\xE9\64 8086,PASS2
|
||||
JMP imm16|near \320\1\xE9\64 8086,ND,PASS2
|
||||
JMP imm16|far \320\1\xEA\34\37 8086,ND,PASS2
|
||||
JMP imm32 \321\1\xE9\64 8086,PASS2
|
||||
JMP imm32|near \321\1\xE9\64 8086,ND,PASS2
|
||||
JMP imm32|far \321\1\xEA\34\37 8086,ND,PASS2
|
||||
JMP imm:imm \322\1\xEA\35\30 8086
|
||||
JMP imm16:imm \320\1\xEA\31\30 8086
|
||||
JMP imm:imm16 \320\1\xEA\31\30 8086
|
||||
@ -495,10 +508,10 @@ JMP mem \322\300\1\xFF\204 8086
|
||||
JMP mem16 \320\300\1\xFF\204 8086
|
||||
JMP mem32 \321\300\1\xFF\204 386
|
||||
LAHF void \1\x9F 8086
|
||||
LAR reg16,mem \320\301\2\x0F\x02\110 286,PRIV,SM
|
||||
LAR reg16,reg16 \320\301\2\x0F\x02\110 286,PRIV
|
||||
LAR reg32,mem \321\301\2\x0F\x02\110 286,PRIV,SM
|
||||
LAR reg32,reg32 \321\301\2\x0F\x02\110 286,PRIV
|
||||
LAR reg16,mem \320\301\2\x0F\x02\110 286,PROT,SM
|
||||
LAR reg16,reg16 \320\301\2\x0F\x02\110 286,PROT
|
||||
LAR reg32,mem \321\301\2\x0F\x02\110 286,PROT,SM
|
||||
LAR reg32,reg32 \321\301\2\x0F\x02\110 286,PROT
|
||||
LDS reg16,mem \320\301\1\xC5\110 8086
|
||||
LDS reg32,mem \321\301\1\xC5\110 8086
|
||||
LEA reg16,mem \320\301\1\x8D\110 8086
|
||||
@ -513,9 +526,9 @@ LGDT mem \300\2\x0F\x01\202 286,PRIV
|
||||
LGS reg16,mem \320\301\2\x0F\xB5\110 386
|
||||
LGS reg32,mem \321\301\2\x0F\xB5\110 386
|
||||
LIDT mem \300\2\x0F\x01\203 286,PRIV
|
||||
LLDT mem \300\1\x0F\17\202 286,PRIV
|
||||
LLDT mem16 \300\1\x0F\17\202 286,PRIV
|
||||
LLDT reg16 \300\1\x0F\17\202 286,PRIV
|
||||
LLDT mem \300\1\x0F\17\202 286,PROT,PRIV
|
||||
LLDT mem16 \300\1\x0F\17\202 286,PROT,PRIV
|
||||
LLDT reg16 \300\1\x0F\17\202 286,PROT,PRIV
|
||||
LMSW mem \300\2\x0F\x01\206 286,PRIV
|
||||
LMSW mem16 \300\2\x0F\x01\206 286,PRIV
|
||||
LMSW reg16 \300\2\x0F\x01\206 286,PRIV
|
||||
@ -540,15 +553,15 @@ LOOPNZ imm,reg_ecx \311\1\xE0\50 386
|
||||
LOOPZ imm \312\1\xE1\50 8086
|
||||
LOOPZ imm,reg_cx \310\1\xE1\50 8086
|
||||
LOOPZ imm,reg_ecx \311\1\xE1\50 386
|
||||
LSL reg16,mem \320\301\2\x0F\x03\110 286,PRIV,SM
|
||||
LSL reg16,reg16 \320\301\2\x0F\x03\110 286,PRIV
|
||||
LSL reg32,mem \321\301\2\x0F\x03\110 286,PRIV,SM
|
||||
LSL reg32,reg32 \321\301\2\x0F\x03\110 286,PRIV
|
||||
LSL reg16,mem \320\301\2\x0F\x03\110 286,PROT,SM
|
||||
LSL reg16,reg16 \320\301\2\x0F\x03\110 286,PROT
|
||||
LSL reg32,mem \321\301\2\x0F\x03\110 286,PROT,SM
|
||||
LSL reg32,reg32 \321\301\2\x0F\x03\110 286,PROT
|
||||
LSS reg16,mem \320\301\2\x0F\xB2\110 386
|
||||
LSS reg32,mem \321\301\2\x0F\xB2\110 386
|
||||
LTR mem \300\1\x0F\17\203 286,PRIV
|
||||
LTR mem16 \300\1\x0F\17\203 286,PRIV
|
||||
LTR reg16 \300\1\x0F\17\203 286,PRIV
|
||||
LTR mem \300\1\x0F\17\203 286,PROT,PRIV
|
||||
LTR mem16 \300\1\x0F\17\203 286,PROT,PRIV
|
||||
LTR reg16 \300\1\x0F\17\203 286,PROT,PRIV
|
||||
MOV mem,reg_cs \320\300\1\x8C\201 8086,SM
|
||||
MOV mem,reg_dess \320\300\1\x8C\101 8086,SM
|
||||
MOV mem,reg_fsgs \320\300\1\x8C\101 386,SM
|
||||
@ -570,14 +583,14 @@ MOV reg_eax,mem_offs \301\321\1\xA1\35 386,SM
|
||||
MOV mem_offs,reg_al \300\1\xA2\34 8086,SM
|
||||
MOV mem_offs,reg_ax \300\320\1\xA3\34 8086,SM
|
||||
MOV mem_offs,reg_eax \300\321\1\xA3\34 386,SM
|
||||
MOV reg32,reg_cr4 \2\x0F\x20\204 PENT
|
||||
MOV reg32,reg_creg \2\x0F\x20\101 386
|
||||
MOV reg32,reg_dreg \2\x0F\x21\101 386
|
||||
MOV reg32,reg_treg \2\x0F\x24\101 386
|
||||
MOV reg_cr4,reg32 \2\x0F\x22\214 PENT
|
||||
MOV reg_creg,reg32 \2\x0F\x22\110 386
|
||||
MOV reg_dreg,reg32 \2\x0F\x23\110 386
|
||||
MOV reg_treg,reg32 \2\x0F\x26\110 386
|
||||
MOV reg32,reg_cr4 \2\x0F\x20\204 PENT,PRIV
|
||||
MOV reg32,reg_creg \2\x0F\x20\101 386,PRIV
|
||||
MOV reg32,reg_dreg \2\x0F\x21\101 386,PRIV
|
||||
MOV reg32,reg_treg \2\x0F\x24\101 386,PRIV
|
||||
MOV reg_cr4,reg32 \2\x0F\x22\214 PENT,PRIV
|
||||
MOV reg_creg,reg32 \2\x0F\x22\110 386,PRIV
|
||||
MOV reg_dreg,reg32 \2\x0F\x23\110 386,PRIV
|
||||
MOV reg_treg,reg32 \2\x0F\x26\110 386,PRIV
|
||||
MOV mem,reg8 \300\1\x88\101 8086,SM
|
||||
MOV reg8,reg8 \300\1\x88\101 8086
|
||||
MOV mem,reg16 \320\300\1\x89\101 8086,SM
|
||||
@ -688,8 +701,8 @@ PANDN mmxreg,mem \301\2\x0F\xDF\110 PENT,MMX,SM
|
||||
PANDN mmxreg,mmxreg \2\x0F\xDF\110 PENT,MMX
|
||||
PAVEB mmxreg,mem \301\2\x0F\x50\110 PENT,MMX,SM,CYRIX
|
||||
PAVEB mmxreg,mmxreg \2\x0F\x50\110 PENT,MMX,CYRIX
|
||||
PAVGUSB mmxreg,mem \301\2\x0F\x0F\110\01\xBF PENT,MMX,SM,FPU
|
||||
PAVGUSB mmxreg,mmxreg \2\x0F\x0F\110\01\xBF PENT,MMX,FPU
|
||||
PAVGUSB mmxreg,mem \301\2\x0F\x0F\110\01\xBF PENT,3DNOW,SM
|
||||
PAVGUSB mmxreg,mmxreg \2\x0F\x0F\110\01\xBF PENT,3DNOW
|
||||
PCMPEQB mmxreg,mem \301\2\x0F\x74\110 PENT,MMX,SM
|
||||
PCMPEQB mmxreg,mmxreg \2\x0F\x74\110 PENT,MMX
|
||||
PCMPEQD mmxreg,mem \301\2\x0F\x76\110 PENT,MMX,SM
|
||||
@ -703,40 +716,40 @@ PCMPGTD mmxreg,mmxreg \2\x0F\x66\110 PENT,MMX
|
||||
PCMPGTW mmxreg,mem \301\2\x0F\x65\110 PENT,MMX,SM
|
||||
PCMPGTW mmxreg,mmxreg \2\x0F\x65\110 PENT,MMX
|
||||
PDISTIB mmxreg,mem \301\2\x0F\x54\110 PENT,MMX,SM,CYRIX
|
||||
PF2ID mmxreg,mem \301\2\x0F\x0F\110\01\x1D PENT,MMX,SM,FPU
|
||||
PF2ID mmxreg,mmxreg \2\x0F\x0F\110\01\x1D PENT,MMX,FPU
|
||||
PFACC mmxreg,mem \301\2\x0F\x0F\110\01\xAE PENT,MMX,SM,FPU
|
||||
PFACC mmxreg,mmxreg \2\x0F\x0F\110\01\xAE PENT,MMX,FPU
|
||||
PFADD mmxreg,mem \301\2\x0F\x0F\110\01\x9E PENT,MMX,SM,FPU
|
||||
PFADD mmxreg,mmxreg \2\x0F\x0F\110\01\x9E PENT,MMX,FPU
|
||||
PFCMPEQ mmxreg,mem \301\2\x0F\x0F\110\01\xB0 PENT,MMX,SM,FPU
|
||||
PFCMPEQ mmxreg,mmxreg \2\x0F\x0F\110\01\xB0 PENT,MMX,FPU
|
||||
PFCMPGE mmxreg,mem \301\2\x0F\x0F\110\01\x90 PENT,MMX,SM,FPU
|
||||
PFCMPGE mmxreg,mmxreg \2\x0F\x0F\110\01\x90 PENT,MMX,FPU
|
||||
PFCMPGT mmxreg,mem \301\2\x0F\x0F\110\01\xA0 PENT,MMX,SM,FPU
|
||||
PFCMPGT mmxreg,mmxreg \2\x0F\x0F\110\01\xA0 PENT,MMX,FPU
|
||||
PFMAX mmxreg,mem \301\2\x0F\x0F\110\01\xA4 PENT,MMX,SM,FPU
|
||||
PFMAX mmxreg,mmxreg \2\x0F\x0F\110\01\xA4 PENT,MMX,FPU
|
||||
PFMIN mmxreg,mem \301\2\x0F\x0F\110\01\x94 PENT,MMX,SM,FPU
|
||||
PFMIN mmxreg,mmxreg \2\x0F\x0F\110\01\x94 PENT,MMX,FPU
|
||||
PFMUL mmxreg,mem \301\2\x0F\x0F\110\01\xB4 PENT,MMX,SM,FPU
|
||||
PFMUL mmxreg,mmxreg \2\x0F\x0F\110\01\xB4 PENT,MMX,FPU
|
||||
PFRCP mmxreg,mem \301\2\x0F\x0F\110\01\x96 PENT,MMX,SM,FPU
|
||||
PFRCP mmxreg,mmxreg \2\x0F\x0F\110\01\x96 PENT,MMX,FPU
|
||||
PFRCPIT1 mmxreg,mem \301\2\x0F\x0F\110\01\xA6 PENT,MMX,SM,FPU
|
||||
PFRCPIT1 mmxreg,mmxreg \2\x0F\x0F\110\01\xA6 PENT,MMX,FPU
|
||||
PFRCPIT2 mmxreg,mem \301\2\x0F\x0F\110\01\xB6 PENT,MMX,SM,FPU
|
||||
PFRCPIT2 mmxreg,mmxreg \2\x0F\x0F\110\01\xB6 PENT,MMX,FPU
|
||||
PFRSQIT1 mmxreg,mem \301\2\x0F\x0F\110\01\xA7 PENT,MMX,SM,FPU
|
||||
PFRSQIT1 mmxreg,mmxreg \2\x0F\x0F\110\01\xA7 PENT,MMX,FPU
|
||||
PFRSQRT mmxreg,mem \301\2\x0F\x0F\110\01\x97 PENT,MMX,SM,FPU
|
||||
PFRSQRT mmxreg,mmxreg \2\x0F\x0F\110\01\x97 PENT,MMX,FPU
|
||||
PFSUB mmxreg,mem \301\2\x0F\x0F\110\01\x9A PENT,MMX,SM,FPU
|
||||
PFSUB mmxreg,mmxreg \2\x0F\x0F\110\01\x9A PENT,MMX,FPU
|
||||
PFSUBR mmxreg,mem \301\2\x0F\x0F\110\01\xAA PENT,MMX,SM,FPU
|
||||
PFSUBR mmxreg,mmxreg \2\x0F\x0F\110\01\xAA PENT,MMX,FPU
|
||||
PI2FD mmxreg,mem \301\2\x0F\x0F\110\01\x0D PENT,MMX,SM,FPU
|
||||
PI2FD mmxreg,mmxreg \2\x0F\x0F\110\01\x0D PENT,MMX,FPU
|
||||
PF2ID mmxreg,mem \301\2\x0F\x0F\110\01\x1D PENT,3DNOW,SM
|
||||
PF2ID mmxreg,mmxreg \2\x0F\x0F\110\01\x1D PENT,3DNOW
|
||||
PFACC mmxreg,mem \301\2\x0F\x0F\110\01\xAE PENT,3DNOW,SM
|
||||
PFACC mmxreg,mmxreg \2\x0F\x0F\110\01\xAE PENT,3DNOW
|
||||
PFADD mmxreg,mem \301\2\x0F\x0F\110\01\x9E PENT,3DNOW,SM
|
||||
PFADD mmxreg,mmxreg \2\x0F\x0F\110\01\x9E PENT,3DNOW
|
||||
PFCMPEQ mmxreg,mem \301\2\x0F\x0F\110\01\xB0 PENT,3DNOW,SM
|
||||
PFCMPEQ mmxreg,mmxreg \2\x0F\x0F\110\01\xB0 PENT,3DNOW
|
||||
PFCMPGE mmxreg,mem \301\2\x0F\x0F\110\01\x90 PENT,3DNOW,SM
|
||||
PFCMPGE mmxreg,mmxreg \2\x0F\x0F\110\01\x90 PENT,3DNOW
|
||||
PFCMPGT mmxreg,mem \301\2\x0F\x0F\110\01\xA0 PENT,3DNOW,SM
|
||||
PFCMPGT mmxreg,mmxreg \2\x0F\x0F\110\01\xA0 PENT,3DNOW
|
||||
PFMAX mmxreg,mem \301\2\x0F\x0F\110\01\xA4 PENT,3DNOW,SM
|
||||
PFMAX mmxreg,mmxreg \2\x0F\x0F\110\01\xA4 PENT,3DNOW
|
||||
PFMIN mmxreg,mem \301\2\x0F\x0F\110\01\x94 PENT,3DNOW,SM
|
||||
PFMIN mmxreg,mmxreg \2\x0F\x0F\110\01\x94 PENT,3DNOW
|
||||
PFMUL mmxreg,mem \301\2\x0F\x0F\110\01\xB4 PENT,3DNOW,SM
|
||||
PFMUL mmxreg,mmxreg \2\x0F\x0F\110\01\xB4 PENT,3DNOW
|
||||
PFRCP mmxreg,mem \301\2\x0F\x0F\110\01\x96 PENT,3DNOW,SM
|
||||
PFRCP mmxreg,mmxreg \2\x0F\x0F\110\01\x96 PENT,3DNOW
|
||||
PFRCPIT1 mmxreg,mem \301\2\x0F\x0F\110\01\xA6 PENT,3DNOW,SM
|
||||
PFRCPIT1 mmxreg,mmxreg \2\x0F\x0F\110\01\xA6 PENT,3DNOW
|
||||
PFRCPIT2 mmxreg,mem \301\2\x0F\x0F\110\01\xB6 PENT,3DNOW,SM
|
||||
PFRCPIT2 mmxreg,mmxreg \2\x0F\x0F\110\01\xB6 PENT,3DNOW
|
||||
PFRSQIT1 mmxreg,mem \301\2\x0F\x0F\110\01\xA7 PENT,3DNOW,SM
|
||||
PFRSQIT1 mmxreg,mmxreg \2\x0F\x0F\110\01\xA7 PENT,3DNOW
|
||||
PFRSQRT mmxreg,mem \301\2\x0F\x0F\110\01\x97 PENT,3DNOW,SM
|
||||
PFRSQRT mmxreg,mmxreg \2\x0F\x0F\110\01\x97 PENT,3DNOW
|
||||
PFSUB mmxreg,mem \301\2\x0F\x0F\110\01\x9A PENT,3DNOW,SM
|
||||
PFSUB mmxreg,mmxreg \2\x0F\x0F\110\01\x9A PENT,3DNOW
|
||||
PFSUBR mmxreg,mem \301\2\x0F\x0F\110\01\xAA PENT,3DNOW,SM
|
||||
PFSUBR mmxreg,mmxreg \2\x0F\x0F\110\01\xAA PENT,3DNOW
|
||||
PI2FD mmxreg,mem \301\2\x0F\x0F\110\01\x0D PENT,3DNOW,SM
|
||||
PI2FD mmxreg,mmxreg \2\x0F\x0F\110\01\x0D PENT,3DNOW
|
||||
PMACHRIW mmxreg,mem \301\2\x0F\x5E\110 PENT,MMX,SM,CYRIX
|
||||
PMADDWD mmxreg,mem \301\2\x0F\xF5\110 PENT,MMX,SM
|
||||
PMADDWD mmxreg,mmxreg \2\x0F\xF5\110 PENT,MMX
|
||||
@ -744,8 +757,8 @@ PMAGW mmxreg,mem \301\2\x0F\x52\110 PENT,MMX,SM,CYRIX
|
||||
PMAGW mmxreg,mmxreg \2\x0F\x52\110 PENT,MMX,CYRIX
|
||||
PMULHRIW mmxreg,mem \301\2\x0F\x5D\110 PENT,MMX,SM,CYRIX
|
||||
PMULHRIW mmxreg,mmxreg \2\x0F\x5D\110 PENT,MMX,CYRIX
|
||||
PMULHRWA mmxreg,mem \301\2\x0F\x0F\110\1\xB7 PENT,MMX,SM,FPU
|
||||
PMULHRWA mmxreg,mmxreg \2\x0F\x0F\110\1\xB7 PENT,MMX,FPU
|
||||
PMULHRWA mmxreg,mem \301\2\x0F\x0F\110\1\xB7 PENT,3DNOW,SM
|
||||
PMULHRWA mmxreg,mmxreg \2\x0F\x0F\110\1\xB7 PENT,3DNOW
|
||||
PMULHRWC mmxreg,mem \301\2\x0F\x59\110 PENT,MMX,SM,CYRIX
|
||||
PMULHRWC mmxreg,mmxreg \2\x0F\x59\110 PENT,MMX,CYRIX
|
||||
PMULHW mmxreg,mem \301\2\x0F\xE5\110 PENT,MMX,SM
|
||||
@ -771,8 +784,8 @@ POPFD void \321\1\x9D 386
|
||||
POPFW void \320\1\x9D 186
|
||||
POR mmxreg,mem \301\2\x0F\xEB\110 PENT,MMX,SM
|
||||
POR mmxreg,mmxreg \2\x0F\xEB\110 PENT,MMX
|
||||
PREFETCH mem \2\x0F\x0D\200 PENT,MMX,SM,FPU
|
||||
PREFETCHW mem \2\x0F\x0D\201 PENT,MMX,SM,FPU
|
||||
PREFETCH mem \2\x0F\x0D\200 PENT,3DNOW,SM
|
||||
PREFETCHW mem \2\x0F\x0D\201 PENT,3DNOW,SM
|
||||
PSLLD mmxreg,mem \301\2\x0F\xF2\110 PENT,MMX,SM
|
||||
PSLLD mmxreg,mmxreg \2\x0F\xF2\110 PENT,MMX
|
||||
PSLLD mmxreg,imm \2\x0F\x72\206\25 PENT,MMX
|
||||
@ -860,7 +873,8 @@ RCR rm16,imm \320\300\1\xC1\203\25 186,SB
|
||||
RCR rm32,unity \321\300\1\xD1\203 386
|
||||
RCR rm32,reg_cl \321\300\1\xD3\203 386
|
||||
RCR rm32,imm \321\300\1\xC1\203\25 386,SB
|
||||
RDMSR void \2\x0F\x32 PENT
|
||||
RDSHR void \2\x0F\x36 P6,CYRIX,SMM
|
||||
RDMSR void \2\x0F\x32 PENT,PRIV
|
||||
RDPMC void \2\x0F\x33 P6
|
||||
RDTSC void \2\x0F\x31 PENT
|
||||
REP void \1\xF3 8086,PRE
|
||||
@ -893,7 +907,9 @@ ROR rm16,imm \320\300\1\xC1\201\25 186,SB
|
||||
ROR rm32,unity \321\300\1\xD1\201 386
|
||||
ROR rm32,reg_cl \321\300\1\xD3\201 386
|
||||
ROR rm32,imm \321\300\1\xC1\201\25 386,SB
|
||||
RSM void \2\x0F\xAA PENT
|
||||
RSDC reg_sreg,mem80 \301\2\x0F\x79\101 486,CYRIX,SMM
|
||||
RSLDT mem80 \300\2\x0F\x7B\200 486,CYRIX,SMM
|
||||
RSM void \2\x0F\xAA PENT,SMM
|
||||
SAHF void \1\x9E 8086
|
||||
SAL rm8,unity \300\1\xD0\204 8086,ND
|
||||
SAL rm8,reg_cl \300\1\xD2\204 8086,ND
|
||||
@ -937,10 +953,10 @@ SBB rm32,imm \321\300\1\x81\203\41 386,SM
|
||||
SBB mem,imm8 \300\1\x80\203\21 8086,SM
|
||||
SBB mem,imm16 \320\300\1\x81\203\31 8086,SM
|
||||
SBB mem,imm32 \321\300\1\x81\203\41 386,SM
|
||||
SCASB void \1\xAE 8086
|
||||
SCASD void \321\1\xAF 386
|
||||
SCASW void \320\1\xAF 8086
|
||||
SGDT mem \300\2\x0F\x01\200 286,PRIV
|
||||
SCASB void \332\1\xAE 8086
|
||||
SCASD void \332\321\1\xAF 386
|
||||
SCASW void \332\320\1\xAF 8086
|
||||
SGDT mem \300\2\x0F\x01\200 286
|
||||
SHL rm8,unity \300\1\xD0\204 8086
|
||||
SHL rm8,reg_cl \300\1\xD2\204 8086
|
||||
SHL rm8,imm \300\1\xC0\204\25 186,SB
|
||||
@ -950,10 +966,10 @@ SHL rm16,imm \320\300\1\xC1\204\25 186,SB
|
||||
SHL rm32,unity \321\300\1\xD1\204 386
|
||||
SHL rm32,reg_cl \321\300\1\xD3\204 386
|
||||
SHL rm32,imm \321\300\1\xC1\204\25 386,SB
|
||||
SHLD mem,reg16,imm \300\320\2\x0F\xA4\101\26 386,SM2
|
||||
SHLD reg16,reg16,imm \300\320\2\x0F\xA4\101\26 386,SM2
|
||||
SHLD mem,reg32,imm \300\321\2\x0F\xA4\101\26 386,SM2
|
||||
SHLD reg32,reg32,imm \300\321\2\x0F\xA4\101\26 386,SM2
|
||||
SHLD mem,reg16,imm \300\320\2\x0F\xA4\101\26 386,SM2,SB,AR2
|
||||
SHLD reg16,reg16,imm \300\320\2\x0F\xA4\101\26 386,SM2,SB,AR2
|
||||
SHLD mem,reg32,imm \300\321\2\x0F\xA4\101\26 386,SM2,SB,AR2
|
||||
SHLD reg32,reg32,imm \300\321\2\x0F\xA4\101\26 386,SM2,SB,AR2
|
||||
SHLD mem,reg16,reg_cl \300\320\2\x0F\xA5\101 386,SM
|
||||
SHLD reg16,reg16,reg_cl \300\320\2\x0F\xA5\101 386
|
||||
SHLD mem,reg32,reg_cl \300\321\2\x0F\xA5\101 386,SM
|
||||
@ -967,22 +983,25 @@ SHR rm16,imm \320\300\1\xC1\205\25 186,SB
|
||||
SHR rm32,unity \321\300\1\xD1\205 386
|
||||
SHR rm32,reg_cl \321\300\1\xD3\205 386
|
||||
SHR rm32,imm \321\300\1\xC1\205\25 386,SB
|
||||
SHRD mem,reg16,imm \300\320\2\x0F\xAC\101\26 386,SM2
|
||||
SHRD reg16,reg16,imm \300\320\2\x0F\xAC\101\26 386,SM2
|
||||
SHRD mem,reg32,imm \300\321\2\x0F\xAC\101\26 386,SM2
|
||||
SHRD reg32,reg32,imm \300\321\2\x0F\xAC\101\26 386,SM2
|
||||
SHRD mem,reg16,imm \300\320\2\x0F\xAC\101\26 386,SM2,SB,AR2
|
||||
SHRD reg16,reg16,imm \300\320\2\x0F\xAC\101\26 386,SM2,SB,AR2
|
||||
SHRD mem,reg32,imm \300\321\2\x0F\xAC\101\26 386,SM2,SB,AR2
|
||||
SHRD reg32,reg32,imm \300\321\2\x0F\xAC\101\26 386,SM2,SB,AR2
|
||||
SHRD mem,reg16,reg_cl \300\320\2\x0F\xAD\101 386,SM
|
||||
SHRD reg16,reg16,reg_cl \300\320\2\x0F\xAD\101 386
|
||||
SHRD mem,reg32,reg_cl \300\321\2\x0F\xAD\101 386,SM
|
||||
SHRD reg32,reg32,reg_cl \300\321\2\x0F\xAD\101 386
|
||||
SIDT mem \300\2\x0F\x01\201 286,PRIV
|
||||
SLDT mem \300\1\x0F\17\200 286,PRIV
|
||||
SLDT mem16 \300\1\x0F\17\200 286,PRIV
|
||||
SLDT reg16 \300\1\x0F\17\200 286,PRIV
|
||||
SIDT mem \300\2\x0F\x01\201 286
|
||||
SLDT mem \300\1\x0F\17\200 286
|
||||
SLDT mem16 \300\1\x0F\17\200 286
|
||||
SLDT reg16 \300\1\x0F\17\200 286
|
||||
SMI void \1\xF1 386,UNDOC
|
||||
SMSW mem \300\2\x0F\x01\204 286,PRIV
|
||||
SMSW mem16 \300\2\x0F\x01\204 286,PRIV
|
||||
SMSW reg16 \300\2\x0F\x01\204 286,PRIV
|
||||
SMINT void \2\x0F\x38 P6,CYRIX
|
||||
; Older Cyrix chips had this; they had to move due to conflict with MMX
|
||||
SMINTOLD void \2\x0F\x7E 486,CYRIX,ND
|
||||
SMSW mem \300\2\x0F\x01\204 286
|
||||
SMSW mem16 \300\2\x0F\x01\204 286
|
||||
SMSW reg16 \300\2\x0F\x01\204 286
|
||||
SS void \1\x36 8086,PRE
|
||||
STC void \1\xF9 8086
|
||||
STD void \1\xFD 8086
|
||||
@ -990,9 +1009,9 @@ STI void \1\xFB 8086
|
||||
STOSB void \1\xAA 8086
|
||||
STOSD void \321\1\xAB 386
|
||||
STOSW void \320\1\xAB 8086
|
||||
STR mem \300\1\x0F\17\201 286,PRIV
|
||||
STR mem16 \300\1\x0F\17\201 286,PRIV
|
||||
STR reg16 \300\1\x0F\17\201 286,PRIV
|
||||
STR mem \300\1\x0F\17\201 286,PROT
|
||||
STR mem16 \300\1\x0F\17\201 286,PROT
|
||||
STR reg16 \300\1\x0F\17\201 286,PROT
|
||||
SUB mem,reg8 \300\1\x28\101 8086,SM
|
||||
SUB reg8,reg8 \300\1\x28\101 8086
|
||||
SUB mem,reg16 \320\300\1\x29\101 8086,SM
|
||||
@ -1016,6 +1035,13 @@ SUB rm32,imm \321\300\1\x81\205\41 386,SM
|
||||
SUB mem,imm8 \300\1\x80\205\21 8086,SM
|
||||
SUB mem,imm16 \320\300\1\x81\205\31 8086,SM
|
||||
SUB mem,imm32 \321\300\1\x81\205\41 386,SM
|
||||
SVDC mem80,reg_sreg \300\2\x0F\x78\101 486,CYRIX,SMM
|
||||
SVLDT mem80 \300\2\x0F\x7A\200 486,CYRIX,SMM
|
||||
SVTS mem80 \300\2\x0F\x7C\200 486,CYRIX,SMM
|
||||
SYSCALL void \2\x0F\x05 P6,AMD
|
||||
SYSENTER void \2\x0F\x34 P6
|
||||
SYSEXIT void \2\x0F\x36 P6,PRIV
|
||||
SYSRET void \2\x0F\x07 P6,PRIV,AMD
|
||||
TEST mem,reg8 \300\1\x84\101 8086,SM
|
||||
TEST reg8,reg8 \300\1\x84\101 8086
|
||||
TEST mem,reg16 \320\300\1\x85\101 8086,SM
|
||||
@ -1034,6 +1060,8 @@ TEST rm32,imm \321\300\1\xF7\200\41 386,SM
|
||||
TEST mem,imm8 \300\1\xF6\200\21 8086,SM
|
||||
TEST mem,imm16 \320\300\1\xF7\200\31 8086,SM
|
||||
TEST mem,imm32 \321\300\1\xF7\200\41 386,SM
|
||||
UD1 void \2\x0F\xB9 286,UNDOC
|
||||
UD2 void \2\x0F\x0B 286
|
||||
UMOV mem,reg8 \300\2\x0F\x10\101 386,UNDOC,SM
|
||||
UMOV reg8,reg8 \300\2\x0F\x10\101 386,UNDOC
|
||||
UMOV mem,reg16 \320\300\2\x0F\x11\101 386,UNDOC,SM
|
||||
@ -1046,15 +1074,16 @@ UMOV reg16,mem \320\301\2\x0F\x13\110 386,UNDOC,SM
|
||||
UMOV reg16,reg16 \320\301\2\x0F\x13\110 386,UNDOC
|
||||
UMOV reg32,mem \321\301\2\x0F\x13\110 386,UNDOC,SM
|
||||
UMOV reg32,reg32 \321\301\2\x0F\x13\110 386,UNDOC
|
||||
VERR mem \300\1\x0F\17\204 286,PRIV
|
||||
VERR mem16 \300\1\x0F\17\204 286,PRIV
|
||||
VERR reg16 \300\1\x0F\17\204 286,PRIV
|
||||
VERW mem \300\1\x0F\17\205 286,PRIV
|
||||
VERW mem16 \300\1\x0F\17\205 286,PRIV
|
||||
VERW reg16 \300\1\x0F\17\205 286,PRIV
|
||||
VERR mem \300\1\x0F\17\204 286,PROT
|
||||
VERR mem16 \300\1\x0F\17\204 286,PROT
|
||||
VERR reg16 \300\1\x0F\17\204 286,PROT
|
||||
VERW mem \300\1\x0F\17\205 286,PROT
|
||||
VERW mem16 \300\1\x0F\17\205 286,PROT
|
||||
VERW reg16 \300\1\x0F\17\205 286,PROT
|
||||
WAIT void \1\x9B 8086
|
||||
WBINVD void \2\x0F\x09 486
|
||||
WRMSR void \2\x0F\x30 PENT
|
||||
WBINVD void \2\x0F\x09 486,PRIV
|
||||
WRSHR void \2\x0F\x37 P6,CYRIX,SMM
|
||||
WRMSR void \2\x0F\x30 PENT,PRIV
|
||||
XADD mem,reg8 \300\2\x0F\xC0\101 486,SM
|
||||
XADD reg8,reg8 \300\2\x0F\xC0\101 486
|
||||
XADD mem,reg16 \320\300\2\x0F\xC1\101 486,SM
|
||||
@ -1111,7 +1140,178 @@ CMOVcc reg16,reg16 \320\301\1\x0F\330\x40\110 P6
|
||||
CMOVcc reg32,mem \321\301\1\x0F\330\x40\110 P6,SM
|
||||
CMOVcc reg32,reg32 \321\301\1\x0F\330\x40\110 P6
|
||||
Jcc imm|near \322\1\x0F\330\x80\64 386,PASS2
|
||||
Jcc imm16|near \320\1\x0F\330\x80\64 386,PASS2
|
||||
Jcc imm32|near \321\1\x0F\330\x80\64 386,PASS2
|
||||
Jcc imm \330\x70\50 8086
|
||||
Jcc imm|short \330\x70\50 8086
|
||||
Jcc imm|short \330\x70\50 8086,ND
|
||||
SETcc mem \300\1\x0F\330\x90\200 386,SB
|
||||
SETcc reg8 \300\1\x0F\330\x90\200 386
|
||||
; Katmai Streaming SIMD instructions (SSE -- a.k.a. KNI, XMM, MMX2)
|
||||
ADDPS xmmreg,mem \301\331\2\x0F\x58\110 KATMAI,SSE
|
||||
ADDPS xmmreg,xmmreg \331\2\x0F\x58\110 KATMAI,SSE
|
||||
ADDSS xmmreg,mem \301\333\2\x0F\x58\110 KATMAI,SSE
|
||||
ADDSS xmmreg,xmmreg \333\2\x0F\x58\110 KATMAI,SSE
|
||||
ANDNPS xmmreg,mem \301\2\x0F\x55\110 KATMAI,SSE
|
||||
ANDNPS xmmreg,xmmreg \2\x0F\x55\110 KATMAI,SSE
|
||||
ANDPS xmmreg,mem \301\2\x0F\x54\110 KATMAI,SSE
|
||||
ANDPS xmmreg,xmmreg \2\x0F\x54\110 KATMAI,SSE
|
||||
CMPEQPS xmmreg,mem \301\331\2\x0F\xC2\110\1\x00 KATMAI,SSE
|
||||
CMPEQPS xmmreg,xmmreg \331\2\x0F\xC2\110\1\x00 KATMAI,SSE
|
||||
CMPEQSS xmmreg,mem \301\333\2\x0F\xC2\110\1\x00 KATMAI,SSE
|
||||
CMPEQSS xmmreg,xmmreg \333\2\x0F\xC2\110\1\x00 KATMAI,SSE
|
||||
CMPLEPS xmmreg,mem \301\331\2\x0F\xC2\110\1\x02 KATMAI,SSE
|
||||
CMPLEPS xmmreg,xmmreg \331\2\x0F\xC2\110\1\x02 KATMAI,SSE
|
||||
CMPLESS xmmreg,mem \301\333\2\x0F\xC2\110\1\x02 KATMAI,SSE
|
||||
CMPLESS xmmreg,xmmreg \333\2\x0F\xC2\110\1\x02 KATMAI,SSE
|
||||
CMPLTPS xmmreg,mem \301\331\2\x0F\xC2\110\1\x01 KATMAI,SSE
|
||||
CMPLTPS xmmreg,xmmreg \331\2\x0F\xC2\110\1\x01 KATMAI,SSE
|
||||
CMPLTSS xmmreg,mem \301\333\2\x0F\xC2\110\1\x01 KATMAI,SSE
|
||||
CMPLTSS xmmreg,xmmreg \333\2\x0F\xC2\110\1\x01 KATMAI,SSE
|
||||
CMPNEQPS xmmreg,mem \301\331\2\x0F\xC2\110\1\x04 KATMAI,SSE
|
||||
CMPNEQPS xmmreg,xmmreg \331\2\x0F\xC2\110\1\x04 KATMAI,SSE
|
||||
CMPNEQSS xmmreg,mem \301\333\2\x0F\xC2\110\1\x04 KATMAI,SSE
|
||||
CMPNEQSS xmmreg,xmmreg \333\2\x0F\xC2\110\1\x04 KATMAI,SSE
|
||||
CMPNLEPS xmmreg,mem \301\331\2\x0F\xC2\110\1\x06 KATMAI,SSE
|
||||
CMPNLEPS xmmreg,xmmreg \331\2\x0F\xC2\110\1\x06 KATMAI,SSE
|
||||
CMPNLESS xmmreg,mem \301\333\2\x0F\xC2\110\1\x06 KATMAI,SSE
|
||||
CMPNLESS xmmreg,xmmreg \333\2\x0F\xC2\110\1\x06 KATMAI,SSE
|
||||
CMPNLTPS xmmreg,mem \301\331\2\x0F\xC2\110\1\x05 KATMAI,SSE
|
||||
CMPNLTPS xmmreg,xmmreg \331\2\x0F\xC2\110\1\x05 KATMAI,SSE
|
||||
CMPNLTSS xmmreg,mem \301\333\2\x0F\xC2\110\1\x05 KATMAI,SSE
|
||||
CMPNLTSS xmmreg,xmmreg \333\2\x0F\xC2\110\1\x05 KATMAI,SSE
|
||||
CMPORDPS xmmreg,mem \301\331\2\x0F\xC2\110\1\x07 KATMAI,SSE
|
||||
CMPORDPS xmmreg,xmmreg \331\2\x0F\xC2\110\1\x07 KATMAI,SSE
|
||||
CMPORDSS xmmreg,mem \301\333\2\x0F\xC2\110\1\x07 KATMAI,SSE
|
||||
CMPORDSS xmmreg,xmmreg \333\2\x0F\xC2\110\1\x07 KATMAI,SSE
|
||||
CMPUNORDPS xmmreg,mem \301\331\2\x0F\xC2\110\1\x03 KATMAI,SSE
|
||||
CMPUNORDPS xmmreg,xmmreg \331\2\x0F\xC2\110\1\x03 KATMAI,SSE
|
||||
CMPUNORDSS xmmreg,mem \301\333\2\x0F\xC2\110\1\x03 KATMAI,SSE
|
||||
CMPUNORDSS xmmreg,xmmreg \333\2\x0F\xC2\110\1\x03 KATMAI,SSE
|
||||
; CMPPS/CMPSS must come after the specific ops; that way the disassembler will find the
|
||||
; specific ops first and only disassemble illegal ones as cmpps.
|
||||
CMPPS xmmreg,mem,imm \301\331\2\x0F\xC2\110\22 KATMAI,SSE,SB,AR2
|
||||
CMPPS xmmreg,xmmreg,imm \331\2\x0F\xC2\110\22 KATMAI,SSE,SB,AR2
|
||||
CMPSS xmmreg,mem,imm \301\333\2\x0F\xC2\110\22 KATMAI,SSE,SB,AR2
|
||||
CMPSS xmmreg,xmmreg,imm \333\2\x0F\xC2\110\22 KATMAI,SSE,SB,AR2
|
||||
COMISS xmmreg,mem \301\2\x0F\x2F\110 KATMAI,SSE
|
||||
COMISS xmmreg,xmmreg \2\x0F\x2F\110 KATMAI,SSE
|
||||
CVTPI2PS xmmreg,mem \301\331\2\x0F\x2A\110 KATMAI,SSE,MMX
|
||||
CVTPI2PS xmmreg,mmxreg \331\2\x0F\x2A\110 KATMAI,SSE,MMX
|
||||
CVTPS2PI mmxreg,mem \301\331\2\x0F\x2D\110 KATMAI,SSE,MMX
|
||||
CVTPS2PI mmxreg,xmmreg \331\2\x0F\x2D\110 KATMAI,SSE,MMX
|
||||
CVTSI2SS xmmreg,mem \301\333\2\x0F\x2A\110 KATMAI,SSE,SD,AR1
|
||||
CVTSI2SS xmmreg,reg32 \333\2\x0F\x2A\110 KATMAI,SSE
|
||||
CVTSS2SI reg32,mem \301\333\2\x0F\x2D\110 KATMAI,SSE
|
||||
CVTSS2SI reg32,xmmreg \333\2\x0F\x2D\110 KATMAI,SSE
|
||||
CVTTPS2PI mmxreg,mem \301\331\2\x0F\x2C\110 KATMAI,SSE,MMX
|
||||
CVTTPS2PI mmxreg,xmmreg \331\2\x0F\x2C\110 KATMAI,SSE,MMX
|
||||
CVTTSS2SI reg32,mem \301\333\2\x0F\x2C\110 KATMAI,SSE
|
||||
CVTTSS2SI reg32,xmmreg \333\2\x0F\x2C\110 KATMAI,SSE
|
||||
DIVPS xmmreg,mem \301\331\2\x0F\x5E\110 KATMAI,SSE
|
||||
DIVPS xmmreg,xmmreg \331\2\x0F\x5E\110 KATMAI,SSE
|
||||
DIVSS xmmreg,mem \301\333\2\x0F\x5E\110 KATMAI,SSE
|
||||
DIVSS xmmreg,xmmreg \333\2\x0F\x5E\110 KATMAI,SSE
|
||||
LDMXCSR mem \300\2\x0F\xAE\202 KATMAI,SSE,SD
|
||||
MAXPS xmmreg,mem \301\331\2\x0F\x5F\110 KATMAI,SSE
|
||||
MAXPS xmmreg,xmmreg \331\2\x0F\x5F\110 KATMAI,SSE
|
||||
MAXSS xmmreg,mem \301\333\2\x0F\x5F\110 KATMAI,SSE
|
||||
MAXSS xmmreg,xmmreg \333\2\x0F\x5F\110 KATMAI,SSE
|
||||
MINPS xmmreg,mem \301\331\2\x0F\x5D\110 KATMAI,SSE
|
||||
MINPS xmmreg,xmmreg \331\2\x0F\x5D\110 KATMAI,SSE
|
||||
MINSS xmmreg,mem \301\333\2\x0F\x5D\110 KATMAI,SSE
|
||||
MINSS xmmreg,xmmreg \333\2\x0F\x5D\110 KATMAI,SSE
|
||||
MOVAPS xmmreg,mem \301\2\x0F\x28\110 KATMAI,SSE
|
||||
MOVAPS mem,xmmreg \300\2\x0F\x29\101 KATMAI,SSE
|
||||
MOVAPS xmmreg,xmmreg \2\x0F\x28\110 KATMAI,SSE
|
||||
MOVAPS xmmreg,xmmreg \2\x0F\x29\101 KATMAI,SSE
|
||||
MOVHPS xmmreg,mem \301\2\x0F\x16\110 KATMAI,SSE
|
||||
MOVHPS mem,xmmreg \300\2\x0F\x17\101 KATMAI,SSE
|
||||
MOVHPS xmmreg,xmmreg \2\x0F\x16\101 KATMAI,SSE,ND
|
||||
MOVLHPS xmmreg,xmmreg \2\x0F\x16\110 KATMAI,SSE
|
||||
MOVLPS xmmreg,mem \301\2\x0F\x12\110 KATMAI,SSE
|
||||
MOVLPS mem,xmmreg \300\2\x0F\x13\101 KATMAI,SSE
|
||||
MOVLPS xmmreg,xmmreg \2\x0F\x12\101 KATMAI,SSE,ND
|
||||
MOVHLPS xmmreg,xmmreg \2\x0F\x12\110 KATMAI,SSE
|
||||
MOVMSKPS reg32,xmmreg \2\x0F\x50\110 KATMAI,SSE
|
||||
MOVNTPS mem,xmmreg \2\x0F\x2B\101 KATMAI,SSE
|
||||
MOVSS xmmreg,mem \301\333\2\x0F\x10\110 KATMAI,SSE
|
||||
MOVSS mem,xmmreg \300\333\2\x0F\x11\101 KATMAI,SSE
|
||||
MOVSS xmmreg,xmmreg \333\2\x0F\x10\110 KATMAI,SSE
|
||||
MOVSS xmmreg,xmmreg \333\2\x0F\x11\101 KATMAI,SSE
|
||||
MOVUPS xmmreg,mem \301\331\2\x0F\x10\110 KATMAI,SSE
|
||||
MOVUPS mem,xmmreg \300\331\2\x0F\x11\101 KATMAI,SSE
|
||||
MOVUPS xmmreg,xmmreg \331\2\x0F\x10\110 KATMAI,SSE
|
||||
MOVUPS xmmreg,xmmreg \331\2\x0F\x11\101 KATMAI,SSE
|
||||
MULPS xmmreg,mem \301\2\x0F\x59\110 KATMAI,SSE
|
||||
MULPS xmmreg,xmmreg \2\x0F\x59\110 KATMAI,SSE
|
||||
MULSS xmmreg,mem \301\333\2\x0F\x59\110 KATMAI,SSE
|
||||
MULSS xmmreg,xmmreg \333\2\x0F\x59\110 KATMAI,SSE
|
||||
ORPS xmmreg,mem \301\2\x0F\x56\110 KATMAI,SSE
|
||||
ORPS xmmreg,xmmreg \2\x0F\x56\110 KATMAI,SSE
|
||||
RCPPS xmmreg,mem \301\331\2\x0F\x53\110 KATMAI,SSE
|
||||
RCPPS xmmreg,xmmreg \331\2\x0F\x53\110 KATMAI,SSE
|
||||
RCPSS xmmreg,mem \301\333\2\x0F\x53\110 KATMAI,SSE
|
||||
RCPSS xmmreg,xmmreg \333\2\x0F\x53\110 KATMAI,SSE
|
||||
RSQRTPS xmmreg,mem \301\331\2\x0F\x52\110 KATMAI,SSE
|
||||
RSQRTPS xmmreg,xmmreg \331\2\x0F\x52\110 KATMAI,SSE
|
||||
RSQRTSS xmmreg,mem \301\333\2\x0F\x52\110 KATMAI,SSE
|
||||
RSQRTSS xmmreg,xmmreg \333\2\x0F\x52\110 KATMAI,SSE
|
||||
SHUFPS xmmreg,mem,imm \301\2\x0F\xC6\110\22 KATMAI,SSE,SB,AR2
|
||||
SHUFPS xmmreg,xmmreg,imm \2\x0F\xC6\110\22 KATMAI,SSE,SB,AR2
|
||||
SQRTPS xmmreg,mem \301\331\2\x0F\x51\110 KATMAI,SSE
|
||||
SQRTPS xmmreg,xmmreg \331\2\x0F\x51\110 KATMAI,SSE
|
||||
SQRTSS xmmreg,mem \301\333\2\x0F\x51\110 KATMAI,SSE
|
||||
SQRTSS xmmreg,xmmreg \333\2\x0F\x51\110 KATMAI,SSE
|
||||
STMXCSR mem \300\2\x0F\xAE\203 KATMAI,SSE,SD
|
||||
SUBPS xmmreg,mem \301\331\2\x0F\x5C\110 KATMAI,SSE
|
||||
SUBPS xmmreg,xmmreg \331\2\x0F\x5C\110 KATMAI,SSE
|
||||
SUBSS xmmreg,mem \301\333\2\x0F\x5C\110 KATMAI,SSE
|
||||
SUBSS xmmreg,xmmreg \333\2\x0F\x5C\110 KATMAI,SSE
|
||||
UCOMISS xmmreg,mem \301\2\x0F\x2E\110 KATMAI,SSE
|
||||
UCOMISS xmmreg,xmmreg \2\x0F\x2E\110 KATMAI,SSE
|
||||
UNPCKHPS xmmreg,mem \301\2\x0F\x15\110 KATMAI,SSE
|
||||
UNPCKHPS xmmreg,xmmreg \2\x0F\x15\110 KATMAI,SSE
|
||||
UNPCKLPS xmmreg,mem \301\2\x0F\x14\110 KATMAI,SSE
|
||||
UNPCKLPS xmmreg,xmmreg \2\x0F\x14\110 KATMAI,SSE
|
||||
XORPS xmmreg,mem \301\2\x0F\x57\110 KATMAI,SSE
|
||||
XORPS xmmreg,xmmreg \2\x0F\x57\110 KATMAI,SSE
|
||||
; Introduced in Dechutes but necessary for SSE support
|
||||
FXRSTOR mem \300\2\x0F\xAE\201 P6,SSE,FPU
|
||||
FXSAVE mem \300\2\x0F\xAE\200 P6,SSE,FPU
|
||||
; These instructions aren't SSE-specific; they are generic memory operations
|
||||
; and work even if CR4.OSFXFR == 0
|
||||
PREFETCHNTA mem \300\2\x0F\x18\200 KATMAI
|
||||
PREFETCHT0 mem \300\2\x0F\x18\201 KATMAI
|
||||
PREFETCHT1 mem \300\2\x0F\x18\202 KATMAI
|
||||
PREFETCHT2 mem \300\2\x0F\x18\203 KATMAI
|
||||
SFENCE void \3\x0F\xAE\xF8 KATMAI
|
||||
; New MMX instructions introduced in Katmai
|
||||
MASKMOVQ mmxreg,mmxreg \2\x0F\xF7\110 KATMAI,MMX
|
||||
MOVNTQ mem,mmxreg \2\x0F\xE7\101 KATMAI,MMX,SM
|
||||
PAVGB mmxreg,mmxreg \2\x0F\xE0\110 KATMAI,MMX
|
||||
PAVGB mmxreg,mem \301\2\x0F\xE0\110 KATMAI,MMX,SM
|
||||
PAVGW mmxreg,mmxreg \2\x0F\xE3\110 KATMAI,MMX
|
||||
PAVGW mmxreg,mem \301\2\x0F\xE3\110 KATMAI,MMX,SM
|
||||
PEXTRW reg32,mmxreg,imm \2\x0F\xC5\110\22 KATMAI,MMX,SB,AR2
|
||||
; PINSRW is documented as using a reg32, but it's really using only 16 bit
|
||||
; -- accept either, but be truthful in disassembly
|
||||
PINSRW mmxreg,reg16,imm \2\x0F\xC4\110\22 KATMAI,MMX,SB,AR2
|
||||
PINSRW mmxreg,reg32,imm \2\x0F\xC4\110\22 KATMAI,MMX,SB,AR2,ND
|
||||
PINSRW mmxreg,mem,imm \301\2\x0F\xC4\110\22 KATMAI,MMX,SB,AR2
|
||||
PINSRW mmxreg,mem16,imm \301\2\x0F\xC4\110\22 KATMAI,MMX,SB,AR2,ND
|
||||
PMAXSW mmxreg,mmxreg \2\x0F\xEE\110 KATMAI,MMX
|
||||
PMAXSW mmxreg,mem \301\2\x0F\xEE\110 KATMAI,MMX,SM
|
||||
PMAXUB mmxreg,mmxreg \2\x0F\xDE\110 KATMAI,MMX
|
||||
PMAXUB mmxreg,mem \301\2\x0F\xDE\110 KATMAI,MMX,SM
|
||||
PMINSW mmxreg,mmxreg \2\x0F\xEA\110 KATMAI,MMX
|
||||
PMINSW mmxreg,mem \301\2\x0F\xEA\110 KATMAI,MMX,SM
|
||||
PMINUB mmxreg,mmxreg \2\x0F\xDA\110 KATMAI,MMX
|
||||
PMINUB mmxreg,mem \301\2\x0F\xDA\110 KATMAI,MMX,SM
|
||||
PMOVMSKB reg32,mmxreg \2\x0F\xD7\110 KATMAI,MMX
|
||||
PMULHUW mmxreg,mmxreg \2\x0F\xE4\110 KATMAI,MMX
|
||||
PMULHUW mmxreg,mem \301\2\x0F\xE4\110 KATMAI,MMX,SM
|
||||
PSADBW mmxreg,mmxreg \2\x0F\xF6\110 KATMAI,MMX
|
||||
PSADBW mmxreg,mem \301\2\x0F\xF6\110 KATMAI,MMX,SM
|
||||
PSHUFW mmxreg,mmxreg,imm \2\x0F\x70\110\22 KATMAI,MMX,SB,AR2
|
||||
PSHUFW mmxreg,mem,imm \301\2\x0F\x70\110\22 KATMAI,MMX,SM2,SB,AR2
|
||||
|
||||
|
||||
@ -20,6 +20,28 @@ var
|
||||
s : string;
|
||||
i : longint;
|
||||
|
||||
{$ifndef FPC}
|
||||
procedure readln(var t:text;var s:string);
|
||||
var
|
||||
c : char;
|
||||
i : longint;
|
||||
begin
|
||||
c:=#0;
|
||||
i:=0;
|
||||
while (not eof(t)) and (c<>#10) do
|
||||
begin
|
||||
read(t,c);
|
||||
if c<>#10 then
|
||||
begin
|
||||
inc(i);
|
||||
s[i]:=c;
|
||||
end;
|
||||
end;
|
||||
if (i>0) and (s[i]=#13) then
|
||||
dec(i);
|
||||
s[0]:=chr(i);
|
||||
end;
|
||||
{$endif}
|
||||
|
||||
function Replace(var s:string;const s1,s2:string):boolean;
|
||||
var
|
||||
@ -167,8 +189,9 @@ var
|
||||
flags : string;
|
||||
optypes : array[1..3] of string;
|
||||
begin
|
||||
writeln('Nasm Instruction Table Converter Version 0.99.11');
|
||||
writeln('Nasm Instruction Table Converter Version 0.99.13');
|
||||
insns:=0;
|
||||
maxinfolen:=0;
|
||||
assign(infile,'insns.dat');
|
||||
reset(infile);
|
||||
assign(outfile,'i386tab.inc');
|
||||
@ -179,7 +202,9 @@ begin
|
||||
begin
|
||||
{ handle comment }
|
||||
readln(infile,s);
|
||||
if s[1]=';' then
|
||||
while (s[1]=' ') do
|
||||
delete(s,1,1);
|
||||
if (s='') or (s[1]=';') then
|
||||
continue;
|
||||
{ clear }
|
||||
opcode:='';
|
||||
@ -294,7 +319,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.2 1999-05-23 18:42:24 florian
|
||||
Revision 1.3 1999-08-12 14:36:09 peter
|
||||
+ KNI instructions
|
||||
|
||||
Revision 1.2 1999/05/23 18:42:24 florian
|
||||
* better error recovering in typed constants
|
||||
* some problems with arrays of const fixed, some problems
|
||||
due my previous
|
||||
|
||||
Loading…
Reference in New Issue
Block a user