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 1368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1379 data++; | 1379 data++; |
1380 AppendToBuffer("nop"); // 2 byte nop. | 1380 AppendToBuffer("nop"); // 2 byte nop. |
1381 } else if (*data == 0xF3) { | 1381 } else if (*data == 0xF3) { |
1382 data++; | 1382 data++; |
1383 int mod, regop, rm; | 1383 int mod, regop, rm; |
1384 get_modrm(*data, &mod, ®op, &rm); | 1384 get_modrm(*data, &mod, ®op, &rm); |
1385 AppendToBuffer("psllq %s,%s", | 1385 AppendToBuffer("psllq %s,%s", |
1386 NameOfXMMRegister(regop), | 1386 NameOfXMMRegister(regop), |
1387 NameOfXMMRegister(rm)); | 1387 NameOfXMMRegister(rm)); |
1388 data++; | 1388 data++; |
| 1389 } else if (*data == 0x72) { |
| 1390 data++; |
| 1391 int mod, regop, rm; |
| 1392 get_modrm(*data, &mod, ®op, &rm); |
| 1393 int8_t imm8 = static_cast<int8_t>(data[1]); |
| 1394 DCHECK(regop == esi || regop == edx); |
| 1395 AppendToBuffer("%s %s,%d", (regop == esi) ? "pslld" : "psrld", |
| 1396 NameOfXMMRegister(rm), static_cast<int>(imm8)); |
| 1397 data += 2; |
1389 } else if (*data == 0x73) { | 1398 } else if (*data == 0x73) { |
1390 data++; | 1399 data++; |
1391 int mod, regop, rm; | 1400 int mod, regop, rm; |
1392 get_modrm(*data, &mod, ®op, &rm); | 1401 get_modrm(*data, &mod, ®op, &rm); |
1393 int8_t imm8 = static_cast<int8_t>(data[1]); | 1402 int8_t imm8 = static_cast<int8_t>(data[1]); |
1394 DCHECK(regop == esi || regop == edx); | 1403 DCHECK(regop == esi || regop == edx); |
1395 AppendToBuffer("%s %s,%d", | 1404 AppendToBuffer("%s %s,%d", |
1396 (regop == esi) ? "psllq" : "psrlq", | 1405 (regop == esi) ? "psllq" : "psrlq", |
1397 NameOfXMMRegister(rm), | 1406 NameOfXMMRegister(rm), |
1398 static_cast<int>(imm8)); | 1407 static_cast<int>(imm8)); |
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1770 fprintf(f, " "); | 1779 fprintf(f, " "); |
1771 } | 1780 } |
1772 fprintf(f, " %s\n", buffer.start()); | 1781 fprintf(f, " %s\n", buffer.start()); |
1773 } | 1782 } |
1774 } | 1783 } |
1775 | 1784 |
1776 | 1785 |
1777 } // namespace disasm | 1786 } // namespace disasm |
1778 | 1787 |
1779 #endif // V8_TARGET_ARCH_IA32 | 1788 #endif // V8_TARGET_ARCH_IA32 |
OLD | NEW |