diff options
Diffstat (limited to 'deps/v8/src/diagnostics/ia32/disasm-ia32.cc')
-rw-r--r-- | deps/v8/src/diagnostics/ia32/disasm-ia32.cc | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/deps/v8/src/diagnostics/ia32/disasm-ia32.cc b/deps/v8/src/diagnostics/ia32/disasm-ia32.cc index ead0a5a709..0cb36d1228 100644 --- a/deps/v8/src/diagnostics/ia32/disasm-ia32.cc +++ b/deps/v8/src/diagnostics/ia32/disasm-ia32.cc @@ -692,6 +692,10 @@ int DisassemblerIA32::AVXInstruction(byte* data) { int mod, regop, rm, vvvv = vex_vreg(); get_modrm(*current, &mod, ®op, &rm); switch (opcode) { + case 0x18: + AppendToBuffer("vbroadcastss %s,", NameOfXMMRegister(regop)); + current += PrintRightXMMOperand(current); + break; case 0x99: AppendToBuffer("vfmadd132s%c %s,%s,", float_size_code(), NameOfXMMRegister(regop), NameOfXMMRegister(vvvv)); @@ -846,6 +850,10 @@ int DisassemblerIA32::AVXInstruction(byte* data) { int mod, regop, rm, vvvv = vex_vreg(); get_modrm(*current, &mod, ®op, &rm); switch (opcode) { + case 0x12: + AppendToBuffer("vmovddup %s,", NameOfXMMRegister(regop)); + current += PrintRightXMMOperand(current); + break; case 0x51: AppendToBuffer("vsqrtsd %s,%s,", NameOfXMMRegister(regop), NameOfXMMRegister(vvvv)); @@ -2259,13 +2267,6 @@ int DisassemblerIA32::InstructionDecode(v8::internal::Vector<char> out_buffer, } else if (*data == 0x90) { data++; AppendToBuffer("nop"); // 2 byte nop. - } else if (*data == 0xF3) { - data++; - int mod, regop, rm; - get_modrm(*data, &mod, ®op, &rm); - AppendToBuffer("psllq %s,%s", NameOfXMMRegister(regop), - NameOfXMMRegister(rm)); - data++; } else if (*data == 0x71) { data++; int mod, regop, rm; @@ -2291,13 +2292,6 @@ int DisassemblerIA32::InstructionDecode(v8::internal::Vector<char> out_buffer, AppendToBuffer("ps%sq %s,%d", sf_str[regop / 2], NameOfXMMRegister(rm), static_cast<int>(imm8)); data += 2; - } else if (*data == 0xD3) { - data++; - int mod, regop, rm; - get_modrm(*data, &mod, ®op, &rm); - AppendToBuffer("psrlq %s,%s", NameOfXMMRegister(regop), - NameOfXMMRegister(rm)); - data++; } else if (*data == 0x7F) { AppendToBuffer("movdqa "); data++; @@ -2444,6 +2438,12 @@ int DisassemblerIA32::InstructionDecode(v8::internal::Vector<char> out_buffer, get_modrm(*data, &mod, ®op, &rm); AppendToBuffer("movsd %s,", NameOfXMMRegister(regop)); data += PrintRightXMMOperand(data); + } else if (b2 == 0x12) { + data += 3; + int mod, regop, rm; + get_modrm(*data, &mod, ®op, &rm); + AppendToBuffer("movddup %s,", NameOfXMMRegister(regop)); + data += PrintRightXMMOperand(data); } else if (b2 == 0x5A) { data += 3; int mod, regop, rm; |