| 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 |