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

Unified Diff: runtime/vm/disassembler_x64.cc

Issue 20467004: Inline two argument shuffle operations on IA32 and X64. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 5 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/flow_graph_optimizer.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 4af7ba3f07d406fe6205e4d5b3b806b7fd76a3e6..f42ebacde50bcc977027273924380f7d84def9ea 100644
--- a/runtime/vm/disassembler_x64.cc
+++ b/runtime/vm/disassembler_x64.cc
@@ -1268,7 +1268,11 @@ int DisassemblerX64::TwoByteOpcodeInstruction(uint8_t* data) {
current += PrintRightXMMOperand(current);
} else {
const char* mnemonic = "?";
- if (opcode == 0x54) {
+ if (opcode == 0x14) {
+ mnemonic = "unpcklpd";
+ } else if (opcode == 0x15) {
+ mnemonic = "unpckhpd";
+ } else if (opcode == 0x54) {
mnemonic = "andpd";
} else if (opcode == 0x56) {
mnemonic = "orpd";
@@ -1425,12 +1429,18 @@ 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) {
+ } else if (opcode == 0x12 || opcode == 0x14 || opcode == 0x15 ||
+ opcode == 0x16 || 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 0x12: mnemonic = "movhlps"; break;
+ case 0x14: mnemonic = "unpcklps"; break;
+ case 0x15: mnemonic = "unpckhps"; break;
+ case 0x16: mnemonic = "movlhps"; break;
case 0x51: mnemonic = "sqrtps"; break;
case 0x52: mnemonic = "rsqrtps"; break;
case 0x53: mnemonic = "rcpps"; break;
« no previous file with comments | « runtime/vm/disassembler_ia32.cc ('k') | runtime/vm/flow_graph_optimizer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698