]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Delete commented-out bits of the old UCode insn decoder.
authorJulian Seward <jseward@acm.org>
Wed, 8 Dec 2004 17:01:23 +0000 (17:01 +0000)
committerJulian Seward <jseward@acm.org>
Wed, 8 Dec 2004 17:01:23 +0000 (17:01 +0000)
git-svn-id: svn://svn.valgrind.org/vex/trunk@635

VEX/priv/guest-x86/toIR.c

index 987765843e05713280cb2e7e83be5afbfeee875c..ef6224f83bd83fa638f8eccef0c91fa879fa04ee 100644 (file)
@@ -1355,27 +1355,6 @@ static void helper_SBB ( Int sz,
 //--    *ecx_ret = ecx;
 //--    *edx_ret = edx;
 //-- }
-//-- 
-//-- 
-//-- /*------------------------------------------------------------*/
-//-- /*--- Here so it can be inlined everywhere.                ---*/
-//-- /*------------------------------------------------------------*/
-//-- 
-//-- /* Allocate a new temp reg number. */
-//-- __inline__ Int VG_(get_new_temp) ( UCodeBlock* cb )
-//-- {
-//--    Int t = cb->nextTemp;
-//--    cb->nextTemp += 2;
-//--    return t;
-//-- }
-//-- 
-//-- Int VG_(get_new_shadow) ( UCodeBlock* cb )
-//-- {
-//--    Int t = cb->nextTemp;
-//--    cb->nextTemp += 2;
-//--    return SHADOW(t);
-//-- }
-
 
 
 static HChar* nameGrp1 ( Int opc_aux )
@@ -1490,47 +1469,6 @@ static Char nameISize ( Int size )
    }
 }
 
-//-- __inline__ static UInt LOW24 ( UInt x )
-//-- {
-//--    return x & 0x00FFFFFF;
-//-- }
-//-- 
-//-- __inline__ static UInt HI8 ( UInt x )
-//-- {
-//--    return x >> 24;
-//-- }
-//-- 
-//-- /*------------------------------------------------------------*/
-//-- /*--- Flag-related helpers.                                ---*/
-//-- /*------------------------------------------------------------*/
-//-- 
-//-- static void setFlagsFromUOpcode ( UCodeBlock* cb, Int uopc )
-//-- {
-//--    switch (uopc) {
-//--       case XOR: case OR: case AND:
-//--          uFlagsRWU(cb, FlagsEmpty, FlagsOSZCP,  FlagA); break;
-//--       case ADC: case SBB: 
-//--          uFlagsRWU(cb, FlagC,      FlagsOSZACP, FlagsEmpty); break;
-//--       case MUL: case UMUL:
-//--          uFlagsRWU(cb, FlagsEmpty, FlagsOC,     FlagsSZAP); break;
-//--       case ADD: case SUB: case NEG: 
-//--          uFlagsRWU(cb, FlagsEmpty, FlagsOSZACP, FlagsEmpty); break;
-//--       case INC: case DEC:
-//--          uFlagsRWU(cb, FlagsEmpty, FlagsOSZAP,  FlagsEmpty); break;
-//--       case SHR: case SAR: case SHL:
-//--          uFlagsRWU(cb, FlagsEmpty, FlagsOSZCP,  FlagA); break;
-//--       case ROL: case ROR:
-//--          uFlagsRWU(cb, FlagsEmpty, FlagsOC,     FlagsEmpty); break;
-//--       case RCR: case RCL: 
-//--          uFlagsRWU(cb, FlagC,      FlagsOC,     FlagsEmpty); break;
-//--       case NOT:
-//--          uFlagsRWU(cb, FlagsEmpty, FlagsEmpty,  FlagsEmpty); break;
-//--       default: 
-//--          VG_(printf)("unhandled case is %s\n", 
-//--                      VG_(name_UOpcode)(True, uopc));
-//--          VG_(core_panic)("setFlagsFromUOpcode: unhandled case");
-//--    }
-//-- }
 
 /*------------------------------------------------------------*/
 /*--- JMP helpers                                          ---*/
@@ -2368,53 +2306,6 @@ void codegen_div ( Int sz, IRTemp t, Bool signed_divide )
       default: vpanic("codegen_div(x86)");
    }
 }
-//--    Int  helper;
-//--    Int  ta = newTemp(cb);
-//--    Int  td = newTemp(cb);
-//-- 
-//--    switch (sz) {
-//--       case 4: helper = (signed_divide ? VGOFF_(helper_idiv_64_32) 
-//--                                       : VGOFF_(helper_div_64_32));
-//--               break;
-//--       case 2: helper = (signed_divide ? VGOFF_(helper_idiv_32_16) 
-//--                                       : VGOFF_(helper_div_32_16));
-//--               break;
-//--       case 1: helper = (signed_divide ? VGOFF_(helper_idiv_16_8)
-//--                                       : VGOFF_(helper_div_16_8));
-//--               break;
-//--       default: VG_(core_panic)("codegen_div");
-//--    }
-//--    uInstr0(cb, CALLM_S, 0);
-//--    if (sz == 4 || sz == 2) {
-//--       uInstr1(cb, PUSH,  sz, TempReg, t);
-//--       uInstr2(cb, GET,   sz, ArchReg, R_EAX,  TempReg, ta);
-//--       uInstr1(cb, PUSH,  sz, TempReg, ta);
-//--       uInstr2(cb, GET,   sz, ArchReg, R_EDX,  TempReg, td);
-//--       uInstr1(cb, PUSH,  sz, TempReg, td);
-//--       uInstr1(cb, CALLM,  0, Lit16,   helper);
-//--       uFlagsRWU(cb, FlagsEmpty, FlagsEmpty, FlagsOSZACP);
-//--       uInstr1(cb, POP,   sz, TempReg, t);
-//--       uInstr2(cb, PUT,   sz, TempReg, t,      ArchReg, R_EDX);
-//--       uInstr1(cb, POP,   sz, TempReg, t);
-//--       uInstr2(cb, PUT,   sz, TempReg, t,      ArchReg, R_EAX);
-//--       uInstr1(cb, CLEAR,  0, Lit16,   4);
-//--    } else {
-//--       uInstr1(cb, PUSH,  1, TempReg, t);
-//--       uInstr2(cb, GET,   2, ArchReg, R_EAX,  TempReg, ta);
-//--       uInstr1(cb, PUSH,  2, TempReg, ta);
-//--       uInstr2(cb, MOV,   1, Literal, 0,      TempReg, td);
-//--       uLiteral(cb, 0);
-//--       uInstr1(cb, PUSH,  1, TempReg, td);
-//--       uInstr1(cb, CALLM, 0, Lit16,   helper);
-//--       uFlagsRWU(cb, FlagsEmpty, FlagsEmpty, FlagsOSZACP);
-//--       uInstr1(cb, POP,   1, TempReg, t);
-//--       uInstr2(cb, PUT,   1, TempReg, t,      ArchReg, R_AL);
-//--       uInstr1(cb, POP,   1, TempReg, t);
-//--       uInstr2(cb, PUT,   1, TempReg, t,      ArchReg, R_AH);
-//--       uInstr1(cb, CLEAR, 0, Lit16,   4);
-//--    }
-//--    uInstr0(cb, CALLM_E, 0);
-//-- }
 
 
 static 
@@ -6317,552 +6208,6 @@ UInt dis_mov_Sw_Ew ( UChar sorb,
 }
 
 
-
-//-- /* Simple MMX operations, either 
-//--        op   (src)mmxreg, (dst)mmxreg
-//--    or
-//--        op   (src)address, (dst)mmxreg
-//--    opc is the byte following the 0x0F prefix.
-//-- */
-//-- static 
-//-- Addr dis_MMXop_regmem_to_reg ( UCodeBlock* cb, 
-//--                                UChar sorb,
-//--                                Addr eip,
-//--                                UChar opc,
-//--                                Char* name,
-//--                                Bool show_granularity )
-//-- {
-//--    HChar dis_buf[50];
-//--    UChar modrm = getUChar(eip);
-//--    Bool  isReg = epartIsReg(modrm);
-//-- 
-//--    if (isReg) {
-//--       eip++;
-//--       uInstr1(cb, MMX2, 0, 
-//--                   Lit16, 
-//--                   (((UShort)(opc)) << 8) | ((UShort)modrm) );
-//--    } else {
-//--       UInt pair = disAMode ( cb, sorb, eip, dis_buf );
-//--       Int  tmpa = LOW24(pair);
-//--       eip += HI8(pair);
-//--       uInstr2(cb, MMX2_MemRd, 8, 
-//--                   Lit16, 
-//--                   (((UShort)(opc)) << 8) | ((UShort)modrm),
-//--                   TempReg, tmpa);
-//--    }
-//-- 
-//--    DIP("%s%s %s, %s\n", 
-//--        name, show_granularity ? nameMMXGran(opc & 3) : (Char*)"",
-//--        ( isReg ? nameMMXReg(eregOfRM(modrm)) : dis_buf ),
-//--        nameMMXReg(gregOfRM(modrm)) );
-//-- 
-//--    return eip;
-//-- }
-//-- 
-//-- 
-//-- /* Simple MMX operations, either 
-//--        op   (src)mmxreg, (dst)mmxreg
-//--    or
-//--        op   (src)address, (dst)mmxreg
-//--    opc is the byte following the 0x0F prefix.
-//-- */
-//-- static 
-//-- Addr dis_MMXop_regmem_to_reg_Imm8 ( UCodeBlock* cb, 
-//--                                     UChar sorb,
-//--                                     Addr eip,
-//--                                     UChar opc,
-//--                                     Char* name,
-//--                                     Bool show_granularity )
-//-- {
-//--    HChar dis_buf[50];
-//--    UChar modrm = getUChar(eip);
-//--    UChar imm8;
-//--    Bool  isReg = epartIsReg(modrm);
-//-- 
-//--    if (isReg) {
-//--       eip++;
-//--       imm8 = getUChar(eip);
-//--       eip++;
-//--       uInstr2(cb, MMX3, 0, 
-//--                   Lit16, 
-//--                   (((UShort)(opc)) << 8) | ((UShort)modrm),
-//--                   Lit16,
-//--                   ((UShort)imm8));
-//--    } else {
-//--       UInt pair = disAMode ( cb, sorb, eip, dis_buf );
-//--       Int  tmpa = LOW24(pair);
-//--       eip += HI8(pair);
-//--       imm8 = getUChar(eip);
-//--       eip++;
-//--       uInstr3(cb, MMX2a1_MemRd, 8, 
-//--                   Lit16, 
-//--                   (((UShort)(opc)) << 8) | ((UShort)modrm),
-//--                   Lit16,
-//--                   ((UShort)imm8),
-//--                   TempReg, tmpa);
-//--    }
-//-- 
-//--    DIP("%s%s %s, %s, $%d\n", 
-//--        name, show_granularity ? nameMMXGran(opc & 3) : (Char*)"",
-//--        ( isReg ? nameMMXReg(eregOfRM(modrm)) : dis_buf ),
-//--        nameMMXReg(gregOfRM(modrm)), (Int)imm8 );
-//-- 
-//--    return eip;
-//-- }
-//-- 
-//-- 
-//-- 
-//-- /* Simple SSE operations, either 
-//--        op   (src)xmmreg, (dst)xmmreg
-//--    or
-//--        op   (src)address, (dst)xmmreg
-//--    3 opcode bytes.
-//--    Supplied eip points to the first address mode byte.
-//-- */
-//-- static
-//-- Addr dis_SSE3_reg_or_mem ( UCodeBlock* cb, 
-//--                            UChar sorb, 
-//--                            Addr eip,
-//--                            Int sz,
-//--                            Char* name, 
-//--                            UChar opc1, 
-//--                            UChar opc2, 
-//--                            UChar opc3 )
-//-- {
-//--    HChar dis_buf[50];
-//--    UChar modrm = getUChar(eip);
-//--    Bool  isReg = epartIsReg(modrm);
-//-- 
-//--    if (isReg) {
-//--       /* Completely internal SSE insn. */
-//--       uInstr2(cb, SSE4, 0,  /* ignore sz for internal ops */
-//--                   Lit16, (((UShort)opc1) << 8) | (UShort)opc2,
-//--                   Lit16, (((UShort)opc3) << 8) | (UShort)modrm );
-//--       eip++;
-//--    } else {
-//--       UInt pair = disAMode ( cb, sorb, eip, dis_buf );
-//--       Int  tmpa = LOW24(pair);
-//--       eip += HI8(pair);
-//--       uInstr3(cb, SSE3a_MemRd, sz,
-//--                   Lit16, (((UShort)(opc1)) << 8) | ((UShort)opc2),
-//--                   Lit16, (((UShort)(opc3)) << 8) | ((UShort)modrm),
-//--                   TempReg, tmpa);
-//--    }
-//-- 
-//--    DIP("%s %s, %s\n", 
-//--        name, 
-//--        ( isReg ? nameXMMReg(eregOfRM(modrm)) : dis_buf ),
-//--        nameXMMReg(gregOfRM(modrm)) );
-//-- 
-//--    return eip;
-//-- }
-//-- 
-//-- 
-//-- /* Simple SSE operations, either 
-//--        op   (src)xmmreg, (dst)xmmreg
-//--    or
-//--        op   (src)address, (dst)xmmreg
-//--    2 opcode bytes.
-//--    Supplied eip points to the first address mode byte.
-//-- */
-//-- static
-//-- Addr dis_SSE2_reg_or_mem ( UCodeBlock* cb, 
-//--                            UChar sorb, 
-//--                            Addr eip,
-//--                            Int sz, 
-//--                            Char* name,
-//--                            UChar opc1, 
-//--                            UChar opc2 )
-//-- {
-//--    HChar dis_buf[50];
-//--    UChar modrm = getUChar(eip);
-//--    Bool  isReg = epartIsReg(modrm);
-//-- 
-//--    if (isReg) {
-//--       /* Completely internal SSE insn. */
-//--       uInstr2(cb, SSE3, 0,  /* ignore sz for internal ops */
-//--                   Lit16, (((UShort)opc1) << 8) | (UShort)opc2,
-//--                   Lit16, (UShort)modrm );
-//--       eip++;
-//--    } else {
-//--       UInt pair = disAMode ( cb, sorb, eip, dis_buf );
-//--       Int  tmpa = LOW24(pair);
-//--       eip += HI8(pair);
-//--       uInstr3(cb, SSE2a_MemRd, sz,
-//--                   Lit16, (((UShort)(opc1)) << 8) | ((UShort)opc2),
-//--                   Lit16, (UShort)modrm,
-//--                   TempReg, tmpa);
-//--    }
-//--    DIP("%s %s, %s\n", 
-//--        name, 
-//--        ( isReg ? nameXMMReg(eregOfRM(modrm)) : dis_buf ), 
-//--        nameXMMReg(gregOfRM(modrm)) );
-//-- 
-//--    return eip;
-//-- }
-//-- 
-//-- 
-//-- /* Simple SSE operations, either 
-//--        op   (src)xmmreg, (dst)xmmreg
-//--    or
-//--        op   (src)address, (dst)xmmreg
-//--    2 opcode bytes and an 8-bit immediate after the amode.
-//--    Supplied eip points to the first address mode byte.
-//-- */
-//-- static
-//-- Addr dis_SSE2_reg_or_mem_Imm8 ( UCodeBlock* cb, 
-//--                                 UChar sorb, 
-//--                                 Addr eip,
-//--                                 Int sz, 
-//--                                 Char* name,
-//--                                 UChar opc1, 
-//--                                 UChar opc2 )
-//-- {
-//--    HChar dis_buf[50];
-//--    UChar modrm = getUChar(eip);
-//--    UChar imm8;
-//--    Bool  isReg = epartIsReg(modrm);
-//-- 
-//--    if (isReg) {
-//--       /* Completely internal SSE insn. */
-//--       eip++;
-//--       imm8 = getUChar(eip);
-//--       uInstr2(cb, SSE4, 0,  /* ignore sz for internal ops */
-//--                   Lit16, (((UShort)opc1) << 8) | (UShort)opc2,
-//--                   Lit16, (((UShort)modrm) << 8) | (UShort)imm8 );
-//--       eip++;
-//--    } else {
-//--       UInt pair = disAMode ( cb, sorb, eip, dis_buf );
-//--       Int  tmpa = LOW24(pair);
-//--       eip += HI8(pair);
-//--       imm8 = getUChar(eip);
-//--       eip++;
-//--       uInstr3(cb, SSE2a1_MemRd, sz,
-//--                   Lit16, (((UShort)(opc1)) << 8) | ((UShort)opc2),
-//--                   Lit16, (((UShort)(modrm)) << 8) | ((UShort)imm8),
-//--                   TempReg, tmpa);
-//--    }
-//--    DIP("%s %s, %s, $%d\n", 
-//--        name, ( isReg ? nameXMMReg(eregOfRM(modrm)) : dis_buf ), 
-//--        nameXMMReg(gregOfRM(modrm)), (Int)imm8 );
-//--    return eip;
-//-- }
-//-- 
-//-- 
-//-- /* Simple SSE operations, either 
-//--        op   (src)xmmreg, (dst)xmmreg
-//--    or
-//--        op   (src)address, (dst)xmmreg
-//--    3 opcode bytes and an 8-bit immediate after the amode.
-//--    Supplied eip points to the first address mode byte.
-//-- */
-//-- static
-//-- Addr dis_SSE3_reg_or_mem_Imm8 ( UCodeBlock* cb, 
-//--                                 UChar sorb, 
-//--                                 Addr eip,
-//--                                 Int sz, 
-//--                                 Char* name,
-//--                                 UChar opc1, 
-//--                                 UChar opc2,
-//--                                 UChar opc3 )
-//-- {
-//--    HChar dis_buf[50];
-//--    UChar modrm = getUChar(eip);
-//--    UChar imm8;
-//--    Bool  isReg = epartIsReg(modrm);
-//-- 
-//--    if (isReg) {
-//--       /* Completely internal SSE insn. */
-//--       eip++;
-//--       imm8 = getUChar(eip);
-//--       uInstr3(cb, SSE5, 0,  /* ignore sz for internal ops */
-//--                   Lit16, (((UShort)opc1) << 8) | (UShort)opc2,
-//--                   Lit16, (((UShort)opc3) << 8) | (UShort)modrm,
-//--                   Lit16, (UShort)imm8 );
-//--       eip++;
-//--    } else {
-//--       UInt pair = disAMode ( cb, sorb, eip, dis_buf );
-//--       Int  tmpa = LOW24(pair);
-//--       eip += HI8(pair);
-//--       imm8 = getUChar(eip);
-//--       eip++;
-//--       uInstr3(cb, SSE3a1_MemRd, sz,
-//--                   Lit16, (((UShort)(opc1)) << 8) | ((UShort)opc2),
-//--                   Lit16, (((UShort)(opc3)) << 8) | ((UShort)modrm),
-//--                   TempReg, tmpa);
-//--       uLiteral(cb, imm8);
-//--    }
-//--    DIP("%s %s, %s, $%d\n", 
-//--        name, ( isReg ? nameXMMReg(eregOfRM(modrm)) : dis_buf ), 
-//--        nameXMMReg(gregOfRM(modrm)), (Int)imm8 );
-//--    return eip;
-//-- }
-//-- 
-//-- 
-//-- /* Disassemble an SSE insn which is either a simple reg-reg move or a
-//--    move between registers and memory.  Supplied eip points to the
-//--    first address mode byte.
-//-- */
-//-- static
-//-- Addr dis_SSE3_load_store_or_mov ( UCodeBlock* cb, 
-//--                                   UChar sorb,
-//--                                   Addr eip, 
-//--                                   Int sz,
-//--                                   Bool is_store, 
-//--                                   Char* name,
-//--                                   UChar insn0, 
-//--                                   UChar insn1, 
-//--                                   UChar insn2 )
-//-- {
-//--    HChar dis_buf[50];
-//--    UChar modrm = getUChar(eip);
-//--    Bool  isReg = epartIsReg(modrm);
-//--    UInt  pair;
-//--    Int   t1;
-//-- 
-//--    if (isReg) {
-//--       /* Completely internal; we can issue SSE4. */
-//--       eip++;
-//--       uInstr2(cb, SSE4, 0, /* ignore sz for internal ops */
-//--                   Lit16, (((UShort)insn0) << 8) | (UShort)insn1,
-//--                   Lit16, (((UShort)insn2) << 8) | (UShort)modrm );
-//--    } else {
-//--       pair = disAMode ( cb, sorb, eip, dis_buf );
-//--       t1   = LOW24(pair);
-//--       eip += HI8(pair);
-//--       uInstr3(cb, is_store ? SSE3a_MemWr : SSE3a_MemRd, sz,
-//--                   Lit16, (((UShort)insn0) << 8) | (UShort)insn1,
-//--                   Lit16, (((UShort)insn2) << 8) | (UShort)modrm,
-//--                   TempReg, t1 );
-//--    }
-//-- 
-//--    if (is_store) {
-//--       DIP("%s %s, %s\n", 
-//--           name,
-//--           nameXMMReg(gregOfRM(modrm)),
-//--           ( isReg ? nameXMMReg(eregOfRM(modrm)) : dis_buf ) );
-//--    } else {
-//--       DIP("%s %s, %s\n", 
-//--           name,
-//--           ( isReg ? nameXMMReg(eregOfRM(modrm)) : dis_buf ),
-//--           nameXMMReg(gregOfRM(modrm)) );
-//--    }
-//--    return eip;
-//-- }
-//-- 
-//-- 
-//-- /* Disassemble an SSE insn which is either a simple reg-reg move or a
-//--    move between registers and memory.  Supplied eip points to the
-//--    first address mode byte. */
-//-- static
-//-- Addr dis_SSE2_load_store_or_mov ( UCodeBlock* cb, 
-//--                                   UChar sorb,
-//--                                   Addr eip, 
-//--                                   Int sz,
-//--                                   Bool is_store, 
-//--                                   Char* name,
-//--                                   UChar insn0, 
-//--                                   UChar insn1 )
-//-- {
-//--    HChar dis_buf[50];
-//--    UChar modrm = getUChar(eip);
-//--    Bool  isReg = epartIsReg(modrm);
-//--    UInt  pair;
-//--    Int   t1;
-//-- 
-//--    if (isReg) {
-//--       /* Completely internal; we can issue SSE3. */
-//--       eip++;
-//--       uInstr2(cb, SSE3, 0, /* ignore sz for internal ops */
-//--                   Lit16, (((UShort)insn0) << 8) | (UShort)insn1,
-//--                   Lit16, (UShort)modrm );
-//--    } else {
-//--       pair = disAMode ( cb, sorb, eip, dis_buf );
-//--       t1   = LOW24(pair);
-//--       eip += HI8(pair);
-//--       uInstr3(cb, is_store ? SSE2a_MemWr : SSE2a_MemRd, sz,
-//--                   Lit16, (((UShort)insn0) << 8) | (UShort)insn1,
-//--                   Lit16, (UShort)modrm,
-//--                   TempReg, t1 );
-//--    }
-//-- 
-//--    if (is_store) {
-//--       DIP("%s %s, %s\n",
-//--           name,
-//--           nameXMMReg(gregOfRM(modrm)),
-//--           ( isReg ? nameXMMReg(eregOfRM(modrm)) : dis_buf ) );
-//--    } else {
-//--       DIP("%s %s, %s\n",
-//--           name,
-//--           ( isReg ? nameXMMReg(eregOfRM(modrm)) : dis_buf ),
-//--           nameXMMReg(gregOfRM(modrm)) );
-//--    }
-//--    return eip;
-//-- }
-//-- 
-//-- 
-//-- /* Simple SSE operations, either 
-//--        op   (src)xmmreg, (dst)mmxreg
-//--    or
-//--        op   (src)address, (dst)mmxreg
-//--    2 opcode bytes.
-//--    Supplied eip points to the first address mode byte.
-//-- */
-//-- static
-//-- Addr dis_SSE2_to_MMX ( UCodeBlock *cb,
-//--                        UChar sorb,
-//--                        Addr eip,
-//--                        Int sz, 
-//--                        Char* name, 
-//--                        UChar opc1, 
-//--                        UChar opc2 )
-//-- {
-//--    HChar dis_buf[50];
-//--    UChar modrm = getUChar(eip);
-//--    if (epartIsReg(modrm)) {
-//--       /* Completely internal SSE insn. */
-//--       uInstr2(cb, SSE3, 0,  /* ignore sz for internal ops */
-//--                   Lit16, (((UShort)opc1) << 8) | (UShort)opc2,
-//--                   Lit16, (UShort)modrm );
-//--       DIP("%s %s, %s\n",
-//--           name, nameXMMReg(eregOfRM(modrm)), nameMMXReg(gregOfRM(modrm)) );
-//--       eip++;
-//--    } else {
-//--       UInt pair = disAMode ( cb, sorb, eip, dis_buf );
-//--       Int  tmpa = LOW24(pair);
-//--       eip += HI8(pair);
-//--       uInstr3(cb, SSE2a_MemRd, sz,
-//--                   Lit16, (((UShort)(opc1)) << 8) | ((UShort)opc2),
-//--                   Lit16, ((UShort)modrm),
-//--                   TempReg, tmpa);
-//--       DIP("%s %s, %s\n", name, dis_buf, nameMMXReg(gregOfRM(modrm)));
-//--    }
-//--    return eip;
-//-- }
-//-- 
-//-- 
-//-- /* Simple SSE operations, either 
-//--        op   (src)mmxreg, (dst)xmmreg
-//--    or
-//--        op   (src)address, (dst)xmmreg
-//--    2 opcode bytes.
-//--    Supplied eip points to the first address mode byte.
-//-- */
-//-- static
-//-- Addr dis_SSE2_from_MMX ( UCodeBlock *cb,
-//--                          UChar sorb,
-//--                          Addr eip,
-//--                          Int sz, 
-//--                          Char* name, 
-//--                          UChar opc1, 
-//--                          UChar opc2 )
-//-- {
-//--    HChar dis_buf[50];
-//--    UChar modrm = getUChar(eip);
-//--    if (epartIsReg(modrm)) {
-//--       /* Completely internal SSE insn. */
-//--       uInstr2(cb, SSE3, 0,  /* ignore sz for internal ops */
-//--                   Lit16, (((UShort)opc1) << 8) | (UShort)opc2,
-//--                   Lit16, (UShort)modrm );
-//--       DIP("%s %s, %s\n",
-//--           name, nameMMXReg(eregOfRM(modrm)), nameXMMReg(gregOfRM(modrm)) );
-//--       eip++;
-//--    } else {
-//--       UInt pair = disAMode ( cb, sorb, eip, dis_buf );
-//--       Int  tmpa = LOW24(pair);
-//--       eip += HI8(pair);
-//--       uInstr3(cb, SSE2a_MemRd, sz,
-//--                   Lit16, (((UShort)(opc1)) << 8) | ((UShort)opc2),
-//--                   Lit16, ((UShort)modrm),
-//--                   TempReg, tmpa);
-//--       DIP("%s %s, %s\n", name, dis_buf, nameXMMReg(gregOfRM(modrm)));
-//--    }
-//--    return eip;
-//-- }
-//-- 
-//-- 
-//-- /* Simple SSE operations, either 
-//--        op   (src)xmmreg, (dst)mmxreg
-//--    or
-//--        op   (src)address, (dst)mmxreg
-//--    3 opcode bytes.
-//--    Supplied eip points to the first address mode byte.
-//-- */
-//-- static
-//-- Addr dis_SSE3_to_MMX ( UCodeBlock *cb,
-//--                        UChar sorb,
-//--                        Addr eip,
-//--                        Int sz,
-//--                        Char* name, 
-//--                        UChar opc1, 
-//--                        UChar opc2, 
-//--                        UChar opc3 )
-//-- {
-//--    HChar dis_buf[50];
-//--    UChar modrm = getUChar(eip);
-//--    if (epartIsReg(modrm)) {
-//--       /* Completely internal SSE insn. */
-//--       uInstr2(cb, SSE4, 0,  /* ignore sz for internal ops */
-//--                   Lit16, (((UShort)opc1) << 8) | (UShort)opc2,
-//--                   Lit16, (((UShort)opc3) << 8) | (UShort)modrm );
-//--       DIP("%s %s, %s\n",
-//--           name, nameXMMReg(eregOfRM(modrm)), nameMMXReg(gregOfRM(modrm)) );
-//--       eip++;
-//--    } else {
-//--       UInt pair = disAMode ( cb, sorb, eip, dis_buf );
-//--       Int  tmpa = LOW24(pair);
-//--       eip += HI8(pair);
-//--       uInstr3(cb, SSE3a_MemRd, sz,
-//--                   Lit16, (((UShort)(opc1)) << 8) | ((UShort)opc2),
-//--                   Lit16, (((UShort)(opc3)) << 8) | ((UShort)modrm),
-//--                   TempReg, tmpa);
-//--       DIP("%s %s, %s\n", name, dis_buf, nameMMXReg(gregOfRM(modrm)));
-//--    }
-//--    return eip;
-//-- }
-//-- 
-//-- 
-//-- /* Simple SSE operations, either 
-//--        op   (src)mmxreg, (dst)xmmreg
-//--    or
-//--        op   (src)address, (dst)xmmreg
-//--    3 opcode bytes.
-//--    Supplied eip points to the first address mode byte.
-//-- */
-//-- static
-//-- Addr dis_SSE3_from_MMX ( UCodeBlock *cb,
-//--                          UChar sorb,
-//--                          Addr eip,
-//--                          Int sz,
-//--                          Char* name, 
-//--                          UChar opc1, 
-//--                          UChar opc2, 
-//--                          UChar opc3 )
-//-- {
-//--    HChar dis_buf[50];
-//--    UChar modrm = getUChar(eip);
-//--    if (epartIsReg(modrm)) {
-//--       /* Completely internal SSE insn. */
-//--       uInstr2(cb, SSE4, 0,  /* ignore sz for internal ops */
-//--                   Lit16, (((UShort)opc1) << 8) | (UShort)opc2,
-//--                   Lit16, (((UShort)opc3) << 8) | (UShort)modrm );
-//--       DIP("%s %s, %s\n",
-//--           name, nameMMXReg(eregOfRM(modrm)), nameXMMReg(gregOfRM(modrm)) );
-//--       eip++;
-//--    } else {
-//--       UInt pair = disAMode ( cb, sorb, eip, dis_buf );
-//--       Int  tmpa = LOW24(pair);
-//--       eip += HI8(pair);
-//--       uInstr3(cb, SSE3a_MemRd, sz,
-//--                   Lit16, (((UShort)(opc1)) << 8) | ((UShort)opc2),
-//--                   Lit16, (((UShort)(opc3)) << 8) | ((UShort)modrm),
-//--                   TempReg, tmpa);
-//--       DIP("%s %s, %s\n", name, dis_buf, nameXMMReg(gregOfRM(modrm)));
-//--    }
-//--    return eip;
-//-- }
-//-- 
-//-- 
 //-- static 
 //-- void dis_push_segreg ( UCodeBlock* cb, UInt sreg, Int sz )
 //-- {
@@ -12570,146 +11915,7 @@ static DisResult disInstr ( /*IN*/  Bool    resteerOK,
          delta = dis_xadd_G_E ( sorb, sz, delta );
          break;
 
-//--       /* =-=-=-=-=-=-=-=-=- MMXery =-=-=-=-=-=-=-=-=-=-= */
-//-- 
-//--       case 0x0D: /* PREFETCH / PREFETCHW - 3Dnow!ery*/
-//--       case 0x18: /* PREFETCHT0/PREFETCHT1/PREFETCHT2/PREFETCHNTA */
-//--       
-//--          vg_assert(sz == 4);
-//--          modrm = getUChar(eip);
-//--          if (epartIsReg(modrm)) {
-//--             goto decode_failure;
-//--          }
-//--          if (gregOfRM(modrm) > 3) {
-//--             goto decode_failure;
-//--          }
-//--          eip += lengthAMode(eip);
-//--          if (VG_(print_codegen)) {
-//--             UChar* hintstr;
-//--             if (opc == 0x0D) {
-//--                switch (gregOfRM(modrm)) {
-//--                   case 0: hintstr = ""; break;
-//--                   case 1: hintstr = "w"; break;
-//--                   default: goto decode_failure;
-//--                }
-//--             }
-//--             else {
-//--                switch (gregOfRM(modrm)) {
-//--                   case 0: hintstr = "nta"; break;
-//--                   case 1: hintstr = "t0"; break;
-//--                   case 2: hintstr = "t1"; break;
-//--                   case 3: hintstr = "t2"; break;
-//--                  default: goto decode_failure;
-//--                }
-//--             }
-//--             VG_(printf)("prefetch%s ...\n", hintstr);
-//--          }
-//--          break;
-//-- 
-//--       case 0x71: case 0x72: case 0x73: {
-//--          /* (sz==4): PSLL/PSRA/PSRL mmxreg by imm8 */
-//--          /* (sz==2): PSLL/PSRA/PSRL xmmreg by imm8 */
-//--          UChar byte1, byte2, byte3, subopc, mmreg;
-//--          vg_assert(sz == 4 || sz == 2);
-//--          byte1 = opc;                   /* 0x71/72/73 */
-//--          byte2 = getUChar(eip); eip++;  /* amode / sub-opcode */
-//--          byte3 = getUChar(eip); eip++;  /* imm8 */
-//--          mmreg = byte2 & 7;
-//--          subopc = (byte2 >> 3) & 7;
-//--          if (subopc == 2 || subopc == 6 || subopc == 4) {  
-//--             /* 2 == 010 == SRL, 6 == 110 == SLL, 4 == 100 == SRA */
-//--             /* ok */
-//--          } else
-//--          if (sz == 2 && opc == 0x73 && (subopc == 7 || subopc == 3)) {
-//--             /* 3 == PSRLDQ, 7 == PSLLDQ */
-//--             /* This is allowable in SSE.  Because sz==2 we fall thru to
-//--                SSE5 below. */
-//--          } else {
-//--             eip -= (sz==2 ? 3 : 2);
-//--             goto decode_failure;
-//--          }
-//--          if (sz == 4) {
-//--             /* The leading 0x0F is implied for MMX*, so we don't
-//--                include it. */
-//--             uInstr2(cb, MMX3, 0, 
-//--                         Lit16, (((UShort)byte1) << 8) | ((UShort)byte2),
-//--                         Lit16, ((UShort)byte3) );
-//--             DIP("ps%s%s $%d, %s\n",
-//--                 ( subopc == 2 ? "rl" 
-//--                 : subopc == 6 ? "ll" 
-//--                 : subopc == 4 ? "ra"
-//--                 : "??"),
-//--                 nameMMXGran(opc & 3), (Int)byte3, nameMMXReg(mmreg) );
-//--          } else {
-//--             /* Whereas we have to include it for SSE. */
-//--             uInstr3(cb, SSE5, 0, 
-//--                         Lit16, (((UShort)0x66) << 8) | ((UShort)0x0F),
-//--                         Lit16, (((UShort)byte1) << 8) | ((UShort)byte2),
-//--                         Lit16, ((UShort)byte3) );
-//--             DIP("ps%s%s $%d, %s\n",
-//--                 ( subopc == 2 ? "rl" 
-//--                 : subopc == 6 ? "ll" 
-//--                 : subopc == 4 ? "ra"
-//--                 : subopc == 3 ? "(PSRLDQ)"
-//--                 : subopc == 7 ? "(PSLLDQ)"
-//--                 : "??"),
-//--                 nameMMXGran(opc & 3), (Int)byte3, nameXMMReg(mmreg) );
-//--          }
-//--          break;
-//--       }
-//-- 
-//--       case 0x7E: /* MOVD (src)mmxreg, (dst)ireg-or-mem */
-//--          vg_assert(sz == 4);
-//--          modrm = getUChar(eip);
-//--          if (epartIsReg(modrm)) {
-//--             eip++;
-//--             t1 = newTemp(cb);
-//--             uInstr2(cb, MMX2_ERegWr, 4, 
-//--                         Lit16, 
-//--                         (((UShort)(opc)) << 8) | ((UShort)modrm),
-//--                         TempReg, t1 );
-//--             uInstr2(cb, PUT, 4, TempReg, t1, ArchReg, eregOfRM(modrm));
-//--             DIP("movd %s, %s\n", 
-//--                 nameMMXReg(gregOfRM(modrm)), nameIReg(4,eregOfRM(modrm)));
-//--          } else {
-//--             Int tmpa;
-//--             pair = disAMode ( cb, sorb, eip, dis_buf );
-//--             tmpa = LOW24(pair);
-//--             eip += HI8(pair);
-//--             uInstr2(cb, MMX2_MemWr, 4, 
-//--                         Lit16, 
-//--                         (((UShort)(opc)) << 8) | ((UShort)modrm),
-//--                         TempReg, tmpa);
-//--             DIP("movd %s, %s\n", nameMMXReg(gregOfRM(modrm)), dis_buf);
-//--          }
-//--          break;
-//-- 
-//--       case 0x6E: /* MOVD (src)ireg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          modrm = getUChar(eip);
-//--          if (epartIsReg(modrm)) {
-//--             eip++;
-//--             t1 = newTemp(cb);
-//--             uInstr2(cb, GET, 4, ArchReg, eregOfRM(modrm), TempReg, t1);
-//--             uInstr2(cb, MMX2_ERegRd, 4, 
-//--                         Lit16, 
-//--                         (((UShort)(opc)) << 8) | ((UShort)modrm),
-//--                         TempReg, t1 );
-//--             DIP("movd %s, %s\n", 
-//--                 nameIReg(4,eregOfRM(modrm)), nameMMXReg(gregOfRM(modrm)));
-//--          } else {
-//--             Int tmpa;
-//--             pair = disAMode ( cb, sorb, eip, dis_buf );
-//--             tmpa = LOW24(pair);
-//--             eip += HI8(pair);
-//--             uInstr2(cb, MMX2_MemRd, 4, 
-//--                         Lit16, 
-//--                         (((UShort)(opc)) << 8) | ((UShort)modrm),
-//--                         TempReg, tmpa);
-//--             DIP("movd %s, %s\n", dis_buf, nameMMXReg(gregOfRM(modrm)));
-//--          }
-//--          break;
-//-- 
+      /* =-=-=-=-=-=-=-=-=- MMXery =-=-=-=-=-=-=-=-=-=-= */
 
       case 0x71: 
       case 0x72: 
@@ -12800,284 +12006,6 @@ static DisResult disInstr ( /*IN*/  Bool    resteerOK,
          DIP("emms\n");
          break;
 
-//--       case 0x7F: /* MOVQ (src)mmxreg, (dst)mmxreg-or-mem */
-//--       case 0xE7: /* MOVNTQ (src)mmxreg, (dst)mmxreg-or-mem */
-//--          vg_assert(sz == 4);
-//--          modrm = getUChar(eip);
-//--          if (epartIsReg(modrm)) {
-//--             eip++;
-//--             uInstr1(cb, MMX2, 0, 
-//--                         Lit16, 
-//--                         (((UShort)(opc)) << 8) | ((UShort)modrm) );
-//--             DIP("movq %s, %s\n", 
-//--                 nameMMXReg(gregOfRM(modrm)), nameMMXReg(eregOfRM(modrm)));
-//--          } else {
-//--             Int tmpa;
-//--             pair = disAMode ( cb, sorb, eip, dis_buf );
-//--             tmpa = LOW24(pair);
-//--             eip += HI8(pair);
-//--             uInstr2(cb, MMX2_MemWr, 8, 
-//--                         Lit16, 
-//--                         (((UShort)(opc)) << 8) | ((UShort)modrm),
-//--                         TempReg, tmpa);
-//--             DIP("mov(nt)q %s, %s\n", 
-//--                 nameMMXReg(gregOfRM(modrm)), dis_buf);
-//--          }
-//--          break;
-//-- 
-//--       case 0xFC: case 0xFD: case 0xFE: 
-//--          /* PADDgg (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "padd", True );
-//--          break;
-//-- 
-//--       case 0xD4: 
-//--          /* PADDQ (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "paddq", False );
-//--          break;
-//-- 
-//--       case 0xEC: case 0xED:
-//--          /* PADDSgg (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "padds", True );
-//--          break;
-//-- 
-//--       case 0xDC: case 0xDD:
-//--          /* PADDUSgg (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "paddus", True );
-//--          break;
-//-- 
-//--       case 0xF8: case 0xF9: case 0xFA: case 0xFB:
-//--          /* PSUBgg (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "psub", True );
-//--          break;
-//-- 
-//--       case 0xE8: case 0xE9:
-//--          /* PSUBSgg (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "psubs", True );
-//--          break;
-//-- 
-//--       case 0xD8: case 0xD9:
-//--          /* PSUBUSgg (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "psubus", True );
-//--          break;
-//-- 
-//--       case 0xE4: /* PMULHUW (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "pmulhuw", False );
-//--          break;
-//-- 
-//--       case 0xE5: /* PMULHW (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "pmulhw", False );
-//--          break;
-//-- 
-//--       case 0xD5: /* PMULLW (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "pmullw", False );
-//--          break;
-//-- 
-//--       case 0xF4: /* PMULUDQ (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "pmuludq", False );
-//--          break;
-//-- 
-//--       case 0xF5: /* PMADDWD (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "pmaddwd", False );
-//--          break;
-//-- 
-//--       case 0x74: case 0x75: case 0x76: 
-//--          /* PCMPEQgg (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "pcmpeq", True );
-//--          break;
-//-- 
-//--       case 0x64: case 0x65: case 0x66: 
-//--          /* PCMPGTgg (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "pcmpgt", True );
-//--          break;
-//-- 
-//--       case 0x6B: /* PACKSSDW (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "packssdw", False );
-//--          break;
-//-- 
-//--       case 0x63: /* PACKSSWB (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "packsswb", False );
-//--          break;
-//-- 
-//--       case 0x67: /* PACKUSWB (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "packuswb", False );
-//--          break;
-//-- 
-//--       case 0x68: case 0x69: case 0x6A: 
-//--          /* PUNPCKHgg (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "punpckh", True );
-//--          break;
-//-- 
-//--       case 0x60: case 0x61: case 0x62:
-//--          /* PUNPCKLgg (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "punpckl", True );
-//--          break;
-//-- 
-//--       case 0xDB: /* PAND (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "pand", False );
-//--          break;
-//-- 
-//--       case 0xDF: /* PANDN (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "pandn", False );
-//--          break;
-//-- 
-//--       case 0xEB: /* POR (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "por", False );
-//--          break;
-//-- 
-//--       case 0xEF: /* PXOR (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "pxor", False );
-//--          break;
-//-- 
-//--       case 0xF1: case 0xF2: case 0xF3:
-//--          /* PSLLgg (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "psll", True );
-//--          break;
-//-- 
-//--       case 0xD1: case 0xD2: case 0xD3:
-//--          /* PSRLgg (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "psrl", True );
-//--          break;
-//-- 
-//--       case 0xE1: case 0xE2:
-//--          /* PSRAgg (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "psra", True );
-//--          break;
-//-- 
-//--       case 0xDA:
-//--          /* PMINUB (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "pminub", False );
-//--          break;
-//-- 
-//--       case 0xDE:
-//--          /* PMAXUB (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "pmaxub", False );
-//--          break;
-//-- 
-//--       case 0xEA:
-//--          /* PMINSW (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "pminsw", False );
-//--          break;
-//-- 
-//--       case 0xEE:
-//--          /* PMAXSW (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "pmaxsw", False );
-//--          break;
-//-- 
-//--       case 0xE0:
-//--          /* PAVGB (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "pavgb", False );
-//--          break;
-//-- 
-//--       case 0xE3:
-//--          /* PAVGW (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "pavgw", False );
-//--          break;
-//-- 
-//--       case 0xF6:
-//--          /* PSADBW (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg ( cb, sorb, eip, opc, "psadbw", False );
-//--          break;
-//-- 
-//--       case 0x70:
-//--          /* PSHUFW imm8, (src)mmxreg-or-mem, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          eip = dis_MMXop_regmem_to_reg_Imm8 ( cb, sorb, eip, opc, "pshufw", False );
-//--          break;
-//-- 
-//--       case 0xD7:
-//--          /* PMOVMSKB (src)mmxreg, (dst)ireg */
-//--          vg_assert(sz == 4);
-//--          modrm = getUChar(eip);
-//--          vg_assert(epartIsReg(modrm));
-//--          t1 = newTemp(cb);
-//--          uInstr3(cb, SSE2g_RegWr, 4,
-//--                      Lit16, (((UShort)(0x0F)) << 8) | (UShort)(opc),
-//--                      Lit16, (UShort)modrm,
-//--                      TempReg, t1 );
-//--          uInstr2(cb, PUT, 4, TempReg, t1, ArchReg, gregOfRM(modrm));
-//--          DIP("pmovmskb %s, %s\n", 
-//--              nameMMXReg(eregOfRM(modrm)), nameIReg(4,gregOfRM(modrm)));
-//--          eip++;         
-//--          break;
-//-- 
-//--       case 0xC5:
-//--          /* PEXTRW (src)mmxreg, (dst)ireg */
-//--          vg_assert(sz == 4);
-//--          t1 = newTemp(cb);
-//--          modrm = getUChar(eip); eip++;
-//--          abyte = getUChar(eip); eip++;
-//--          vg_assert(epartIsReg(modrm));
-//--          uInstr3(cb, SSE2g1_RegWr, 4,
-//--                      Lit16, (((UShort)(0x0F)) << 8) | (UShort)(opc),
-//--                      Lit16, (UShort)modrm,
-//--                      TempReg, t1 );
-//--          uLiteral(cb, abyte);
-//--          uInstr2(cb, PUT, 4, TempReg, t1, ArchReg, gregOfRM(modrm));
-//--          DIP("pextrw %s, %d, %s\n",
-//--              nameMMXReg(eregOfRM(modrm)), (Int)abyte, 
-//--              nameIReg(4, gregOfRM(modrm)));
-//--          break;
-//-- 
-//--       case 0xC4:
-//--          /* PINSRW (src)ireg, (dst)mmxreg */
-//--          vg_assert(sz == 4);
-//--          t1 = newTemp(cb);
-//--          modrm = getUChar(eip); eip++;
-//--          abyte = getUChar(eip); eip++;
-//--          vg_assert(epartIsReg(modrm));
-//--          uInstr2(cb, GET, 2, ArchReg, eregOfRM(modrm), TempReg, t1);
-//--          uInstr3(cb, SSE2e1_RegRd, 2,
-//--                      Lit16, (((UShort)(0x0F)) << 8) | (UShort)(opc),
-//--                      Lit16, (UShort)modrm,
-//--                      TempReg, t1 );
-//--          uLiteral(cb, abyte);
-//--          DIP("pinsrw %s, %d, %s\n", nameIReg(2, eregOfRM(modrm)),
-//--                         (Int)abyte, nameMMXReg(gregOfRM(modrm)));
-//--          break;
-//-- 
-//--       case 0xA1: /* POP %FS */
-//--          dis_pop_segreg( cb, R_FS, sz ); break;
-//--       case 0xA9: /* POP %GS */
-//--          dis_pop_segreg( cb, R_GS, sz ); break;
-//-- 
-//--       case 0xA0: /* PUSH %FS */
-//--          dis_push_segreg( cb, R_FS, sz ); break;
-//--       case 0xA8: /* PUSH %GS */
-//--          dis_push_segreg( cb, R_GS, sz ); break;
-
       /* =-=-=-=-=-=-=-=-=- unimp2 =-=-=-=-=-=-=-=-=-=-= */
 
       default: