OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 #if V8_TARGET_ARCH_PPC | 5 #if V8_TARGET_ARCH_PPC |
6 | 6 |
7 #include "src/codegen.h" | 7 #include "src/codegen.h" |
8 #include "src/debug/debug.h" | 8 #include "src/debug/debug.h" |
9 | 9 |
10 namespace v8 { | 10 namespace v8 { |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 // mtlr r0 | 57 // mtlr r0 |
58 // blrl | 58 // blrl |
59 // | 59 // |
60 Assembler::BlockTrampolinePoolScope block_trampoline_pool(patcher.masm()); | 60 Assembler::BlockTrampolinePoolScope block_trampoline_pool(patcher.masm()); |
61 patcher.masm()->mov(v8::internal::r0, | 61 patcher.masm()->mov(v8::internal::r0, |
62 Operand(reinterpret_cast<intptr_t>(code->entry()))); | 62 Operand(reinterpret_cast<intptr_t>(code->entry()))); |
63 patcher.masm()->mtctr(v8::internal::r0); | 63 patcher.masm()->mtctr(v8::internal::r0); |
64 patcher.masm()->bctrl(); | 64 patcher.masm()->bctrl(); |
65 } | 65 } |
66 | 66 |
| 67 bool DebugCodegen::DebugBreakSlotIsPatched(Address pc) { |
| 68 Instr current_instr = Assembler::instr_at(pc); |
| 69 return !Assembler::IsNop(current_instr, Assembler::DEBUG_BREAK_NOP); |
| 70 } |
67 | 71 |
68 void DebugCodegen::GenerateDebugBreakStub(MacroAssembler* masm, | 72 void DebugCodegen::GenerateDebugBreakStub(MacroAssembler* masm, |
69 DebugBreakCallHelperMode mode) { | 73 DebugBreakCallHelperMode mode) { |
70 __ RecordComment("Debug break"); | 74 __ RecordComment("Debug break"); |
71 { | 75 { |
72 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL); | 76 FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL); |
73 | 77 |
74 // Load padding words on stack. | 78 // Load padding words on stack. |
75 __ LoadSmiLiteral(ip, Smi::FromInt(LiveEdit::kFramePaddingValue)); | 79 __ LoadSmiLiteral(ip, Smi::FromInt(LiveEdit::kFramePaddingValue)); |
76 for (int i = 0; i < LiveEdit::kFramePaddingInitialSize; i++) { | 80 for (int i = 0; i < LiveEdit::kFramePaddingInitialSize; i++) { |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 } | 146 } |
143 | 147 |
144 | 148 |
145 const bool LiveEdit::kFrameDropperSupported = true; | 149 const bool LiveEdit::kFrameDropperSupported = true; |
146 | 150 |
147 #undef __ | 151 #undef __ |
148 } // namespace internal | 152 } // namespace internal |
149 } // namespace v8 | 153 } // namespace v8 |
150 | 154 |
151 #endif // V8_TARGET_ARCH_PPC | 155 #endif // V8_TARGET_ARCH_PPC |
OLD | NEW |