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 752 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
763 return "encoded internal reference"; | 763 return "encoded internal reference"; |
764 case DEOPT_REASON: | 764 case DEOPT_REASON: |
765 return "deopt reason"; | 765 return "deopt reason"; |
766 case CONST_POOL: | 766 case CONST_POOL: |
767 return "constant pool"; | 767 return "constant pool"; |
768 case VENEER_POOL: | 768 case VENEER_POOL: |
769 return "veneer pool"; | 769 return "veneer pool"; |
770 case DEBUG_BREAK_SLOT: | 770 case DEBUG_BREAK_SLOT: |
771 return "debug break slot"; | 771 return "debug break slot"; |
772 case CODE_AGE_SEQUENCE: | 772 case CODE_AGE_SEQUENCE: |
773 return "code_age_sequence"; | 773 return "code age sequence"; |
| 774 case GENERATOR_CONTINUATION: |
| 775 return "generator continuation"; |
774 case NUMBER_OF_MODES: | 776 case NUMBER_OF_MODES: |
775 case PC_JUMP: | 777 case PC_JUMP: |
776 UNREACHABLE(); | 778 UNREACHABLE(); |
777 return "number_of_modes"; | 779 return "number_of_modes"; |
778 } | 780 } |
779 return "unknown relocation type"; | 781 return "unknown relocation type"; |
780 } | 782 } |
781 | 783 |
782 | 784 |
783 void RelocInfo::Print(Isolate* isolate, std::ostream& os) { // NOLINT | 785 void RelocInfo::Print(Isolate* isolate, std::ostream& os) { // NOLINT |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
864 case RUNTIME_ENTRY: | 866 case RUNTIME_ENTRY: |
865 case JS_RETURN: | 867 case JS_RETURN: |
866 case COMMENT: | 868 case COMMENT: |
867 case POSITION: | 869 case POSITION: |
868 case STATEMENT_POSITION: | 870 case STATEMENT_POSITION: |
869 case EXTERNAL_REFERENCE: | 871 case EXTERNAL_REFERENCE: |
870 case DEOPT_REASON: | 872 case DEOPT_REASON: |
871 case CONST_POOL: | 873 case CONST_POOL: |
872 case VENEER_POOL: | 874 case VENEER_POOL: |
873 case DEBUG_BREAK_SLOT: | 875 case DEBUG_BREAK_SLOT: |
| 876 case GENERATOR_CONTINUATION: |
874 case NONE32: | 877 case NONE32: |
875 case NONE64: | 878 case NONE64: |
876 break; | 879 break; |
877 case NUMBER_OF_MODES: | 880 case NUMBER_OF_MODES: |
878 case PC_JUMP: | 881 case PC_JUMP: |
879 UNREACHABLE(); | 882 UNREACHABLE(); |
880 break; | 883 break; |
881 case CODE_AGE_SEQUENCE: | 884 case CODE_AGE_SEQUENCE: |
882 DCHECK(Code::IsYoungSequence(isolate, pc_) || code_age_stub()->IsCode()); | 885 DCHECK(Code::IsYoungSequence(isolate, pc_) || code_age_stub()->IsCode()); |
883 break; | 886 break; |
(...skipping 930 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1814 } | 1817 } |
1815 | 1818 |
1816 | 1819 |
1817 void Assembler::RecordJSReturn() { | 1820 void Assembler::RecordJSReturn() { |
1818 positions_recorder()->WriteRecordedPositions(); | 1821 positions_recorder()->WriteRecordedPositions(); |
1819 EnsureSpace ensure_space(this); | 1822 EnsureSpace ensure_space(this); |
1820 RecordRelocInfo(RelocInfo::JS_RETURN); | 1823 RecordRelocInfo(RelocInfo::JS_RETURN); |
1821 } | 1824 } |
1822 | 1825 |
1823 | 1826 |
| 1827 void Assembler::RecordGeneratorContinuation() { |
| 1828 EnsureSpace ensure_space(this); |
| 1829 RecordRelocInfo(RelocInfo::GENERATOR_CONTINUATION); |
| 1830 } |
| 1831 |
| 1832 |
1824 void Assembler::RecordDebugBreakSlot() { | 1833 void Assembler::RecordDebugBreakSlot() { |
1825 EnsureSpace ensure_space(this); | 1834 EnsureSpace ensure_space(this); |
1826 intptr_t data = static_cast<intptr_t>(RelocInfo::kDebugBreakNonCallSentinel); | 1835 intptr_t data = static_cast<intptr_t>(RelocInfo::kDebugBreakNonCallSentinel); |
1827 RecordRelocInfo(RelocInfo::DEBUG_BREAK_SLOT, data); | 1836 RecordRelocInfo(RelocInfo::DEBUG_BREAK_SLOT, data); |
1828 } | 1837 } |
1829 | 1838 |
1830 | 1839 |
1831 void Assembler::RecordDebugBreakSlotForCall(int argc) { | 1840 void Assembler::RecordDebugBreakSlotForCall(int argc) { |
1832 EnsureSpace ensure_space(this); | 1841 EnsureSpace ensure_space(this); |
1833 intptr_t data = static_cast<intptr_t>(argc); | 1842 intptr_t data = static_cast<intptr_t>(argc); |
(...skipping 10 matching lines...) Expand all Loading... |
1844 | 1853 |
1845 | 1854 |
1846 void Assembler::DataAlign(int m) { | 1855 void Assembler::DataAlign(int m) { |
1847 DCHECK(m >= 2 && base::bits::IsPowerOfTwo32(m)); | 1856 DCHECK(m >= 2 && base::bits::IsPowerOfTwo32(m)); |
1848 while ((pc_offset() & (m - 1)) != 0) { | 1857 while ((pc_offset() & (m - 1)) != 0) { |
1849 db(0); | 1858 db(0); |
1850 } | 1859 } |
1851 } | 1860 } |
1852 } // namespace internal | 1861 } // namespace internal |
1853 } // namespace v8 | 1862 } // namespace v8 |
OLD | NEW |