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

Side by Side Diff: src/x64/disasm-x64.cc

Issue 1391963005: [x64] Use vmovapd and vmovsd when AVX is enabled. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix Win compile. Created 5 years, 2 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 unified diff | Download patch
« no previous file with comments | « src/x64/deoptimizer-x64.cc ('k') | src/x64/lithium-codegen-x64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <assert.h> 5 #include <assert.h>
6 #include <stdarg.h> 6 #include <stdarg.h>
7 #include <stdio.h> 7 #include <stdio.h>
8 8
9 #if V8_TARGET_ARCH_X64 9 #if V8_TARGET_ARCH_X64
10 10
(...skipping 970 matching lines...) Expand 10 before | Expand all | Expand 10 after
981 NameOfXMMRegister(vvvv)); 981 NameOfXMMRegister(vvvv));
982 current += PrintRightXMMOperand(current); 982 current += PrintRightXMMOperand(current);
983 break; 983 break;
984 default: 984 default:
985 UnimplementedInstruction(); 985 UnimplementedInstruction();
986 } 986 }
987 } else if (vex_f2() && vex_0f()) { 987 } else if (vex_f2() && vex_0f()) {
988 int mod, regop, rm, vvvv = vex_vreg(); 988 int mod, regop, rm, vvvv = vex_vreg();
989 get_modrm(*current, &mod, &regop, &rm); 989 get_modrm(*current, &mod, &regop, &rm);
990 switch (opcode) { 990 switch (opcode) {
991 case 0x10:
992 AppendToBuffer("vmovsd %s,", NameOfXMMRegister(regop));
993 current += PrintRightXMMOperand(current);
994 break;
995 case 0x11:
996 AppendToBuffer("vmovsd ");
997 current += PrintRightXMMOperand(current);
998 AppendToBuffer(",%s", NameOfXMMRegister(regop));
999 break;
991 case 0x58: 1000 case 0x58:
992 AppendToBuffer("vaddsd %s,%s,", NameOfXMMRegister(regop), 1001 AppendToBuffer("vaddsd %s,%s,", NameOfXMMRegister(regop),
993 NameOfXMMRegister(vvvv)); 1002 NameOfXMMRegister(vvvv));
994 current += PrintRightXMMOperand(current); 1003 current += PrintRightXMMOperand(current);
995 break; 1004 break;
996 case 0x59: 1005 case 0x59:
997 AppendToBuffer("vmulsd %s,%s,", NameOfXMMRegister(regop), 1006 AppendToBuffer("vmulsd %s,%s,", NameOfXMMRegister(regop),
998 NameOfXMMRegister(vvvv)); 1007 NameOfXMMRegister(vvvv));
999 current += PrintRightXMMOperand(current); 1008 current += PrintRightXMMOperand(current);
1000 break; 1009 break;
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
1147 NameOfXMMRegister(vvvv)); 1156 NameOfXMMRegister(vvvv));
1148 current += PrintRightXMMOperand(current); 1157 current += PrintRightXMMOperand(current);
1149 break; 1158 break;
1150 default: 1159 default:
1151 UnimplementedInstruction(); 1160 UnimplementedInstruction();
1152 } 1161 }
1153 } else if (vex_66() && vex_0f()) { 1162 } else if (vex_66() && vex_0f()) {
1154 int mod, regop, rm, vvvv = vex_vreg(); 1163 int mod, regop, rm, vvvv = vex_vreg();
1155 get_modrm(*current, &mod, &regop, &rm); 1164 get_modrm(*current, &mod, &regop, &rm);
1156 switch (opcode) { 1165 switch (opcode) {
1166 case 0x28:
1167 AppendToBuffer("vmovapd %s,", NameOfXMMRegister(regop));
1168 current += PrintRightXMMOperand(current);
1169 break;
1170 case 0x29:
1171 AppendToBuffer("vmovapd ");
1172 current += PrintRightXMMOperand(current);
1173 AppendToBuffer(",%s", NameOfXMMRegister(regop));
1174 break;
1157 case 0x2e: 1175 case 0x2e:
1158 AppendToBuffer("vucomisd %s,", NameOfXMMRegister(regop)); 1176 AppendToBuffer("vucomisd %s,", NameOfXMMRegister(regop));
1159 current += PrintRightXMMOperand(current); 1177 current += PrintRightXMMOperand(current);
1160 break; 1178 break;
1161 case 0x54: 1179 case 0x54:
1162 AppendToBuffer("vandpd %s,%s,", NameOfXMMRegister(regop), 1180 AppendToBuffer("vandpd %s,%s,", NameOfXMMRegister(regop),
1163 NameOfXMMRegister(vvvv)); 1181 NameOfXMMRegister(vvvv));
1164 current += PrintRightXMMOperand(current); 1182 current += PrintRightXMMOperand(current);
1165 break; 1183 break;
1166 case 0x57: 1184 case 0x57:
(...skipping 1184 matching lines...) Expand 10 before | Expand all | Expand 10 after
2351 for (int i = 6 - static_cast<int>(pc - prev_pc); i >= 0; i--) { 2369 for (int i = 6 - static_cast<int>(pc - prev_pc); i >= 0; i--) {
2352 fprintf(f, " "); 2370 fprintf(f, " ");
2353 } 2371 }
2354 fprintf(f, " %s\n", buffer.start()); 2372 fprintf(f, " %s\n", buffer.start());
2355 } 2373 }
2356 } 2374 }
2357 2375
2358 } // namespace disasm 2376 } // namespace disasm
2359 2377
2360 #endif // V8_TARGET_ARCH_X64 2378 #endif // V8_TARGET_ARCH_X64
OLDNEW
« no previous file with comments | « src/x64/deoptimizer-x64.cc ('k') | src/x64/lithium-codegen-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698