LCOV - code coverage report
Current view: top level - src/debug/x64 - debug-x64.cc (source / functions) Hit Total Coverage
Test: app.info Lines: 13 13 100.0 %
Date: 2017-10-20 Functions: 2 2 100.0 %

          Line data    Source code
       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
       3             : // found in the LICENSE file.
       4             : 
       5             : #if V8_TARGET_ARCH_X64
       6             : 
       7             : #include "src/debug/debug.h"
       8             : 
       9             : #include "src/assembler.h"
      10             : #include "src/debug/liveedit.h"
      11             : #include "src/frames-inl.h"
      12             : #include "src/macro-assembler.h"
      13             : #include "src/objects-inl.h"
      14             : 
      15             : namespace v8 {
      16             : namespace internal {
      17             : 
      18             : #define __ ACCESS_MASM(masm)
      19             : 
      20          31 : void DebugCodegen::GenerateHandleDebuggerStatement(MacroAssembler* masm) {
      21             :   {
      22          31 :     FrameScope scope(masm, StackFrame::INTERNAL);
      23          31 :     __ CallRuntime(Runtime::kHandleDebuggerStatement, 0);
      24             :   }
      25          31 :   __ MaybeDropFrames();
      26             : 
      27             :   // Return to caller.
      28          31 :   __ ret(0);
      29          31 : }
      30             : 
      31          31 : void DebugCodegen::GenerateFrameDropperTrampoline(MacroAssembler* masm) {
      32             :   // Frame is being dropped:
      33             :   // - Drop to the target frame specified by rbx.
      34             :   // - Look up current function on the frame.
      35             :   // - Leave the frame.
      36             :   // - Restart the frame by calling the function.
      37          31 :   __ movp(rbp, rbx);
      38          62 :   __ movp(rdi, Operand(rbp, JavaScriptFrameConstants::kFunctionOffset));
      39          31 :   __ leave();
      40             : 
      41             :   __ movp(rbx, FieldOperand(rdi, JSFunction::kSharedFunctionInfoOffset));
      42             :   __ movsxlq(
      43          31 :       rbx, FieldOperand(rbx, SharedFunctionInfo::kFormalParameterCountOffset));
      44             : 
      45             :   ParameterCount dummy(rbx);
      46          31 :   __ InvokeFunction(rdi, no_reg, dummy, dummy, JUMP_FUNCTION);
      47          31 : }
      48             : 
      49             : const bool LiveEdit::kFrameDropperSupported = true;
      50             : 
      51             : #undef __
      52             : 
      53             : }  // namespace internal
      54             : }  // namespace v8
      55             : 
      56             : #endif  // V8_TARGET_ARCH_X64

Generated by: LCOV version 1.10