diff options
author | Michaël Zasso <targos@protonmail.com> | 2017-10-18 15:03:02 -0700 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2017-10-18 17:01:41 -0700 |
commit | 3d1b3df9486c0e7708065257f7311902f6b7b366 (patch) | |
tree | cb051bdeaead11e06dcd97725783e0f113afb1bf /deps/v8/src/debug/x64/debug-x64.cc | |
parent | e2cddbb8ccdb7b3c4a40c8acc630f68703bc77b5 (diff) | |
download | node-new-3d1b3df9486c0e7708065257f7311902f6b7b366.tar.gz |
deps: update V8 to 6.2.414.32
PR-URL: https://github.com/nodejs/node/pull/15362
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Diffstat (limited to 'deps/v8/src/debug/x64/debug-x64.cc')
-rw-r--r-- | deps/v8/src/debug/x64/debug-x64.cc | 83 |
1 files changed, 2 insertions, 81 deletions
diff --git a/deps/v8/src/debug/x64/debug-x64.cc b/deps/v8/src/debug/x64/debug-x64.cc index 3167b245bf..8432f43c19 100644 --- a/deps/v8/src/debug/x64/debug-x64.cc +++ b/deps/v8/src/debug/x64/debug-x64.cc @@ -9,6 +9,7 @@ #include "src/assembler.h" #include "src/codegen.h" #include "src/debug/liveedit.h" +#include "src/frames-inl.h" #include "src/objects-inl.h" namespace v8 { @@ -16,85 +17,6 @@ namespace internal { #define __ ACCESS_MASM(masm) - -void EmitDebugBreakSlot(MacroAssembler* masm) { - Label check_codesize; - __ bind(&check_codesize); - __ Nop(Assembler::kDebugBreakSlotLength); - DCHECK_EQ(Assembler::kDebugBreakSlotLength, - masm->SizeOfCodeGeneratedSince(&check_codesize)); -} - - -void DebugCodegen::GenerateSlot(MacroAssembler* masm, RelocInfo::Mode mode) { - // Generate enough nop's to make space for a call instruction. - masm->RecordDebugBreakSlot(mode); - EmitDebugBreakSlot(masm); -} - - -void DebugCodegen::ClearDebugBreakSlot(Isolate* isolate, Address pc) { - CodePatcher patcher(isolate, pc, Assembler::kDebugBreakSlotLength); - EmitDebugBreakSlot(patcher.masm()); -} - - -void DebugCodegen::PatchDebugBreakSlot(Isolate* isolate, Address pc, - Handle<Code> code) { - DCHECK(code->is_debug_stub()); - static const int kSize = Assembler::kDebugBreakSlotLength; - CodePatcher patcher(isolate, pc, kSize); - Label check_codesize; - patcher.masm()->bind(&check_codesize); - patcher.masm()->movp(kScratchRegister, reinterpret_cast<void*>(code->entry()), - Assembler::RelocInfoNone()); - patcher.masm()->call(kScratchRegister); - // Check that the size of the code generated is as expected. - DCHECK_EQ(kSize, patcher.masm()->SizeOfCodeGeneratedSince(&check_codesize)); -} - -bool DebugCodegen::DebugBreakSlotIsPatched(Address pc) { - return !Assembler::IsNop(pc); -} - -void DebugCodegen::GenerateDebugBreakStub(MacroAssembler* masm, - DebugBreakCallHelperMode mode) { - __ RecordComment("Debug break"); - - // Enter an internal frame. - { - FrameScope scope(masm, StackFrame::INTERNAL); - - // Push arguments for DebugBreak call. - if (mode == SAVE_RESULT_REGISTER) { - // Break on return. - __ Push(rax); - } else { - // Non-return breaks. - __ Push(masm->isolate()->factory()->the_hole_value()); - } - - __ CallRuntime(Runtime::kDebugBreak, 1, kDontSaveFPRegs); - - if (FLAG_debug_code) { - for (int i = 0; i < kNumJSCallerSaved; ++i) { - Register reg = {JSCallerSavedCode(i)}; - // Do not clobber rax if mode is SAVE_RESULT_REGISTER. It will - // contain return value of the function. - if (!(reg.is(rax) && (mode == SAVE_RESULT_REGISTER))) { - __ Set(reg, kDebugZapValue); - } - } - } - // Get rid of the internal frame. - } - - __ MaybeDropFrames(); - - // Return to caller. - __ ret(0); -} - void DebugCodegen::GenerateHandleDebuggerStatement(MacroAssembler* masm) { { FrameScope scope(masm, StackFrame::INTERNAL); @@ -121,8 +43,7 @@ void DebugCodegen::GenerateFrameDropperTrampoline(MacroAssembler* masm) { rbx, FieldOperand(rbx, SharedFunctionInfo::kFormalParameterCountOffset)); ParameterCount dummy(rbx); - __ InvokeFunction(rdi, no_reg, dummy, dummy, JUMP_FUNCTION, - CheckDebugStepCallWrapper()); + __ InvokeFunction(rdi, no_reg, dummy, dummy, JUMP_FUNCTION); } const bool LiveEdit::kFrameDropperSupported = true; |