| Index: src/x64/disasm-x64.cc
|
| diff --git a/src/x64/disasm-x64.cc b/src/x64/disasm-x64.cc
|
| index bed99d101a35f8ebccea83a309cded92165e9a80..ba33da779caaef08b780a30712d150d881c9eb3c 100644
|
| --- a/src/x64/disasm-x64.cc
|
| +++ b/src/x64/disasm-x64.cc
|
| @@ -1179,6 +1179,19 @@ int DisassemblerX64::TwoByteOpcodeInstruction(byte* data) {
|
| current += PrintRightXMMOperand(current);
|
| AppendToBuffer(",%d", (*current) & 3);
|
| current += 1;
|
| + } else if (third_byte == 0x16) {
|
| + get_modrm(*current, &mod, ®op, &rm);
|
| + AppendToBuffer("pextrd "); // reg/m32, xmm, imm8
|
| + current += PrintRightOperand(current);
|
| + AppendToBuffer(",%s,%d", NameOfXMMRegister(regop), (*current) & 3);
|
| + current += 1;
|
| + } else if (third_byte == 0x22) {
|
| + get_modrm(*current, &mod, ®op, &rm);
|
| + AppendToBuffer("pinsrd "); // xmm, reg/m32, imm8
|
| + AppendToBuffer(" %s,", NameOfXMMRegister(regop));
|
| + current += PrintRightOperand(current);
|
| + AppendToBuffer(",%d", (*current) & 3);
|
| + current += 1;
|
| } else {
|
| UnimplementedInstruction();
|
| }
|
| @@ -1229,12 +1242,12 @@ int DisassemblerX64::TwoByteOpcodeInstruction(byte* data) {
|
| current += PrintRightXMMOperand(current);
|
| } else if (opcode == 0x72) {
|
| current += 1;
|
| - AppendToBuffer("%s,%s,%d", (regop == 6) ? "pslld" : "psrld",
|
| + AppendToBuffer("%s %s,%d", (regop == 6) ? "pslld" : "psrld",
|
| NameOfXMMRegister(rm), *current & 0x7f);
|
| current += 1;
|
| } else if (opcode == 0x73) {
|
| current += 1;
|
| - AppendToBuffer("%s,%s,%d", (regop == 6) ? "psllq" : "psrlq",
|
| + AppendToBuffer("%s %s,%d", (regop == 6) ? "psllq" : "psrlq",
|
| NameOfXMMRegister(rm), *current & 0x7f);
|
| current += 1;
|
| } else {
|
| @@ -1251,6 +1264,10 @@ int DisassemblerX64::TwoByteOpcodeInstruction(byte* data) {
|
| mnemonic = "comisd";
|
| } else if (opcode == 0x76) {
|
| mnemonic = "pcmpeqd";
|
| + } else if (opcode == 0x62) {
|
| + mnemonic = "punpckldq";
|
| + } else if (opcode == 0x6A) {
|
| + mnemonic = "punpckhdq";
|
| } else {
|
| UnimplementedInstruction();
|
| }
|
|
|