Index: runtime/vm/disassembler_x64.cc |
diff --git a/runtime/vm/disassembler_x64.cc b/runtime/vm/disassembler_x64.cc |
index 958c2b7bd578dc0b94fa849c6d0300edfc08773b..4d150720a75f36f7e92f5855e4dd22802036fc7c 100644 |
--- a/runtime/vm/disassembler_x64.cc |
+++ b/runtime/vm/disassembler_x64.cc |
@@ -1394,6 +1394,7 @@ int DisassemblerX64::TwoByteOpcodeInstruction(uint8_t* data) { |
get_modrm(*current, &mod, ®op, &rm); |
AppendToBuffer("movaps %s, ", NameOfXMMRegister(regop)); |
current += PrintRightXMMOperand(current); |
+ |
} else if (opcode == 0x29) { |
// movaps xmm/m128, xmm |
int mod, regop, rm; |
@@ -1401,19 +1402,7 @@ int DisassemblerX64::TwoByteOpcodeInstruction(uint8_t* data) { |
AppendToBuffer("movaps "); |
current += PrintRightXMMOperand(current); |
AppendToBuffer(", %s", NameOfXMMRegister(regop)); |
- } else if (opcode == 0x11) { |
- // movups xmm/m128, xmm |
- int mod, regop, rm; |
- get_modrm(*current, &mod, ®op, &rm); |
- AppendToBuffer("movups "); |
- current += PrintRightXMMOperand(current); |
- AppendToBuffer(", %s", NameOfXMMRegister(regop)); |
- } else if (opcode == 0x10) { |
- // movups xmm, xmm/m128 |
- int mod, regop, rm; |
- get_modrm(*current, &mod, ®op, &rm); |
- AppendToBuffer("movups %s, ", NameOfXMMRegister(regop)); |
- current += PrintRightXMMOperand(current); |
+ |
} else if (opcode == 0xA2 || opcode == 0x31) { |
// RDTSC or CPUID |
AppendToBuffer("%s", mnemonic); |
@@ -1425,42 +1414,13 @@ int DisassemblerX64::TwoByteOpcodeInstruction(uint8_t* data) { |
byte_size_operand_ = idesc.byte_size_operation; |
current += PrintOperands(idesc.mnem, idesc.op_order_, current); |
- } else if (opcode == 0x51 || opcode == 0x52 || opcode == 0x53 || |
- opcode == 0x54 || opcode == 0x56 || opcode == 0x57 || |
- opcode == 0x58 || opcode == 0x59 || opcode == 0x5C || |
- opcode == 0x5D || opcode == 0x5E || opcode == 0x5F) { |
- const char* mnemonic = NULL; |
- switch (opcode) { |
- case 0x51: mnemonic = "sqrtps"; break; |
- case 0x52: mnemonic = "rsqrtps"; break; |
- case 0x53: mnemonic = "rcpps"; break; |
- case 0x54: mnemonic = "andps"; break; |
- case 0x56: mnemonic = "orps"; break; |
- case 0x57: mnemonic = "xorps"; break; |
- case 0x58: mnemonic = "addps"; break; |
- case 0x59: mnemonic = "mulps"; break; |
- case 0x5C: mnemonic = "subps"; break; |
- case 0x5D: mnemonic = "minps"; break; |
- case 0x5E: mnemonic = "divps"; break; |
- case 0x5F: mnemonic = "maxps"; break; |
- default: UNREACHABLE(); |
- } |
- int mod, regop, rm; |
- get_modrm(*current, &mod, ®op, &rm); |
- AppendToBuffer("%s %s, ", mnemonic, NameOfXMMRegister(regop)); |
- current += PrintRightXMMOperand(current); |
- } else if (opcode == 0xC2 || opcode == 0xC6) { |
+ } else if (opcode == 0x57) { |
+ // xorps xmm, xmm/m128 |
int mod, regop, rm; |
get_modrm(*current, &mod, ®op, &rm); |
- if (opcode == 0xC2) { |
- AppendToBuffer("cmpps %s, ", NameOfXMMRegister(regop)); |
- } else { |
- ASSERT(opcode == 0xC6); |
- AppendToBuffer("shufps %s, ", NameOfXMMRegister(regop)); |
- } |
+ AppendToBuffer("xorps %s, ", NameOfXMMRegister(regop)); |
current += PrintRightXMMOperand(current); |
- AppendToBuffer(" [%x]", *current); |
- current++; |
+ |
} else if ((opcode & 0xF0) == 0x80) { |
// Jcc: Conditional jump (branch). |
current = data + JumpConditional(data); |