| 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;
|
|
|