| Index: src/ia32/disasm-ia32.cc | 
| diff --git a/src/ia32/disasm-ia32.cc b/src/ia32/disasm-ia32.cc | 
| index aab39eef0858416d021b0cd2e47f00c4e88d8591..d776365b5959b2d34835bd660506afa8dda48003 100644 | 
| --- a/src/ia32/disasm-ia32.cc | 
| +++ b/src/ia32/disasm-ia32.cc | 
| @@ -1385,20 +1385,7 @@ | 
| case 0x0F: | 
| { byte f0byte = data[1]; | 
| const char* f0mnem = F0Mnem(f0byte); | 
| -          if (f0byte == 0x10) { | 
| -            data += 2; | 
| -            int mod, regop, rm; | 
| -            get_modrm(*data, &mod, ®op, &rm); | 
| -            AppendToBuffer("movups %s,", NameOfXMMRegister(regop)); | 
| -            data += PrintRightXMMOperand(data); | 
| -          } else if (f0byte == 0x11) { | 
| -            data += 2; | 
| -            int mod, regop, rm; | 
| -            get_modrm(*data, &mod, ®op, &rm); | 
| -            AppendToBuffer("movups "); | 
| -            data += PrintRightXMMOperand(data); | 
| -            AppendToBuffer(",%s", NameOfXMMRegister(regop)); | 
| -          } else if (f0byte == 0x18) { | 
| +          if (f0byte == 0x18) { | 
| data += 2; | 
| int mod, regop, rm; | 
| get_modrm(*data, &mod, ®op, &rm); | 
| @@ -1441,16 +1428,28 @@ | 
| get_modrm(*data, &mod, ®op, &rm); | 
| AppendToBuffer("ucomiss %s,", NameOfXMMRegister(regop)); | 
| data += PrintRightXMMOperand(data); | 
| -          } else if (f0byte >= 0x51 && f0byte <= 0x5F) { | 
| +          } else if (f0byte >= 0x53 && f0byte <= 0x5F) { | 
| const char* const pseudo_op[] = { | 
| -                "sqrtps",   "rsqrtps", "rcpps", "andps", "andnps", | 
| -                "orps",     "xorps",   "addps", "mulps", "cvtps2pd", | 
| -                "cvtdq2ps", "subps",   "minps", "divps", "maxps"}; | 
| +              "rcpps", | 
| +              "andps", | 
| +              "andnps", | 
| +              "orps", | 
| +              "xorps", | 
| +              "addps", | 
| +              "mulps", | 
| +              "cvtps2pd", | 
| +              "cvtdq2ps", | 
| +              "subps", | 
| +              "minps", | 
| +              "divps", | 
| +              "maxps", | 
| +            }; | 
|  | 
| data += 2; | 
| int mod, regop, rm; | 
| get_modrm(*data, &mod, ®op, &rm); | 
| -            AppendToBuffer("%s %s,", pseudo_op[f0byte - 0x51], | 
| +            AppendToBuffer("%s %s,", | 
| +                           pseudo_op[f0byte - 0x53], | 
| NameOfXMMRegister(regop)); | 
| data += PrintRightXMMOperand(data); | 
| } else if (f0byte == 0x50) { | 
| @@ -1461,17 +1460,6 @@ | 
| NameOfCPURegister(regop), | 
| NameOfXMMRegister(rm)); | 
| data++; | 
| -          } else if (f0byte == 0xC2) { | 
| -            // Intel manual 2A, Table 3-11. | 
| -            data += 2; | 
| -            int mod, regop, rm; | 
| -            get_modrm(*data, &mod, ®op, &rm); | 
| -            const char* const pseudo_op[] = { | 
| -                "cmpeqps",  "cmpltps",  "cmpleps",  "cmpunordps", | 
| -                "cmpneqps", "cmpnltps", "cmpnleps", "cmpordps"}; | 
| -            AppendToBuffer("%s %s,%s", pseudo_op[data[1]], | 
| -                           NameOfXMMRegister(regop), NameOfXMMRegister(rm)); | 
| -            data += 2; | 
| } else if (f0byte== 0xC6) { | 
| // shufps xmm, xmm/m128, imm8 | 
| data += 2; | 
| @@ -1483,12 +1471,6 @@ | 
| NameOfXMMRegister(regop), | 
| static_cast<int>(imm8)); | 
| data += 2; | 
| -          } else if (f0byte == 0x5B) { | 
| -            data += 2; | 
| -            int mod, regop, rm; | 
| -            get_modrm(*data, &mod, ®op, &rm); | 
| -            AppendToBuffer("cvtdq2ps %s,", NameOfXMMRegister(rm)); | 
| -            data += PrintRightXMMOperand(data); | 
| } else if ((f0byte & 0xF0) == 0x80) { | 
| data += JumpConditional(data, branch_hint); | 
| } else if (f0byte == 0xBE || f0byte == 0xBF || f0byte == 0xB6 || | 
| @@ -1684,13 +1666,6 @@ | 
| NameOfXMMRegister(regop), | 
| NameOfXMMRegister(rm)); | 
| data++; | 
| -            } else if (*data == 0x40) { | 
| -              data++; | 
| -              int mod, regop, rm; | 
| -              get_modrm(*data, &mod, ®op, &rm); | 
| -              AppendToBuffer("pmulld %s,%s", NameOfXMMRegister(regop), | 
| -                             NameOfXMMRegister(rm)); | 
| -              data += PrintRightXMMOperand(data); | 
| } else if (*data == 0x2A) { | 
| // movntdqa | 
| UnimplementedInstruction(); | 
| @@ -1727,14 +1702,6 @@ | 
| NameOfXMMRegister(rm), | 
| static_cast<int>(imm8)); | 
| data += 2; | 
| -            } else if (*data == 0x21) { | 
| -              data++; | 
| -              int mod, regop, rm; | 
| -              get_modrm(*data, &mod, ®op, &rm); | 
| -              int8_t imm8 = static_cast<int8_t>(data[1]); | 
| -              AppendToBuffer("insertps %s,%s,%d", NameOfXMMRegister(regop), | 
| -                             NameOfXMMRegister(rm), static_cast<int>(imm8)); | 
| -              data += 2; | 
| } else if (*data == 0x17) { | 
| data++; | 
| int mod, regop, rm; | 
| @@ -1804,37 +1771,6 @@ | 
| NameOfXMMRegister(regop), | 
| NameOfXMMRegister(rm)); | 
| data++; | 
| -          } else if (*data == 0x5B) { | 
| -            data++; | 
| -            int mod, regop, rm; | 
| -            get_modrm(*data, &mod, ®op, &rm); | 
| -            AppendToBuffer("cvtps2dq %s,%s", NameOfXMMRegister(regop), | 
| -                           NameOfXMMRegister(rm)); | 
| -            data += PrintRightXMMOperand(data); | 
| -          } else if (*data == 0x62) { | 
| -            data++; | 
| -            int mod, regop, rm; | 
| -            get_modrm(*data, &mod, ®op, &rm); | 
| -            AppendToBuffer("punpackldq %s,", NameOfXMMRegister(regop)); | 
| -            data += PrintRightXMMOperand(data); | 
| -          } else if (*data == 0xF4) { | 
| -            data++; | 
| -            int mod, regop, rm; | 
| -            get_modrm(*data, &mod, ®op, &rm); | 
| -            AppendToBuffer("pmuludq %s,", NameOfXMMRegister(regop)); | 
| -            data += PrintRightXMMOperand(data); | 
| -          } else if (*data == 0xFA) { | 
| -            data++; | 
| -            int mod, regop, rm; | 
| -            get_modrm(*data, &mod, ®op, &rm); | 
| -            AppendToBuffer("psubd %s,", NameOfXMMRegister(regop)); | 
| -            data += PrintRightXMMOperand(data); | 
| -          } else if (*data == 0xFE) { | 
| -            data++; | 
| -            int mod, regop, rm; | 
| -            get_modrm(*data, &mod, ®op, &rm); | 
| -            AppendToBuffer("paddd %s,", NameOfXMMRegister(regop)); | 
| -            data += PrintRightXMMOperand(data); | 
| } else if (*data == 0x6E) { | 
| data++; | 
| int mod, regop, rm; | 
|  |