aboutsummaryrefslogtreecommitdiff
path: root/src/libmach/mach386.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2004-04-19 19:58:44 +0000
committerrsc <devnull@localhost>2004-04-19 19:58:44 +0000
commit10323cd3271635ce751d81aaddeb018c17ffd0ca (patch)
tree61a748f42288ef831a5005d827b0b969b0723ba1 /src/libmach/mach386.c
parentaa8086853b3826d0d03aa04154d32396b4807a84 (diff)
downloadplan9port-10323cd3271635ce751d81aaddeb018c17ffd0ca.tar.gz
plan9port-10323cd3271635ce751d81aaddeb018c17ffd0ca.tar.bz2
plan9port-10323cd3271635ce751d81aaddeb018c17ffd0ca.zip
get rid of array indexes.
Diffstat (limited to 'src/libmach/mach386.c')
-rw-r--r--src/libmach/mach386.c1346
1 files changed, 771 insertions, 575 deletions
diff --git a/src/libmach/mach386.c b/src/libmach/mach386.c
index 5f336ce7..946eac5b 100644
--- a/src/libmach/mach386.c
+++ b/src/libmach/mach386.c
@@ -312,242 +312,359 @@ enum {
static Optable optab0F00[8]=
{
-[0x00] 0,0, "MOVW LDT,%e",
-[0x01] 0,0, "MOVW TR,%e",
-[0x02] 0,0, "MOVW %e,LDT",
-[0x03] 0,0, "MOVW %e,TR",
-[0x04] 0,0, "VERR %e",
-[0x05] 0,0, "VERW %e",
+ 0,0, "MOVW LDT,%e", /* 0x00 */
+ 0,0, "MOVW TR,%e", /* 0x01 */
+ 0,0, "MOVW %e,LDT", /* 0x02 */
+ 0,0, "MOVW %e,TR", /* 0x03 */
+ 0,0, "VERR %e", /* 0x04 */
+ 0,0, "VERW %e", /* 0x05 */
};
static Optable optab0F01[8]=
{
-[0x00] 0,0, "MOVL GDTR,%e",
-[0x01] 0,0, "MOVL IDTR,%e",
-[0x02] 0,0, "MOVL %e,GDTR",
-[0x03] 0,0, "MOVL %e,IDTR",
-[0x04] 0,0, "MOVW MSW,%e", /* word */
-[0x06] 0,0, "MOVW %e,MSW", /* word */
+ 0,0, "MOVL GDTR,%e", /* 0x00 */
+ 0,0, "MOVL IDTR,%e", /* 0x01 */
+ 0,0, "MOVL %e,GDTR", /* 0x02 */
+ 0,0, "MOVL %e,IDTR", /* 0x03 */
+ 0,0, "MOVW MSW,%e", /* 0x04 */ /* word */
+ 0,0, "", /* 0x05 */
+ 0,0, "MOVW %e,MSW", /* 0x06 */ /* word */
};
static Optable optab0FBA[8]=
{
-[0x04] Ib,0, "BT%S %i,%e",
-[0x05] Ib,0, "BTS%S %i,%e",
-[0x06] Ib,0, "BTR%S %i,%e",
-[0x07] Ib,0, "BTC%S %i,%e",
+ 0,0, "", /* 0x00 */
+ 0,0, "", /* 0x01 */
+ 0,0, "", /* 0x02 */
+ 0,0, "", /* 0x03 */
+ Ib,0, "BT%S %i,%e", /* 0x04 */
+ Ib,0, "BTS%S %i,%e", /* 0x05 */
+ Ib,0, "BTR%S %i,%e", /* 0x06 */
+ Ib,0, "BTC%S %i,%e", /* 0x07 */
};
static Optable optab0F[256]=
{
-[0x00] RMOP,0, optab0F00,
-[0x01] RMOP,0, optab0F01,
-[0x02] RM,0, "LAR %e,%r",
-[0x03] RM,0, "LSL %e,%r",
-[0x06] 0,0, "CLTS",
-[0x08] 0,0, "INVD",
-[0x09] 0,0, "WBINVD",
-[0x20] RMR,0, "MOVL %C,%e",
-[0x21] RMR,0, "MOVL %D,%e",
-[0x22] RMR,0, "MOVL %e,%C",
-[0x23] RMR,0, "MOVL %e,%D",
-[0x24] RMR,0, "MOVL %T,%e",
-[0x26] RMR,0, "MOVL %e,%T",
-[0x30] 0,0, "WRMSR",
-[0x31] 0,0, "RDTSC",
-[0x32] 0,0, "RDMSR",
-[0x42] RM,0, "CMOVC %e,%r", /* CF */
-[0x43] RM,0, "CMOVNC %e,%r", /* ¬ CF */
-[0x44] RM,0, "CMOVZ %e,%r", /* ZF */
-[0x45] RM,0, "CMOVNZ %e,%r", /* ¬ ZF */
-[0x46] RM,0, "CMOVBE %e,%r", /* CF ∨ ZF */
-[0x47] RM,0, "CMOVA %e,%r", /* ¬CF ∧ ¬ZF */
-[0x48] RM,0, "CMOVS %e,%r", /* SF */
-[0x49] RM,0, "CMOVNS %e,%r", /* ¬ SF */
-[0x4A] RM,0, "CMOVP %e,%r", /* PF */
-[0x4B] RM,0, "CMOVNP %e,%r", /* ¬ PF */
-[0x4C] RM,0, "CMOVLT %e,%r", /* LT ≡ OF ≠ SF */
-[0x4D] RM,0, "CMOVGE %e,%r", /* GE ≡ ZF ∨ SF */
-[0x4E] RM,0, "CMOVLE %e,%r", /* LE ≡ ZF ∨ LT */
-[0x4F] RM,0, "CMOVGT %e,%r", /* GT ≡ ¬ZF ∧ GE */
-[0x80] Iwds,0, "JOS %p",
-[0x81] Iwds,0, "JOC %p",
-[0x82] Iwds,0, "JCS %p",
-[0x83] Iwds,0, "JCC %p",
-[0x84] Iwds,0, "JEQ %p",
-[0x85] Iwds,0, "JNE %p",
-[0x86] Iwds,0, "JLS %p",
-[0x87] Iwds,0, "JHI %p",
-[0x88] Iwds,0, "JMI %p",
-[0x89] Iwds,0, "JPL %p",
-[0x8a] Iwds,0, "JPS %p",
-[0x8b] Iwds,0, "JPC %p",
-[0x8c] Iwds,0, "JLT %p",
-[0x8d] Iwds,0, "JGE %p",
-[0x8e] Iwds,0, "JLE %p",
-[0x8f] Iwds,0, "JGT %p",
-[0x90] RMB,0, "SETOS %e",
-[0x91] RMB,0, "SETOC %e",
-[0x92] RMB,0, "SETCS %e",
-[0x93] RMB,0, "SETCC %e",
-[0x94] RMB,0, "SETEQ %e",
-[0x95] RMB,0, "SETNE %e",
-[0x96] RMB,0, "SETLS %e",
-[0x97] RMB,0, "SETHI %e",
-[0x98] RMB,0, "SETMI %e",
-[0x99] RMB,0, "SETPL %e",
-[0x9a] RMB,0, "SETPS %e",
-[0x9b] RMB,0, "SETPC %e",
-[0x9c] RMB,0, "SETLT %e",
-[0x9d] RMB,0, "SETGE %e",
-[0x9e] RMB,0, "SETLE %e",
-[0x9f] RMB,0, "SETGT %e",
-[0xa0] 0,0, "PUSHL FS",
-[0xa1] 0,0, "POPL FS",
-[0xa2] 0,0, "CPUID",
-[0xa3] RM,0, "BT%S %r,%e",
-[0xa4] RM,Ib, "SHLD%S %r,%i,%e",
-[0xa5] RM,0, "SHLD%S %r,CL,%e",
-[0xa8] 0,0, "PUSHL GS",
-[0xa9] 0,0, "POPL GS",
-[0xab] RM,0, "BTS%S %r,%e",
-[0xac] RM,Ib, "SHRD%S %r,%i,%e",
-[0xad] RM,0, "SHRD%S %r,CL,%e",
-[0xaf] RM,0, "IMUL%S %e,%r",
-[0xb2] RMM,0, "LSS %e,%r",
-[0xb3] RM,0, "BTR%S %r,%e",
-[0xb4] RMM,0, "LFS %e,%r",
-[0xb5] RMM,0, "LGS %e,%r",
-[0xb6] RMB,0, "MOVBZX %e,%R",
-[0xb7] RM,0, "MOVWZX %e,%R",
-[0xba] RMOP,0, optab0FBA,
-[0xbb] RM,0, "BTC%S %e,%r",
-[0xbc] RM,0, "BSF%S %e,%r",
-[0xbd] RM,0, "BSR%S %e,%r",
-[0xbe] RMB,0, "MOVBSX %e,%R",
-[0xbf] RM,0, "MOVWSX %e,%R",
+ RMOP,0, optab0F00, /* 0x00 */
+ RMOP,0, optab0F01, /* 0x01 */
+ RM,0, "LAR %e,%r", /* 0x02 */
+ RM,0, "LSL %e,%r", /* 0x03 */
+ 0,0, "", /* 0x04 */
+ 0,0, "", /* 0x05 */
+ 0,0, "CLTS", /* 0x06 */
+ 0,0, "", /* 0x07 */
+ 0,0, "INVD", /* 0x08 */
+ 0,0, "WBINVD", /* 0x09 */
+ 0,0, "", /* 0x0a */
+ 0,0, "", /* 0x0b */
+ 0,0, "", /* 0x0c */
+ 0,0, "", /* 0x0d */
+ 0,0, "", /* 0x0e */
+ 0,0, "", /* 0x0f */
+ 0,0, "", /* 0x10 */
+ 0,0, "", /* 0x11 */
+ 0,0, "", /* 0x12 */
+ 0,0, "", /* 0x13 */
+ 0,0, "", /* 0x14 */
+ 0,0, "", /* 0x15 */
+ 0,0, "", /* 0x16 */
+ 0,0, "", /* 0x17 */
+ 0,0, "", /* 0x18 */
+ 0,0, "", /* 0x19 */
+ 0,0, "", /* 0x1a */
+ 0,0, "", /* 0x1b */
+ 0,0, "", /* 0x1c */
+ 0,0, "", /* 0x1d */
+ 0,0, "", /* 0x1e */
+ 0,0, "", /* 0x1f */
+ RMR,0, "MOVL %C,%e", /* 0x20 */
+ RMR,0, "MOVL %D,%e", /* 0x21 */
+ RMR,0, "MOVL %e,%C", /* 0x22 */
+ RMR,0, "MOVL %e,%D", /* 0x23 */
+ RMR,0, "MOVL %T,%e", /* 0x24 */
+ 0,0, "", /* 0x25 */
+ RMR,0, "MOVL %e,%T", /* 0x26 */
+ 0,0, "", /* 0x27 */
+ 0,0, "", /* 0x28 */
+ 0,0, "", /* 0x29 */
+ 0,0, "", /* 0x2a */
+ 0,0, "", /* 0x2b */
+ 0,0, "", /* 0x2c */
+ 0,0, "", /* 0x2d */
+ 0,0, "", /* 0x2e */
+ 0,0, "", /* 0x2f */
+ 0,0, "WRMSR", /* 0x30 */
+ 0,0, "RDTSC", /* 0x31 */
+ 0,0, "RDMSR", /* 0x32 */
+ 0,0, "", /* 0x33 */
+ 0,0, "", /* 0x34 */
+ 0,0, "", /* 0x35 */
+ 0,0, "", /* 0x36 */
+ 0,0, "", /* 0x37 */
+ 0,0, "", /* 0x38 */
+ 0,0, "", /* 0x39 */
+ 0,0, "", /* 0x3a */
+ 0,0, "", /* 0x3b */
+ 0,0, "", /* 0x3c */
+ 0,0, "", /* 0x3d */
+ 0,0, "", /* 0x3e */
+ 0,0, "", /* 0x3f */
+ 0,0, "", /* 0x40 */
+ 0,0, "", /* 0x41 */
+ 0,0, "", /* 0x42 */
+ 0,0, "", /* 0x43 */
+ 0,0, "", /* 0x44 */
+ 0,0, "", /* 0x45 */
+ 0,0, "", /* 0x46 */
+ 0,0, "", /* 0x47 */
+ 0,0, "", /* 0x48 */
+ 0,0, "", /* 0x49 */
+ 0,0, "", /* 0x4a */
+ 0,0, "", /* 0x4b */
+ 0,0, "", /* 0x4c */
+ 0,0, "", /* 0x4d */
+ 0,0, "", /* 0x4e */
+ 0,0, "", /* 0x4f */
+ 0,0, "", /* 0x50 */
+ 0,0, "", /* 0x51 */
+ 0,0, "", /* 0x52 */
+ 0,0, "", /* 0x53 */
+ 0,0, "", /* 0x54 */
+ 0,0, "", /* 0x55 */
+ 0,0, "", /* 0x56 */
+ 0,0, "", /* 0x57 */
+ 0,0, "", /* 0x58 */
+ 0,0, "", /* 0x59 */
+ 0,0, "", /* 0x5a */
+ 0,0, "", /* 0x5b */
+ 0,0, "", /* 0x5c */
+ 0,0, "", /* 0x5d */
+ 0,0, "", /* 0x5e */
+ 0,0, "", /* 0x5f */
+ 0,0, "", /* 0x60 */
+ 0,0, "", /* 0x61 */
+ 0,0, "", /* 0x62 */
+ 0,0, "", /* 0x63 */
+ 0,0, "", /* 0x64 */
+ 0,0, "", /* 0x65 */
+ 0,0, "", /* 0x66 */
+ 0,0, "", /* 0x67 */
+ 0,0, "", /* 0x68 */
+ 0,0, "", /* 0x69 */
+ 0,0, "", /* 0x6a */
+ 0,0, "", /* 0x6b */
+ 0,0, "", /* 0x6c */
+ 0,0, "", /* 0x6d */
+ 0,0, "", /* 0x6e */
+ 0,0, "", /* 0x6f */
+ 0,0, "", /* 0x70 */
+ 0,0, "", /* 0x71 */
+ 0,0, "", /* 0x72 */
+ 0,0, "", /* 0x73 */
+ 0,0, "", /* 0x74 */
+ 0,0, "", /* 0x75 */
+ 0,0, "", /* 0x76 */
+ 0,0, "", /* 0x77 */
+ 0,0, "", /* 0x78 */
+ 0,0, "", /* 0x79 */
+ 0,0, "", /* 0x7a */
+ 0,0, "", /* 0x7b */
+ 0,0, "", /* 0x7c */
+ 0,0, "", /* 0x7d */
+ 0,0, "", /* 0x7e */
+ 0,0, "", /* 0x7f */
+ Iwds,0, "JOS %p", /* 0x80 */
+ Iwds,0, "JOC %p", /* 0x81 */
+ Iwds,0, "JCS %p", /* 0x82 */
+ Iwds,0, "JCC %p", /* 0x83 */
+ Iwds,0, "JEQ %p", /* 0x84 */
+ Iwds,0, "JNE %p", /* 0x85 */
+ Iwds,0, "JLS %p", /* 0x86 */
+ Iwds,0, "JHI %p", /* 0x87 */
+ Iwds,0, "JMI %p", /* 0x88 */
+ Iwds,0, "JPL %p", /* 0x89 */
+ Iwds,0, "JPS %p", /* 0x8a */
+ Iwds,0, "JPC %p", /* 0x8b */
+ Iwds,0, "JLT %p", /* 0x8c */
+ Iwds,0, "JGE %p", /* 0x8d */
+ Iwds,0, "JLE %p", /* 0x8e */
+ Iwds,0, "JGT %p", /* 0x8f */
+ RMB,0, "SETOS %e", /* 0x90 */
+ RMB,0, "SETOC %e", /* 0x91 */
+ RMB,0, "SETCS %e", /* 0x92 */
+ RMB,0, "SETCC %e", /* 0x93 */
+ RMB,0, "SETEQ %e", /* 0x94 */
+ RMB,0, "SETNE %e", /* 0x95 */
+ RMB,0, "SETLS %e", /* 0x96 */
+ RMB,0, "SETHI %e", /* 0x97 */
+ RMB,0, "SETMI %e", /* 0x98 */
+ RMB,0, "SETPL %e", /* 0x99 */
+ RMB,0, "SETPS %e", /* 0x9a */
+ RMB,0, "SETPC %e", /* 0x9b */
+ RMB,0, "SETLT %e", /* 0x9c */
+ RMB,0, "SETGE %e", /* 0x9d */
+ RMB,0, "SETLE %e", /* 0x9e */
+ RMB,0, "SETGT %e", /* 0x9f */
+ 0,0, "PUSHL FS", /* 0xa0 */
+ 0,0, "POPL FS", /* 0xa1 */
+ 0,0, "CPUID", /* 0xa2 */
+ RM,0, "BT%S %r,%e", /* 0xa3 */
+ RM,Ib, "SHLD%S %r,%i,%e", /* 0xa4 */
+ RM,0, "SHLD%S %r,CL,%e", /* 0xa5 */
+ 0,0, "", /* 0xa6 */
+ 0,0, "", /* 0xa7 */
+ 0,0, "PUSHL GS", /* 0xa8 */
+ 0,0, "POPL GS", /* 0xa9 */
+ 0,0, "", /* 0xaa */
+ RM,0, "BTS%S %r,%e", /* 0xab */
+ RM,Ib, "SHRD%S %r,%i,%e", /* 0xac */
+ RM,0, "SHRD%S %r,CL,%e", /* 0xad */
+ 0,0, "", /* 0xae */
+ RM,0, "IMUL%S %e,%r", /* 0xaf */
+ 0,0, "", /* 0xb0 */
+ 0,0, "", /* 0xb1 */
+ RMM,0, "LSS %e,%r", /* 0xb2 */
+ RM,0, "BTR%S %r,%e", /* 0xb3 */
+ RMM,0, "LFS %e,%r", /* 0xb4 */
+ RMM,0, "LGS %e,%r", /* 0xb5 */
+ RMB,0, "MOVBZX %e,%R", /* 0xb6 */
+ RM,0, "MOVWZX %e,%R", /* 0xb7 */
+ 0,0, "", /* 0xb8 */
+ 0,0, "", /* 0xb9 */
+ RMOP,0, optab0FBA, /* 0xba */
+ RM,0, "BTC%S %e,%r", /* 0xbb */
+ RM,0, "BSF%S %e,%r", /* 0xbc */
+ RM,0, "BSR%S %e,%r", /* 0xbd */
+ RMB,0, "MOVBSX %e,%R", /* 0xbe */
+ RM,0, "MOVWSX %e,%R", /* 0xbf */
};
static Optable optab80[8]=
{
-[0x00] Ib,0, "ADDB %i,%e",
-[0x01] Ib,0, "ORB %i,%e",
-[0x02] Ib,0, "ADCB %i,%e",
-[0x03] Ib,0, "SBBB %i,%e",
-[0x04] Ib,0, "ANDB %i,%e",
-[0x05] Ib,0, "SUBB %i,%e",
-[0x06] Ib,0, "XORB %i,%e",
-[0x07] Ib,0, "CMPB %e,%i",
+ Ib,0, "ADDB %i,%e", /* 0x00 */
+ Ib,0, "ORB %i,%e", /* 0x01 */
+ Ib,0, "ADCB %i,%e", /* 0x02 */
+ Ib,0, "SBBB %i,%e", /* 0x03 */
+ Ib,0, "ANDB %i,%e", /* 0x04 */
+ Ib,0, "SUBB %i,%e", /* 0x05 */
+ Ib,0, "XORB %i,%e", /* 0x06 */
+ Ib,0, "CMPB %e,%i", /* 0x07 */
};
static Optable optab81[8]=
{
-[0x00] Iwd,0, "ADD%S %i,%e",
-[0x01] Iwd,0, "OR%S %i,%e",
-[0x02] Iwd,0, "ADC%S %i,%e",
-[0x03] Iwd,0, "SBB%S %i,%e",
-[0x04] Iwd,0, "AND%S %i,%e",
-[0x05] Iwd,0, "SUB%S %i,%e",
-[0x06] Iwd,0, "XOR%S %i,%e",
-[0x07] Iwd,0, "CMP%S %e,%i",
+ Iwd,0, "ADD%S %i,%e", /* 0x00 */
+ Iwd,0, "OR%S %i,%e", /* 0x01 */
+ Iwd,0, "ADC%S %i,%e", /* 0x02 */
+ Iwd,0, "SBB%S %i,%e", /* 0x03 */
+ Iwd,0, "AND%S %i,%e", /* 0x04 */
+ Iwd,0, "SUB%S %i,%e", /* 0x05 */
+ Iwd,0, "XOR%S %i,%e", /* 0x06 */
+ Iwd,0, "CMP%S %e,%i", /* 0x07 */
};
static Optable optab83[8]=
{
-[0x00] Ibs,0, "ADD%S %i,%e",
-[0x01] Ibs,0, "OR%S %i,%e",
-[0x02] Ibs,0, "ADC%S %i,%e",
-[0x03] Ibs,0, "SBB%S %i,%e",
-[0x04] Ibs,0, "AND%S %i,%e",
-[0x05] Ibs,0, "SUB%S %i,%e",
-[0x06] Ibs,0, "XOR%S %i,%e",
-[0x07] Ibs,0, "CMP%S %e,%i",
+ Ibs,0, "ADD%S %i,%e", /* 0x00 */
+ Ibs,0, "OR%S %i,%e", /* 0x01 */
+ Ibs,0, "ADC%S %i,%e", /* 0x02 */
+ Ibs,0, "SBB%S %i,%e", /* 0x03 */
+ Ibs,0, "AND%S %i,%e", /* 0x04 */
+ Ibs,0, "SUB%S %i,%e", /* 0x05 */
+ Ibs,0, "XOR%S %i,%e", /* 0x06 */
+ Ibs,0, "CMP%S %e,%i", /* 0x07 */
};
static Optable optabC0[8] =
{
-[0x00] Ib,0, "ROLB %i,%e",
-[0x01] Ib,0, "RORB %i,%e",
-[0x02] Ib,0, "RCLB %i,%e",
-[0x03] Ib,0, "RCRB %i,%e",
-[0x04] Ib,0, "SHLB %i,%e",
-[0x05] Ib,0, "SHRB %i,%e",
-[0x07] Ib,0, "SARB %i,%e",
+ Ib,0, "ROLB %i,%e", /* 0x00 */
+ Ib,0, "RORB %i,%e", /* 0x01 */
+ Ib,0, "RCLB %i,%e", /* 0x02 */
+ Ib,0, "RCRB %i,%e", /* 0x03 */
+ Ib,0, "SHLB %i,%e", /* 0x04 */
+ Ib,0, "SHRB %i,%e", /* 0x05 */
+ 0,0, "", /* 0x06 */
+ Ib,0, "SARB %i,%e", /* 0x07 */
};
static Optable optabC1[8] =
{
-[0x00] Ib,0, "ROL%S %i,%e",
-[0x01] Ib,0, "ROR%S %i,%e",
-[0x02] Ib,0, "RCL%S %i,%e",
-[0x03] Ib,0, "RCR%S %i,%e",
-[0x04] Ib,0, "SHL%S %i,%e",
-[0x05] Ib,0, "SHR%S %i,%e",
-[0x07] Ib,0, "SAR%S %i,%e",
+ Ib,0, "ROL%S %i,%e", /* 0x00 */
+ Ib,0, "ROR%S %i,%e", /* 0x01 */
+ Ib,0, "RCL%S %i,%e", /* 0x02 */
+ Ib,0, "RCR%S %i,%e", /* 0x03 */
+ Ib,0, "SHL%S %i,%e", /* 0x04 */
+ Ib,0, "SHR%S %i,%e", /* 0x05 */
+ 0,0, "", /* 0x06 */
+ Ib,0, "SAR%S %i,%e", /* 0x07 */
};
static Optable optabD0[8] =
{
-[0x00] 0,0, "ROLB %e",
-[0x01] 0,0, "RORB %e",
-[0x02] 0,0, "RCLB %e",
-[0x03] 0,0, "RCRB %e",
-[0x04] 0,0, "SHLB %e",
-[0x05] 0,0, "SHRB %e",
-[0x07] 0,0, "SARB %e",
+ 0,0, "ROLB %e", /* 0x00 */
+ 0,0, "RORB %e", /* 0x01 */
+ 0,0, "RCLB %e", /* 0x02 */
+ 0,0, "RCRB %e", /* 0x03 */
+ 0,0, "SHLB %e", /* 0x04 */
+ 0,0, "SHRB %e", /* 0x05 */
+ 0,0, "", /* 0x06 */
+ 0,0, "SARB %e", /* 0x07 */
};
static Optable optabD1[8] =
{
-[0x00] 0,0, "ROL%S %e",
-[0x01] 0,0, "ROR%S %e",
-[0x02] 0,0, "RCL%S %e",
-[0x03] 0,0, "RCR%S %e",
-[0x04] 0,0, "SHL%S %e",
-[0x05] 0,0, "SHR%S %e",
-[0x07] 0,0, "SAR%S %e",
+ 0,0, "ROL%S %e", /* 0x00 */
+ 0,0, "ROR%S %e", /* 0x01 */
+ 0,0, "RCL%S %e", /* 0x02 */
+ 0,0, "RCR%S %e", /* 0x03 */
+ 0,0, "SHL%S %e", /* 0x04 */
+ 0,0, "SHR%S %e", /* 0x05 */
+ 0,0, "", /* 0x06 */
+ 0,0, "SAR%S %e", /* 0x07 */
};
static Optable optabD2[8] =
{
-[0x00] 0,0, "ROLB CL,%e",
-[0x01] 0,0, "RORB CL,%e",
-[0x02] 0,0, "RCLB CL,%e",
-[0x03] 0,0, "RCRB CL,%e",
-[0x04] 0,0, "SHLB CL,%e",
-[0x05] 0,0, "SHRB CL,%e",
-[0x07] 0,0, "SARB CL,%e",
+ 0,0, "ROLB CL,%e", /* 0x00 */
+ 0,0, "RORB CL,%e", /* 0x01 */
+ 0,0, "RCLB CL,%e", /* 0x02 */
+ 0,0, "RCRB CL,%e", /* 0x03 */
+ 0,0, "SHLB CL,%e", /* 0x04 */
+ 0,0, "SHRB CL,%e", /* 0x05 */
+ 0,0, "", /* 0x06 */
+ 0,0, "SARB CL,%e", /* 0x07 */
};
static Optable optabD3[8] =
{
-[0x00] 0,0, "ROL%S CL,%e",
-[0x01] 0,0, "ROR%S CL,%e",
-[0x02] 0,0, "RCL%S CL,%e",
-[0x03] 0,0, "RCR%S CL,%e",
-[0x04] 0,0, "SHL%S CL,%e",
-[0x05] 0,0, "SHR%S CL,%e",
-[0x07] 0,0, "SAR%S CL,%e",
+ 0,0, "ROL%S CL,%e", /* 0x00 */
+ 0,0, "ROR%S CL,%e", /* 0x01 */
+ 0,0, "RCL%S CL,%e", /* 0x02 */
+ 0,0, "RCR%S CL,%e", /* 0x03 */
+ 0,0, "SHL%S CL,%e", /* 0x04 */
+ 0,0, "SHR%S CL,%e", /* 0x05 */
+ 0,0, "", /* 0x06 */
+ 0,0, "SAR%S CL,%e", /* 0x07 */
};
static Optable optabD8[8+8] =
{
-[0x00] 0,0, "FADDF %e,F0",
-[0x01] 0,0, "FMULF %e,F0",
-[0x02] 0,0, "FCOMF %e,F0",
-[0x03] 0,0, "FCOMFP %e,F0",
-[0x04] 0,0, "FSUBF %e,F0",
-[0x05] 0,0, "FSUBRF %e,F0",
-[0x06] 0,0, "FDIVF %e,F0",
-[0x07] 0,0, "FDIVRF %e,F0",
-[0x08] 0,0, "FADDD %f,F0",
-[0x09] 0,0, "FMULD %f,F0",
-[0x0a] 0,0, "FCOMD %f,F0",
-[0x0b] 0,0, "FCOMPD %f,F0",
-[0x0c] 0,0, "FSUBD %f,F0",
-[0x0d] 0,0, "FSUBRD %f,F0",
-[0x0e] 0,0, "FDIVD %f,F0",
-[0x0f] 0,0, "FDIVRD %f,F0",
+ 0,0, "FADDF %e,F0", /* 0x00 */
+ 0,0, "FMULF %e,F0", /* 0x01 */
+ 0,0, "FCOMF %e,F0", /* 0x02 */
+ 0,0, "FCOMFP %e,F0", /* 0x03 */
+ 0,0, "FSUBF %e,F0", /* 0x04 */
+ 0,0, "FSUBRF %e,F0", /* 0x05 */
+ 0,0, "FDIVF %e,F0", /* 0x06 */
+ 0,0, "FDIVRF %e,F0", /* 0x07 */
+ 0,0, "FADDD %f,F0", /* 0x08 */
+ 0,0, "FMULD %f,F0", /* 0x09 */
+ 0,0, "FCOMD %f,F0", /* 0x0a */
+ 0,0, "FCOMPD %f,F0", /* 0x0b */
+ 0,0, "FSUBD %f,F0", /* 0x0c */
+ 0,0, "FSUBRD %f,F0", /* 0x0d */
+ 0,0, "FDIVD %f,F0", /* 0x0e */
+ 0,0, "FDIVRD %f,F0", /* 0x0f */
};
/*
* optabD9 and optabDB use the following encoding:
@@ -559,441 +676,520 @@ static Optable optabD8[8+8] =
*/
static Optable optabD9[64+8] =
{
-[0x00] 0,0, "FMOVF %e,F0",
-[0x02] 0,0, "FMOVF F0,%e",
-[0x03] 0,0, "FMOVFP F0,%e",
-[0x04] 0,0, "FLDENV%S %e",
-[0x05] 0,0, "FLDCW %e",
-[0x06] 0,0, "FSTENV%S %e",
-[0x07] 0,0, "FSTCW %e",
-[0x08] 0,0, "FMOVD F0,F0", /* Mod R/M = 11xx xxxx*/
-[0x09] 0,0, "FMOVD F1,F0",
-[0x0a] 0,0, "FMOVD F2,F0",
-[0x0b] 0,0, "FMOVD F3,F0",
-[0x0c] 0,0, "FMOVD F4,F0",
-[0x0d] 0,0, "FMOVD F5,F0",
-[0x0e] 0,0, "FMOVD F6,F0",
-[0x0f] 0,0, "FMOVD F7,F0",
-[0x10] 0,0, "FXCHD F0,F0",
-[0x11] 0,0, "FXCHD F1,F0",
-[0x12] 0,0, "FXCHD F2,F0",
-[0x13] 0,0, "FXCHD F3,F0",
-[0x14] 0,0, "FXCHD F4,F0",
-[0x15] 0,0, "FXCHD F5,F0",
-[0x16] 0,0, "FXCHD F6,F0",
-[0x17] 0,0, "FXCHD F7,F0",
-[0x18] 0,0, "FNOP",
-[0x28] 0,0, "FCHS",
-[0x29] 0,0, "FABS",
-[0x2c] 0,0, "FTST",
-[0x2d] 0,0, "FXAM",
-[0x30] 0,0, "FLD1",
-[0x31] 0,0, "FLDL2T",
-[0x32] 0,0, "FLDL2E",
-[0x33] 0,0, "FLDPI",
-[0x34] 0,0, "FLDLG2",
-[0x35] 0,0, "FLDLN2",
-[0x36] 0,0, "FLDZ",
-[0x38] 0,0, "F2XM1",
-[0x39] 0,0, "FYL2X",
-[0x3a] 0,0, "FPTAN",
-[0x3b] 0,0, "FPATAN",
-[0x3c] 0,0, "FXTRACT",
-[0x3d] 0,0, "FPREM1",
-[0x3e] 0,0, "FDECSTP",
-[0x3f] 0,0, "FNCSTP",
-[0x40] 0,0, "FPREM",
-[0x41] 0,0, "FYL2XP1",
-[0x42] 0,0, "FSQRT",
-[0x43] 0,0, "FSINCOS",
-[0x44] 0,0, "FRNDINT",
-[0x45] 0,0, "FSCALE",
-[0x46] 0,0, "FSIN",
-[0x47] 0,0, "FCOS",
+ 0,0, "FMOVF %e,F0", /* 0x00 */
+ 0,0, "", /* 0x01 */
+ 0,0, "FMOVF F0,%e", /* 0x02 */
+ 0,0, "FMOVFP F0,%e", /* 0x03 */
+ 0,0, "FLDENV%S %e", /* 0x04 */
+ 0,0, "FLDCW %e", /* 0x05 */
+ 0,0, "FSTENV%S %e", /* 0x06 */
+ 0,0, "FSTCW %e", /* 0x07 */
+ 0,0, "FMOVD F0,F0", /* 0x08 */ /* Mod R/M = 11xx xxxx*/
+ 0,0, "FMOVD F1,F0", /* 0x09 */
+ 0,0, "FMOVD F2,F0", /* 0x0a */
+ 0,0, "FMOVD F3,F0", /* 0x0b */
+ 0,0, "FMOVD F4,F0", /* 0x0c */
+ 0,0, "FMOVD F5,F0", /* 0x0d */
+ 0,0, "FMOVD F6,F0", /* 0x0e */
+ 0,0, "FMOVD F7,F0", /* 0x0f */
+ 0,0, "FXCHD F0,F0", /* 0x10 */
+ 0,0, "FXCHD F1,F0", /* 0x11 */
+ 0,0, "FXCHD F2,F0", /* 0x12 */
+ 0,0, "FXCHD F3,F0", /* 0x13 */
+ 0,0, "FXCHD F4,F0", /* 0x14 */
+ 0,0, "FXCHD F5,F0", /* 0x15 */
+ 0,0, "FXCHD F6,F0", /* 0x16 */
+ 0,0, "FXCHD F7,F0", /* 0x17 */
+ 0,0, "FNOP", /* 0x18 */
+ 0,0, "", /* 0x19 */
+ 0,0, "", /* 0x1a */
+ 0,0, "", /* 0x1b */
+ 0,0, "", /* 0x1c */
+ 0,0, "", /* 0x1d */
+ 0,0, "", /* 0x1e */
+ 0,0, "", /* 0x1f */
+ 0,0, "", /* 0x20 */
+ 0,0, "", /* 0x21 */
+ 0,0, "", /* 0x22 */
+ 0,0, "", /* 0x23 */
+ 0,0, "", /* 0x24 */
+ 0,0, "", /* 0x25 */
+ 0,0, "", /* 0x26 */
+ 0,0, "", /* 0x27 */
+ 0,0, "FCHS", /* 0x28 */
+ 0,0, "FABS", /* 0x29 */
+ 0,0, "", /* 0x2a */
+ 0,0, "", /* 0x2b */
+ 0,0, "FTST", /* 0x2c */
+ 0,0, "FXAM", /* 0x2d */
+ 0,0, "", /* 0x2e */
+ 0,0, "", /* 0x2f */
+ 0,0, "FLD1", /* 0x30 */
+ 0,0, "FLDL2T", /* 0x31 */
+ 0,0, "FLDL2E", /* 0x32 */
+ 0,0, "FLDPI", /* 0x33 */
+ 0,0, "FLDLG2", /* 0x34 */
+ 0,0, "FLDLN2", /* 0x35 */
+ 0,0, "FLDZ", /* 0x36 */
+ 0,0, "", /* 0x37 */
+ 0,0, "F2XM1", /* 0x38 */
+ 0,0, "FYL2X", /* 0x39 */
+ 0,0, "FPTAN", /* 0x3a */
+ 0,0, "FPATAN", /* 0x3b */
+ 0,0, "FXTRACT", /* 0x3c */
+ 0,0, "FPREM1", /* 0x3d */
+ 0,0, "FDECSTP", /* 0x3e */
+ 0,0, "FNCSTP", /* 0x3f */
+ 0,0, "FPREM", /* 0x40 */
+ 0,0, "FYL2XP1", /* 0x41 */
+ 0,0, "FSQRT", /* 0x42 */
+ 0,0, "FSINCOS", /* 0x43 */
+ 0,0, "FRNDINT", /* 0x44 */
+ 0,0, "FSCALE", /* 0x45 */
+ 0,0, "FSIN", /* 0x46 */
+ 0,0, "FCOS", /* 0x47 */
};
static Optable optabDA[8+8] =
{
-[0x00] 0,0, "FADDL %e,F0",
-[0x01] 0,0, "FMULL %e,F0",
-[0x02] 0,0, "FCOML %e,F0",
-[0x03] 0,0, "FCOMLP %e,F0",
-[0x04] 0,0, "FSUBL %e,F0",
-[0x05] 0,0, "FSUBRL %e,F0",
-[0x06] 0,0, "FDIVL %e,F0",
-[0x07] 0,0, "FDIVRL %e,F0",
-[0x0d] R1,0, "FUCOMPP",
+ 0,0, "FADDL %e,F0", /* 0x00 */
+ 0,0, "FMULL %e,F0", /* 0x01 */
+ 0,0, "FCOML %e,F0", /* 0x02 */
+ 0,0, "FCOMLP %e,F0", /* 0x03 */
+ 0,0, "FSUBL %e,F0", /* 0x04 */
+ 0,0, "FSUBRL %e,F0", /* 0x05 */
+ 0,0, "FDIVL %e,F0", /* 0x06 */
+ 0,0, "FDIVRL %e,F0", /* 0x07 */
+ 0,0, "", /* 0x08 */
+ 0,0, "", /* 0x09 */
+ 0,0, "", /* 0x0a */
+ 0,0, "", /* 0x0b */
+ 0,0, "", /* 0x0c */
+ R1,0, "FUCOMPP", /* 0x0d */
};
static Optable optabDB[8+64] =
{
-[0x00] 0,0, "FMOVL %e,F0",
-[0x02] 0,0, "FMOVL F0,%e",
-[0x03] 0,0, "FMOVLP F0,%e",
-[0x05] 0,0, "FMOVX %e,F0",
-[0x07] 0,0, "FMOVXP F0,%e",
-[0x2a] 0,0, "FCLEX",
-[0x2b] 0,0, "FINIT",
+ 0,0, "FMOVL %e,F0", /* 0x00 */
+ 0,0, "", /* 0x01 */
+ 0,0, "FMOVL F0,%e", /* 0x02 */
+ 0,0, "FMOVLP F0,%e", /* 0x03 */
+ 0,0, "", /* 0x04 */
+ 0,0, "FMOVX %e,F0", /* 0x05 */
+ 0,0, "", /* 0x06 */
+ 0,0, "FMOVXP F0,%e", /* 0x07 */
+ 0,0, "", /* 0x08 */
+ 0,0, "", /* 0x09 */
+ 0,0, "", /* 0x0a */
+ 0,0, "", /* 0x0b */
+ 0,0, "", /* 0x0c */
+ 0,0, "", /* 0x0d */
+ 0,0, "", /* 0x0e */
+ 0,0, "", /* 0x0f */
+ 0,0, "", /* 0x10 */
+ 0,0, "", /* 0x11 */
+ 0,0, "", /* 0x12 */
+ 0,0, "", /* 0x13 */
+ 0,0, "", /* 0x14 */
+ 0,0, "", /* 0x15 */
+ 0,0, "", /* 0x16 */
+ 0,0, "", /* 0x17 */
+ 0,0, "", /* 0x18 */
+ 0,0, "", /* 0x19 */
+ 0,0, "", /* 0x1a */
+ 0,0, "", /* 0x1b */
+ 0,0, "", /* 0x1c */
+ 0,0, "", /* 0x1d */
+ 0,0, "", /* 0x1e */
+ 0,0, "", /* 0x1f */
+ 0,0, "", /* 0x20 */
+ 0,0, "", /* 0x21 */
+ 0,0, "", /* 0x22 */
+ 0,0, "", /* 0x23 */
+ 0,0, "", /* 0x24 */
+ 0,0, "", /* 0x25 */
+ 0,0, "", /* 0x26 */
+ 0,0, "", /* 0x27 */
+ 0,0, "", /* 0x28 */
+ 0,0, "", /* 0x29 */
+ 0,0, "FCLEX", /* 0x2a */
+ 0,0, "FINIT", /* 0x2b */
};
static Optable optabDC[8+8] =
{
-[0x00] 0,0, "FADDD %e,F0",
-[0x01] 0,0, "FMULD %e,F0",
-[0x02] 0,0, "FCOMD %e,F0",
-[0x03] 0,0, "FCOMDP %e,F0",
-[0x04] 0,0, "FSUBD %e,F0",
-[0x05] 0,0, "FSUBRD %e,F0",
-[0x06] 0,0, "FDIVD %e,F0",
-[0x07] 0,0, "FDIVRD %e,F0",
-[0x08] 0,0, "FADDD F0,%f",
-[0x09] 0,0, "FMULD F0,%f",
-[0x0c] 0,0, "FSUBRD F0,%f",
-[0x0d] 0,0, "FSUBD F0,%f",
-[0x0e] 0,0, "FDIVRD F0,%f",
-[0x0f] 0,0, "FDIVD F0,%f",
+ 0,0, "FADDD %e,F0", /* 0x00 */
+ 0,0, "FMULD %e,F0", /* 0x01 */
+ 0,0, "FCOMD %e,F0", /* 0x02 */
+ 0,0, "FCOMDP %e,F0", /* 0x03 */
+ 0,0, "FSUBD %e,F0", /* 0x04 */
+ 0,0, "FSUBRD %e,F0", /* 0x05 */
+ 0,0, "FDIVD %e,F0", /* 0x06 */
+ 0,0, "FDIVRD %e,F0", /* 0x07 */
+ 0,0, "FADDD F0,%f", /* 0x08 */
+ 0,0, "FMULD F0,%f", /* 0x09 */
+ 0,0, "", /* 0x0a */
+ 0,0, "", /* 0x0b */
+ 0,0, "FSUBRD F0,%f", /* 0x0c */
+ 0,0, "FSUBD F0,%f", /* 0x0d */
+ 0,0, "FDIVRD F0,%f", /* 0x0e */
+ 0,0, "FDIVD F0,%f", /* 0x0f */
};
static Optable optabDD[8+8] =
{
-[0x00] 0,0, "FMOVD %e,F0",
-[0x02] 0,0, "FMOVD F0,%e",
-[0x03] 0,0, "FMOVDP F0,%e",
-[0x04] 0,0, "FRSTOR%S %e",
-[0x06] 0,0, "FSAVE%S %e",
-[0x07] 0,0, "FSTSW %e",
-[0x08] 0,0, "FFREED %f",
-[0x0a] 0,0, "FMOVD %f,F0",
-[0x0b] 0,0, "FMOVDP %f,F0",
-[0x0c] 0,0, "FUCOMD %f,F0",
-[0x0d] 0,0, "FUCOMDP %f,F0",
+ 0,0, "FMOVD %e,F0", /* 0x00 */
+ 0,0, "", /* 0x01 */
+ 0,0, "FMOVD F0,%e", /* 0x02 */
+ 0,0, "FMOVDP F0,%e", /* 0x03 */
+ 0,0, "FRSTOR%S %e", /* 0x04 */
+ 0,0, "", /* 0x05 */
+ 0,0, "FSAVE%S %e", /* 0x06 */
+ 0,0, "FSTSW %e", /* 0x07 */
+ 0,0, "FFREED %f", /* 0x08 */
+ 0,0, "", /* 0x09 */
+ 0,0, "FMOVD %f,F0", /* 0x0a */
+ 0,0, "FMOVDP %f,F0", /* 0x0b */
+ 0,0, "FUCOMD %f,F0", /* 0x0c */
+ 0,0, "FUCOMDP %f,F0", /* 0x0d */
};
static Optable optabDE[8+8] =
{
-[0x00] 0,0, "FADDW %e,F0",
-[0x01] 0,0, "FMULW %e,F0",
-[0x02] 0,0, "FCOMW %e,F0",
-[0x03] 0,0, "FCOMWP %e,F0",
-[0x04] 0,0, "FSUBW %e,F0",
-[0x05] 0,0, "FSUBRW %e,F0",
-[0x06] 0,0, "FDIVW %e,F0",
-[0x07] 0,0, "FDIVRW %e,F0",
-[0x08] 0,0, "FADDDP F0,%f",
-[0x09] 0,0, "FMULDP F0,%f",
-[0x0b] R1,0, "FCOMPDP",
-[0x0c] 0,0, "FSUBRDP F0,%f",
-[0x0d] 0,0, "FSUBDP F0,%f",
-[0x0e] 0,0, "FDIVRDP F0,%f",
-[0x0f] 0,0, "FDIVDP F0,%f",
+ 0,0, "FADDW %e,F0", /* 0x00 */
+ 0,0, "FMULW %e,F0", /* 0x01 */
+ 0,0, "FCOMW %e,F0", /* 0x02 */
+ 0,0, "FCOMWP %e,F0", /* 0x03 */
+ 0,0, "FSUBW %e,F0", /* 0x04 */
+ 0,0, "FSUBRW %e,F0", /* 0x05 */
+ 0,0, "FDIVW %e,F0", /* 0x06 */
+ 0,0, "FDIVRW %e,F0", /* 0x07 */
+ 0,0, "FADDDP F0,%f", /* 0x08 */
+ 0,0, "FMULDP F0,%f", /* 0x09 */
+ 0,0, "", /* 0x0a */
+ R1,0, "FCOMPDP", /* 0x0b */
+ 0,0, "FSUBRDP F0,%f", /* 0x0c */
+ 0,0, "FSUBDP F0,%f", /* 0x0d */
+ 0,0, "FDIVRDP F0,%f", /* 0x0e */
+ 0,0, "FDIVDP F0,%f", /* 0x0f */
};
static Optable optabDF[8+8] =
{
-[0x00] 0,0, "FMOVW %e,F0",
-[0x02] 0,0, "FMOVW F0,%e",
-[0x03] 0,0, "FMOVWP F0,%e",
-[0x04] 0,0, "FBLD %e",
-[0x05] 0,0, "FMOVL %e,F0",
-[0x06] 0,0, "FBSTP %e",
-[0x07] 0,0, "FMOVLP F0,%e",
-[0x0c] R0,0, "FSTSW %OAX",
+ 0,0, "FMOVW %e,F0", /* 0x00 */
+ 0,0, "", /* 0x01 */
+ 0,0, "FMOVW F0,%e", /* 0x02 */
+ 0,0, "FMOVWP F0,%e", /* 0x03 */
+ 0,0, "FBLD %e", /* 0x04 */
+ 0,0, "FMOVL %e,F0", /* 0x05 */
+ 0,0, "FBSTP %e", /* 0x06 */
+ 0,0, "FMOVLP F0,%e", /* 0x07 */
+ 0,0, "", /* 0x08 */
+ 0,0, "", /* 0x09 */
+ 0,0, "", /* 0x0a */
+ 0,0, "", /* 0x0b */
+ R0,0, "FSTSW %OAX", /* 0x0c */
};
static Optable optabF6[8] =
{
-[0x00] Ib,0, "TESTB %i,%e",
-[0x02] 0,0, "NOTB %e",
-[0x03] 0,0, "NEGB %e",
-[0x04] 0,0, "MULB AL,%e",
-[0x05] 0,0, "IMULB AL,%e",
-[0x06] 0,0, "DIVB AL,%e",
-[0x07] 0,0, "IDIVB AL,%e",
+ Ib,0, "TESTB %i,%e", /* 0x00 */
+ 0,0, "", /* 0x01 */
+ 0,0, "NOTB %e", /* 0x02 */
+ 0,0, "NEGB %e", /* 0x03 */
+ 0,0, "MULB AL,%e", /* 0x04 */
+ 0,0, "IMULB AL,%e", /* 0x05 */
+ 0,0, "DIVB AL,%e", /* 0x06 */
+ 0,0, "IDIVB AL,%e", /* 0x07 */
};
static Optable optabF7[8] =
{
-[0x00] Iwd,0, "TEST%S %i,%e",
-[0x02] 0,0, "NOT%S %e",
-[0x03] 0,0, "NEG%S %e",
-[0x04] 0,0, "MUL%S %OAX,%e",
-[0x05] 0,0, "IMUL%S %OAX,%e",
-[0x06] 0,0, "DIV%S %OAX,%e",
-[0x07] 0,0, "IDIV%S %OAX,%e",
+ Iwd,0, "TEST%S %i,%e", /* 0x00 */
+ 0,0, "", /* 0x01 */
+ 0,0, "NOT%S %e", /* 0x02 */
+ 0,0, "NEG%S %e", /* 0x03 */
+ 0,0, "MUL%S %OAX,%e", /* 0x04 */
+ 0,0, "IMUL%S %OAX,%e", /* 0x05 */
+ 0,0, "DIV%S %OAX,%e", /* 0x06 */
+ 0,0, "IDIV%S %OAX,%e", /* 0x07 */
};
static Optable optabFE[8] =
{
-[0x00] 0,0, "INCB %e",
-[0x01] 0,0, "DECB %e",
+ 0,0, "INCB %e", /* 0x00 */
+ 0,0, "DECB %e", /* 0x01 */
};
static Optable optabFF[8] =
{
-[0x00] 0,0, "INC%S %e",
-[0x01] 0,0, "DEC%S %e",
-[0x02] JUMP,0, "CALL* %e",
-[0x03] JUMP,0, "CALLF* %e",
-[0x04] JUMP,0, "JMP* %e",
-[0x05] JUMP,0, "JMPF* %e",
-[0x06] 0,0, "PUSHL %e",
+ 0,0, "INC%S %e", /* 0x00 */
+ 0,0, "DEC%S %e", /* 0x01 */
+ JUMP,0, "CALL*%S %e", /* 0x02 */
+ JUMP,0, "CALLF*%S %e", /* 0x03 */
+ JUMP,0, "JMP*%S %e", /* 0x04 */
+ JUMP,0, "JMPF*%S %e", /* 0x05 */
+ 0,0, "PUSHL %e", /* 0x06 */
};
static Optable optable[256] =
{
-[0x00] RMB,0, "ADDB %r,%e",
-[0x01] RM,0, "ADD%S %r,%e",
-[0x02] RMB,0, "ADDB %e,%r",
-[0x03] RM,0, "ADD%S %e,%r",
-[0x04] Ib,0, "ADDB %i,AL",
-[0x05] Iwd,0, "ADD%S %i,%OAX",
-[0x06] 0,0, "PUSHL ES",
-[0x07] 0,0, "POPL ES",
-[0x08] RMB,0, "ORB %r,%e",
-[0x09] RM,0, "OR%S %r,%e",
-[0x0a] RMB,0, "ORB %e,%r",
-[0x0b] RM,0, "OR%S %e,%r",
-[0x0c] Ib,0, "ORB %i,AL",
-[0x0d] Iwd,0, "OR%S %i,%OAX",
-[0x0e] 0,0, "PUSHL CS",
-[0x0f] AUX,0, optab0F,
-[0x10] RMB,0, "ADCB %r,%e",
-[0x11] RM,0, "ADC%S %r,%e",
-[0x12] RMB,0, "ADCB %e,%r",
-[0x13] RM,0, "ADC%S %e,%r",
-[0x14] Ib,0, "ADCB %i,AL",
-[0x15] Iwd,0, "ADC%S %i,%OAX",
-[0x16] 0,0, "PUSHL SS",
-[0x17] 0,0, "POPL SS",
-[0x18] RMB,0, "SBBB %r,%e",
-[0x19] RM,0, "SBB%S %r,%e",
-[0x1a] RMB,0, "SBBB %e,%r",
-[0x1b] RM,0, "SBB%S %e,%r",
-[0x1c] Ib,0, "SBBB %i,AL",
-[0x1d] Iwd,0, "SBB%S %i,%OAX",
-[0x1e] 0,0, "PUSHL DS",
-[0x1f] 0,0, "POPL DS",
-[0x20] RMB,0, "ANDB %r,%e",
-[0x21] RM,0, "AND%S %r,%e",
-[0x22] RMB,0, "ANDB %e,%r",
-[0x23] RM,0, "AND%S %e,%r",
-[0x24] Ib,0, "ANDB %i,AL",
-[0x25] Iwd,0, "AND%S %i,%OAX",
-[0x26] SEG,0, "ES:",
-[0x27] 0,0, "DAA",
-[0x28] RMB,0, "SUBB %r,%e",
-[0x29] RM,0, "SUB%S %r,%e",
-[0x2a] RMB,0, "SUBB %e,%r",
-[0x2b] RM,0, "SUB%S %e,%r",
-[0x2c] Ib,0, "SUBB %i,AL",
-[0x2d] Iwd,0, "SUB%S %i,%OAX",
-[0x2e] SEG,0, "CS:",
-[0x2f] 0,0, "DAS",
-[0x30] RMB,0, "XORB %r,%e",
-[0x31] RM,0, "XOR%S %r,%e",
-[0x32] RMB,0, "XORB %e,%r",
-[0x33] RM,0, "XOR%S %e,%r",
-[0x34] Ib,0, "XORB %i,AL",
-[0x35] Iwd,0, "XOR%S %i,%OAX",
-[0x36] SEG,0, "SS:",
-[0x37] 0,0, "AAA",
-[0x38] RMB,0, "CMPB %r,%e",
-[0x39] RM,0, "CMP%S %r,%e",
-[0x3a] RMB,0, "CMPB %e,%r",
-[0x3b] RM,0, "CMP%S %e,%r",
-[0x3c] Ib,0, "CMPB %i,AL",
-[0x3d] Iwd,0, "CMP%S %i,%OAX",
-[0x3e] SEG,0, "DS:",
-[0x3f] 0,0, "AAS",
-[0x40] 0,0, "INC%S %OAX",
-[0x41] 0,0, "INC%S %OCX",
-[0x42] 0,0, "INC%S %ODX",
-[0x43] 0,0, "INC%S %OBX",
-[0x44] 0,0, "INC%S %OSP",
-[0x45] 0,0, "INC%S %OBP",
-[0x46] 0,0, "INC%S %OSI",
-[0x47] 0,0, "INC%S %ODI",
-[0x48] 0,0, "DEC%S %OAX",
-[0x49] 0,0, "DEC%S %OCX",
-[0x4a] 0,0, "DEC%S %ODX",
-[0x4b] 0,0, "DEC%S %OBX",
-[0x4c] 0,0, "DEC%S %OSP",
-[0x4d] 0,0, "DEC%S %OBP",
-[0x4e] 0,0, "DEC%S %OSI",
-[0x4f] 0,0, "DEC%S %ODI",
-[0x50] 0,0, "PUSH%S %OAX",
-[0x51] 0,0, "PUSH%S %OCX",
-[0x52] 0,0, "PUSH%S %ODX",
-[0x53] 0,0, "PUSH%S %OBX",
-[0x54] 0,0, "PUSH%S %OSP",
-[0x55] 0,0, "PUSH%S %OBP",
-[0x56] 0,0, "PUSH%S %OSI",
-[0x57] 0,0, "PUSH%S %ODI",
-[0x58] 0,0, "POP%S %OAX",
-[0x59] 0,0, "POP%S %OCX",
-[0x5a] 0,0, "POP%S %ODX",
-[0x5b] 0,0, "POP%S %OBX",
-[0x5c] 0,0, "POP%S %OSP",
-[0x5d] 0,0, "POP%S %OBP",
-[0x5e] 0,0, "POP%S %OSI",
-[0x5f] 0,0, "POP%S %ODI",
-[0x60] 0,0, "PUSHA%S",
-[0x61] 0,0, "POPA%S",
-[0x62] RMM,0, "BOUND %e,%r",
-[0x63] RM,0, "ARPL %r,%e",
-[0x64] SEG,0, "FS:",
-[0x65] SEG,0, "GS:",
-[0x66] OPOVER,0, "",
-[0x67] ADDOVER,0, "",
-[0x68] Iwd,0, "PUSH%S %i",
-[0x69] RM,Iwd, "IMUL%S %e,%i,%r",
-[0x6a] Ib,0, "PUSH%S %i",
-[0x6b] RM,Ibs, "IMUL%S %e,%i,%r",
-[0x6c] 0,0, "INSB DX,(%ODI)",
-[0x6d] 0,0, "INS%S DX,(%ODI)",
-[0x6e] 0,0, "OUTSB (%ASI),DX",
-[0x6f] 0,0, "OUTS%S (%ASI),DX",
-[0x70] Jbs,0, "JOS %p",
-[0x71] Jbs,0, "JOC %p",
-[0x72] Jbs,0, "JCS %p",
-[0x73] Jbs,0, "JCC %p",
-[0x74] Jbs,0, "JEQ %p",
-[0x75] Jbs,0, "JNE %p",
-[0x76] Jbs,0, "JLS %p",
-[0x77] Jbs,0, "JHI %p",
-[0x78] Jbs,0, "JMI %p",
-[0x79] Jbs,0, "JPL %p",
-[0x7a] Jbs,0, "JPS %p",
-[0x7b] Jbs,0, "JPC %p",
-[0x7c] Jbs,0, "JLT %p",
-[0x7d] Jbs,0, "JGE %p",
-[0x7e] Jbs,0, "JLE %p",
-[0x7f] Jbs,0, "JGT %p",
-[0x80] RMOPB,0, optab80,
-[0x81] RMOP,0, optab81,
-[0x83] RMOP,0, optab83,
-[0x84] RMB,0, "TESTB %r,%e",
-[0x85] RM,0, "TEST%S %r,%e",
-[0x86] RMB,0, "XCHGB %r,%e",
-[0x87] RM,0, "XCHG%S %r,%e",
-[0x88] RMB,0, "MOVB %r,%e",
-[0x89] RM,0, "MOV%S %r,%e",
-[0x8a] RMB,0, "MOVB %e,%r",
-[0x8b] RM,0, "MOV%S %e,%r",
-[0x8c] RM,0, "MOVW %g,%e",
-[0x8d] RM,0, "LEA %e,%r",
-[0x8e] RM,0, "MOVW %e,%g",
-[0x8f] RM,0, "POP%S %e",
-[0x90] 0,0, "NOP",
-[0x91] 0,0, "XCHG %OCX,%OAX",
-[0x92] 0,0, "XCHG %ODX,%OAX",
-[0x93] 0,0, "XCHG %OBX,%OAX",
-[0x94] 0,0, "XCHG %OSP,%OAX",
-[0x95] 0,0, "XCHG %OBP,%OAX",
-[0x96] 0,0, "XCHG %OSI,%OAX",
-[0x97] 0,0, "XCHG %ODI,%OAX",
-[0x98] 0,0, "%X", /* miserable CBW or CWDE */
-[0x99] 0,0, "%x", /* idiotic CWD or CDQ */
-[0x9a] PTR,0, "CALL%S %d",
-[0x9b] 0,0, "WAIT",
-[0x9c] 0,0, "PUSHF",
-[0x9d] 0,0, "POPF",
-[0x9e] 0,0, "SAHF",
-[0x9f] 0,0, "LAHF",
-[0xa0] Awd,0, "MOVB %i,AL",
-[0xa1] Awd,0, "MOV%S %i,%OAX",
-[0xa2] Awd,0, "MOVB AL,%i",
-[0xa3] Awd,0, "MOV%S %OAX,%i",
-[0xa4] 0,0, "MOVSB (%ASI),(%ADI)",
-[0xa5] 0,0, "MOVS%S (%ASI),(%ADI)",
-[0xa6] 0,0, "CMPSB (%ASI),(%ADI)",
-[0xa7] 0,0, "CMPS%S (%ASI),(%ADI)",
-[0xa8] Ib,0, "TESTB %i,AL",
-[0xa9] Iwd,0, "TEST%S %i,%OAX",
-[0xaa] 0,0, "STOSB AL,(%ADI)",
-[0xab] 0,0, "STOS%S %OAX,(%ADI)",
-[0xac] 0,0, "LODSB (%ASI),AL",
-[0xad] 0,0, "LODS%S (%ASI),%OAX",
-[0xae] 0,0, "SCASB (%ADI),AL",
-[0xaf] 0,0, "SCAS%S (%ADI),%OAX",
-[0xb0] Ib,0, "MOVB %i,AL",
-[0xb1] Ib,0, "MOVB %i,CL",
-[0xb2] Ib,0, "MOVB %i,DL",
-[0xb3] Ib,0, "MOVB %i,BL",
-[0xb4] Ib,0, "MOVB %i,AH",
-[0xb5] Ib,0, "MOVB %i,CH",
-[0xb6] Ib,0, "MOVB %i,DH",
-[0xb7] Ib,0, "MOVB %i,BH",
-[0xb8] Iwd,0, "MOV%S %i,%OAX",
-[0xb9] Iwd,0, "MOV%S %i,%OCX",
-[0xba] Iwd,0, "MOV%S %i,%ODX",
-[0xbb] Iwd,0, "MOV%S %i,%OBX",
-[0xbc] Iwd,0, "MOV%S %i,%OSP",
-[0xbd] Iwd,0, "MOV%S %i,%OBP",
-[0xbe] Iwd,0, "MOV%S %i,%OSI",
-[0xbf] Iwd,0, "MOV%S %i,%ODI",
-[0xc0] RMOPB,0, optabC0,
-[0xc1] RMOP,0, optabC1,
-[0xc2] Iw,0, "RET %i",
-[0xc3] RET,0, "RET",
-[0xc4] RM,0, "LES %e,%r",
-[0xc5] RM,0, "LDS %e,%r",
-[0xc6] RMB,Ib, "MOVB %i,%e",
-[0xc7] RM,Iwd, "MOV%S %i,%e",
-[0xc8] Iw2,Ib, "ENTER %i,%I", /* loony ENTER */
-[0xc9] RET,0, "LEAVE", /* bizarre LEAVE */
-[0xca] Iw,0, "RETF %i",
-[0xcb] RET,0, "RETF",
-[0xcc] 0,0, "INT 3",
-[0xcd] Ib,0, "INTB %i",
-[0xce] 0,0, "INTO",
-[0xcf] 0,0, "IRET",
-[0xd0] RMOPB,0, optabD0,
-[0xd1] RMOP,0, optabD1,
-[0xd2] RMOPB,0, optabD2,
-[0xd3] RMOP,0, optabD3,
-[0xd4] OA,0, "AAM",
-[0xd5] OA,0, "AAD",
-[0xd7] 0,0, "XLAT",
-[0xd8] FRMOP,0, optabD8,
-[0xd9] FRMEX,0, optabD9,
-[0xda] FRMOP,0, optabDA,
-[0xdb] FRMEX,0, optabDB,
-[0xdc] FRMOP,0, optabDC,
-[0xdd] FRMOP,0, optabDD,
-[0xde] FRMOP,0, optabDE,
-[0xdf] FRMOP,0, optabDF,
-[0xe0] Jbs,0, "LOOPNE %p",
-[0xe1] Jbs,0, "LOOPE %p",
-[0xe2] Jbs,0, "LOOP %p",
-[0xe3] Jbs,0, "JCXZ %p",
-[0xe4] Ib,0, "INB %i,AL",
-[0xe5] Ib,0, "IN%S %i,%OAX",
-[0xe6] Ib,0, "OUTB AL,%i",
-[0xe7] Ib,0, "OUT%S %OAX,%i",
-[0xe8] Iwds,0, "CALL %p",
-[0xe9] Iwds,0, "JMP %p",
-[0xea] PTR,0, "JMP %d",
-[0xeb] Jbs,0, "JMP %p",
-[0xec] 0,0, "INB DX,AL",
-[0xed] 0,0, "IN%S DX,%OAX",
-[0xee] 0,0, "OUTB AL,DX",
-[0xef] 0,0, "OUT%S %OAX,DX",
-[0xf0] PRE,0, "LOCK",
-[0xf2] PRE,0, "REPNE",
-[0xf3] PRE,0, "REP",
-[0xf4] 0,0, "HALT",
-[0xf5] 0,0, "CMC",
-[0xf6] RMOPB,0, optabF6,
-[0xf7] RMOP,0, optabF7,
-[0xf8] 0,0, "CLC",
-[0xf9] 0,0, "STC",
-[0xfa] 0,0, "CLI",
-[0xfb] 0,0, "STI",
-[0xfc] 0,0, "CLD",
-[0xfd] 0,0, "STD",
-[0xfe] RMOPB,0, optabFE,
-[0xff] RMOP,0, optabFF,
+ RMB,0, "ADDB %r,%e", /* 0x00 */
+ RM,0, "ADD%S %r,%e", /* 0x01 */
+ RMB,0, "ADDB %e,%r", /* 0x02 */
+ RM,0, "ADD%S %e,%r", /* 0x03 */
+ Ib,0, "ADDB %i,AL", /* 0x04 */
+ Iwd,0, "ADD%S %i,%OAX", /* 0x05 */
+ 0,0, "PUSHL ES", /* 0x06 */
+ 0,0, "POPL ES", /* 0x07 */
+ RMB,0, "ORB %r,%e", /* 0x08 */
+ RM,0, "OR%S %r,%e", /* 0x09 */
+ RMB,0, "ORB %e,%r", /* 0x0a */
+ RM,0, "OR%S %e,%r", /* 0x0b */
+ Ib,0, "ORB %i,AL", /* 0x0c */
+ Iwd,0, "OR%S %i,%OAX", /* 0x0d */
+ 0,0, "PUSHL CS", /* 0x0e */
+ AUX,0, optab0F, /* 0x0f */
+ RMB,0, "ADCB %r,%e", /* 0x10 */
+ RM,0, "ADC%S %r,%e", /* 0x11 */
+ RMB,0, "ADCB %e,%r", /* 0x12 */
+ RM,0, "ADC%S %e,%r", /* 0x13 */
+ Ib,0, "ADCB %i,AL", /* 0x14 */
+ Iwd,0, "ADC%S %i,%OAX", /* 0x15 */
+ 0,0, "PUSHL SS", /* 0x16 */
+ 0,0, "POPL SS", /* 0x17 */
+ RMB,0, "SBBB %r,%e", /* 0x18 */
+ RM,0, "SBB%S %r,%e", /* 0x19 */
+ RMB,0, "SBBB %e,%r", /* 0x1a */
+ RM,0, "SBB%S %e,%r", /* 0x1b */
+ Ib,0, "SBBB %i,AL", /* 0x1c */
+ Iwd,0, "SBB%S %i,%OAX", /* 0x1d */
+ 0,0, "PUSHL DS", /* 0x1e */
+ 0,0, "POPL DS", /* 0x1f */
+ RMB,0, "ANDB %r,%e", /* 0x20 */
+ RM,0, "AND%S %r,%e", /* 0x21 */
+ RMB,0, "ANDB %e,%r", /* 0x22 */
+ RM,0, "AND%S %e,%r", /* 0x23 */
+ Ib,0, "ANDB %i,AL", /* 0x24 */
+ Iwd,0, "AND%S %i,%OAX", /* 0x25 */
+ SEG,0, "ES:", /* 0x26 */
+ 0,0, "DAA", /* 0x27 */
+ RMB,0, "SUBB %r,%e", /* 0x28 */
+ RM,0, "SUB%S %r,%e", /* 0x29 */
+ RMB,0, "SUBB %e,%r", /* 0x2a */
+ RM,0, "SUB%S %e,%r", /* 0x2b */
+ Ib,0, "SUBB %i,AL", /* 0x2c */
+ Iwd,0, "SUB%S %i,%OAX", /* 0x2d */
+ SEG,0, "CS:", /* 0x2e */
+ 0,0, "DAS", /* 0x2f */
+ RMB,0, "XORB %r,%e", /* 0x30 */
+ RM,0, "XOR%S %r,%e", /* 0x31 */
+ RMB,0, "XORB %e,%r", /* 0x32 */
+ RM,0, "XOR%S %e,%r", /* 0x33 */
+ Ib,0, "XORB %i,AL", /* 0x34 */
+ Iwd,0, "XOR%S %i,%OAX", /* 0x35 */
+ SEG,0, "SS:", /* 0x36 */
+ 0,0, "AAA", /* 0x37 */
+ RMB,0, "CMPB %r,%e", /* 0x38 */
+ RM,0, "CMP%S %r,%e", /* 0x39 */
+ RMB,0, "CMPB %e,%r", /* 0x3a */
+ RM,0, "CMP%S %e,%r", /* 0x3b */
+ Ib,0, "CMPB %i,AL", /* 0x3c */
+ Iwd,0, "CMP%S %i,%OAX", /* 0x3d */
+ SEG,0, "DS:", /* 0x3e */
+ 0,0, "AAS", /* 0x3f */
+ 0,0, "INC%S %OAX", /* 0x40 */
+ 0,0, "INC%S %OCX", /* 0x41 */
+ 0,0, "INC%S %ODX", /* 0x42 */
+ 0,0, "INC%S %OBX", /* 0x43 */
+ 0,0, "INC%S %OSP", /* 0x44 */
+ 0,0, "INC%S %OBP", /* 0x45 */
+ 0,0, "INC%S %OSI", /* 0x46 */
+ 0,0, "INC%S %ODI", /* 0x47 */
+ 0,0, "DEC%S %OAX", /* 0x48 */
+ 0,0, "DEC%S %OCX", /* 0x49 */
+ 0,0, "DEC%S %ODX", /* 0x4a */
+ 0,0, "DEC%S %OBX", /* 0x4b */
+ 0,0, "DEC%S %OSP", /* 0x4c */
+ 0,0, "DEC%S %OBP", /* 0x4d */
+ 0,0, "DEC%S %OSI", /* 0x4e */
+ 0,0, "DEC%S %ODI", /* 0x4f */
+ 0,0, "PUSH%S %OAX", /* 0x50 */
+ 0,0, "PUSH%S %OCX", /* 0x51 */
+ 0,0, "PUSH%S %ODX", /* 0x52 */
+ 0,0, "PUSH%S %OBX", /* 0x53 */
+ 0,0, "PUSH%S %OSP", /* 0x54 */
+ 0,0, "PUSH%S %OBP", /* 0x55 */
+ 0,0, "PUSH%S %OSI", /* 0x56 */
+ 0,0, "PUSH%S %ODI", /* 0x57 */
+ 0,0, "POP%S %OAX", /* 0x58 */
+ 0,0, "POP%S %OCX", /* 0x59 */
+ 0,0, "POP%S %ODX", /* 0x5a */
+ 0,0, "POP%S %OBX", /* 0x5b */
+ 0,0, "POP%S %OSP", /* 0x5c */
+ 0,0, "POP%S %OBP", /* 0x5d */
+ 0,0, "POP%S %OSI", /* 0x5e */
+ 0,0, "POP%S %ODI", /* 0x5f */
+ 0,0, "PUSHA%S", /* 0x60 */
+ 0,0, "POPA%S", /* 0x61 */
+ RMM,0, "BOUND %e,%r", /* 0x62 */
+ RM,0, "ARPL %r,%e", /* 0x63 */
+ SEG,0, "FS:", /* 0x64 */
+ SEG,0, "GS:", /* 0x65 */
+ OPOVER,0, "", /* 0x66 */
+ ADDOVER,0, "", /* 0x67 */
+ Iwd,0, "PUSH%S %i", /* 0x68 */
+ RM,Iwd, "IMUL%S %e,%i,%r", /* 0x69 */
+ Ib,0, "PUSH%S %i", /* 0x6a */
+ RM,Ibs, "IMUL%S %e,%i,%r", /* 0x6b */
+ 0,0, "INSB DX,(%ODI)", /* 0x6c */
+ 0,0, "INS%S DX,(%ODI)", /* 0x6d */
+ 0,0, "OUTSB (%ASI),DX", /* 0x6e */
+ 0,0, "OUTS%S (%ASI),DX", /* 0x6f */
+ Jbs,0, "JOS %p", /* 0x70 */
+ Jbs,0, "JOC %p", /* 0x71 */
+ Jbs,0, "JCS %p", /* 0x72 */
+ Jbs,0, "JCC %p", /* 0x73 */
+ Jbs,0, "JEQ %p", /* 0x74 */
+ Jbs,0, "JNE %p", /* 0x75 */
+ Jbs,0, "JLS %p", /* 0x76 */
+ Jbs,0, "JHI %p", /* 0x77 */
+ Jbs,0, "JMI %p", /* 0x78 */
+ Jbs,0, "JPL %p", /* 0x79 */
+ Jbs,0, "JPS %p", /* 0x7a */
+ Jbs,0, "JPC %p", /* 0x7b */
+ Jbs,0, "JLT %p", /* 0x7c */
+ Jbs,0, "JGE %p", /* 0x7d */
+ Jbs,0, "JLE %p", /* 0x7e */
+ Jbs,0, "JGT %p", /* 0x7f */
+ RMOPB,0, optab80, /* 0x80 */
+ RMOP,0, optab81, /* 0x81 */
+ 0,0, "", /* 0x82 */
+ RMOP,0, optab83, /* 0x83 */
+ RMB,0, "TESTB %r,%e", /* 0x84 */
+ RM,0, "TEST%S %r,%e", /* 0x85 */
+ RMB,0, "XCHGB %r,%e", /* 0x86 */
+ RM,0, "XCHG%S %r,%e", /* 0x87 */
+ RMB,0, "MOVB %r,%e", /* 0x88 */
+ RM,0, "MOV%S %r,%e", /* 0x89 */
+ RMB,0, "MOVB %e,%r", /* 0x8a */
+ RM,0, "MOV%S %e,%r", /* 0x8b */
+ RM,0, "MOVW %g,%e", /* 0x8c */
+ RM,0, "LEA %e,%r", /* 0x8d */
+ RM,0, "MOVW %e,%g", /* 0x8e */
+ RM,0, "POP%S %e", /* 0x8f */
+ 0,0, "NOP", /* 0x90 */
+ 0,0, "XCHG %OCX,%OAX", /* 0x91 */
+ 0,0, "XCHG %OCX,%OAX", /* 0x92 */
+ 0,0, "XCHG %OCX,%OAX", /* 0x93 */
+ 0,0, "XCHG %OSP,%OAX", /* 0x94 */
+ 0,0, "XCHG %OBP,%OAX", /* 0x95 */
+ 0,0, "XCHG %OSI,%OAX", /* 0x96 */
+ 0,0, "XCHG %ODI,%OAX", /* 0x97 */
+ 0,0, "%X", /* 0x98 */ /* miserable CBW or CWDE */
+ 0,0, "%x", /* 0x99 */ /* idiotic CWD or CDQ */
+ PTR,0, "CALL%S %d", /* 0x9a */
+ 0,0, "WAIT", /* 0x9b */
+ 0,0, "PUSHF", /* 0x9c */
+ 0,0, "POPF", /* 0x9d */
+ 0,0, "SAHF", /* 0x9e */
+ 0,0, "LAHF", /* 0x9f */
+ Awd,0, "MOVB %i,AL", /* 0xa0 */
+ Awd,0, "MOV%S %i,%OAX", /* 0xa1 */
+ Awd,0, "MOVB AL,%i", /* 0xa2 */
+ Awd,0, "MOV%S %OAX,%i", /* 0xa3 */
+ 0,0, "MOVSB (%ASI),(%ADI)", /* 0xa4 */
+ 0,0, "MOVS%S (%ASI),(%ADI)", /* 0xa5 */
+ 0,0, "CMPSB (%ASI),(%ADI)", /* 0xa6 */
+ 0,0, "CMPS%S (%ASI),(%ADI)", /* 0xa7 */
+ Ib,0, "TESTB %i,AL", /* 0xa8 */
+ Iwd,0, "TEST%S %i,%OAX", /* 0xa9 */
+ 0,0, "STOSB AL,(%ADI)", /* 0xaa */
+ 0,0, "STOS%S %OAX,(%ADI)", /* 0xab */
+ 0,0, "LODSB (%ASI),AL", /* 0xac */
+ 0,0, "LODS%S (%ASI),%OAX", /* 0xad */
+ 0,0, "SCASB (%ADI),AL", /* 0xae */
+ 0,0, "SCAS%S (%ADI),%OAX", /* 0xaf */
+ Ib,0, "MOVB %i,AL", /* 0xb0 */
+ Ib,0, "MOVB %i,CL", /* 0xb1 */
+ Ib,0, "MOVB %i,DL", /* 0xb2 */
+ Ib,0, "MOVB %i,BL", /* 0xb3 */
+ Ib,0, "MOVB %i,AH", /* 0xb4 */
+ Ib,0, "MOVB %i,CH", /* 0xb5 */
+ Ib,0, "MOVB %i,DH", /* 0xb6 */
+ Ib,0, "MOVB %i,BH", /* 0xb7 */
+ Iwd,0, "MOV%S %i,%OAX", /* 0xb8 */
+ Iwd,0, "MOV%S %i,%OCX", /* 0xb9 */
+ Iwd,0, "MOV%S %i,%ODX", /* 0xba */
+ Iwd,0, "MOV%S %i,%OBX", /* 0xbb */
+ Iwd,0, "MOV%S %i,%OSP", /* 0xbc */
+ Iwd,0, "MOV%S %i,%OBP", /* 0xbd */
+ Iwd,0, "MOV%S %i,%OSI", /* 0xbe */
+ Iwd,0, "MOV%S %i,%ODI", /* 0xbf */
+ RMOPB,0, optabC0, /* 0xc0 */
+ RMOP,0, optabC1, /* 0xc1 */
+ Iw,0, "RET %i", /* 0xc2 */
+ RET,0, "RET", /* 0xc3 */
+ RM,0, "LES %e,%r", /* 0xc4 */
+ RM,0, "LDS %e,%r", /* 0xc5 */
+ RMB,Ib, "MOVB %i,%e", /* 0xc6 */
+ RM,Iwd, "MOV%S %i,%e", /* 0xc7 */
+ Iw2,Ib, "ENTER %i,%I", /* 0xc8 */ /* loony ENTER */
+ RET,0, "LEAVE", /* 0xc9 */ /* bizarre LEAVE */
+ Iw,0, "RETF %i", /* 0xca */
+ RET,0, "RETF", /* 0xcb */
+ 0,0, "INT 3", /* 0xcc */
+ Ib,0, "INTB %i", /* 0xcd */
+ 0,0, "INTO", /* 0xce */
+ 0,0, "IRET", /* 0xcf */
+ RMOPB,0, optabD0, /* 0xd0 */
+ RMOP,0, optabD1, /* 0xd1 */
+ RMOPB,0, optabD2, /* 0xd2 */
+ RMOP,0, optabD3, /* 0xd3 */
+ OA,0, "AAM", /* 0xd4 */
+ OA,0, "AAD", /* 0xd5 */
+ 0,0, "", /* 0xd6 */
+ 0,0, "XLAT", /* 0xd7 */
+ FRMOP,0, optabD8, /* 0xd8 */
+ FRMEX,0, optabD9, /* 0xd9 */
+ FRMOP,0, optabDA, /* 0xda */
+ FRMEX,0, optabDB, /* 0xdb */
+ FRMOP,0, optabDC, /* 0xdc */
+ FRMOP,0, optabDD, /* 0xdd */
+ FRMOP,0, optabDE, /* 0xde */
+ FRMOP,0, optabDF, /* 0xdf */
+ Jbs,0, "LOOPNE %p", /* 0xe0 */
+ Jbs,0, "LOOPE %p", /* 0xe1 */
+ Jbs,0, "LOOP %p", /* 0xe2 */
+ Jbs,0, "JCXZ %p", /* 0xe3 */
+ Ib,0, "INB %i,AL", /* 0xe4 */
+ Ib,0, "IN%S %i,%OAX", /* 0xe5 */
+ Ib,0, "OUTB AL,%i", /* 0xe6 */
+ Ib,0, "OUT%S %OAX,%i", /* 0xe7 */
+ Iwds,0, "CALL %p", /* 0xe8 */
+ Iwds,0, "JMP %p", /* 0xe9 */
+ PTR,0, "JMP %d", /* 0xea */
+ Jbs,0, "JMP %p", /* 0xeb */
+ 0,0, "INB DX,AL", /* 0xec */
+ 0,0, "IN%S DX,%OAX", /* 0xed */
+ 0,0, "OUTB AL,DX", /* 0xee */
+ 0,0, "OUT%S %OAX,DX", /* 0xef */
+ PRE,0, "LOCK", /* 0xf0 */
+ 0,0, "", /* 0xf1 */
+ PRE,0, "REPNE", /* 0xf2 */
+ PRE,0, "REP", /* 0xf3 */
+ 0,0, "HALT", /* 0xf4 */
+ 0,0, "CMC", /* 0xf5 */
+ RMOPB,0, optabF6, /* 0xf6 */
+ RMOP,0, optabF7, /* 0xf7 */
+ 0,0, "CLC", /* 0xf8 */
+ 0,0, "STC", /* 0xf9 */
+ 0,0, "CLI", /* 0xfa */
+ 0,0, "STI", /* 0xfb */
+ 0,0, "CLD", /* 0xfc */
+ 0,0, "STD", /* 0xfd */
+ RMOPB,0, optabFE, /* 0xfe */
+ RMOP,0, optabFF, /* 0xff */
};
/*