| OLD | NEW |
| 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 Loading... |
| 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, ®op, &rm); | 989 get_modrm(*current, &mod, ®op, &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 Loading... |
| 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, ®op, &rm); | 1164 get_modrm(*current, &mod, ®op, &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 Loading... |
| 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 |
| OLD | NEW |