URI: 
       tget rid of array indexes. - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 10323cd3271635ce751d81aaddeb018c17ffd0ca
   DIR parent aa8086853b3826d0d03aa04154d32396b4807a84
  HTML Author: rsc <devnull@localhost>
       Date:   Mon, 19 Apr 2004 19:58:44 +0000
       
       get rid of array indexes.
       
       Diffstat:
         M src/libmach/mach386.c               |    1346 ++++++++++++++++++-------------
       
       1 file changed, 771 insertions(+), 575 deletions(-)
       ---
   DIR diff --git a/src/libmach/mach386.c b/src/libmach/mach386.c
       t@@ -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: 
       t@@ -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 */
        };
        
        /*