Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(313)

Side by Side Diff: src/assembler.cc

Issue 1235603002: Debugger: make debug code on-stack replacement more robust. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: rebase Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/assembler.h ('k') | src/debug.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « src/assembler.h ('k') | src/debug.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698