| 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 #include "src/v8.h" | 9 #include "src/v8.h" |
| 10 | 10 |
| (...skipping 967 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 978 switch (opcode) { | 978 switch (opcode) { |
| 979 case 0xf0: | 979 case 0xf0: |
| 980 AppendToBuffer("rorx %s,", NameOfCPURegister(regop)); | 980 AppendToBuffer("rorx %s,", NameOfCPURegister(regop)); |
| 981 current += PrintRightOperand(current); | 981 current += PrintRightOperand(current); |
| 982 AppendToBuffer(",%d", *current & 0x1f); | 982 AppendToBuffer(",%d", *current & 0x1f); |
| 983 current += 1; | 983 current += 1; |
| 984 break; | 984 break; |
| 985 default: | 985 default: |
| 986 UnimplementedInstruction(); | 986 UnimplementedInstruction(); |
| 987 } | 987 } |
| 988 } else if (vex_none() && vex_0f()) { |
| 989 int mod, regop, rm, vvvv = vex_vreg(); |
| 990 get_modrm(*current, &mod, ®op, &rm); |
| 991 switch (opcode) { |
| 992 case 0x54: |
| 993 AppendToBuffer("vandps %s,%s,", NameOfXMMRegister(regop), |
| 994 NameOfXMMRegister(vvvv)); |
| 995 current += PrintRightXMMOperand(current); |
| 996 break; |
| 997 case 0x57: |
| 998 AppendToBuffer("vxorps %s,%s,", NameOfXMMRegister(regop), |
| 999 NameOfXMMRegister(vvvv)); |
| 1000 current += PrintRightXMMOperand(current); |
| 1001 break; |
| 1002 default: |
| 1003 UnimplementedInstruction(); |
| 1004 } |
| 1005 } else if (vex_66() && vex_0f()) { |
| 1006 int mod, regop, rm, vvvv = vex_vreg(); |
| 1007 get_modrm(*current, &mod, ®op, &rm); |
| 1008 switch (opcode) { |
| 1009 case 0x54: |
| 1010 AppendToBuffer("vandpd %s,%s,", NameOfXMMRegister(regop), |
| 1011 NameOfXMMRegister(vvvv)); |
| 1012 current += PrintRightXMMOperand(current); |
| 1013 break; |
| 1014 case 0x57: |
| 1015 AppendToBuffer("vxorpd %s,%s,", NameOfXMMRegister(regop), |
| 1016 NameOfXMMRegister(vvvv)); |
| 1017 current += PrintRightXMMOperand(current); |
| 1018 break; |
| 1019 default: |
| 1020 UnimplementedInstruction(); |
| 1021 } |
| 988 } else { | 1022 } else { |
| 989 UnimplementedInstruction(); | 1023 UnimplementedInstruction(); |
| 990 } | 1024 } |
| 991 | 1025 |
| 992 return static_cast<int>(current - data); | 1026 return static_cast<int>(current - data); |
| 993 } | 1027 } |
| 994 | 1028 |
| 995 | 1029 |
| 996 // Returns number of bytes used, including *data. | 1030 // Returns number of bytes used, including *data. |
| 997 int DisassemblerIA32::FPUInstruction(byte* data) { | 1031 int DisassemblerIA32::FPUInstruction(byte* data) { |
| (...skipping 1220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2218 fprintf(f, " "); | 2252 fprintf(f, " "); |
| 2219 } | 2253 } |
| 2220 fprintf(f, " %s\n", buffer.start()); | 2254 fprintf(f, " %s\n", buffer.start()); |
| 2221 } | 2255 } |
| 2222 } | 2256 } |
| 2223 | 2257 |
| 2224 | 2258 |
| 2225 } // namespace disasm | 2259 } // namespace disasm |
| 2226 | 2260 |
| 2227 #endif // V8_TARGET_ARCH_IA32 | 2261 #endif // V8_TARGET_ARCH_IA32 |
| OLD | NEW |