OLD | NEW |
1 // Copyright 2009 the V8 project authors. All rights reserved. | 1 // Copyright 2009 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
406 | 406 |
407 | 407 |
408 void Assembler::arithmetic_op(byte opcode, Register dst, Register src) { | 408 void Assembler::arithmetic_op(byte opcode, Register dst, Register src) { |
409 EnsureSpace ensure_space(this); | 409 EnsureSpace ensure_space(this); |
410 last_pc_ = pc_; | 410 last_pc_ = pc_; |
411 emit_rex_64(dst, src); | 411 emit_rex_64(dst, src); |
412 emit(opcode); | 412 emit(opcode); |
413 emit_modrm(dst, src); | 413 emit_modrm(dst, src); |
414 } | 414 } |
415 | 415 |
| 416 |
| 417 void Assembler::arithmetic_op_32(byte opcode, Register dst, Register src) { |
| 418 EnsureSpace ensure_space(this); |
| 419 last_pc_ = pc_; |
| 420 emit_optional_rex_32(dst, src); |
| 421 emit(opcode); |
| 422 emit_modrm(dst, src); |
| 423 } |
| 424 |
| 425 |
416 void Assembler::immediate_arithmetic_op(byte subcode, | 426 void Assembler::immediate_arithmetic_op(byte subcode, |
417 Register dst, | 427 Register dst, |
418 Immediate src) { | 428 Immediate src) { |
419 EnsureSpace ensure_space(this); | 429 EnsureSpace ensure_space(this); |
420 last_pc_ = pc_; | 430 last_pc_ = pc_; |
421 emit_rex_64(dst); | 431 emit_rex_64(dst); |
422 if (is_int8(src.value_)) { | 432 if (is_int8(src.value_)) { |
423 emit(0x83); | 433 emit(0x83); |
424 emit_modrm(subcode, dst); | 434 emit_modrm(subcode, dst); |
425 emit(src.value_); | 435 emit(src.value_); |
(...skipping 19 matching lines...) Expand all Loading... |
445 emit(src.value_); | 455 emit(src.value_); |
446 } else { | 456 } else { |
447 emit(0x81); | 457 emit(0x81); |
448 emit_operand(subcode, dst); | 458 emit_operand(subcode, dst); |
449 emitl(src.value_); | 459 emitl(src.value_); |
450 } | 460 } |
451 } | 461 } |
452 | 462 |
453 | 463 |
454 void Assembler::immediate_arithmetic_op_32(byte subcode, | 464 void Assembler::immediate_arithmetic_op_32(byte subcode, |
| 465 Register dst, |
| 466 Immediate src) { |
| 467 EnsureSpace ensure_space(this); |
| 468 last_pc_ = pc_; |
| 469 emit_optional_rex_32(dst); |
| 470 emit(0x83); |
| 471 if (is_int8(src.value_)) { |
| 472 emit_modrm(subcode, dst); |
| 473 emit(src.value_); |
| 474 } else if (dst.is(rax)) { |
| 475 emit(0x05 | (subcode << 3)); |
| 476 emitl(src.value_); |
| 477 } else { |
| 478 emit(0x81); |
| 479 emit_modrm(subcode, dst); |
| 480 emitl(src.value_); |
| 481 } |
| 482 } |
| 483 |
| 484 |
| 485 void Assembler::immediate_arithmetic_op_32(byte subcode, |
455 const Operand& dst, | 486 const Operand& dst, |
456 Immediate src) { | 487 Immediate src) { |
457 EnsureSpace ensure_space(this); | 488 EnsureSpace ensure_space(this); |
458 last_pc_ = pc_; | 489 last_pc_ = pc_; |
459 emit_optional_rex_32(dst); | 490 emit_optional_rex_32(dst); |
460 if (is_int8(src.value_)) { | 491 if (is_int8(src.value_)) { |
461 emit(0x83); | 492 emit(0x83); |
462 emit_operand(subcode, dst); | 493 emit_operand(subcode, dst); |
463 emit(src.value_); | 494 emit(src.value_); |
464 } else { | 495 } else { |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
501 | 532 |
502 void Assembler::shift(Register dst, int subcode) { | 533 void Assembler::shift(Register dst, int subcode) { |
503 EnsureSpace ensure_space(this); | 534 EnsureSpace ensure_space(this); |
504 last_pc_ = pc_; | 535 last_pc_ = pc_; |
505 emit_rex_64(dst); | 536 emit_rex_64(dst); |
506 emit(0xD3); | 537 emit(0xD3); |
507 emit_modrm(subcode, dst); | 538 emit_modrm(subcode, dst); |
508 } | 539 } |
509 | 540 |
510 | 541 |
| 542 void Assembler::shift_32(Register dst, int subcode) { |
| 543 EnsureSpace ensure_space(this); |
| 544 last_pc_ = pc_; |
| 545 emit_optional_rex_32(dst); |
| 546 emit(0xD3); |
| 547 emit_modrm(subcode, dst); |
| 548 } |
| 549 |
| 550 |
511 void Assembler::bt(const Operand& dst, Register src) { | 551 void Assembler::bt(const Operand& dst, Register src) { |
512 EnsureSpace ensure_space(this); | 552 EnsureSpace ensure_space(this); |
513 last_pc_ = pc_; | 553 last_pc_ = pc_; |
514 emit_rex_64(src, dst); | 554 emit_rex_64(src, dst); |
515 emit(0x0F); | 555 emit(0x0F); |
516 emit(0xA3); | 556 emit(0xA3); |
517 emit_operand(src, dst); | 557 emit_operand(src, dst); |
518 } | 558 } |
519 | 559 |
520 | 560 |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
633 | 673 |
634 void Assembler::idiv(Register src) { | 674 void Assembler::idiv(Register src) { |
635 EnsureSpace ensure_space(this); | 675 EnsureSpace ensure_space(this); |
636 last_pc_ = pc_; | 676 last_pc_ = pc_; |
637 emit_rex_64(src); | 677 emit_rex_64(src); |
638 emit(0xF7); | 678 emit(0xF7); |
639 emit_modrm(0x7, src); | 679 emit_modrm(0x7, src); |
640 } | 680 } |
641 | 681 |
642 | 682 |
| 683 void Assembler::imul(Register dst, Register src) { |
| 684 EnsureSpace ensure_space(this); |
| 685 last_pc_ = pc_; |
| 686 emit_rex_64(dst, src); |
| 687 emit(0x0F); |
| 688 emit(0xAF); |
| 689 emit_modrm(dst, src); |
| 690 } |
| 691 |
| 692 |
643 void Assembler::imul(Register dst, const Operand& src) { | 693 void Assembler::imul(Register dst, const Operand& src) { |
644 EnsureSpace ensure_space(this); | 694 EnsureSpace ensure_space(this); |
645 last_pc_ = pc_; | 695 last_pc_ = pc_; |
646 emit_rex_64(dst, src); | 696 emit_rex_64(dst, src); |
647 emit(0x0F); | 697 emit(0x0F); |
648 emit(0xAF); | 698 emit(0xAF); |
649 emit_operand(dst, src); | 699 emit_operand(dst, src); |
650 } | 700 } |
651 | 701 |
652 | 702 |
653 void Assembler::imul(Register dst, Register src, Immediate imm) { | 703 void Assembler::imul(Register dst, Register src, Immediate imm) { |
654 EnsureSpace ensure_space(this); | 704 EnsureSpace ensure_space(this); |
655 last_pc_ = pc_; | 705 last_pc_ = pc_; |
656 emit_rex_64(dst, src); | 706 emit_rex_64(dst, src); |
657 if (is_int8(imm.value_)) { | 707 if (is_int8(imm.value_)) { |
658 emit(0x6B); | 708 emit(0x6B); |
659 emit_modrm(dst, src); | 709 emit_modrm(dst, src); |
660 emit(imm.value_); | 710 emit(imm.value_); |
661 } else { | 711 } else { |
662 emit(0x69); | 712 emit(0x69); |
663 emit_modrm(dst, src); | 713 emit_modrm(dst, src); |
664 emitl(imm.value_); | 714 emitl(imm.value_); |
665 } | 715 } |
666 } | 716 } |
667 | 717 |
668 | 718 |
| 719 void Assembler::imull(Register dst, Register src) { |
| 720 EnsureSpace ensure_space(this); |
| 721 last_pc_ = pc_; |
| 722 emit_optional_rex_32(dst, src); |
| 723 emit(0x0F); |
| 724 emit(0xAF); |
| 725 emit_modrm(dst, src); |
| 726 } |
| 727 |
| 728 |
669 void Assembler::incq(Register dst) { | 729 void Assembler::incq(Register dst) { |
670 EnsureSpace ensure_space(this); | 730 EnsureSpace ensure_space(this); |
671 last_pc_ = pc_; | 731 last_pc_ = pc_; |
672 emit_rex_64(dst); | 732 emit_rex_64(dst); |
673 emit(0xFF); | 733 emit(0xFF); |
674 emit_modrm(0x0, dst); | 734 emit_modrm(0x0, dst); |
675 } | 735 } |
676 | 736 |
677 | 737 |
678 void Assembler::incq(const Operand& dst) { | 738 void Assembler::incq(const Operand& dst) { |
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
964 emit(0xB8 | dst.code() & 0x7); | 1024 emit(0xB8 | dst.code() & 0x7); |
965 if (value->IsHeapObject()) { | 1025 if (value->IsHeapObject()) { |
966 emitq(reinterpret_cast<uintptr_t>(value.location()), mode); | 1026 emitq(reinterpret_cast<uintptr_t>(value.location()), mode); |
967 } else { | 1027 } else { |
968 ASSERT_EQ(RelocInfo::NONE, mode); | 1028 ASSERT_EQ(RelocInfo::NONE, mode); |
969 emitq(reinterpret_cast<uintptr_t>(*value), RelocInfo::NONE); | 1029 emitq(reinterpret_cast<uintptr_t>(*value), RelocInfo::NONE); |
970 } | 1030 } |
971 } | 1031 } |
972 | 1032 |
973 | 1033 |
| 1034 void Assembler::movsxlq(Register dst, Register src) { |
| 1035 EnsureSpace ensure_space(this); |
| 1036 last_pc_ = pc_; |
| 1037 emit_rex_64(dst, src); |
| 1038 emit(0x63); |
| 1039 emit_modrm(dst, src); |
| 1040 } |
| 1041 |
| 1042 |
| 1043 void Assembler::movzxbq(Register dst, const Operand& src) { |
| 1044 EnsureSpace ensure_space(this); |
| 1045 last_pc_ = pc_; |
| 1046 emit_rex_64(dst, src); |
| 1047 emit(0x0F); |
| 1048 emit(0xB6); |
| 1049 emit_operand(dst, src); |
| 1050 } |
| 1051 |
| 1052 |
974 void Assembler::mul(Register src) { | 1053 void Assembler::mul(Register src) { |
975 EnsureSpace ensure_space(this); | 1054 EnsureSpace ensure_space(this); |
976 last_pc_ = pc_; | 1055 last_pc_ = pc_; |
977 emit_rex_64(src); | 1056 emit_rex_64(src); |
978 emit(0xF7); | 1057 emit(0xF7); |
979 emit_modrm(0x4, src); | 1058 emit_modrm(0x4, src); |
980 } | 1059 } |
981 | 1060 |
982 | 1061 |
983 void Assembler::neg(Register dst) { | 1062 void Assembler::neg(Register dst) { |
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1357 emit(mask); | 1436 emit(mask); |
1358 } else { | 1437 } else { |
1359 emit_rex_64(dst); | 1438 emit_rex_64(dst); |
1360 emit(0xF7); | 1439 emit(0xF7); |
1361 emit_modrm(0, dst); | 1440 emit_modrm(0, dst); |
1362 emit(mask); | 1441 emit(mask); |
1363 } | 1442 } |
1364 } | 1443 } |
1365 | 1444 |
1366 | 1445 |
| 1446 // FPU instructions |
| 1447 |
| 1448 |
| 1449 void Assembler::fld(int i) { |
| 1450 EnsureSpace ensure_space(this); |
| 1451 last_pc_ = pc_; |
| 1452 emit_farith(0xD9, 0xC0, i); |
| 1453 } |
| 1454 |
| 1455 |
| 1456 void Assembler::fld1() { |
| 1457 EnsureSpace ensure_space(this); |
| 1458 last_pc_ = pc_; |
| 1459 emit(0xD9); |
| 1460 emit(0xE8); |
| 1461 } |
| 1462 |
| 1463 |
| 1464 void Assembler::fldz() { |
| 1465 EnsureSpace ensure_space(this); |
| 1466 last_pc_ = pc_; |
| 1467 emit(0xD9); |
| 1468 emit(0xEE); |
| 1469 } |
| 1470 |
| 1471 |
| 1472 void Assembler::fld_s(const Operand& adr) { |
| 1473 EnsureSpace ensure_space(this); |
| 1474 last_pc_ = pc_; |
| 1475 emit(0xD9); |
| 1476 emit_operand(0, adr); |
| 1477 } |
| 1478 |
| 1479 |
| 1480 void Assembler::fld_d(const Operand& adr) { |
| 1481 EnsureSpace ensure_space(this); |
| 1482 last_pc_ = pc_; |
| 1483 emit(0xDD); |
| 1484 emit_operand(0, adr); |
| 1485 } |
| 1486 |
| 1487 |
| 1488 void Assembler::fstp_s(const Operand& adr) { |
| 1489 EnsureSpace ensure_space(this); |
| 1490 last_pc_ = pc_; |
| 1491 emit(0xD9); |
| 1492 emit_operand(3, adr); |
| 1493 } |
| 1494 |
| 1495 |
| 1496 void Assembler::fstp_d(const Operand& adr) { |
| 1497 EnsureSpace ensure_space(this); |
| 1498 last_pc_ = pc_; |
| 1499 emit(0xDD); |
| 1500 emit_operand(3, adr); |
| 1501 } |
| 1502 |
| 1503 |
| 1504 void Assembler::fild_s(const Operand& adr) { |
| 1505 EnsureSpace ensure_space(this); |
| 1506 last_pc_ = pc_; |
| 1507 emit(0xDB); |
| 1508 emit_operand(0, adr); |
| 1509 } |
| 1510 |
| 1511 |
| 1512 void Assembler::fild_d(const Operand& adr) { |
| 1513 EnsureSpace ensure_space(this); |
| 1514 last_pc_ = pc_; |
| 1515 emit(0xDF); |
| 1516 emit_operand(5, adr); |
| 1517 } |
| 1518 |
| 1519 |
| 1520 void Assembler::fistp_s(const Operand& adr) { |
| 1521 EnsureSpace ensure_space(this); |
| 1522 last_pc_ = pc_; |
| 1523 emit(0xDB); |
| 1524 emit_operand(3, adr); |
| 1525 } |
| 1526 |
| 1527 |
| 1528 void Assembler::fisttp_s(const Operand& adr) { |
| 1529 ASSERT(CpuFeatures::IsEnabled(CpuFeatures::SSE3)); |
| 1530 EnsureSpace ensure_space(this); |
| 1531 last_pc_ = pc_; |
| 1532 emit(0xDB); |
| 1533 emit_operand(1, adr); |
| 1534 } |
| 1535 |
| 1536 |
| 1537 void Assembler::fist_s(const Operand& adr) { |
| 1538 EnsureSpace ensure_space(this); |
| 1539 last_pc_ = pc_; |
| 1540 emit(0xDB); |
| 1541 emit_operand(2, adr); |
| 1542 } |
| 1543 |
| 1544 |
| 1545 void Assembler::fistp_d(const Operand& adr) { |
| 1546 EnsureSpace ensure_space(this); |
| 1547 last_pc_ = pc_; |
| 1548 emit(0xDF); |
| 1549 emit_operand(8, adr); |
| 1550 } |
| 1551 |
| 1552 |
| 1553 void Assembler::fabs() { |
| 1554 EnsureSpace ensure_space(this); |
| 1555 last_pc_ = pc_; |
| 1556 emit(0xD9); |
| 1557 emit(0xE1); |
| 1558 } |
| 1559 |
| 1560 |
| 1561 void Assembler::fchs() { |
| 1562 EnsureSpace ensure_space(this); |
| 1563 last_pc_ = pc_; |
| 1564 emit(0xD9); |
| 1565 emit(0xE0); |
| 1566 } |
| 1567 |
| 1568 |
| 1569 void Assembler::fcos() { |
| 1570 EnsureSpace ensure_space(this); |
| 1571 last_pc_ = pc_; |
| 1572 emit(0xD9); |
| 1573 emit(0xFF); |
| 1574 } |
| 1575 |
| 1576 |
| 1577 void Assembler::fsin() { |
| 1578 EnsureSpace ensure_space(this); |
| 1579 last_pc_ = pc_; |
| 1580 emit(0xD9); |
| 1581 emit(0xFE); |
| 1582 } |
| 1583 |
| 1584 |
| 1585 void Assembler::fadd(int i) { |
| 1586 EnsureSpace ensure_space(this); |
| 1587 last_pc_ = pc_; |
| 1588 emit_farith(0xDC, 0xC0, i); |
| 1589 } |
| 1590 |
| 1591 |
| 1592 void Assembler::fsub(int i) { |
| 1593 EnsureSpace ensure_space(this); |
| 1594 last_pc_ = pc_; |
| 1595 emit_farith(0xDC, 0xE8, i); |
| 1596 } |
| 1597 |
| 1598 |
| 1599 void Assembler::fisub_s(const Operand& adr) { |
| 1600 EnsureSpace ensure_space(this); |
| 1601 last_pc_ = pc_; |
| 1602 emit(0xDA); |
| 1603 emit_operand(4, adr); |
| 1604 } |
| 1605 |
| 1606 |
| 1607 void Assembler::fmul(int i) { |
| 1608 EnsureSpace ensure_space(this); |
| 1609 last_pc_ = pc_; |
| 1610 emit_farith(0xDC, 0xC8, i); |
| 1611 } |
| 1612 |
| 1613 |
| 1614 void Assembler::fdiv(int i) { |
| 1615 EnsureSpace ensure_space(this); |
| 1616 last_pc_ = pc_; |
| 1617 emit_farith(0xDC, 0xF8, i); |
| 1618 } |
| 1619 |
| 1620 |
| 1621 void Assembler::faddp(int i) { |
| 1622 EnsureSpace ensure_space(this); |
| 1623 last_pc_ = pc_; |
| 1624 emit_farith(0xDE, 0xC0, i); |
| 1625 } |
| 1626 |
| 1627 |
| 1628 void Assembler::fsubp(int i) { |
| 1629 EnsureSpace ensure_space(this); |
| 1630 last_pc_ = pc_; |
| 1631 emit_farith(0xDE, 0xE8, i); |
| 1632 } |
| 1633 |
| 1634 |
| 1635 void Assembler::fsubrp(int i) { |
| 1636 EnsureSpace ensure_space(this); |
| 1637 last_pc_ = pc_; |
| 1638 emit_farith(0xDE, 0xE0, i); |
| 1639 } |
| 1640 |
| 1641 |
| 1642 void Assembler::fmulp(int i) { |
| 1643 EnsureSpace ensure_space(this); |
| 1644 last_pc_ = pc_; |
| 1645 emit_farith(0xDE, 0xC8, i); |
| 1646 } |
| 1647 |
| 1648 |
| 1649 void Assembler::fdivp(int i) { |
| 1650 EnsureSpace ensure_space(this); |
| 1651 last_pc_ = pc_; |
| 1652 emit_farith(0xDE, 0xF8, i); |
| 1653 } |
| 1654 |
| 1655 |
| 1656 void Assembler::fprem() { |
| 1657 EnsureSpace ensure_space(this); |
| 1658 last_pc_ = pc_; |
| 1659 emit(0xD9); |
| 1660 emit(0xF8); |
| 1661 } |
| 1662 |
| 1663 |
| 1664 void Assembler::fprem1() { |
| 1665 EnsureSpace ensure_space(this); |
| 1666 last_pc_ = pc_; |
| 1667 emit(0xD9); |
| 1668 emit(0xF5); |
| 1669 } |
| 1670 |
| 1671 |
| 1672 void Assembler::fxch(int i) { |
| 1673 EnsureSpace ensure_space(this); |
| 1674 last_pc_ = pc_; |
| 1675 emit_farith(0xD9, 0xC8, i); |
| 1676 } |
| 1677 |
| 1678 |
| 1679 void Assembler::fincstp() { |
| 1680 EnsureSpace ensure_space(this); |
| 1681 last_pc_ = pc_; |
| 1682 emit(0xD9); |
| 1683 emit(0xF7); |
| 1684 } |
| 1685 |
| 1686 |
| 1687 void Assembler::ffree(int i) { |
| 1688 EnsureSpace ensure_space(this); |
| 1689 last_pc_ = pc_; |
| 1690 emit_farith(0xDD, 0xC0, i); |
| 1691 } |
| 1692 |
| 1693 |
| 1694 void Assembler::ftst() { |
| 1695 EnsureSpace ensure_space(this); |
| 1696 last_pc_ = pc_; |
| 1697 emit(0xD9); |
| 1698 emit(0xE4); |
| 1699 } |
| 1700 |
| 1701 |
| 1702 void Assembler::fucomp(int i) { |
| 1703 EnsureSpace ensure_space(this); |
| 1704 last_pc_ = pc_; |
| 1705 emit_farith(0xDD, 0xE8, i); |
| 1706 } |
| 1707 |
| 1708 |
| 1709 void Assembler::fucompp() { |
| 1710 EnsureSpace ensure_space(this); |
| 1711 last_pc_ = pc_; |
| 1712 emit(0xDA); |
| 1713 emit(0xE9); |
| 1714 } |
| 1715 |
| 1716 |
| 1717 void Assembler::fcompp() { |
| 1718 EnsureSpace ensure_space(this); |
| 1719 last_pc_ = pc_; |
| 1720 emit(0xDE); |
| 1721 emit(0xD9); |
| 1722 } |
| 1723 |
| 1724 |
| 1725 void Assembler::fnstsw_ax() { |
| 1726 EnsureSpace ensure_space(this); |
| 1727 last_pc_ = pc_; |
| 1728 emit(0xDF); |
| 1729 emit(0xE0); |
| 1730 } |
| 1731 |
| 1732 |
| 1733 void Assembler::fwait() { |
| 1734 EnsureSpace ensure_space(this); |
| 1735 last_pc_ = pc_; |
| 1736 emit(0x9B); |
| 1737 } |
| 1738 |
| 1739 |
| 1740 void Assembler::frndint() { |
| 1741 EnsureSpace ensure_space(this); |
| 1742 last_pc_ = pc_; |
| 1743 emit(0xD9); |
| 1744 emit(0xFC); |
| 1745 } |
| 1746 |
| 1747 |
| 1748 void Assembler::fnclex() { |
| 1749 EnsureSpace ensure_space(this); |
| 1750 last_pc_ = pc_; |
| 1751 emit(0xDB); |
| 1752 emit(0xE2); |
| 1753 } |
| 1754 |
| 1755 |
| 1756 void Assembler::emit_farith(int b1, int b2, int i) { |
| 1757 ASSERT(is_uint8(b1) && is_uint8(b2)); // wrong opcode |
| 1758 ASSERT(0 <= i && i < 8); // illegal stack offset |
| 1759 emit(b1); |
| 1760 emit(b2 + i); |
| 1761 } |
| 1762 |
| 1763 |
1367 // Relocation information implementations | 1764 // Relocation information implementations |
1368 | 1765 |
1369 void Assembler::RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data) { | 1766 void Assembler::RecordRelocInfo(RelocInfo::Mode rmode, intptr_t data) { |
1370 ASSERT(rmode != RelocInfo::NONE); | 1767 ASSERT(rmode != RelocInfo::NONE); |
1371 // Don't record external references unless the heap will be serialized. | 1768 // Don't record external references unless the heap will be serialized. |
1372 if (rmode == RelocInfo::EXTERNAL_REFERENCE && | 1769 if (rmode == RelocInfo::EXTERNAL_REFERENCE && |
1373 !Serializer::enabled() && | 1770 !Serializer::enabled() && |
1374 !FLAG_debug_code) { | 1771 !FLAG_debug_code) { |
1375 return; | 1772 return; |
1376 } | 1773 } |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1456 #include "register-allocator.h" | 1853 #include "register-allocator.h" |
1457 #include "runtime.h" | 1854 #include "runtime.h" |
1458 #include "scopes.h" | 1855 #include "scopes.h" |
1459 #include "serialize.h" | 1856 #include "serialize.h" |
1460 #include "stub-cache.h" | 1857 #include "stub-cache.h" |
1461 #include "unicode.h" | 1858 #include "unicode.h" |
1462 | 1859 |
1463 namespace v8 { | 1860 namespace v8 { |
1464 namespace internal { | 1861 namespace internal { |
1465 | 1862 |
1466 void ArgumentsAccessStub::GenerateNewObject(MacroAssembler* a) { | |
1467 UNIMPLEMENTED(); | |
1468 } | |
1469 | |
1470 void ArgumentsAccessStub::GenerateReadElement(MacroAssembler* a) { | |
1471 UNIMPLEMENTED(); | |
1472 } | |
1473 | |
1474 void ArgumentsAccessStub::GenerateReadLength(MacroAssembler* a) { | |
1475 UNIMPLEMENTED(); | |
1476 } | |
1477 | |
1478 | 1863 |
1479 void BreakLocationIterator::ClearDebugBreakAtReturn() { | 1864 void BreakLocationIterator::ClearDebugBreakAtReturn() { |
1480 UNIMPLEMENTED(); | 1865 UNIMPLEMENTED(); |
1481 } | 1866 } |
1482 | 1867 |
1483 bool BreakLocationIterator::IsDebugBreakAtReturn() { | 1868 bool BreakLocationIterator::IsDebugBreakAtReturn() { |
1484 UNIMPLEMENTED(); | 1869 UNIMPLEMENTED(); |
1485 return false; | 1870 return false; |
1486 } | 1871 } |
1487 | 1872 |
1488 void BreakLocationIterator::SetDebugBreakAtReturn() { | 1873 void BreakLocationIterator::SetDebugBreakAtReturn() { |
1489 UNIMPLEMENTED(); | 1874 UNIMPLEMENTED(); |
1490 } | 1875 } |
1491 | 1876 |
1492 void CallIC::Generate(MacroAssembler* a, int b, ExternalReference const& c) { | 1877 void CallIC::Generate(MacroAssembler* a, int b, ExternalReference const& c) { |
1493 UNIMPLEMENTED(); | 1878 UNIMPLEMENTED(); |
1494 } | 1879 } |
1495 | 1880 |
1496 void CallIC::GenerateMegamorphic(MacroAssembler* a, int b) { | 1881 void CallIC::GenerateMegamorphic(MacroAssembler* a, int b) { |
1497 UNIMPLEMENTED(); | 1882 UNIMPLEMENTED(); |
1498 } | 1883 } |
1499 | 1884 |
1500 void CallIC::GenerateNormal(MacroAssembler* a, int b) { | 1885 void CallIC::GenerateNormal(MacroAssembler* a, int b) { |
1501 UNIMPLEMENTED(); | 1886 UNIMPLEMENTED(); |
1502 } | 1887 } |
1503 | 1888 |
1504 Object* CallStubCompiler::CompileCallConstant(Object* a, | |
1505 JSObject* b, | |
1506 JSFunction* c, | |
1507 StubCompiler::CheckType d, | |
1508 Code::Flags flags) { | |
1509 UNIMPLEMENTED(); | |
1510 return NULL; | |
1511 } | |
1512 | |
1513 Object* CallStubCompiler::CompileCallField(Object* a, | |
1514 JSObject* b, | |
1515 int c, | |
1516 String* d, | |
1517 Code::Flags flags) { | |
1518 UNIMPLEMENTED(); | |
1519 return NULL; | |
1520 } | |
1521 | |
1522 Object* CallStubCompiler::CompileCallInterceptor(Object* a, | |
1523 JSObject* b, | |
1524 String* c) { | |
1525 UNIMPLEMENTED(); | |
1526 return NULL; | |
1527 } | |
1528 | |
1529 void JumpTarget::DoBind() { | 1889 void JumpTarget::DoBind() { |
1530 UNIMPLEMENTED(); | 1890 UNIMPLEMENTED(); |
1531 } | 1891 } |
1532 | 1892 |
1533 void JumpTarget::DoBranch(Condition a, Hint b) { | 1893 void JumpTarget::DoBranch(Condition a, Hint b) { |
1534 UNIMPLEMENTED(); | 1894 UNIMPLEMENTED(); |
1535 } | 1895 } |
1536 | 1896 |
1537 void JumpTarget::DoJump() { | 1897 void JumpTarget::DoJump() { |
1538 UNIMPLEMENTED(); | 1898 UNIMPLEMENTED(); |
1539 } | 1899 } |
1540 | 1900 |
1541 Object* LoadStubCompiler::CompileLoadCallback(JSObject* a, | |
1542 JSObject* b, | |
1543 AccessorInfo* c, | |
1544 String* d) { | |
1545 UNIMPLEMENTED(); | |
1546 return NULL; | |
1547 } | |
1548 | |
1549 Object* LoadStubCompiler::CompileLoadConstant(JSObject* a, | |
1550 JSObject* b, | |
1551 Object* c, | |
1552 String* d) { | |
1553 UNIMPLEMENTED(); | |
1554 return NULL; | |
1555 } | |
1556 | |
1557 Object* LoadStubCompiler::CompileLoadField(JSObject* a, | |
1558 JSObject* b, | |
1559 int c, | |
1560 String* d) { | |
1561 UNIMPLEMENTED(); | |
1562 return NULL; | |
1563 } | |
1564 | |
1565 Object* LoadStubCompiler::CompileLoadInterceptor(JSObject* a, | |
1566 JSObject* b, | |
1567 String* c) { | |
1568 UNIMPLEMENTED(); | |
1569 return NULL; | |
1570 } | |
1571 | |
1572 Object* StoreStubCompiler::CompileStoreCallback(JSObject* a, | |
1573 AccessorInfo* b, | |
1574 String* c) { | |
1575 UNIMPLEMENTED(); | |
1576 return NULL; | |
1577 } | |
1578 | |
1579 Object* StoreStubCompiler::CompileStoreField(JSObject* a, | |
1580 int b, | |
1581 Map* c, | |
1582 String* d) { | |
1583 UNIMPLEMENTED(); | |
1584 return NULL; | |
1585 } | |
1586 | |
1587 Object* StoreStubCompiler::CompileStoreInterceptor(JSObject* a, String* b) { | |
1588 UNIMPLEMENTED(); | |
1589 return NULL; | |
1590 } | |
1591 | |
1592 Object* StubCompiler::CompileLazyCompile(Code::Flags a) { | |
1593 UNIMPLEMENTED(); | |
1594 return NULL; | |
1595 } | |
1596 | 1901 |
1597 } } // namespace v8::internal | 1902 } } // namespace v8::internal |
OLD | NEW |