Selaa lähdekoodia

* x86: Completely skip instructions that do not exist for target CPU bit width. The existing behavior of writing mnemonics and properties but no encoding allows an invalid instruction to be recognized by assembler reader or even generated by compiler, but it but won't assemble anyway.

git-svn-id: trunk@27934 -
sergei 11 vuotta sitten
vanhempi
commit
dc628b8969

+ 0 - 29
compiler/i386/i386att.inc

@@ -161,10 +161,8 @@
 'iret',
 'iret',
 'iretw',
-'iretq',
 'jcxz',
 'jecxz',
-'jrcxz',
 'jmp',
 'lahf',
 'lar',
@@ -200,7 +198,6 @@
 'movq',
 'movsb',
 'movsl',
-'movsq',
 'movsw',
 'movs',
 'movz',
@@ -272,7 +269,6 @@
 'popf',
 'popfl',
 'popfw',
-'popfq',
 'por',
 'prefetch',
 'prefetchw',
@@ -306,7 +302,6 @@
 'pushf',
 'pushfl',
 'pushfw',
-'pushfq',
 'pxor',
 'rcl',
 'rcr',
@@ -334,7 +329,6 @@
 'sbb',
 'scasb',
 'scasl',
-'scasq',
 'scasw',
 'cs',
 'ds',
@@ -596,10 +590,6 @@
 'xsha256',
 'dmint',
 'rdm',
-'movabs',
-'movslq',
-'cqto',
-'cmpxchg16b',
 'movntss',
 'movntsd',
 'insertq',
@@ -637,11 +627,9 @@
 'pcmpeqq',
 'pextrb',
 'pextrd',
-'pextrq',
 'phminposuw',
 'pinsrb',
 'pinsrd',
-'pinsrq',
 'pmaxsb',
 'pmaxsd',
 'pmaxud',
@@ -682,9 +670,6 @@
 'aesdeclast',
 'aesimc',
 'aeskeygenassist',
-'stosq',
-'lodsq',
-'cmpsq',
 'vaddpd',
 'vaddps',
 'vaddsd',
@@ -971,20 +956,6 @@
 'vpsravd',
 'vpsrlvd',
 'vpsrlvq',
-'add4s',
-'brkem',
-'clr1',
-'cmp4s',
-'ext',
-'ins',
-'not1',
-'repc',
-'repnc',
-'rol4',
-'ror4',
-'set1',
-'sub4s',
-'test1',
 'vfmadd132pd',
 'vfmadd213pd',
 'vfmadd231pd',

+ 0 - 29
compiler/i386/i386atts.inc

@@ -163,8 +163,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufNONE,
-attsufNONE,
 attsufINT,
 attsufNONE,
 attsufINT,
@@ -201,7 +199,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufNONE,
 attsufINTdual,
 attsufINTdual,
 attsufINT,
@@ -273,7 +270,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufNONE,
 attsufINT,
 attsufINT,
 attsufNONE,
@@ -307,7 +303,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufNONE,
 attsufINT,
 attsufINT,
 attsufNONE,
@@ -342,7 +337,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufNONE,
 attsufINT,
 attsufINT,
 attsufINT,
@@ -599,10 +593,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufINT,
-attsufNONE,
-attsufNONE,
-attsufNONE,
 attsufNONE,
 attsufINT,
 attsufNONE,
@@ -667,8 +657,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufNONE,
-attsufNONE,
 attsufINT,
 attsufNONE,
 attsufNONE,
@@ -713,9 +701,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
 attsufMM,
 attsufMM,
 attsufNONE,
@@ -1031,19 +1016,5 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
 attsufNONE
 );

+ 0 - 29
compiler/i386/i386int.inc

@@ -161,10 +161,8 @@
 'iret',
 'iretd',
 'iretw',
-'iretq',
 'jcxz',
 'jecxz',
-'jrcxz',
 'jmp',
 'lahf',
 'lar',
@@ -200,7 +198,6 @@
 'movq',
 'movsb',
 'movsd',
-'movsq',
 'movsw',
 'movsx',
 'movzx',
@@ -272,7 +269,6 @@
 'popf',
 'popfd',
 'popfw',
-'popfq',
 'por',
 'prefetch',
 'prefetchw',
@@ -306,7 +302,6 @@
 'pushf',
 'pushfd',
 'pushfw',
-'pushfq',
 'pxor',
 'rcl',
 'rcr',
@@ -334,7 +329,6 @@
 'sbb',
 'scasb',
 'scasd',
-'scasq',
 'scasw',
 'segcs',
 'segds',
@@ -596,10 +590,6 @@
 'xsha256',
 'dmint',
 'rdm',
-'movabs',
-'movsxd',
-'cqo',
-'cmpxchg16b',
 'movntss',
 'movntsd',
 'insertq',
@@ -637,11 +627,9 @@
 'pcmpeqq',
 'pextrb',
 'pextrd',
-'pextrq',
 'phminposuw',
 'pinsrb',
 'pinsrd',
-'pinsrq',
 'pmaxsb',
 'pmaxsd',
 'pmaxud',
@@ -682,9 +670,6 @@
 'aesdeclast',
 'aesimc',
 'aeskeygenassist',
-'stosq',
-'lodsq',
-'cmpsq',
 'vaddpd',
 'vaddps',
 'vaddsd',
@@ -971,20 +956,6 @@
 'vpsravd',
 'vpsrlvd',
 'vpsrlvq',
-'add4s',
-'brkem',
-'clr1',
-'cmp4s',
-'ext',
-'ins',
-'not1',
-'repc',
-'repnc',
-'rol4',
-'ror4',
-'set1',
-'sub4s',
-'test1',
 'vfmadd132pd',
 'vfmadd213pd',
 'vfmadd231pd',

+ 0 - 29
compiler/i386/i386op.inc

@@ -161,10 +161,8 @@ A_INVLPG,
 A_IRET,
 A_IRETD,
 A_IRETW,
-A_IRETQ,
 A_JCXZ,
 A_JECXZ,
-A_JRCXZ,
 A_JMP,
 A_LAHF,
 A_LAR,
@@ -200,7 +198,6 @@ A_MOVD,
 A_MOVQ,
 A_MOVSB,
 A_MOVSD,
-A_MOVSQ,
 A_MOVSW,
 A_MOVSX,
 A_MOVZX,
@@ -272,7 +269,6 @@ A_POPAW,
 A_POPF,
 A_POPFD,
 A_POPFW,
-A_POPFQ,
 A_POR,
 A_PREFETCH,
 A_PREFETCHW,
@@ -306,7 +302,6 @@ A_PUSHAW,
 A_PUSHF,
 A_PUSHFD,
 A_PUSHFW,
-A_PUSHFQ,
 A_PXOR,
 A_RCL,
 A_RCR,
@@ -334,7 +329,6 @@ A_SAR,
 A_SBB,
 A_SCASB,
 A_SCASD,
-A_SCASQ,
 A_SCASW,
 A_SEGCS,
 A_SEGDS,
@@ -596,10 +590,6 @@ A_XSHA1,
 A_XSHA256,
 A_DMINT,
 A_RDM,
-A_MOVABS,
-A_MOVSXD,
-A_CQO,
-A_CMPXCHG16B,
 A_MOVNTSS,
 A_MOVNTSD,
 A_INSERTQ,
@@ -637,11 +627,9 @@ A_PBLENDW,
 A_PCMPEQQ,
 A_PEXTRB,
 A_PEXTRD,
-A_PEXTRQ,
 A_PHMINPOSUW,
 A_PINSRB,
 A_PINSRD,
-A_PINSRQ,
 A_PMAXSB,
 A_PMAXSD,
 A_PMAXUD,
@@ -682,9 +670,6 @@ A_AESDEC,
 A_AESDECLAST,
 A_AESIMC,
 A_AESKEYGENASSIST,
-A_STOSQ,
-A_LODSQ,
-A_CMPSQ,
 A_VADDPD,
 A_VADDPS,
 A_VADDSD,
@@ -971,20 +956,6 @@ A_VPSLLVQ,
 A_VPSRAVD,
 A_VPSRLVD,
 A_VPSRLVQ,
-A_ADD4S,
-A_BRKEM,
-A_CLR1,
-A_CMP4S,
-A_EXT,
-A_INS,
-A_NOT1,
-A_REPC,
-A_REPNC,
-A_ROL4,
-A_ROR4,
-A_SET1,
-A_SUB4S,
-A_TEST1,
 A_VFMADD132PD,
 A_VFMADD213PD,
 A_VFMADD231PD,

+ 0 - 29
compiler/i386/i386prop.inc

@@ -161,8 +161,6 @@
 (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_RECX, Ch_None, Ch_None)),
 (Ch: (Ch_RECX, Ch_None, Ch_None)),
 (Ch: (Ch_RECX, Ch_None, Ch_None)),
 (Ch: (Ch_ROp1, Ch_None, Ch_None)),
@@ -201,7 +199,6 @@
 (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_Wop2, Ch_Rop1, Ch_None)),
 (Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
 (Ch: (Ch_RWEAX, Ch_WEDX, Ch_WFlags)),
@@ -272,7 +269,6 @@
 (Ch: (Ch_RWESP, Ch_WFlags, Ch_None)),
 (Ch: (Ch_RWESP, Ch_WFlags, Ch_None)),
 (Ch: (Ch_RWESP, Ch_WFLAGS, Ch_None)),
-(Ch: (Ch_RWESP, Ch_WFlags, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
@@ -306,7 +302,6 @@
 (Ch: (Ch_RWESP, Ch_RFlags, Ch_None)),
 (Ch: (Ch_RWESP, Ch_RFlags, Ch_None)),
 (Ch: (Ch_RWESP, Ch_RFLAGS, Ch_None)),
-(Ch: (Ch_RWESP, Ch_RFlags, Ch_None)),
 (Ch: (Ch_Mop2, Ch_Rop1, Ch_None)),
 (Ch: (Ch_Mop2, Ch_Rop1, Ch_RWFlags)),
 (Ch: (Ch_Mop2, Ch_Rop1, Ch_RWFlags)),
@@ -335,7 +330,6 @@
 (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_None, Ch_None, Ch_None)),
 (Ch: (Ch_None, Ch_None, Ch_None)),
 (Ch: (Ch_None, Ch_None, Ch_None)),
@@ -596,12 +590,6 @@
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
-(Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
-(Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
-(Ch: (Ch_MRAX, Ch_WRDX, 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)),
@@ -682,9 +670,6 @@
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
-(Ch: (Ch_RRAX, Ch_WMemEDI, Ch_RWRDI)),
-(Ch: (Ch_WRAX, Ch_RWRSI, Ch_None)),
-(Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_Wop3, Ch_Rop2, Ch_Rop1)),
 (Ch: (Ch_Wop3, Ch_Rop2, Ch_Rop1)),
 (Ch: (Ch_Wop3, Ch_Rop2, Ch_Rop1)),
@@ -971,20 +956,6 @@
 (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_Mop2, Ch_Rop1, 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_Mop2, Ch_Rop1, Ch_None)),
-(Ch: (Ch_RWECX, Ch_RWFlags, Ch_None)),
-(Ch: (Ch_RWECX, Ch_RWFlags, Ch_None)),
-(Ch: (Ch_Mop1, Ch_RWEAX, Ch_None)),
-(Ch: (Ch_Mop1, Ch_RWEAX, Ch_None)),
-(Ch: (Ch_Mop2, Ch_Rop1, Ch_None)),
-(Ch: (Ch_All, Ch_None, Ch_None)),
-(Ch: (Ch_WFlags, Ch_Rop1, Ch_Rop2)),
 (Ch: (Ch_Mop3, Ch_Rop2, Ch_Rop1)),
 (Ch: (Ch_Mop3, Ch_Rop2, Ch_Rop1)),
 (Ch: (Ch_Mop3, Ch_Rop2, Ch_Rop1)),

+ 0 - 15
compiler/i8086/i8086att.inc

@@ -161,10 +161,8 @@
 'iret',
 'iret',
 'iretw',
-'iretq',
 'jcxz',
 'jecxz',
-'jrcxz',
 'jmp',
 'lahf',
 'lar',
@@ -200,7 +198,6 @@
 'movq',
 'movsb',
 'movsl',
-'movsq',
 'movsw',
 'movs',
 'movz',
@@ -272,7 +269,6 @@
 'popf',
 'popfl',
 'popfw',
-'popfq',
 'por',
 'prefetch',
 'prefetchw',
@@ -306,7 +302,6 @@
 'pushf',
 'pushfl',
 'pushfw',
-'pushfq',
 'pxor',
 'rcl',
 'rcr',
@@ -334,7 +329,6 @@
 'sbb',
 'scasb',
 'scasl',
-'scasq',
 'scasw',
 'cs',
 'ds',
@@ -596,10 +590,6 @@
 'xsha256',
 'dmint',
 'rdm',
-'movabs',
-'movslq',
-'cqto',
-'cmpxchg16b',
 'movntss',
 'movntsd',
 'insertq',
@@ -637,11 +627,9 @@
 'pcmpeqq',
 'pextrb',
 'pextrd',
-'pextrq',
 'phminposuw',
 'pinsrb',
 'pinsrd',
-'pinsrq',
 'pmaxsb',
 'pmaxsd',
 'pmaxud',
@@ -682,9 +670,6 @@
 'aesdeclast',
 'aesimc',
 'aeskeygenassist',
-'stosq',
-'lodsq',
-'cmpsq',
 'vaddpd',
 'vaddps',
 'vaddsd',

+ 0 - 15
compiler/i8086/i8086atts.inc

@@ -163,8 +163,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufNONE,
-attsufNONE,
 attsufINT,
 attsufNONE,
 attsufINT,
@@ -201,7 +199,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufNONE,
 attsufINTdual,
 attsufINTdual,
 attsufINT,
@@ -273,7 +270,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufNONE,
 attsufINT,
 attsufINT,
 attsufNONE,
@@ -307,7 +303,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufNONE,
 attsufINT,
 attsufINT,
 attsufNONE,
@@ -342,7 +337,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufNONE,
 attsufINT,
 attsufINT,
 attsufINT,
@@ -599,10 +593,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufINT,
-attsufNONE,
-attsufNONE,
-attsufNONE,
 attsufNONE,
 attsufINT,
 attsufNONE,
@@ -667,8 +657,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufNONE,
-attsufNONE,
 attsufINT,
 attsufNONE,
 attsufNONE,
@@ -713,9 +701,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
 attsufMM,
 attsufMM,
 attsufNONE,

+ 0 - 15
compiler/i8086/i8086int.inc

@@ -161,10 +161,8 @@
 'iret',
 'iretd',
 'iretw',
-'iretq',
 'jcxz',
 'jecxz',
-'jrcxz',
 'jmp',
 'lahf',
 'lar',
@@ -200,7 +198,6 @@
 'movq',
 'movsb',
 'movsd',
-'movsq',
 'movsw',
 'movsx',
 'movzx',
@@ -272,7 +269,6 @@
 'popf',
 'popfd',
 'popfw',
-'popfq',
 'por',
 'prefetch',
 'prefetchw',
@@ -306,7 +302,6 @@
 'pushf',
 'pushfd',
 'pushfw',
-'pushfq',
 'pxor',
 'rcl',
 'rcr',
@@ -334,7 +329,6 @@
 'sbb',
 'scasb',
 'scasd',
-'scasq',
 'scasw',
 'segcs',
 'segds',
@@ -596,10 +590,6 @@
 'xsha256',
 'dmint',
 'rdm',
-'movabs',
-'movsxd',
-'cqo',
-'cmpxchg16b',
 'movntss',
 'movntsd',
 'insertq',
@@ -637,11 +627,9 @@
 'pcmpeqq',
 'pextrb',
 'pextrd',
-'pextrq',
 'phminposuw',
 'pinsrb',
 'pinsrd',
-'pinsrq',
 'pmaxsb',
 'pmaxsd',
 'pmaxud',
@@ -682,9 +670,6 @@
 'aesdeclast',
 'aesimc',
 'aeskeygenassist',
-'stosq',
-'lodsq',
-'cmpsq',
 'vaddpd',
 'vaddps',
 'vaddsd',

+ 0 - 15
compiler/i8086/i8086op.inc

@@ -161,10 +161,8 @@ A_INVLPG,
 A_IRET,
 A_IRETD,
 A_IRETW,
-A_IRETQ,
 A_JCXZ,
 A_JECXZ,
-A_JRCXZ,
 A_JMP,
 A_LAHF,
 A_LAR,
@@ -200,7 +198,6 @@ A_MOVD,
 A_MOVQ,
 A_MOVSB,
 A_MOVSD,
-A_MOVSQ,
 A_MOVSW,
 A_MOVSX,
 A_MOVZX,
@@ -272,7 +269,6 @@ A_POPAW,
 A_POPF,
 A_POPFD,
 A_POPFW,
-A_POPFQ,
 A_POR,
 A_PREFETCH,
 A_PREFETCHW,
@@ -306,7 +302,6 @@ A_PUSHAW,
 A_PUSHF,
 A_PUSHFD,
 A_PUSHFW,
-A_PUSHFQ,
 A_PXOR,
 A_RCL,
 A_RCR,
@@ -334,7 +329,6 @@ A_SAR,
 A_SBB,
 A_SCASB,
 A_SCASD,
-A_SCASQ,
 A_SCASW,
 A_SEGCS,
 A_SEGDS,
@@ -596,10 +590,6 @@ A_XSHA1,
 A_XSHA256,
 A_DMINT,
 A_RDM,
-A_MOVABS,
-A_MOVSXD,
-A_CQO,
-A_CMPXCHG16B,
 A_MOVNTSS,
 A_MOVNTSD,
 A_INSERTQ,
@@ -637,11 +627,9 @@ A_PBLENDW,
 A_PCMPEQQ,
 A_PEXTRB,
 A_PEXTRD,
-A_PEXTRQ,
 A_PHMINPOSUW,
 A_PINSRB,
 A_PINSRD,
-A_PINSRQ,
 A_PMAXSB,
 A_PMAXSD,
 A_PMAXUD,
@@ -682,9 +670,6 @@ A_AESDEC,
 A_AESDECLAST,
 A_AESIMC,
 A_AESKEYGENASSIST,
-A_STOSQ,
-A_LODSQ,
-A_CMPSQ,
 A_VADDPD,
 A_VADDPS,
 A_VADDSD,

+ 0 - 15
compiler/i8086/i8086prop.inc

@@ -161,8 +161,6 @@
 (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_RECX, Ch_None, Ch_None)),
 (Ch: (Ch_RECX, Ch_None, Ch_None)),
 (Ch: (Ch_RECX, Ch_None, Ch_None)),
 (Ch: (Ch_ROp1, Ch_None, Ch_None)),
@@ -201,7 +199,6 @@
 (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_Wop2, Ch_Rop1, Ch_None)),
 (Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
 (Ch: (Ch_RWEAX, Ch_WEDX, Ch_WFlags)),
@@ -272,7 +269,6 @@
 (Ch: (Ch_RWESP, Ch_WFlags, Ch_None)),
 (Ch: (Ch_RWESP, Ch_WFlags, Ch_None)),
 (Ch: (Ch_RWESP, Ch_WFLAGS, Ch_None)),
-(Ch: (Ch_RWESP, Ch_WFlags, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
@@ -306,7 +302,6 @@
 (Ch: (Ch_RWESP, Ch_RFlags, Ch_None)),
 (Ch: (Ch_RWESP, Ch_RFlags, Ch_None)),
 (Ch: (Ch_RWESP, Ch_RFLAGS, Ch_None)),
-(Ch: (Ch_RWESP, Ch_RFlags, Ch_None)),
 (Ch: (Ch_Mop2, Ch_Rop1, Ch_None)),
 (Ch: (Ch_Mop2, Ch_Rop1, Ch_RWFlags)),
 (Ch: (Ch_Mop2, Ch_Rop1, Ch_RWFlags)),
@@ -335,7 +330,6 @@
 (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_None, Ch_None, Ch_None)),
 (Ch: (Ch_None, Ch_None, Ch_None)),
 (Ch: (Ch_None, Ch_None, Ch_None)),
@@ -596,12 +590,6 @@
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
-(Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
-(Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
-(Ch: (Ch_MRAX, Ch_WRDX, 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)),
@@ -682,9 +670,6 @@
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
-(Ch: (Ch_RRAX, Ch_WMemEDI, Ch_RWRDI)),
-(Ch: (Ch_WRAX, Ch_RWRSI, Ch_None)),
-(Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_Wop3, Ch_Rop2, Ch_Rop1)),
 (Ch: (Ch_Wop3, Ch_Rop2, Ch_Rop1)),
 (Ch: (Ch_Wop3, Ch_Rop2, Ch_Rop1)),

+ 30 - 17
compiler/utils/mkx86ins.pp

@@ -203,6 +203,29 @@ var
    codes,
    flags   : string;
    optypes : array[1..max_operands] of string;
+   inschanges: string;
+   instrwritten: boolean;
+
+
+procedure DoWriteInstr;
+begin
+  if firstopcode then
+    firstopcode:=false
+  else
+    begin
+      writeln(opfile,',');
+      writeln(attfile,',');
+      writeln(attsuffile,',');
+      writeln(intfile,',');
+      writeln(propfile,',');
+    end;
+  write(opfile,opcode);
+  write(intfile,'''',intopcode,'''');
+  write(attfile,'''',attopcode,'''');
+  write(attsuffile,attsuffix);
+  write(propfile,'(Ch: ',inschanges,')');
+end;
+
 begin
    writeln('Nasm Instruction Table Converter Version ',Version);
    i8086:=paramstr(1)='i8086';
@@ -319,25 +342,12 @@ begin
             end;
            intopcode:=Lower(intopcode);
            attopcode:=Lower(attopcode);
-           if firstopcode then
-            firstopcode:=false
-           else
-            begin
-              writeln(opfile,',');
-              writeln(attfile,',');
-              writeln(attsuffile,',');
-              writeln(intfile,',');
-              writeln(propfile,',');
-            end;
-           write(opfile,opcode);
-           write(intfile,'''',intopcode,'''');
-           write(attfile,'''',attopcode,'''');
-           write(attsuffile,attsuffix);
+           instrwritten:=false;
+
            { read the next line which contains the Change options }
            repeat
-             readln(infile,s);
-           until eof(infile) or ((s<>'') and (s[1]<>';'));
-           write(propfile,'(Ch: ',s,')');
+             readln(infile,inschanges);
+           until eof(infile) or ((inschanges<>'') and (inschanges[1]<>';'));
            continue;
          end;
         { we must have an opcode }
@@ -443,6 +453,9 @@ begin
         { write instruction }
         if not skip then
           begin
+            if not instrwritten then
+              DoWriteInstr;
+            instrwritten:=true;
             if not(first) then
               writeln(insfile,',')
             else

+ 0 - 35
compiler/x86_64/x8664ats.inc

@@ -1,12 +1,6 @@
 { don't edit, this file is generated from x86ins.dat }
 (
 attsufNONE,
-attsufNONE,
-attsufINT,
-attsufINT,
-attsufNONE,
-attsufINT,
-attsufINT,
 attsufINT,
 attsufINT,
 attsufINT,
@@ -35,8 +29,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufNONE,
-attsufNONE,
 attsufINT,
 attsufINT,
 attsufNONE,
@@ -156,7 +148,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufNONE,
 attsufINT,
 attsufNONE,
 attsufNONE,
@@ -164,19 +155,16 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufNONE,
 attsufINT,
 attsufNONE,
 attsufINT,
 attsufNONE,
 attsufINT,
-attsufINT,
 attsufNONE,
 attsufINT,
 attsufINT,
 attsufINT,
 attsufINT,
-attsufINT,
 attsufNONE,
 attsufINT,
 attsufINT,
@@ -266,10 +254,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufINT,
-attsufINT,
-attsufNONE,
-attsufNONE,
-attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
@@ -300,10 +284,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufINT,
-attsufINT,
-attsufNONE,
-attsufNONE,
-attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
@@ -329,7 +309,6 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufINT,
-attsufNONE,
 attsufINT,
 attsufINT,
 attsufNONE,
@@ -1031,19 +1010,5 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
-attsufNONE,
 attsufNONE
 );

+ 0 - 35
compiler/x86_64/x8664att.inc

@@ -1,15 +1,9 @@
 { don't edit, this file is generated from x86ins.dat }
 (
 'none',
-'aaa',
-'aad',
-'aam',
-'aas',
 'adc',
 'add',
 'and',
-'arpl',
-'bound',
 'bsf',
 'bsr',
 'bswap',
@@ -35,8 +29,6 @@
 'cpuid',
 'cwd',
 'cwtl',
-'daa',
-'das',
 'dec',
 'div',
 'emms',
@@ -155,24 +147,20 @@
 'int1',
 'int03',
 'int3',
-'into',
 'invd',
 'invlpg',
 'iret',
 'iret',
 'iretw',
 'iretq',
-'jcxz',
 'jecxz',
 'jrcxz',
 'jmp',
 'lahf',
 'lar',
 'lcall',
-'lds',
 'lea',
 'leave',
-'les',
 'lfs',
 'lgdt',
 'lgs',
@@ -266,11 +254,7 @@
 'pmvnzb',
 'pmvzb',
 'pop',
-'popa',
-'popal',
-'popaw',
 'popf',
-'popfl',
 'popfw',
 'popfq',
 'por',
@@ -300,11 +284,7 @@
 'punpckldq',
 'punpcklwd',
 'push',
-'pusha',
-'pushal',
-'pushaw',
 'pushf',
-'pushfl',
 'pushfw',
 'pushfq',
 'pxor',
@@ -329,7 +309,6 @@
 'rsm',
 'sahf',
 'sal',
-'salc',
 'sar',
 'sbb',
 'scasb',
@@ -971,20 +950,6 @@
 'vpsravd',
 'vpsrlvd',
 'vpsrlvq',
-'add4s',
-'brkem',
-'clr1',
-'cmp4s',
-'ext',
-'ins',
-'not1',
-'repc',
-'repnc',
-'rol4',
-'ror4',
-'set1',
-'sub4s',
-'test1',
 'vfmadd132pd',
 'vfmadd213pd',
 'vfmadd231pd',

+ 0 - 35
compiler/x86_64/x8664int.inc

@@ -1,15 +1,9 @@
 { don't edit, this file is generated from x86ins.dat }
 (
 'none',
-'aaa',
-'aad',
-'aam',
-'aas',
 'adc',
 'add',
 'and',
-'arpl',
-'bound',
 'bsf',
 'bsr',
 'bswap',
@@ -35,8 +29,6 @@
 'cpuid',
 'cwd',
 'cwde',
-'daa',
-'das',
 'dec',
 'div',
 'emms',
@@ -155,24 +147,20 @@
 'int1',
 'int03',
 'int3',
-'into',
 'invd',
 'invlpg',
 'iret',
 'iretd',
 'iretw',
 'iretq',
-'jcxz',
 'jecxz',
 'jrcxz',
 'jmp',
 'lahf',
 'lar',
 'lcall',
-'lds',
 'lea',
 'leave',
-'les',
 'lfs',
 'lgdt',
 'lgs',
@@ -266,11 +254,7 @@
 'pmvnzb',
 'pmvzb',
 'pop',
-'popa',
-'popad',
-'popaw',
 'popf',
-'popfd',
 'popfw',
 'popfq',
 'por',
@@ -300,11 +284,7 @@
 'punpckldq',
 'punpcklwd',
 'push',
-'pusha',
-'pushad',
-'pushaw',
 'pushf',
-'pushfd',
 'pushfw',
 'pushfq',
 'pxor',
@@ -329,7 +309,6 @@
 'rsm',
 'sahf',
 'sal',
-'salc',
 'sar',
 'sbb',
 'scasb',
@@ -971,20 +950,6 @@
 'vpsravd',
 'vpsrlvd',
 'vpsrlvq',
-'add4s',
-'brkem',
-'clr1',
-'cmp4s',
-'ext',
-'ins',
-'not1',
-'repc',
-'repnc',
-'rol4',
-'ror4',
-'set1',
-'sub4s',
-'test1',
 'vfmadd132pd',
 'vfmadd213pd',
 'vfmadd231pd',

+ 0 - 35
compiler/x86_64/x8664op.inc

@@ -1,15 +1,9 @@
 { don't edit, this file is generated from x86ins.dat }
 (
 A_NONE,
-A_AAA,
-A_AAD,
-A_AAM,
-A_AAS,
 A_ADC,
 A_ADD,
 A_AND,
-A_ARPL,
-A_BOUND,
 A_BSF,
 A_BSR,
 A_BSWAP,
@@ -35,8 +29,6 @@ A_CMPXCHG8B,
 A_CPUID,
 A_CWD,
 A_CWDE,
-A_DAA,
-A_DAS,
 A_DEC,
 A_DIV,
 A_EMMS,
@@ -155,24 +147,20 @@ A_INT01,
 A_INT1,
 A_INT03,
 A_INT3,
-A_INTO,
 A_INVD,
 A_INVLPG,
 A_IRET,
 A_IRETD,
 A_IRETW,
 A_IRETQ,
-A_JCXZ,
 A_JECXZ,
 A_JRCXZ,
 A_JMP,
 A_LAHF,
 A_LAR,
 A_LCALL,
-A_LDS,
 A_LEA,
 A_LEAVE,
-A_LES,
 A_LFS,
 A_LGDT,
 A_LGS,
@@ -266,11 +254,7 @@ A_PMVLZB,
 A_PMVNZB,
 A_PMVZB,
 A_POP,
-A_POPA,
-A_POPAD,
-A_POPAW,
 A_POPF,
-A_POPFD,
 A_POPFW,
 A_POPFQ,
 A_POR,
@@ -300,11 +284,7 @@ A_PUNPCKLBW,
 A_PUNPCKLDQ,
 A_PUNPCKLWD,
 A_PUSH,
-A_PUSHA,
-A_PUSHAD,
-A_PUSHAW,
 A_PUSHF,
-A_PUSHFD,
 A_PUSHFW,
 A_PUSHFQ,
 A_PXOR,
@@ -329,7 +309,6 @@ A_RSLDT,
 A_RSM,
 A_SAHF,
 A_SAL,
-A_SALC,
 A_SAR,
 A_SBB,
 A_SCASB,
@@ -971,20 +950,6 @@ A_VPSLLVQ,
 A_VPSRAVD,
 A_VPSRLVD,
 A_VPSRLVQ,
-A_ADD4S,
-A_BRKEM,
-A_CLR1,
-A_CMP4S,
-A_EXT,
-A_INS,
-A_NOT1,
-A_REPC,
-A_REPNC,
-A_ROL4,
-A_ROR4,
-A_SET1,
-A_SUB4S,
-A_TEST1,
 A_VFMADD132PD,
 A_VFMADD213PD,
 A_VFMADD231PD,

+ 0 - 35
compiler/x86_64/x8664pro.inc

@@ -1,15 +1,9 @@
 { don't edit, this file is generated from x86ins.dat }
 (
 (Ch: (Ch_None, Ch_None, Ch_None)),
-(Ch: (Ch_MEAX, Ch_WFlags, Ch_None)),
-(Ch: (Ch_MEAX, Ch_WFlags, Ch_None)),
-(Ch: (Ch_MEAX, Ch_WFlags, Ch_None)),
-(Ch: (Ch_MEAX, Ch_WFlags, Ch_None)),
 (Ch: (Ch_Mop2, Ch_Rop1, Ch_RWFlags)),
 (Ch: (Ch_Mop2, Ch_Rop1, Ch_WFlags)),
 (Ch: (Ch_Mop2, Ch_Rop1, Ch_WFlags)),
-(Ch: (Ch_WFlags, Ch_None, Ch_None)),
-(Ch: (Ch_Rop1, Ch_None, Ch_None)),
 (Ch: (Ch_Wop2, Ch_WFlags, Ch_Rop1)),
 (Ch: (Ch_Wop2, Ch_WFlags, Ch_Rop1)),
 (Ch: (Ch_MOp1, Ch_None, Ch_None)),
@@ -35,8 +29,6 @@
 (Ch: (Ch_All, Ch_None, Ch_none)),
 (Ch: (Ch_MEAX, Ch_WEDX, Ch_None)),
 (Ch: (Ch_MEAX, Ch_None, Ch_None)),
-(Ch: (Ch_MEAX, Ch_None, Ch_None)),
-(Ch: (Ch_MEAX, Ch_None, Ch_None)),
 (Ch: (Ch_Mop1, Ch_WFlags, Ch_None)),
 (Ch: (Ch_RWEAX, Ch_WEDX, Ch_WFlags)),
 (Ch: (Ch_FPU, Ch_None, Ch_None)),
@@ -161,8 +153,6 @@
 (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_RECX, Ch_None, Ch_None)),
 (Ch: (Ch_RECX, Ch_None, Ch_None)),
 (Ch: (Ch_RECX, Ch_None, Ch_None)),
 (Ch: (Ch_ROp1, Ch_None, Ch_None)),
@@ -170,10 +160,8 @@
 (Ch: (Ch_Wop2, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
-(Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
 (Ch: (Ch_RWESP, Ch_WEBP, Ch_None)),
 (Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
-(Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
 (Ch: (Ch_None, Ch_None, Ch_None)),
 (Ch: (Ch_Wop2, Ch_Rop1, Ch_None)),
 (Ch: (Ch_None, Ch_None, Ch_None)),
@@ -266,10 +254,6 @@
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_Wop1, Ch_RWESP, 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_RWESP, Ch_WFlags, Ch_None)),
 (Ch: (Ch_RWESP, Ch_WFlags, Ch_None)),
 (Ch: (Ch_RWESP, Ch_WFLAGS, Ch_None)),
 (Ch: (Ch_RWESP, Ch_WFlags, Ch_None)),
@@ -300,10 +284,6 @@
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_Rop1, Ch_RWESP, 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_RWESP, Ch_RFlags, Ch_None)),
 (Ch: (Ch_RWESP, Ch_RFlags, Ch_None)),
 (Ch: (Ch_RWESP, Ch_RFLAGS, Ch_None)),
 (Ch: (Ch_RWESP, Ch_RFlags, Ch_None)),
@@ -329,7 +309,6 @@
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_WFlags, Ch_REAX, Ch_None)),
 (Ch: (Ch_Mop2, Ch_Rop1, Ch_RWFlags)),
-(Ch: (Ch_WEAX, Ch_RFLAGS, Ch_None)),
 (Ch: (Ch_Mop2, Ch_Rop1, Ch_WFlags)),
 (Ch: (Ch_Mop2, Ch_Rop1, Ch_RWFlags)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
@@ -971,20 +950,6 @@
 (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_Mop2, Ch_Rop1, 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_Mop2, Ch_Rop1, Ch_None)),
-(Ch: (Ch_RWECX, Ch_RWFlags, Ch_None)),
-(Ch: (Ch_RWECX, Ch_RWFlags, Ch_None)),
-(Ch: (Ch_Mop1, Ch_RWEAX, Ch_None)),
-(Ch: (Ch_Mop1, Ch_RWEAX, Ch_None)),
-(Ch: (Ch_Mop2, Ch_Rop1, Ch_None)),
-(Ch: (Ch_All, Ch_None, Ch_None)),
-(Ch: (Ch_WFlags, Ch_Rop1, Ch_Rop2)),
 (Ch: (Ch_Mop3, Ch_Rop2, Ch_Rop1)),
 (Ch: (Ch_Mop3, Ch_Rop2, Ch_Rop1)),
 (Ch: (Ch_Mop3, Ch_Rop2, Ch_Rop1)),