diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libmach/mach386.c | 1346 |
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 */ }; /* |