Index: src/x87/disasm-x87.cc |
diff --git a/src/x87/disasm-x87.cc b/src/x87/disasm-x87.cc |
index 6fed8bfe28b7db3f2fffb08d6f92258229ead789..26e1b9b187a32461023d658cda3d6fc94d5d5b37 100644 |
--- a/src/x87/disasm-x87.cc |
+++ b/src/x87/disasm-x87.cc |
@@ -1150,7 +1150,8 @@ int DisassemblerX87::InstructionDecode(v8::internal::Vector<char> out_buffer, |
data += SetCC(data); |
} else if ((f0byte & 0xF0) == 0x40) { |
data += CMov(data); |
- } else if (f0byte == 0xA4) { |
+ } else if (f0byte == 0xA4 || f0byte == 0xAC) { |
+ // shld, shrd |
data += 2; |
AppendToBuffer("%s ", f0mnem); |
int mod, regop, rm; |
@@ -1160,7 +1161,7 @@ int DisassemblerX87::InstructionDecode(v8::internal::Vector<char> out_buffer, |
AppendToBuffer("%s,%s,%d", NameOfCPURegister(rm), |
NameOfCPURegister(regop), static_cast<int>(imm8)); |
} else if (f0byte == 0xAB || f0byte == 0xA5 || f0byte == 0xAD) { |
- // shrd, shld_cl, bts |
+ // shrd_cl, shld_cl, bts |
data += 2; |
AppendToBuffer("%s ", f0mnem); |
int mod, regop, rm; |