| 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 |