OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_DEBUG_H_ | 5 #ifndef V8_DEBUG_H_ |
6 #define V8_DEBUG_H_ | 6 #define V8_DEBUG_H_ |
7 | 7 |
8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
9 #include "src/arguments.h" | 9 #include "src/arguments.h" |
10 #include "src/assembler.h" | 10 #include "src/assembler.h" |
(...skipping 773 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
784 private: | 784 private: |
785 Debug* debug_; | 785 Debug* debug_; |
786 bool old_state_; | 786 bool old_state_; |
787 DISALLOW_COPY_AND_ASSIGN(SuppressDebug); | 787 DISALLOW_COPY_AND_ASSIGN(SuppressDebug); |
788 }; | 788 }; |
789 | 789 |
790 | 790 |
791 // Code generator routines. | 791 // Code generator routines. |
792 class DebugCodegen : public AllStatic { | 792 class DebugCodegen : public AllStatic { |
793 public: | 793 public: |
794 static void GenerateSlot(MacroAssembler* masm); | 794 enum SlotLocation { |
| 795 PLAIN_DEBUG_BREAK, |
| 796 DEBUG_BREAK_AT_CALL, |
| 797 DEBUG_BREAK_AT_CONSTRUCT_CALL |
| 798 }; |
| 799 |
| 800 static void GenerateSlot(MacroAssembler* masm, SlotLocation location, |
| 801 int call_argc = -1); |
795 static void GenerateReturnDebugBreak(MacroAssembler* masm); | 802 static void GenerateReturnDebugBreak(MacroAssembler* masm); |
796 static void GenerateSlotDebugBreak(MacroAssembler* masm); | 803 static void GenerateSlotDebugBreak(MacroAssembler* masm); |
797 static void GeneratePlainReturnLiveEdit(MacroAssembler* masm); | 804 static void GeneratePlainReturnLiveEdit(MacroAssembler* masm); |
798 | 805 |
799 // FrameDropper is a code replacement for a JavaScript frame with possibly | 806 // FrameDropper is a code replacement for a JavaScript frame with possibly |
800 // several frames above. | 807 // several frames above. |
801 // There is no calling conventions here, because it never actually gets | 808 // There is no calling conventions here, because it never actually gets |
802 // called, it only gets returned to. | 809 // called, it only gets returned to. |
803 static void GenerateFrameDropperLiveEdit(MacroAssembler* masm); | 810 static void GenerateFrameDropperLiveEdit(MacroAssembler* masm); |
| 811 |
| 812 private: |
| 813 static void RecordRelocInfo(MacroAssembler* masm, SlotLocation location, |
| 814 int call_argc); |
804 }; | 815 }; |
805 | 816 |
806 | 817 |
807 } } // namespace v8::internal | 818 } } // namespace v8::internal |
808 | 819 |
809 #endif // V8_DEBUG_H_ | 820 #endif // V8_DEBUG_H_ |
OLD | NEW |