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 756 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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_AT_POSITION: | 770 case DEBUG_BREAK_SLOT_AT_POSITION: |
771 return "debug break slot at position"; | 771 return "debug break slot at position"; |
772 case DEBUG_BREAK_SLOT_AT_CALL: | 772 case DEBUG_BREAK_SLOT_AT_CALL: |
773 return "debug break slot at call"; | 773 return "debug break slot at call"; |
774 case DEBUG_BREAK_SLOT_AT_CONSTRUCT_CALL: | 774 case DEBUG_BREAK_SLOT_AT_CONSTRUCT_CALL: |
775 return "debug break slot at construct call"; | 775 return "debug break slot at construct call"; |
776 case CODE_AGE_SEQUENCE: | 776 case CODE_AGE_SEQUENCE: |
777 return "code_age_sequence"; | 777 return "code age sequence"; |
| 778 case GENERATOR_CONTINUATION: |
| 779 return "generator continuation"; |
778 case NUMBER_OF_MODES: | 780 case NUMBER_OF_MODES: |
779 case PC_JUMP: | 781 case PC_JUMP: |
780 UNREACHABLE(); | 782 UNREACHABLE(); |
781 return "number_of_modes"; | 783 return "number_of_modes"; |
782 } | 784 } |
783 return "unknown relocation type"; | 785 return "unknown relocation type"; |
784 } | 786 } |
785 | 787 |
786 | 788 |
787 void RelocInfo::Print(Isolate* isolate, std::ostream& os) { // NOLINT | 789 void RelocInfo::Print(Isolate* isolate, std::ostream& os) { // NOLINT |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
862 case COMMENT: | 864 case COMMENT: |
863 case POSITION: | 865 case POSITION: |
864 case STATEMENT_POSITION: | 866 case STATEMENT_POSITION: |
865 case EXTERNAL_REFERENCE: | 867 case EXTERNAL_REFERENCE: |
866 case DEOPT_REASON: | 868 case DEOPT_REASON: |
867 case CONST_POOL: | 869 case CONST_POOL: |
868 case VENEER_POOL: | 870 case VENEER_POOL: |
869 case DEBUG_BREAK_SLOT_AT_POSITION: | 871 case DEBUG_BREAK_SLOT_AT_POSITION: |
870 case DEBUG_BREAK_SLOT_AT_CALL: | 872 case DEBUG_BREAK_SLOT_AT_CALL: |
871 case DEBUG_BREAK_SLOT_AT_CONSTRUCT_CALL: | 873 case DEBUG_BREAK_SLOT_AT_CONSTRUCT_CALL: |
| 874 case GENERATOR_CONTINUATION: |
872 case NONE32: | 875 case NONE32: |
873 case NONE64: | 876 case NONE64: |
874 break; | 877 break; |
875 case NUMBER_OF_MODES: | 878 case NUMBER_OF_MODES: |
876 case PC_JUMP: | 879 case PC_JUMP: |
877 UNREACHABLE(); | 880 UNREACHABLE(); |
878 break; | 881 break; |
879 case CODE_AGE_SEQUENCE: | 882 case CODE_AGE_SEQUENCE: |
880 DCHECK(Code::IsYoungSequence(isolate, pc_) || code_age_stub()->IsCode()); | 883 DCHECK(Code::IsYoungSequence(isolate, pc_) || code_age_stub()->IsCode()); |
881 break; | 884 break; |
(...skipping 921 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1803 } | 1806 } |
1804 | 1807 |
1805 | 1808 |
1806 void Assembler::RecordJSReturn() { | 1809 void Assembler::RecordJSReturn() { |
1807 positions_recorder()->WriteRecordedPositions(); | 1810 positions_recorder()->WriteRecordedPositions(); |
1808 EnsureSpace ensure_space(this); | 1811 EnsureSpace ensure_space(this); |
1809 RecordRelocInfo(RelocInfo::JS_RETURN); | 1812 RecordRelocInfo(RelocInfo::JS_RETURN); |
1810 } | 1813 } |
1811 | 1814 |
1812 | 1815 |
| 1816 void Assembler::RecordGeneratorContinuation() { |
| 1817 EnsureSpace ensure_space(this); |
| 1818 RecordRelocInfo(RelocInfo::GENERATOR_CONTINUATION); |
| 1819 } |
| 1820 |
| 1821 |
1813 void Assembler::RecordDebugBreakSlot() { | 1822 void Assembler::RecordDebugBreakSlot() { |
1814 EnsureSpace ensure_space(this); | 1823 EnsureSpace ensure_space(this); |
1815 RecordRelocInfo(RelocInfo::DEBUG_BREAK_SLOT_AT_POSITION); | 1824 RecordRelocInfo(RelocInfo::DEBUG_BREAK_SLOT_AT_POSITION); |
1816 } | 1825 } |
1817 | 1826 |
1818 | 1827 |
1819 void Assembler::RecordDebugBreakSlotForCall(int argc) { | 1828 void Assembler::RecordDebugBreakSlotForCall(int argc) { |
1820 EnsureSpace ensure_space(this); | 1829 EnsureSpace ensure_space(this); |
1821 intptr_t data = static_cast<intptr_t>(argc); | 1830 intptr_t data = static_cast<intptr_t>(argc); |
1822 RecordRelocInfo(RelocInfo::DEBUG_BREAK_SLOT_AT_CALL, data); | 1831 RecordRelocInfo(RelocInfo::DEBUG_BREAK_SLOT_AT_CALL, data); |
1823 } | 1832 } |
1824 | 1833 |
1825 | 1834 |
1826 void Assembler::RecordDebugBreakSlotForConstructCall() { | 1835 void Assembler::RecordDebugBreakSlotForConstructCall() { |
1827 EnsureSpace ensure_space(this); | 1836 EnsureSpace ensure_space(this); |
1828 RecordRelocInfo(RelocInfo::DEBUG_BREAK_SLOT_AT_CONSTRUCT_CALL); | 1837 RecordRelocInfo(RelocInfo::DEBUG_BREAK_SLOT_AT_CONSTRUCT_CALL); |
1829 } | 1838 } |
1830 | 1839 |
1831 | 1840 |
1832 void Assembler::DataAlign(int m) { | 1841 void Assembler::DataAlign(int m) { |
1833 DCHECK(m >= 2 && base::bits::IsPowerOfTwo32(m)); | 1842 DCHECK(m >= 2 && base::bits::IsPowerOfTwo32(m)); |
1834 while ((pc_offset() & (m - 1)) != 0) { | 1843 while ((pc_offset() & (m - 1)) != 0) { |
1835 db(0); | 1844 db(0); |
1836 } | 1845 } |
1837 } | 1846 } |
1838 } // namespace internal | 1847 } // namespace internal |
1839 } // namespace v8 | 1848 } // namespace v8 |
OLD | NEW |