]> Cypherpunks repositories - gostls13.git/commitdiff
libmach: use the standardized format for designated initializers.
authorJeffrey M Hodges <jeff@somethingsimilar.com>
Mon, 6 Jun 2011 06:56:09 +0000 (06:56 +0000)
committerRob Pike <r@golang.org>
Mon, 6 Jun 2011 06:56:09 +0000 (06:56 +0000)
The brace style in these files are a little inconsistent so I rolled with
it on a per-file basis.

R=dave, r
CC=golang-dev
https://golang.org/cl/4515194

src/libmach/8db.c
src/libmach/obj.c

index 80aa4fe69f52de1c611876857290aa789b7ab21f..5a195baf88376e7db3db635ee880330b702b7433 100644 (file)
@@ -62,32 +62,32 @@ static      char    LESSSTACK[] = "sys·lessstack";
 static char    MORESTACK[] = "sys·morestack";
 static char *excname[] =
 {
-[0]    "divide error",
-[1]    "debug exception",
-[4]    "overflow",
-[5]    "bounds check",
-[6]    "invalid opcode",
-[7]    "math coprocessor emulation",
-[8]    "double fault",
-[9]    "math coprocessor overrun",
-[10]   "invalid TSS",
-[11]   "segment not present",
-[12]   "stack exception",
-[13]   "general protection violation",
-[14]   "page fault",
-[16]   "math coprocessor error",
-[17]   "alignment check",
-[18]   "machine check",
-[19]   "floating-point exception",
-[24]   "clock",
-[25]   "keyboard",
-[27]   "modem status",
-[28]   "serial line status",
-[30]   "floppy disk",
-[36]   "mouse",
-[37]   "math coprocessor",
-[38]   "hard disk",
-[64]   "system call",
+[0] =  "divide error",
+[1] =  "debug exception",
+[4] =  "overflow",
+[5] =  "bounds check",
+[6] =  "invalid opcode",
+[7] =  "math coprocessor emulation",
+[8] =  "double fault",
+[9] =  "math coprocessor overrun",
+[10] = "invalid TSS",
+[11] = "segment not present",
+[12] = "stack exception",
+[13] = "general protection violation",
+[14] = "page fault",
+[16] = "math coprocessor error",
+[17] = "alignment check",
+[18] = "machine check",
+[19] = "floating-point exception",
+[24] = "clock",
+[25] = "keyboard",
+[27] = "modem status",
+[28] = "serial line status",
+[30] = "floppy disk",
+[36] = "mouse",
+[37] = "math coprocessor",
+[38] = "hard disk",
+[64] = "system call",
 };
 
 Machdata i386mach =
@@ -436,28 +436,28 @@ 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",
+[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" },
 };
 
 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 */
-[0x07] 0,0,            "INVLPG %e",            /* or SWAPGS */
+[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 */
+[0x07] =       { 0,0,          "INVLPG %e" },          /* or SWAPGS */
 };
 
 static Optable optab0F01F8[1]=
 {
-[0x00] 0,0,            "SWAPGS",
+[0x00] =       { 0,0,          "SWAPGS" },
 };
 
 /* 0F71 */
@@ -466,13 +466,13 @@ static Optable optab0F01F8[1]=
 
 static Optable optab0FAE[8]=
 {
-[0x00] 0,0,            "FXSAVE %e",
-[0x01] 0,0,            "FXRSTOR        %e",
-[0x02] 0,0,            "LDMXCSR        %e",
-[0x03] 0,0,            "STMXCSR        %e",
-[0x05] 0,0,            "LFENCE",
-[0x06] 0,0,            "MFENCE",
-[0x07] 0,0,            "SFENCE",
+[0x00] =       { 0,0,          "FXSAVE %e" },
+[0x01] =       { 0,0,          "FXRSTOR        %e" },
+[0x02] =       { 0,0,          "LDMXCSR        %e" },
+[0x03] =       { 0,0,          "STMXCSR        %e" },
+[0x05] =       { 0,0,          "LFENCE" },
+[0x06] =       { 0,0,          "MFENCE" },
+[0x07] =       { 0,0,          "SFENCE" },
 };
 
 /* 0F18 */
@@ -480,455 +480,455 @@ static Optable optab0FAE[8]=
 
 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",
+[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" },
 };
 
 static Optable optab0F0F[256]=
 {
-[0x0c] 0,0,            "PI2FW  %m,%M",
-[0x0d] 0,0,            "PI2L   %m,%M",
-[0x1c] 0,0,            "PF2IW  %m,%M",
-[0x1d] 0,0,            "PF2IL  %m,%M",
-[0x8a] 0,0,            "PFNACC %m,%M",
-[0x8e] 0,0,            "PFPNACC        %m,%M",
-[0x90] 0,0,            "PFCMPGE        %m,%M",
-[0x94] 0,0,            "PFMIN  %m,%M",
-[0x96] 0,0,            "PFRCP  %m,%M",
-[0x97] 0,0,            "PFRSQRT        %m,%M",
-[0x9a] 0,0,            "PFSUB  %m,%M",
-[0x9e] 0,0,            "PFADD  %m,%M",
-[0xa0] 0,0,            "PFCMPGT        %m,%M",
-[0xa4] 0,0,            "PFMAX  %m,%M",
-[0xa6] 0,0,            "PFRCPIT1       %m,%M",
-[0xa7] 0,0,            "PFRSQIT1       %m,%M",
-[0xaa] 0,0,            "PFSUBR %m,%M",
-[0xae] 0,0,            "PFACC  %m,%M",
-[0xb0] 0,0,            "PFCMPEQ        %m,%M",
-[0xb4] 0,0,            "PFMUL  %m,%M",
-[0xb6] 0,0,            "PFRCPI2T       %m,%M",
-[0xb7] 0,0,            "PMULHRW        %m,%M",
-[0xbb] 0,0,            "PSWAPL %m,%M",
+[0x0c] =       { 0,0,          "PI2FW  %m,%M" },
+[0x0d] =       { 0,0,          "PI2L   %m,%M" },
+[0x1c] =       { 0,0,          "PF2IW  %m,%M" },
+[0x1d] =       { 0,0,          "PF2IL  %m,%M" },
+[0x8a] =       { 0,0,          "PFNACC %m,%M" },
+[0x8e] =       { 0,0,          "PFPNACC        %m,%M" },
+[0x90] =       { 0,0,          "PFCMPGE        %m,%M" },
+[0x94] =       { 0,0,          "PFMIN  %m,%M" },
+[0x96] =       { 0,0,          "PFRCP  %m,%M" },
+[0x97] =       { 0,0,          "PFRSQRT        %m,%M" },
+[0x9a] =       { 0,0,          "PFSUB  %m,%M" },
+[0x9e] =       { 0,0,          "PFADD  %m,%M" },
+[0xa0] =       { 0,0,          "PFCMPGT        %m,%M" },
+[0xa4] =       { 0,0,          "PFMAX  %m,%M" },
+[0xa6] =       { 0,0,          "PFRCPIT1       %m,%M" },
+[0xa7] =       { 0,0,          "PFRSQIT1       %m,%M" },
+[0xaa] =       { 0,0,          "PFSUBR %m,%M" },
+[0xae] =       { 0,0,          "PFACC  %m,%M" },
+[0xb0] =       { 0,0,          "PFCMPEQ        %m,%M" },
+[0xb4] =       { 0,0,          "PFMUL  %m,%M" },
+[0xb6] =       { 0,0,          "PFRCPI2T       %m,%M" },
+[0xb7] =       { 0,0,          "PMULHRW        %m,%M" },
+[0xbb] =       { 0,0,          "PSWAPL %m,%M" },
 };
 
 static Optable optab0FC7[8]=
 {
-[0x01] 0,0,            "CMPXCHG8B      %e",
+[0x01] =       { 0,0,          "CMPXCHG8B      %e" },
 };
 
 static Optable optab660F71[8]=
 {
-[0x02] Ib,0,           "PSRLW  %i,%X",
-[0x04] Ib,0,           "PSRAW  %i,%X",
-[0x06] Ib,0,           "PSLLW  %i,%X",
+[0x02] =       { Ib,0,         "PSRLW  %i,%X" },
+[0x04] =       { Ib,0,         "PSRAW  %i,%X" },
+[0x06] =       { Ib,0,         "PSLLW  %i,%X" },
 };
 
 static Optable optab660F72[8]=
 {
-[0x02] Ib,0,           "PSRLL  %i,%X",
-[0x04] Ib,0,           "PSRAL  %i,%X",
-[0x06] Ib,0,           "PSLLL  %i,%X",
+[0x02] =       { Ib,0,         "PSRLL  %i,%X" },
+[0x04] =       { Ib,0,         "PSRAL  %i,%X" },
+[0x06] =       { Ib,0,         "PSLLL  %i,%X" },
 };
 
 static Optable optab660F73[8]=
 {
-[0x02] Ib,0,           "PSRLQ  %i,%X",
-[0x03] Ib,0,           "PSRLO  %i,%X",
-[0x06] Ib,0,           "PSLLQ  %i,%X",
-[0x07] Ib,0,           "PSLLO  %i,%X",
+[0x02] =       { Ib,0,         "PSRLQ  %i,%X" },
+[0x03] =       { Ib,0,         "PSRLO  %i,%X" },
+[0x06] =       { Ib,0,         "PSLLQ  %i,%X" },
+[0x07] =       { Ib,0,         "PSLLO  %i,%X" },
 };
 
 static Optable optab660F[256]=
 {
-[0x2B] RM,0,           "MOVNTPD        %x,%e",
-[0x2E] RM,0,           "UCOMISD        %x,%X",
-[0x2F] RM,0,           "COMISD %x,%X",
-[0x5A] RM,0,           "CVTPD2PS       %x,%X",
-[0x5B] RM,0,           "CVTPS2PL       %x,%X",
-[0x6A] RM,0,           "PUNPCKHLQ %x,%X",
-[0x6B] RM,0,           "PACKSSLW %x,%X",
-[0x6C] RM,0,           "PUNPCKLQDQ %x,%X",
-[0x6D] RM,0,           "PUNPCKHQDQ %x,%X",
-[0x6E] RM,0,           "MOV%S  %e,%X",
-[0x6F] RM,0,           "MOVO   %x,%X",         /* MOVDQA */
-[0x70] RM,Ib,          "PSHUFL %i,%x,%X",
-[0x71] RMOP,0,         optab660F71,
-[0x72] RMOP,0,         optab660F72,
-[0x73] RMOP,0,         optab660F73,
-[0x7E] RM,0,           "MOV%S  %X,%e",
-[0x7F] RM,0,           "MOVO   %X,%x",
-[0xC4] RM,Ib,          "PINSRW %i,%e,%X",
-[0xC5] RMR,Ib,         "PEXTRW %i,%X,%e",
-[0xD4] RM,0,           "PADDQ  %x,%X",
-[0xD5] RM,0,           "PMULLW %x,%X",
-[0xD6] RM,0,           "MOVQ   %X,%x",
-[0xE6] RM,0,           "CVTTPD2PL      %x,%X",
-[0xE7] RM,0,           "MOVNTO %X,%e",
-[0xF7] RM,0,           "MASKMOVOU      %x,%X",
+[0x2B] =       { RM,0,         "MOVNTPD        %x,%e" },
+[0x2E] =       { RM,0,         "UCOMISD        %x,%X" },
+[0x2F] =       { RM,0,         "COMISD %x,%X" },
+[0x5A] =       { RM,0,         "CVTPD2PS       %x,%X" },
+[0x5B] =       { RM,0,         "CVTPS2PL       %x,%X" },
+[0x6A] =       { RM,0,         "PUNPCKHLQ %x,%X" },
+[0x6B] =       { RM,0,         "PACKSSLW %x,%X" },
+[0x6C] =       { RM,0,         "PUNPCKLQDQ %x,%X" },
+[0x6D] =       { RM,0,         "PUNPCKHQDQ %x,%X" },
+[0x6E] =       { RM,0,         "MOV%S  %e,%X" },
+[0x6F] =       { RM,0,         "MOVO   %x,%X" },               /* MOVDQA */
+[0x70] =       { RM,Ib,                "PSHUFL %i,%x,%X" },
+[0x71] =       { RMOP,0,               optab660F71 },
+[0x72] =       { RMOP,0,               optab660F72 },
+[0x73] =       { RMOP,0,               optab660F73 },
+[0x7E] =       { RM,0,         "MOV%S  %X,%e" },
+[0x7F] =       { RM,0,         "MOVO   %X,%x" },
+[0xC4] =       { RM,Ib,                "PINSRW %i,%e,%X" },
+[0xC5] =       { RMR,Ib,               "PEXTRW %i,%X,%e" },
+[0xD4] =       { RM,0,         "PADDQ  %x,%X" },
+[0xD5] =       { RM,0,         "PMULLW %x,%X" },
+[0xD6] =       { RM,0,         "MOVQ   %X,%x" },
+[0xE6] =       { RM,0,         "CVTTPD2PL      %x,%X" },
+[0xE7] =       { RM,0,         "MOVNTO %X,%e" },
+[0xF7] =       { RM,0,         "MASKMOVOU      %x,%X" },
 };
 
 static Optable optabF20F[256]=
 {
-[0x10] RM,0,           "MOVSD  %x,%X",
-[0x11] RM,0,           "MOVSD  %X,%x",
-[0x2A] RM,0,           "CVTS%S2SD      %e,%X",
-[0x2C] RM,0,           "CVTTSD2S%S     %x,%r",
-[0x2D] RM,0,           "CVTSD2S%S      %x,%r",
-[0x5A] RM,0,           "CVTSD2SS       %x,%X",
-[0x6F] RM,0,           "MOVOU  %x,%X",
-[0x70] RM,Ib,          "PSHUFLW        %i,%x,%X",
-[0x7F] RM,0,           "MOVOU  %X,%x",
-[0xD6] RM,0,           "MOVQOZX        %M,%X",
-[0xE6] RM,0,           "CVTPD2PL       %x,%X",
+[0x10] =       { RM,0,         "MOVSD  %x,%X" },
+[0x11] =       { RM,0,         "MOVSD  %X,%x" },
+[0x2A] =       { RM,0,         "CVTS%S2SD      %e,%X" },
+[0x2C] =       { RM,0,         "CVTTSD2S%S     %x,%r" },
+[0x2D] =       { RM,0,         "CVTSD2S%S      %x,%r" },
+[0x5A] =       { RM,0,         "CVTSD2SS       %x,%X" },
+[0x6F] =       { RM,0,         "MOVOU  %x,%X" },
+[0x70] =       { RM,Ib,                "PSHUFLW        %i,%x,%X" },
+[0x7F] =       { RM,0,         "MOVOU  %X,%x" },
+[0xD6] =       { RM,0,         "MOVQOZX        %M,%X" },
+[0xE6] =       { RM,0,         "CVTPD2PL       %x,%X" },
 };
 
 static Optable optabF30F[256]=
 {
-[0x10] RM,0,           "MOVSS  %x,%X",
-[0x11] RM,0,           "MOVSS  %X,%x",
-[0x2A] RM,0,           "CVTS%S2SS      %e,%X",
-[0x2C] RM,0,           "CVTTSS2S%S     %x,%r",
-[0x2D] RM,0,           "CVTSS2S%S      %x,%r",
-[0x5A] RM,0,           "CVTSS2SD       %x,%X",
-[0x5B] RM,0,           "CVTTPS2PL      %x,%X",
-[0x6F] RM,0,           "MOVOU  %x,%X",
-[0x70] RM,Ib,          "PSHUFHW        %i,%x,%X",
-[0x7E] RM,0,           "MOVQOZX        %x,%X",
-[0x7F] RM,0,           "MOVOU  %X,%x",
-[0xD6] RM,0,           "MOVQOZX        %m*,%X",
-[0xE6] RM,0,           "CVTPL2PD       %x,%X",
+[0x10] =       { RM,0,         "MOVSS  %x,%X" },
+[0x11] =       { RM,0,         "MOVSS  %X,%x" },
+[0x2A] =       { RM,0,         "CVTS%S2SS      %e,%X" },
+[0x2C] =       { RM,0,         "CVTTSS2S%S     %x,%r" },
+[0x2D] =       { RM,0,         "CVTSS2S%S      %x,%r" },
+[0x5A] =       { RM,0,         "CVTSS2SD       %x,%X" },
+[0x5B] =       { RM,0,         "CVTTPS2PL      %x,%X" },
+[0x6F] =       { RM,0,         "MOVOU  %x,%X" },
+[0x70] =       { RM,Ib,                "PSHUFHW        %i,%x,%X" },
+[0x7E] =       { RM,0,         "MOVQOZX        %x,%X" },
+[0x7F] =       { RM,0,         "MOVOU  %X,%x" },
+[0xD6] =       { RM,0,         "MOVQOZX        %m*,%X" },
+[0xE6] =       { RM,0,         "CVTPL2PD       %x,%X" },
 };
 
 static Optable optab0F[256]=
 {
-[0x00] RMOP,0,         optab0F00,
-[0x01] RMOP,0,         optab0F01,
-[0x02] RM,0,           "LAR    %e,%r",
-[0x03] RM,0,           "LSL    %e,%r",
-[0x05] 0,0,            "SYSCALL",
-[0x06] 0,0,            "CLTS",
-[0x07] 0,0,            "SYSRET",
-[0x08] 0,0,            "INVD",
-[0x09] 0,0,            "WBINVD",
-[0x0B] 0,0,            "UD2",
-[0x0F] RM,AUX,         optab0F0F,              /* 3DNow! */
-[0x10] RM,0,           "MOVU%s %x,%X",
-[0x11] RM,0,           "MOVU%s %X,%x",
-[0x12] RM,0,           "MOV[H]L%s      %x,%X", /* TO DO: H if source is XMM */
-[0x13] RM,0,           "MOVL%s %X,%e",
-[0x14] RM,0,           "UNPCKL%s       %x,%X",
-[0x15] RM,0,           "UNPCKH%s       %x,%X",
-[0x16] RM,0,           "MOV[L]H%s      %x,%X", /* TO DO: L if source is XMM */
-[0x17] RM,0,           "MOVH%s %X,%x",
-[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",
-[0x28] RM,0,           "MOVA%s %x,%X",
-[0x29] RM,0,           "MOVA%s %X,%x",
-[0x2A] RM,0,           "CVTPL2%s       %m*,%X",
-[0x2B] RM,0,           "MOVNT%s        %X,%e",
-[0x2C] RM,0,           "CVTT%s2PL      %x,%M",
-[0x2D] RM,0,           "CVT%s2PL       %x,%M",
-[0x2E] RM,0,           "UCOMISS        %x,%X",
-[0x2F] RM,0,           "COMISS %x,%X",
-[0x30] 0,0,            "WRMSR",
-[0x31] 0,0,            "RDTSC",
-[0x32] 0,0,            "RDMSR",
-[0x33] 0,0,            "RDPMC",
-[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 */
-[0x50] RM,0,           "MOVMSK%s       %X,%r", /* TO DO: check */
-[0x51] RM,0,           "SQRT%s %x,%X",
-[0x52] RM,0,           "RSQRT%s        %x,%X",
-[0x53] RM,0,           "RCP%s  %x,%X",
-[0x54] RM,0,           "AND%s  %x,%X",
-[0x55] RM,0,           "ANDN%s %x,%X",
-[0x56] RM,0,           "OR%s   %x,%X",         /* TO DO: S/D */
-[0x57] RM,0,           "XOR%s  %x,%X",         /* S/D */
-[0x58] RM,0,           "ADD%s  %x,%X",         /* S/P S/D */
-[0x59] RM,0,           "MUL%s  %x,%X",
-[0x5A] RM,0,           "CVTPS2PD       %x,%X",
-[0x5B] RM,0,           "CVTPL2PS       %x,%X",
-[0x5C] RM,0,           "SUB%s  %x,%X",
-[0x5D] RM,0,           "MIN%s  %x,%X",
-[0x5E] RM,0,           "DIV%s  %x,%X",         /* TO DO: S/P S/D */
-[0x5F] RM,0,           "MAX%s  %x,%X",
-[0x60] RM,0,           "PUNPCKLBW %m,%M",
-[0x61] RM,0,           "PUNPCKLWL %m,%M",
-[0x62] RM,0,           "PUNPCKLLQ %m,%M",
-[0x63] RM,0,           "PACKSSWB %m,%M",
-[0x64] RM,0,           "PCMPGTB %m,%M",
-[0x65] RM,0,           "PCMPGTW %m,%M",
-[0x66] RM,0,           "PCMPGTL %m,%M",
-[0x67] RM,0,           "PACKUSWB %m,%M",
-[0x68] RM,0,           "PUNPCKHBW %m,%M",
-[0x69] RM,0,           "PUNPCKHWL %m,%M",
-[0x6A] RM,0,           "PUNPCKHLQ %m,%M",
-[0x6B] RM,0,           "PACKSSLW %m,%M",
-[0x6E] RM,0,           "MOV%S %e,%M",
-[0x6F] RM,0,           "MOVQ %m,%M",
-[0x70] RM,Ib,          "PSHUFW %i,%m,%M",
-[0x74] RM,0,           "PCMPEQB %m,%M",
-[0x75] RM,0,           "PCMPEQW %m,%M",
-[0x76] RM,0,           "PCMPEQL %m,%M",
-[0x7E] RM,0,           "MOV%S %M,%e",
-[0x7F] RM,0,           "MOVQ %M,%m",
-[0xAE] RMOP,0,         optab0FAE,
-[0xAA] 0,0,            "RSM",
-[0xB0] RM,0,           "CMPXCHGB       %r,%e",
-[0xB1] RM,0,           "CMPXCHG%S      %r,%e",
-[0xC0] RMB,0,          "XADDB  %r,%e",
-[0xC1] RM,0,           "XADD%S %r,%e",
-[0xC2] RM,Ib,          "CMP%s  %x,%X,%#i",
-[0xC3] RM,0,           "MOVNTI%S       %r,%e",
-[0xC6] RM,Ib,          "SHUF%s %i,%x,%X",
-[0xC8] 0,0,            "BSWAP  AX",
-[0xC9] 0,0,            "BSWAP  CX",
-[0xCA] 0,0,            "BSWAP  DX",
-[0xCB] 0,0,            "BSWAP  BX",
-[0xCC] 0,0,            "BSWAP  SP",
-[0xCD] 0,0,            "BSWAP  BP",
-[0xCE] 0,0,            "BSWAP  SI",
-[0xCF] 0,0,            "BSWAP  DI",
-[0xD1] RM,0,           "PSRLW %m,%M",
-[0xD2] RM,0,           "PSRLL %m,%M",
-[0xD3] RM,0,           "PSRLQ %m,%M",
-[0xD5] RM,0,           "PMULLW %m,%M",
-[0xD6] RM,0,           "MOVQOZX        %m*,%X",
-[0xD7] RM,0,           "PMOVMSKB %m,%r",
-[0xD8] RM,0,           "PSUBUSB %m,%M",
-[0xD9] RM,0,           "PSUBUSW %m,%M",
-[0xDA] RM,0,           "PMINUB %m,%M",
-[0xDB] RM,0,           "PAND %m,%M",
-[0xDC] RM,0,           "PADDUSB %m,%M",
-[0xDD] RM,0,           "PADDUSW %m,%M",
-[0xDE] RM,0,           "PMAXUB %m,%M",
-[0xDF] RM,0,           "PANDN %m,%M",
-[0xE0] RM,0,           "PAVGB %m,%M",
-[0xE1] RM,0,           "PSRAW %m,%M",
-[0xE2] RM,0,           "PSRAL %m,%M",
-[0xE3] RM,0,           "PAVGW %m,%M",
-[0xE4] RM,0,           "PMULHUW %m,%M",
-[0xE5] RM,0,           "PMULHW %m,%M",
-[0xE7] RM,0,           "MOVNTQ %M,%e",
-[0xE8] RM,0,           "PSUBSB %m,%M",
-[0xE9] RM,0,           "PSUBSW %m,%M",
-[0xEA] RM,0,           "PMINSW %m,%M",
-[0xEB] RM,0,           "POR %m,%M",
-[0xEC] RM,0,           "PADDSB %m,%M",
-[0xED] RM,0,           "PADDSW %m,%M",
-[0xEE] RM,0,           "PMAXSW %m,%M",
-[0xEF] RM,0,           "PXOR %m,%M",
-[0xF1] RM,0,           "PSLLW %m,%M",
-[0xF2] RM,0,           "PSLLL %m,%M",
-[0xF3] RM,0,           "PSLLQ %m,%M",
-[0xF4] RM,0,           "PMULULQ        %m,%M",
-[0xF5] RM,0,           "PMADDWL %m,%M",
-[0xF6] RM,0,           "PSADBW %m,%M",
-[0xF7] RMR,0,          "MASKMOVQ       %m,%M",
-[0xF8] RM,0,           "PSUBB %m,%M",
-[0xF9] RM,0,           "PSUBW %m,%M",
-[0xFA] RM,0,           "PSUBL %m,%M",
-[0xFC] RM,0,           "PADDB %m,%M",
-[0xFD] RM,0,           "PADDW %m,%M",
-[0xFE] RM,0,           "PADDL %m,%M",
-
-[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",
-[0xc7] RMOP,0,         optab0FC7,
+[0x00] =       { RMOP,0,               optab0F00 },
+[0x01] =       { RMOP,0,               optab0F01 },
+[0x02] =       { RM,0,         "LAR    %e,%r" },
+[0x03] =       { RM,0,         "LSL    %e,%r" },
+[0x05] =       { 0,0,          "SYSCALL" },
+[0x06] =       { 0,0,          "CLTS" },
+[0x07] =       { 0,0,          "SYSRET" },
+[0x08] =       { 0,0,          "INVD" },
+[0x09] =       { 0,0,          "WBINVD" },
+[0x0B] =       { 0,0,          "UD2" },
+[0x0F] =       { RM,AUX,               optab0F0F },            /* 3DNow! */
+[0x10] =       { RM,0,         "MOVU%s %x,%X" },
+[0x11] =       { RM,0,         "MOVU%s %X,%x" },
+[0x12] =       { RM,0,         "MOV[H]L%s      %x,%X" },       /* TO DO: H if source is XMM */
+[0x13] =       { RM,0,         "MOVL%s %X,%e" },
+[0x14] =       { RM,0,         "UNPCKL%s       %x,%X" },
+[0x15] =       { RM,0,         "UNPCKH%s       %x,%X" },
+[0x16] =       { RM,0,         "MOV[L]H%s      %x,%X" },       /* TO DO: L if source is XMM */
+[0x17] =       { RM,0,         "MOVH%s %X,%x" },
+[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" },
+[0x28] =       { RM,0,         "MOVA%s %x,%X" },
+[0x29] =       { RM,0,         "MOVA%s %X,%x" },
+[0x2A] =       { RM,0,         "CVTPL2%s       %m*,%X" },
+[0x2B] =       { RM,0,         "MOVNT%s        %X,%e" },
+[0x2C] =       { RM,0,         "CVTT%s2PL      %x,%M" },
+[0x2D] =       { RM,0,         "CVT%s2PL       %x,%M" },
+[0x2E] =       { RM,0,         "UCOMISS        %x,%X" },
+[0x2F] =       { RM,0,         "COMISS %x,%X" },
+[0x30] =       { 0,0,          "WRMSR" },
+[0x31] =       { 0,0,          "RDTSC" },
+[0x32] =       { 0,0,          "RDMSR" },
+[0x33] =       { 0,0,          "RDPMC" },
+[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 */
+[0x50] =       { RM,0,         "MOVMSK%s       %X,%r" },       /* TO DO: check */
+[0x51] =       { RM,0,         "SQRT%s %x,%X" },
+[0x52] =       { RM,0,         "RSQRT%s        %x,%X" },
+[0x53] =       { RM,0,         "RCP%s  %x,%X" },
+[0x54] =       { RM,0,         "AND%s  %x,%X" },
+[0x55] =       { RM,0,         "ANDN%s %x,%X" },
+[0x56] =       { RM,0,         "OR%s   %x,%X" },               /* TO DO: S/D */
+[0x57] =       { RM,0,         "XOR%s  %x,%X" },               /* S/D */
+[0x58] =       { RM,0,         "ADD%s  %x,%X" },               /* S/P S/D */
+[0x59] =       { RM,0,         "MUL%s  %x,%X" },
+[0x5A] =       { RM,0,         "CVTPS2PD       %x,%X" },
+[0x5B] =       { RM,0,         "CVTPL2PS       %x,%X" },
+[0x5C] =       { RM,0,         "SUB%s  %x,%X" },
+[0x5D] =       { RM,0,         "MIN%s  %x,%X" },
+[0x5E] =       { RM,0,         "DIV%s  %x,%X" },               /* TO DO: S/P S/D */
+[0x5F] =       { RM,0,         "MAX%s  %x,%X" },
+[0x60] =       { RM,0,         "PUNPCKLBW %m,%M" },
+[0x61] =       { RM,0,         "PUNPCKLWL %m,%M" },
+[0x62] =       { RM,0,         "PUNPCKLLQ %m,%M" },
+[0x63] =       { RM,0,         "PACKSSWB %m,%M" },
+[0x64] =       { RM,0,         "PCMPGTB %m,%M" },
+[0x65] =       { RM,0,         "PCMPGTW %m,%M" },
+[0x66] =       { RM,0,         "PCMPGTL %m,%M" },
+[0x67] =       { RM,0,         "PACKUSWB %m,%M" },
+[0x68] =       { RM,0,         "PUNPCKHBW %m,%M" },
+[0x69] =       { RM,0,         "PUNPCKHWL %m,%M" },
+[0x6A] =       { RM,0,         "PUNPCKHLQ %m,%M" },
+[0x6B] =       { RM,0,         "PACKSSLW %m,%M" },
+[0x6E] =       { RM,0,         "MOV%S %e,%M" },
+[0x6F] =       { RM,0,         "MOVQ %m,%M" },
+[0x70] =       { RM,Ib,                "PSHUFW %i,%m,%M" },
+[0x74] =       { RM,0,         "PCMPEQB %m,%M" },
+[0x75] =       { RM,0,         "PCMPEQW %m,%M" },
+[0x76] =       { RM,0,         "PCMPEQL %m,%M" },
+[0x7E] =       { RM,0,         "MOV%S %M,%e" },
+[0x7F] =       { RM,0,         "MOVQ %M,%m" },
+[0xAE] =       { RMOP,0,               optab0FAE },
+[0xAA] =       { 0,0,          "RSM" },
+[0xB0] =       { RM,0,         "CMPXCHGB       %r,%e" },
+[0xB1] =       { RM,0,         "CMPXCHG%S      %r,%e" },
+[0xC0] =       { RMB,0,                "XADDB  %r,%e" },
+[0xC1] =       { RM,0,         "XADD%S %r,%e" },
+[0xC2] =       { RM,Ib,                "CMP%s  %x,%X,%#i" },
+[0xC3] =       { RM,0,         "MOVNTI%S       %r,%e" },
+[0xC6] =       { RM,Ib,                "SHUF%s %i,%x,%X" },
+[0xC8] =       { 0,0,          "BSWAP  AX" },
+[0xC9] =       { 0,0,          "BSWAP  CX" },
+[0xCA] =       { 0,0,          "BSWAP  DX" },
+[0xCB] =       { 0,0,          "BSWAP  BX" },
+[0xCC] =       { 0,0,          "BSWAP  SP" },
+[0xCD] =       { 0,0,          "BSWAP  BP" },
+[0xCE] =       { 0,0,          "BSWAP  SI" },
+[0xCF] =       { 0,0,          "BSWAP  DI" },
+[0xD1] =       { RM,0,         "PSRLW %m,%M" },
+[0xD2] =       { RM,0,         "PSRLL %m,%M" },
+[0xD3] =       { RM,0,         "PSRLQ %m,%M" },
+[0xD5] =       { RM,0,         "PMULLW %m,%M" },
+[0xD6] =       { RM,0,         "MOVQOZX        %m*,%X" },
+[0xD7] =       { RM,0,         "PMOVMSKB %m,%r" },
+[0xD8] =       { RM,0,         "PSUBUSB %m,%M" },
+[0xD9] =       { RM,0,         "PSUBUSW %m,%M" },
+[0xDA] =       { RM,0,         "PMINUB %m,%M" },
+[0xDB] =       { RM,0,         "PAND %m,%M" },
+[0xDC] =       { RM,0,         "PADDUSB %m,%M" },
+[0xDD] =       { RM,0,         "PADDUSW %m,%M" },
+[0xDE] =       { RM,0,         "PMAXUB %m,%M" },
+[0xDF] =       { RM,0,         "PANDN %m,%M" },
+[0xE0] =       { RM,0,         "PAVGB %m,%M" },
+[0xE1] =       { RM,0,         "PSRAW %m,%M" },
+[0xE2] =       { RM,0,         "PSRAL %m,%M" },
+[0xE3] =       { RM,0,         "PAVGW %m,%M" },
+[0xE4] =       { RM,0,         "PMULHUW %m,%M" },
+[0xE5] =       { RM,0,         "PMULHW %m,%M" },
+[0xE7] =       { RM,0,         "MOVNTQ %M,%e" },
+[0xE8] =       { RM,0,         "PSUBSB %m,%M" },
+[0xE9] =       { RM,0,         "PSUBSW %m,%M" },
+[0xEA] =       { RM,0,         "PMINSW %m,%M" },
+[0xEB] =       { RM,0,         "POR %m,%M" },
+[0xEC] =       { RM,0,         "PADDSB %m,%M" },
+[0xED] =       { RM,0,         "PADDSW %m,%M" },
+[0xEE] =       { RM,0,         "PMAXSW %m,%M" },
+[0xEF] =       { RM,0,         "PXOR %m,%M" },
+[0xF1] =       { RM,0,         "PSLLW %m,%M" },
+[0xF2] =       { RM,0,         "PSLLL %m,%M" },
+[0xF3] =       { RM,0,         "PSLLQ %m,%M" },
+[0xF4] =       { RM,0,         "PMULULQ        %m,%M" },
+[0xF5] =       { RM,0,         "PMADDWL %m,%M" },
+[0xF6] =       { RM,0,         "PSADBW %m,%M" },
+[0xF7] =       { RMR,0,                "MASKMOVQ       %m,%M" },
+[0xF8] =       { RM,0,         "PSUBB %m,%M" },
+[0xF9] =       { RM,0,         "PSUBW %m,%M" },
+[0xFA] =       { RM,0,         "PSUBL %m,%M" },
+[0xFC] =       { RM,0,         "PADDB %m,%M" },
+[0xFD] =       { RM,0,         "PADDW %m,%M" },
+[0xFE] =       { RM,0,         "PADDL %m,%M" },
+
+[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" },
+[0xc7] =       { RMOP,0,               optab0FC7 },
 };
 
 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",
+[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" },
 };
 
 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",
+[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" },
 };
 
 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",
+[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" },
 };
 
 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",
+[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" },
 };
 
 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",
+[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" },
 };
 
 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",
+[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" },
 };
 
 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",
+[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" },
 };
 
 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",
+[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" },
 };
 
 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",
+[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" },
 };
 
 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",
+[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" },
 };
 /*
  *     optabD9 and optabDB use the following encoding:
@@ -940,455 +940,455 @@ 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",
+[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" },
 };
 
 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",
-[0x08] 0,0,            "FCMOVCS        %f,F0",
-[0x09] 0,0,            "FCMOVEQ        %f,F0",
-[0x0a] 0,0,            "FCMOVLS        %f,F0",
-[0x0b] 0,0,            "FCMOVUN        %f,F0",
-[0x0d] Op_R1,0,                "FUCOMPP",
+[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" },
+[0x08] =       { 0,0,          "FCMOVCS        %f,F0" },
+[0x09] =       { 0,0,          "FCMOVEQ        %f,F0" },
+[0x0a] =       { 0,0,          "FCMOVLS        %f,F0" },
+[0x0b] =       { 0,0,          "FCMOVUN        %f,F0" },
+[0x0d] =       { Op_R1,0,              "FUCOMPP" },
 };
 
 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",
-[0x08] 0,0,            "FCMOVCC        %f,F0",
-[0x09] 0,0,            "FCMOVNE        %f,F0",
-[0x0a] 0,0,            "FCMOVHI        %f,F0",
-[0x0b] 0,0,            "FCMOVNU        %f,F0",
-[0x0d] 0,0,            "FUCOMI F0,%f",
-[0x0e] 0,0,            "FCOMI  F0,%f",
-[0x2a] 0,0,            "FCLEX",
-[0x2b] 0,0,            "FINIT",
+[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" },
+[0x08] =       { 0,0,          "FCMOVCC        %f,F0" },
+[0x09] =       { 0,0,          "FCMOVNE        %f,F0" },
+[0x0a] =       { 0,0,          "FCMOVHI        %f,F0" },
+[0x0b] =       { 0,0,          "FCMOVNU        %f,F0" },
+[0x0d] =       { 0,0,          "FUCOMI F0,%f" },
+[0x0e] =       { 0,0,          "FCOMI  F0,%f" },
+[0x2a] =       { 0,0,          "FCLEX" },
+[0x2b] =       { 0,0,          "FINIT" },
 };
 
 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",
+[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" },
 };
 
 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",
+[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" },
 };
 
 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] Op_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",
+[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] =       { Op_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" },
 };
 
 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] Op_R0,0,                "FSTSW  %OAX",
-[0x0d] 0,0,            "FUCOMIP        F0,%f",
-[0x0e] 0,0,            "FCOMIP F0,%f",
+[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] =       { Op_R0,0,              "FSTSW  %OAX" },
+[0x0d] =       { 0,0,          "FUCOMIP        F0,%f" },
+[0x0e] =       { 0,0,          "FCOMIP F0,%f" },
 };
 
 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",
+[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" },
 };
 
 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",
+[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" },
 };
 
 static Optable optabFE[8] =
 {
-[0x00] 0,0,            "INCB   %e",
-[0x01] 0,0,            "DECB   %e",
+[0x00] =       { 0,0,          "INCB   %e" },
+[0x01] =       { 0,0,          "DECB   %e" },
 };
 
 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",
+[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" },
 };
 
 static Optable optable[256+2] =
 {
-[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] AUXMM,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%S  %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,            "%W",                   /* miserable CBW or CWDE */
-[0x99] 0,0,            "%w",                   /* 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] Iwdq,0,         "MOV%S  %i,%OAX",
-[0xb9] Iwdq,0,         "MOV%S  %i,%OCX",
-[0xba] Iwdq,0,         "MOV%S  %i,%ODX",
-[0xbb] Iwdq,0,         "MOV%S  %i,%OBX",
-[0xbc] Iwdq,0,         "MOV%S  %i,%OSP",
-[0xbd] Iwdq,0,         "MOV%S  %i,%OBP",
-[0xbe] Iwdq,0,         "MOV%S  %i,%OSI",
-[0xbf] Iwdq,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] OPRE,0,         "REPNE",
-[0xf3] OPRE,0,         "REP",
-[0xf4] 0,0,            "HLT",
-[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,
-[0x100]        RM,0,           "MOVLQSX        %e,%r",
-[0x101]        RM,0,           "MOVLQZX        %e,%r",
+[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] =       { AUXMM,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%S  %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,          "%W" },                 /* miserable CBW or CWDE */
+[0x99] =       { 0,0,          "%w" },                 /* 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] =       { Iwdq,0,               "MOV%S  %i,%OAX" },
+[0xb9] =       { Iwdq,0,               "MOV%S  %i,%OCX" },
+[0xba] =       { Iwdq,0,               "MOV%S  %i,%ODX" },
+[0xbb] =       { Iwdq,0,               "MOV%S  %i,%OBX" },
+[0xbc] =       { Iwdq,0,               "MOV%S  %i,%OSP" },
+[0xbd] =       { Iwdq,0,               "MOV%S  %i,%OBP" },
+[0xbe] =       { Iwdq,0,               "MOV%S  %i,%OSI" },
+[0xbf] =       { Iwdq,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] =       { OPRE,0,               "REPNE" },
+[0xf3] =       { OPRE,0,               "REP" },
+[0xf4] =       { 0,0,          "HLT" },
+[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 },
+[0x100] =      { RM,0,         "MOVLQSX        %e,%r" },
+[0x101] =      { RM,0,         "MOVLQZX        %e,%r" },
 };
 
 /*
@@ -1894,24 +1894,24 @@ bprint(Instr *ip, char *fmt, ...)
 #define        ONAME(ip)       ""
 
 static char *reg[] =  {
-[AX]   "AX",
-[CX]   "CX",
-[DX]   "DX",
-[BX]   "BX",
-[SP]   "SP",
-[BP]   "BP",
-[SI]   "SI",
-[DI]   "DI",
+[AX] = "AX",
+[CX] = "CX",
+[DX] = "DX",
+[BX] = "BX",
+[SP] = "SP",
+[BP] = "BP",
+[SI] = "SI",
+[DI] = "DI",
 
        /* amd64 */
-[AMD64_R8]     "R8",
-[AMD64_R9]     "R9",
-[AMD64_R10]    "R10",
-[AMD64_R11]    "R11",
-[AMD64_R12]    "R12",
-[AMD64_R13]    "R13",
-[AMD64_R14]    "R14",
-[AMD64_R15]    "R15",
+[AMD64_R8] =   "R8",
+[AMD64_R9] =   "R9",
+[AMD64_R10] =  "R10",
+[AMD64_R11] =  "R11",
+[AMD64_R12] =  "R12",
+[AMD64_R13] =  "R13",
+[AMD64_R14] =  "R14",
+[AMD64_R15] =  "R15",
 };
 
 static char *breg[] = { "AL", "CL", "DL", "BL", "AH", "CH", "DH", "BH" };
index 7d660787b5bb74ed5c7f4fe34d29e56fa50cedf0..7999f24c6eb0581362c38864541f286c2a303653 100644 (file)
@@ -81,17 +81,17 @@ struct      Obj             /* functions to handle each intermediate (.$O) file */
 
 static Obj     obj[] =
 {                      /* functions to identify and parse each type of obj */
-       [Obj68020]      "68020 .2",     _is2, _read2,
-       [ObjAmd64]      "amd64 .6",     _is6, _read6,
-       [ObjArm]        "arm .5",       _is5, _read5,
-       [ObjAlpha]      "alpha .7",     _is7, _read7,
-       [Obj386]        "386 .8",       _is8, _read8,
-       [ObjSparc]      "sparc .k",     _isk, _readk,
-       [ObjPower]      "power .q",     _isq, _readq,
-       [ObjMips]       "mips .v",      _isv, _readv,
-       [ObjSparc64]    "sparc64 .u",   _isu, _readu,
-       [ObjPower64]    "power64 .9",   _is9, _read9,
-       [Maxobjtype]    0, 0
+       [Obj68020]   = { "68020 .2",    _is2, _read2 },
+       [ObjAmd64]   = { "amd64 .6",    _is6 , _read6 },
+       [ObjArm]     = { "arm .5",      _is5, _read5 },
+       [ObjAlpha]   = { "alpha .7",    _is7, _read7 },
+       [Obj386]     = { "386 .8",      _is8, _read8 },
+       [ObjSparc]   = { "sparc .k",    _isk, _readk },
+       [ObjPower]   = { "power .q",    _isq, _readq },
+       [ObjMips]    = { "mips .v",     _isv, _readv },
+       [ObjSparc64] = { "sparc64 .u",  _isu, _readu },
+       [ObjPower64] = { "power64 .9",  _is9, _read9 },
+       [Maxobjtype] = { 0, 0, 0 }
 };
 
 struct Symtab