Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(378)

Unified Diff: runtime/vm/disassembler_x64.cc

Issue 154733002: Fix disassembler crash with profiler (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/disassembler_ia32.cc ('k') | runtime/vm/object.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/disassembler_x64.cc
diff --git a/runtime/vm/disassembler_x64.cc b/runtime/vm/disassembler_x64.cc
index 86f8d2591309a446a6db3fa805c5942df0588bdd..4d58672329e1be2e79ae3a93330e14a7aab605da 100644
--- a/runtime/vm/disassembler_x64.cc
+++ b/runtime/vm/disassembler_x64.cc
@@ -1287,6 +1287,22 @@ int DisassemblerX64::TwoByteOpcodeInstruction(uint8_t* data) {
mnemonic = "paddd";
} else if (opcode == 0xFA) {
mnemonic = "psubd";
+ } else if (opcode == 0x58) {
+ mnemonic = "addpd";
+ } else if (opcode == 0x5C) {
+ mnemonic = "subpd";
+ } else if (opcode == 0x59) {
+ mnemonic = "mulpd";
+ } else if (opcode == 0x5E) {
+ mnemonic = "divpd";
+ } else if (opcode == 0x5D) {
+ mnemonic = "minpd";
+ } else if (opcode == 0x5F) {
+ mnemonic = "maxpd";
+ } else if (opcode == 0x51) {
+ mnemonic = "sqrtpd";
+ } else if (opcode == 0x5A) {
+ mnemonic = "cvtpd2ps";
} else {
UnimplementedInstruction();
}
@@ -1379,6 +1395,11 @@ int DisassemblerX64::TwoByteOpcodeInstruction(uint8_t* data) {
get_modrm(*current, &mod, &regop, &rm);
AppendToBuffer("movq %s, ", NameOfXMMRegister(regop));
current += PrintRightXMMOperand(current);
+ } else if (opcode == 0x58) {
+ int mod, regop, rm;
+ get_modrm(*current, &mod, &regop, &rm);
+ AppendToBuffer("addss %s,", NameOfXMMRegister(regop));
+ current += PrintRightXMMOperand(current);
} else {
UnimplementedInstruction();
}
@@ -1552,6 +1573,10 @@ const char* DisassemblerX64::TwoByteMnemonic(uint8_t opcode) {
return "movsxb";
case 0xBF:
return "movsxw";
+ case 0x12:
+ return "movhlps";
+ case 0x16:
+ return "movlhps";
default:
return NULL;
}
« no previous file with comments | « runtime/vm/disassembler_ia32.cc ('k') | runtime/vm/object.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698