OLD | NEW |
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. | 1 // Copyright (c) 1994-2006 Sun Microsystems Inc. |
2 // All Rights Reserved. | 2 // All Rights Reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // met: |
7 // | 7 // |
8 // - Redistributions of source code must retain the above copyright notice, | 8 // - Redistributions of source code must retain the above copyright notice, |
9 // this list of conditions and the following disclaimer. | 9 // this list of conditions and the following disclaimer. |
10 // | 10 // |
(...skipping 761 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
772 switch (rmode) { | 772 switch (rmode) { |
773 case RelocInfo::NONE32: | 773 case RelocInfo::NONE32: |
774 return "no reloc 32"; | 774 return "no reloc 32"; |
775 case RelocInfo::NONE64: | 775 case RelocInfo::NONE64: |
776 return "no reloc 64"; | 776 return "no reloc 64"; |
777 case RelocInfo::EMBEDDED_OBJECT: | 777 case RelocInfo::EMBEDDED_OBJECT: |
778 return "embedded object"; | 778 return "embedded object"; |
779 case RelocInfo::CONSTRUCT_CALL: | 779 case RelocInfo::CONSTRUCT_CALL: |
780 return "code target (js construct call)"; | 780 return "code target (js construct call)"; |
781 case RelocInfo::DEBUG_BREAK: | 781 case RelocInfo::DEBUG_BREAK: |
782 #ifndef ENABLE_DEBUGGER_SUPPORT | |
783 UNREACHABLE(); | |
784 #endif | |
785 return "debug break"; | 782 return "debug break"; |
786 case RelocInfo::CODE_TARGET: | 783 case RelocInfo::CODE_TARGET: |
787 return "code target"; | 784 return "code target"; |
788 case RelocInfo::CODE_TARGET_WITH_ID: | 785 case RelocInfo::CODE_TARGET_WITH_ID: |
789 return "code target with id"; | 786 return "code target with id"; |
790 case RelocInfo::CELL: | 787 case RelocInfo::CELL: |
791 return "property cell"; | 788 return "property cell"; |
792 case RelocInfo::RUNTIME_ENTRY: | 789 case RelocInfo::RUNTIME_ENTRY: |
793 return "runtime entry"; | 790 return "runtime entry"; |
794 case RelocInfo::JS_RETURN: | 791 case RelocInfo::JS_RETURN: |
795 return "js return"; | 792 return "js return"; |
796 case RelocInfo::COMMENT: | 793 case RelocInfo::COMMENT: |
797 return "comment"; | 794 return "comment"; |
798 case RelocInfo::POSITION: | 795 case RelocInfo::POSITION: |
799 return "position"; | 796 return "position"; |
800 case RelocInfo::STATEMENT_POSITION: | 797 case RelocInfo::STATEMENT_POSITION: |
801 return "statement position"; | 798 return "statement position"; |
802 case RelocInfo::EXTERNAL_REFERENCE: | 799 case RelocInfo::EXTERNAL_REFERENCE: |
803 return "external reference"; | 800 return "external reference"; |
804 case RelocInfo::INTERNAL_REFERENCE: | 801 case RelocInfo::INTERNAL_REFERENCE: |
805 return "internal reference"; | 802 return "internal reference"; |
806 case RelocInfo::CONST_POOL: | 803 case RelocInfo::CONST_POOL: |
807 return "constant pool"; | 804 return "constant pool"; |
808 case RelocInfo::VENEER_POOL: | 805 case RelocInfo::VENEER_POOL: |
809 return "veneer pool"; | 806 return "veneer pool"; |
810 case RelocInfo::DEBUG_BREAK_SLOT: | 807 case RelocInfo::DEBUG_BREAK_SLOT: |
811 #ifndef ENABLE_DEBUGGER_SUPPORT | |
812 UNREACHABLE(); | |
813 #endif | |
814 return "debug break slot"; | 808 return "debug break slot"; |
815 case RelocInfo::CODE_AGE_SEQUENCE: | 809 case RelocInfo::CODE_AGE_SEQUENCE: |
816 return "code_age_sequence"; | 810 return "code_age_sequence"; |
817 case RelocInfo::NUMBER_OF_MODES: | 811 case RelocInfo::NUMBER_OF_MODES: |
818 UNREACHABLE(); | 812 UNREACHABLE(); |
819 return "number_of_modes"; | 813 return "number_of_modes"; |
820 } | 814 } |
821 return "unknown relocation type"; | 815 return "unknown relocation type"; |
822 } | 816 } |
823 | 817 |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
862 #ifdef VERIFY_HEAP | 856 #ifdef VERIFY_HEAP |
863 void RelocInfo::Verify() { | 857 void RelocInfo::Verify() { |
864 switch (rmode_) { | 858 switch (rmode_) { |
865 case EMBEDDED_OBJECT: | 859 case EMBEDDED_OBJECT: |
866 Object::VerifyPointer(target_object()); | 860 Object::VerifyPointer(target_object()); |
867 break; | 861 break; |
868 case CELL: | 862 case CELL: |
869 Object::VerifyPointer(target_cell()); | 863 Object::VerifyPointer(target_cell()); |
870 break; | 864 break; |
871 case DEBUG_BREAK: | 865 case DEBUG_BREAK: |
872 #ifndef ENABLE_DEBUGGER_SUPPORT | |
873 UNREACHABLE(); | |
874 break; | |
875 #endif | |
876 case CONSTRUCT_CALL: | 866 case CONSTRUCT_CALL: |
877 case CODE_TARGET_WITH_ID: | 867 case CODE_TARGET_WITH_ID: |
878 case CODE_TARGET: { | 868 case CODE_TARGET: { |
879 // convert inline target address to code object | 869 // convert inline target address to code object |
880 Address addr = target_address(); | 870 Address addr = target_address(); |
881 CHECK(addr != NULL); | 871 CHECK(addr != NULL); |
882 // Check that we can find the right code object. | 872 // Check that we can find the right code object. |
883 Code* code = Code::GetCodeFromTargetAddress(addr); | 873 Code* code = Code::GetCodeFromTargetAddress(addr); |
884 Object* found = code->GetIsolate()->FindCodeObject(addr); | 874 Object* found = code->GetIsolate()->FindCodeObject(addr); |
885 CHECK(found->IsCode()); | 875 CHECK(found->IsCode()); |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1007 | 997 |
1008 ExternalReference ExternalReference::isolate_address(Isolate* isolate) { | 998 ExternalReference ExternalReference::isolate_address(Isolate* isolate) { |
1009 return ExternalReference(isolate); | 999 return ExternalReference(isolate); |
1010 } | 1000 } |
1011 | 1001 |
1012 | 1002 |
1013 ExternalReference::ExternalReference(const IC_Utility& ic_utility, | 1003 ExternalReference::ExternalReference(const IC_Utility& ic_utility, |
1014 Isolate* isolate) | 1004 Isolate* isolate) |
1015 : address_(Redirect(isolate, ic_utility.address())) {} | 1005 : address_(Redirect(isolate, ic_utility.address())) {} |
1016 | 1006 |
1017 #ifdef ENABLE_DEBUGGER_SUPPORT | |
1018 ExternalReference::ExternalReference(const Debug_Address& debug_address, | 1007 ExternalReference::ExternalReference(const Debug_Address& debug_address, |
1019 Isolate* isolate) | 1008 Isolate* isolate) |
1020 : address_(debug_address.address(isolate)) {} | 1009 : address_(debug_address.address(isolate)) {} |
1021 #endif | |
1022 | 1010 |
1023 ExternalReference::ExternalReference(StatsCounter* counter) | 1011 ExternalReference::ExternalReference(StatsCounter* counter) |
1024 : address_(reinterpret_cast<Address>(counter->GetInternalPointer())) {} | 1012 : address_(reinterpret_cast<Address>(counter->GetInternalPointer())) {} |
1025 | 1013 |
1026 | 1014 |
1027 ExternalReference::ExternalReference(Isolate::AddressId id, Isolate* isolate) | 1015 ExternalReference::ExternalReference(Isolate::AddressId id, Isolate* isolate) |
1028 : address_(isolate->get_address_from_id(id)) {} | 1016 : address_(isolate->get_address_from_id(id)) {} |
1029 | 1017 |
1030 | 1018 |
1031 ExternalReference::ExternalReference(const SCTableReference& table_ref) | 1019 ExternalReference::ExternalReference(const SCTableReference& table_ref) |
(...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1519 | 1507 |
1520 | 1508 |
1521 ExternalReference ExternalReference::mod_two_doubles_operation( | 1509 ExternalReference ExternalReference::mod_two_doubles_operation( |
1522 Isolate* isolate) { | 1510 Isolate* isolate) { |
1523 return ExternalReference(Redirect(isolate, | 1511 return ExternalReference(Redirect(isolate, |
1524 FUNCTION_ADDR(modulo), | 1512 FUNCTION_ADDR(modulo), |
1525 BUILTIN_FP_FP_CALL)); | 1513 BUILTIN_FP_FP_CALL)); |
1526 } | 1514 } |
1527 | 1515 |
1528 | 1516 |
1529 #ifdef ENABLE_DEBUGGER_SUPPORT | |
1530 ExternalReference ExternalReference::debug_break(Isolate* isolate) { | 1517 ExternalReference ExternalReference::debug_break(Isolate* isolate) { |
1531 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(Debug_Break))); | 1518 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(Debug_Break))); |
1532 } | 1519 } |
1533 | 1520 |
1534 | 1521 |
1535 ExternalReference ExternalReference::debug_step_in_fp_address( | 1522 ExternalReference ExternalReference::debug_step_in_fp_address( |
1536 Isolate* isolate) { | 1523 Isolate* isolate) { |
1537 return ExternalReference(isolate->debug()->step_in_fp_addr()); | 1524 return ExternalReference(isolate->debug()->step_in_fp_addr()); |
1538 } | 1525 } |
1539 #endif | |
1540 | 1526 |
1541 | 1527 |
1542 void PositionsRecorder::RecordPosition(int pos) { | 1528 void PositionsRecorder::RecordPosition(int pos) { |
1543 ASSERT(pos != RelocInfo::kNoPosition); | 1529 ASSERT(pos != RelocInfo::kNoPosition); |
1544 ASSERT(pos >= 0); | 1530 ASSERT(pos >= 0); |
1545 state_.current_position = pos; | 1531 state_.current_position = pos; |
1546 #ifdef ENABLE_GDB_JIT_INTERFACE | 1532 #ifdef ENABLE_GDB_JIT_INTERFACE |
1547 if (gdbjit_lineinfo_ != NULL) { | 1533 if (gdbjit_lineinfo_ != NULL) { |
1548 gdbjit_lineinfo_->SetPosition(assembler_->pc_offset(), pos, false); | 1534 gdbjit_lineinfo_->SetPosition(assembler_->pc_offset(), pos, false); |
1549 } | 1535 } |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1627 r2 = r2 - ad; | 1613 r2 = r2 - ad; |
1628 } | 1614 } |
1629 delta = ad - r2; | 1615 delta = ad - r2; |
1630 } while (q1 < delta || (q1 == delta && r1 == 0)); | 1616 } while (q1 < delta || (q1 == delta && r1 == 0)); |
1631 int32_t mul = static_cast<int32_t>(q2 + 1); | 1617 int32_t mul = static_cast<int32_t>(q2 + 1); |
1632 multiplier_ = (d < 0) ? -mul : mul; | 1618 multiplier_ = (d < 0) ? -mul : mul; |
1633 shift_ = p - 32; | 1619 shift_ = p - 32; |
1634 } | 1620 } |
1635 | 1621 |
1636 } } // namespace v8::internal | 1622 } } // namespace v8::internal |
OLD | NEW |