| 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 742 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 753 case RUNTIME_ENTRY: | 753 case RUNTIME_ENTRY: |
| 754 return "runtime entry"; | 754 return "runtime entry"; |
| 755 case COMMENT: | 755 case COMMENT: |
| 756 return "comment"; | 756 return "comment"; |
| 757 case EXTERNAL_REFERENCE: | 757 case EXTERNAL_REFERENCE: |
| 758 return "external reference"; | 758 return "external reference"; |
| 759 case INTERNAL_REFERENCE: | 759 case INTERNAL_REFERENCE: |
| 760 return "internal reference"; | 760 return "internal reference"; |
| 761 case INTERNAL_REFERENCE_ENCODED: | 761 case INTERNAL_REFERENCE_ENCODED: |
| 762 return "encoded internal reference"; | 762 return "encoded internal reference"; |
| 763 case DEOPT_POSITION: | 763 case DEOPT_SCRIPT_OFFSET: |
| 764 return "deopt position"; | 764 return "deopt script offset"; |
| 765 case DEOPT_INLINING_ID: |
| 766 return "deopt inlining id"; |
| 765 case DEOPT_REASON: | 767 case DEOPT_REASON: |
| 766 return "deopt reason"; | 768 return "deopt reason"; |
| 767 case DEOPT_ID: | 769 case DEOPT_ID: |
| 768 return "deopt index"; | 770 return "deopt index"; |
| 769 case CONST_POOL: | 771 case CONST_POOL: |
| 770 return "constant pool"; | 772 return "constant pool"; |
| 771 case VENEER_POOL: | 773 case VENEER_POOL: |
| 772 return "veneer pool"; | 774 return "veneer pool"; |
| 773 case DEBUG_BREAK_SLOT_AT_POSITION: | 775 case DEBUG_BREAK_SLOT_AT_POSITION: |
| 774 return "debug break slot at position"; | 776 return "debug break slot at position"; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 794 return "number_of_modes"; | 796 return "number_of_modes"; |
| 795 } | 797 } |
| 796 return "unknown relocation type"; | 798 return "unknown relocation type"; |
| 797 } | 799 } |
| 798 | 800 |
| 799 | 801 |
| 800 void RelocInfo::Print(Isolate* isolate, std::ostream& os) { // NOLINT | 802 void RelocInfo::Print(Isolate* isolate, std::ostream& os) { // NOLINT |
| 801 os << static_cast<const void*>(pc_) << " " << RelocModeName(rmode_); | 803 os << static_cast<const void*>(pc_) << " " << RelocModeName(rmode_); |
| 802 if (IsComment(rmode_)) { | 804 if (IsComment(rmode_)) { |
| 803 os << " (" << reinterpret_cast<char*>(data_) << ")"; | 805 os << " (" << reinterpret_cast<char*>(data_) << ")"; |
| 804 } else if (rmode_ == DEOPT_POSITION) { | 806 } else if (rmode_ == DEOPT_SCRIPT_OFFSET || rmode_ == DEOPT_INLINING_ID) { |
| 805 os << " (" << data() << ")"; | 807 os << " (" << data() << ")"; |
| 806 } else if (rmode_ == DEOPT_REASON) { | 808 } else if (rmode_ == DEOPT_REASON) { |
| 807 os << " (" | 809 os << " (" |
| 808 << DeoptimizeReasonToString(static_cast<DeoptimizeReason>(data_)) << ")"; | 810 << DeoptimizeReasonToString(static_cast<DeoptimizeReason>(data_)) << ")"; |
| 809 } else if (rmode_ == EMBEDDED_OBJECT) { | 811 } else if (rmode_ == EMBEDDED_OBJECT) { |
| 810 os << " (" << Brief(target_object()) << ")"; | 812 os << " (" << Brief(target_object()) << ")"; |
| 811 } else if (rmode_ == EXTERNAL_REFERENCE) { | 813 } else if (rmode_ == EXTERNAL_REFERENCE) { |
| 812 ExternalReferenceEncoder ref_encoder(isolate); | 814 ExternalReferenceEncoder ref_encoder(isolate); |
| 813 os << " (" | 815 os << " (" |
| 814 << ref_encoder.NameOfAddress(isolate, target_external_reference()) | 816 << ref_encoder.NameOfAddress(isolate, target_external_reference()) |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 865 Address target = target_internal_reference(); | 867 Address target = target_internal_reference(); |
| 866 Address pc = target_internal_reference_address(); | 868 Address pc = target_internal_reference_address(); |
| 867 Code* code = Code::cast(isolate->FindCodeObject(pc)); | 869 Code* code = Code::cast(isolate->FindCodeObject(pc)); |
| 868 CHECK(target >= code->instruction_start()); | 870 CHECK(target >= code->instruction_start()); |
| 869 CHECK(target <= code->instruction_end()); | 871 CHECK(target <= code->instruction_end()); |
| 870 break; | 872 break; |
| 871 } | 873 } |
| 872 case RUNTIME_ENTRY: | 874 case RUNTIME_ENTRY: |
| 873 case COMMENT: | 875 case COMMENT: |
| 874 case EXTERNAL_REFERENCE: | 876 case EXTERNAL_REFERENCE: |
| 875 case DEOPT_POSITION: | 877 case DEOPT_SCRIPT_OFFSET: |
| 878 case DEOPT_INLINING_ID: |
| 876 case DEOPT_REASON: | 879 case DEOPT_REASON: |
| 877 case DEOPT_ID: | 880 case DEOPT_ID: |
| 878 case CONST_POOL: | 881 case CONST_POOL: |
| 879 case VENEER_POOL: | 882 case VENEER_POOL: |
| 880 case DEBUG_BREAK_SLOT_AT_POSITION: | 883 case DEBUG_BREAK_SLOT_AT_POSITION: |
| 881 case DEBUG_BREAK_SLOT_AT_RETURN: | 884 case DEBUG_BREAK_SLOT_AT_RETURN: |
| 882 case DEBUG_BREAK_SLOT_AT_CALL: | 885 case DEBUG_BREAK_SLOT_AT_CALL: |
| 883 case DEBUG_BREAK_SLOT_AT_TAIL_CALL: | 886 case DEBUG_BREAK_SLOT_AT_TAIL_CALL: |
| 884 case GENERATOR_CONTINUATION: | 887 case GENERATOR_CONTINUATION: |
| 885 case WASM_MEMORY_REFERENCE: | 888 case WASM_MEMORY_REFERENCE: |
| (...skipping 998 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1884 } | 1887 } |
| 1885 } | 1888 } |
| 1886 } | 1889 } |
| 1887 | 1890 |
| 1888 return !empty ? emitted_label_.pos() : 0; | 1891 return !empty ? emitted_label_.pos() : 0; |
| 1889 } | 1892 } |
| 1890 | 1893 |
| 1891 | 1894 |
| 1892 // Platform specific but identical code for all the platforms. | 1895 // Platform specific but identical code for all the platforms. |
| 1893 | 1896 |
| 1894 void Assembler::RecordDeoptReason(DeoptimizeReason reason, int raw_position, | 1897 void Assembler::RecordDeoptReason(DeoptimizeReason reason, |
| 1895 int id) { | 1898 SourcePosition position, int id) { |
| 1896 if (FLAG_trace_deopt || isolate()->is_profiling()) { | 1899 if (FLAG_trace_deopt || isolate()->is_profiling()) { |
| 1897 EnsureSpace ensure_space(this); | 1900 EnsureSpace ensure_space(this); |
| 1898 RecordRelocInfo(RelocInfo::DEOPT_POSITION, raw_position); | 1901 RecordRelocInfo(RelocInfo::DEOPT_SCRIPT_OFFSET, position.ScriptOffset()); |
| 1902 RecordRelocInfo(RelocInfo::DEOPT_INLINING_ID, position.InliningId()); |
| 1899 RecordRelocInfo(RelocInfo::DEOPT_REASON, static_cast<int>(reason)); | 1903 RecordRelocInfo(RelocInfo::DEOPT_REASON, static_cast<int>(reason)); |
| 1900 RecordRelocInfo(RelocInfo::DEOPT_ID, id); | 1904 RecordRelocInfo(RelocInfo::DEOPT_ID, id); |
| 1901 } | 1905 } |
| 1902 } | 1906 } |
| 1903 | 1907 |
| 1904 | 1908 |
| 1905 void Assembler::RecordComment(const char* msg) { | 1909 void Assembler::RecordComment(const char* msg) { |
| 1906 if (FLAG_code_comments) { | 1910 if (FLAG_code_comments) { |
| 1907 EnsureSpace ensure_space(this); | 1911 EnsureSpace ensure_space(this); |
| 1908 RecordRelocInfo(RelocInfo::COMMENT, reinterpret_cast<intptr_t>(msg)); | 1912 RecordRelocInfo(RelocInfo::COMMENT, reinterpret_cast<intptr_t>(msg)); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1924 | 1928 |
| 1925 | 1929 |
| 1926 void Assembler::DataAlign(int m) { | 1930 void Assembler::DataAlign(int m) { |
| 1927 DCHECK(m >= 2 && base::bits::IsPowerOfTwo32(m)); | 1931 DCHECK(m >= 2 && base::bits::IsPowerOfTwo32(m)); |
| 1928 while ((pc_offset() & (m - 1)) != 0) { | 1932 while ((pc_offset() & (m - 1)) != 0) { |
| 1929 db(0); | 1933 db(0); |
| 1930 } | 1934 } |
| 1931 } | 1935 } |
| 1932 } // namespace internal | 1936 } // namespace internal |
| 1933 } // namespace v8 | 1937 } // namespace v8 |
| OLD | NEW |