| 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 #if V8_TARGET_ARCH_MIPS64 | 5 #if V8_TARGET_ARCH_MIPS64 |
| 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 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 // nop(DEBUG_BREAK_NOP) | 51 // nop(DEBUG_BREAK_NOP) |
| 52 // to a call to the debug break slot code. | 52 // to a call to the debug break slot code. |
| 53 // li t9, address (4-instruction sequence on mips64) | 53 // li t9, address (4-instruction sequence on mips64) |
| 54 // call t9 (jalr t9 / nop instruction pair) | 54 // call t9 (jalr t9 / nop instruction pair) |
| 55 patcher.masm()->li(v8::internal::t9, | 55 patcher.masm()->li(v8::internal::t9, |
| 56 Operand(reinterpret_cast<int64_t>(code->entry())), | 56 Operand(reinterpret_cast<int64_t>(code->entry())), |
| 57 ADDRESS_LOAD); | 57 ADDRESS_LOAD); |
| 58 patcher.masm()->Call(v8::internal::t9); | 58 patcher.masm()->Call(v8::internal::t9); |
| 59 } | 59 } |
| 60 | 60 |
| 61 bool DebugCodegen::DebugBreakSlotIsPatched(Address pc) { |
| 62 Instr current_instr = Assembler::instr_at(pc); |
| 63 return !Assembler::IsNop(current_instr, Assembler::DEBUG_BREAK_NOP); |
| 64 } |
| 61 | 65 |
| 62 void DebugCodegen::GenerateDebugBreakStub(MacroAssembler* masm, | 66 void DebugCodegen::GenerateDebugBreakStub(MacroAssembler* masm, |
| 63 DebugBreakCallHelperMode mode) { | 67 DebugBreakCallHelperMode mode) { |
| 64 __ RecordComment("Debug break"); | 68 __ RecordComment("Debug break"); |
| 65 { | 69 { |
| 66 FrameScope scope(masm, StackFrame::INTERNAL); | 70 FrameScope scope(masm, StackFrame::INTERNAL); |
| 67 | 71 |
| 68 // Load padding words on stack. | 72 // Load padding words on stack. |
| 69 __ li(at, Operand(Smi::FromInt(LiveEdit::kFramePaddingValue))); | 73 __ li(at, Operand(Smi::FromInt(LiveEdit::kFramePaddingValue))); |
| 70 __ Dsubu(sp, sp, | 74 __ Dsubu(sp, sp, |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 | 140 |
| 137 | 141 |
| 138 const bool LiveEdit::kFrameDropperSupported = true; | 142 const bool LiveEdit::kFrameDropperSupported = true; |
| 139 | 143 |
| 140 #undef __ | 144 #undef __ |
| 141 | 145 |
| 142 } // namespace internal | 146 } // namespace internal |
| 143 } // namespace v8 | 147 } // namespace v8 |
| 144 | 148 |
| 145 #endif // V8_TARGET_ARCH_MIPS64 | 149 #endif // V8_TARGET_ARCH_MIPS64 |
| OLD | NEW |