Index: src/debug.cc |
diff --git a/src/debug.cc b/src/debug.cc |
index 3586a1836db64cf8ae8f721af0b6bdf33bbd5982..6e726fb9f60243ae0abf3453bcad764ef4d24e40 100644 |
--- a/src/debug.cc |
+++ b/src/debug.cc |
@@ -1893,6 +1893,9 @@ static void RedirectActivationsToRecompiledCodeOnThread( |
// Patch the return address to return into the code with |
// debug break slots. |
frame->set_pc(new_pc); |
+ if (FLAG_enable_ool_constant_pool) { |
danno
2014/07/29 13:24:08
Is this a change that is unrelated to the port (se
andrew_low
2014/07/30 13:27:05
Created https://codereview.chromium.org/430523002
|
+ frame->set_constant_pool(new_code->constant_pool()); |
+ } |
} |
} |
@@ -2317,7 +2320,12 @@ void Debug::SetAfterBreakTarget(JavaScriptFrame* frame) { |
// Find the call address in the running code. This address holds the call to |
// either a DebugBreakXXX or to the debug break return entry code if the |
// break point is still active after processing the break point. |
+#if V8_TARGET_ARCH_PPC |
+ // PPC has variable length call sequence |
+ Address addr = Assembler::target_address_from_return_address(frame->pc()); |
+#else |
Address addr = frame->pc() - Assembler::kPatchDebugBreakSlotReturnOffset; |
danno
2014/07/29 13:24:08
Could you please abstract this to Assembler? There
andrew_low
2014/07/30 13:27:05
Done.
|
+#endif |
// Check if the location is at JS exit or debug break slot. |
bool at_js_return = false; |
@@ -2340,7 +2348,7 @@ void Debug::SetAfterBreakTarget(JavaScriptFrame* frame) { |
// Handle the jump to continue execution after break point depending on the |
// break location. |
if (at_js_return) { |
- // If the break point as return is still active jump to the corresponding |
+ // If the break point at return is still active jump to the corresponding |
// place in the original code. If not the break point was removed during |
// break point processing. |
if (break_at_js_return_active) { |
@@ -2408,7 +2416,12 @@ bool Debug::IsBreakAtReturn(JavaScriptFrame* frame) { |
#endif |
// Find the call address in the running code. |
+#if V8_TARGET_ARCH_PPC |
danno
2014/07/29 13:24:08
See above
andrew_low
2014/07/30 13:27:05
Done.
|
+ // PPC has variable length call sequence |
+ Address addr = Assembler::target_address_from_return_address(frame->pc()); |
+#else |
Address addr = frame->pc() - Assembler::kPatchDebugBreakSlotReturnOffset; |
+#endif |
// Check if the location is at JS return. |
RelocIterator it(debug_info->code()); |