diff options
author | Ben Murdoch <benm@google.com> | 2010-06-15 11:15:29 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2010-06-15 11:22:44 +0100 |
commit | 7f4d5bd8c03935e2c0cd412e561b8fc5a6a880ae (patch) | |
tree | 59a0ccf5c23a6f5890b81f4a6aa99b568c8115f2 /src/debug.h | |
parent | f7060e27768c550ace7ec48ad8c093466db52dfa (diff) | |
download | android_external_v8-7f4d5bd8c03935e2c0cd412e561b8fc5a6a880ae.tar.gz android_external_v8-7f4d5bd8c03935e2c0cd412e561b8fc5a6a880ae.tar.bz2 android_external_v8-7f4d5bd8c03935e2c0cd412e561b8fc5a6a880ae.zip |
Update V8 to r4851 as required by WebKit r61121
Change-Id: Ib01b7c8e38d5b82b254192fc06365aa5b85780c5
Diffstat (limited to 'src/debug.h')
-rw-r--r-- | src/debug.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/debug.h b/src/debug.h index e2eecb8b..1c674711 100644 --- a/src/debug.h +++ b/src/debug.h @@ -146,6 +146,11 @@ class BreakLocationIterator { void SetDebugBreakAtReturn(); void ClearDebugBreakAtReturn(); + bool IsDebugBreakSlot(); + bool IsDebugBreakAtSlot(); + void SetDebugBreakAtSlot(); + void ClearDebugBreakAtSlot(); + DISALLOW_COPY_AND_ASSIGN(BreakLocationIterator); }; @@ -265,6 +270,9 @@ class Debug { // Check whether a global object is the debug global object. static bool IsDebugGlobal(GlobalObject* global); + // Check whether this frame is just about to return. + static bool IsBreakAtReturn(JavaScriptFrame* frame); + // Fast check to see if any break points are active. inline static bool has_break_points() { return has_break_points_; } @@ -323,6 +331,7 @@ class Debug { enum AddressId { k_after_break_target_address, k_debug_break_return_address, + k_debug_break_slot_address, k_register_address }; @@ -342,6 +351,12 @@ class Debug { return &debug_break_return_; } + // Access to the debug break in debug break slot code. + static Code* debug_break_slot() { return debug_break_slot_; } + static Code** debug_break_slot_address() { + return &debug_break_slot_; + } + static const int kEstimatedNofDebugInfoEntries = 16; static const int kEstimatedNofBreakPointsInFunction = 16; @@ -370,6 +385,7 @@ class Debug { static void AfterGarbageCollection(); // Code generator routines. + static void GenerateSlot(MacroAssembler* masm); static void GenerateLoadICDebugBreak(MacroAssembler* masm); static void GenerateStoreICDebugBreak(MacroAssembler* masm); static void GenerateKeyedLoadICDebugBreak(MacroAssembler* masm); @@ -377,6 +393,7 @@ class Debug { static void GenerateConstructCallDebugBreak(MacroAssembler* masm); static void GenerateReturnDebugBreak(MacroAssembler* masm); static void GenerateStubNoRegistersDebugBreak(MacroAssembler* masm); + static void GenerateSlotDebugBreak(MacroAssembler* masm); static void GeneratePlainReturnLiveEdit(MacroAssembler* masm); static void GenerateFrameDropperLiveEdit(MacroAssembler* masm); @@ -472,6 +489,9 @@ class Debug { // Code to call for handling debug break on return. static Code* debug_break_return_; + // Code to call for handling debug break in debug break slots. + static Code* debug_break_slot_; + DISALLOW_COPY_AND_ASSIGN(Debug); }; @@ -895,6 +915,8 @@ class Debug_Address { return reinterpret_cast<Address>(Debug::after_break_target_address()); case Debug::k_debug_break_return_address: return reinterpret_cast<Address>(Debug::debug_break_return_address()); + case Debug::k_debug_break_slot_address: + return reinterpret_cast<Address>(Debug::debug_break_slot_address()); case Debug::k_register_address: return reinterpret_cast<Address>(Debug::register_address(reg_)); default: |