LCOV - code coverage report
Current view: top level - src - code-desc.cc (source / functions) Hit Total Coverage
Test: app.info Lines: 19 19 100.0 %
Date: 2019-04-19 Functions: 2 2 100.0 %

          Line data    Source code
       1             : // Copyright 2019 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             : #include "src/code-desc.h"
       6             : 
       7             : #include "src/assembler-inl.h"
       8             : 
       9             : namespace v8 {
      10             : namespace internal {
      11             : 
      12             : // static
      13     3343083 : void CodeDesc::Initialize(CodeDesc* desc, Assembler* assembler,
      14             :                           int safepoint_table_offset, int handler_table_offset,
      15             :                           int constant_pool_offset, int code_comments_offset,
      16             :                           int reloc_info_offset) {
      17     3343342 :   desc->buffer = assembler->buffer_start();
      18     3344065 :   desc->buffer_size = assembler->buffer_size();
      19     3344065 :   desc->instr_size = assembler->instruction_size();
      20             : 
      21     3344065 :   desc->code_comments_offset = code_comments_offset;
      22     3344065 :   desc->code_comments_size = desc->instr_size - code_comments_offset;
      23             : 
      24     3344065 :   desc->constant_pool_offset = constant_pool_offset;
      25     3344065 :   desc->constant_pool_size = desc->code_comments_offset - constant_pool_offset;
      26             : 
      27     3344065 :   desc->handler_table_offset = handler_table_offset;
      28     3344065 :   desc->handler_table_size = desc->constant_pool_offset - handler_table_offset;
      29             : 
      30     3344065 :   desc->safepoint_table_offset = safepoint_table_offset;
      31             :   desc->safepoint_table_size =
      32     3344065 :       desc->handler_table_offset - safepoint_table_offset;
      33             : 
      34     3344065 :   desc->reloc_offset = reloc_info_offset;
      35     3344065 :   desc->reloc_size = desc->buffer_size - reloc_info_offset;
      36             : 
      37     3344065 :   desc->unwinding_info_size = 0;
      38     3344065 :   desc->unwinding_info = nullptr;
      39             : 
      40     3344065 :   desc->origin = assembler;
      41             : 
      42             :   CodeDesc::Verify(desc);
      43     3344065 : }
      44             : 
      45             : #ifdef DEBUG
      46             : // static
      47             : void CodeDesc::Verify(const CodeDesc* desc) {
      48             :   // Zero-size code objects upset the system.
      49             :   DCHECK_GT(desc->instr_size, 0);
      50             :   DCHECK_NOT_NULL(desc->buffer);
      51             : 
      52             :   // Instruction area layout invariants.
      53             :   DCHECK_GE(desc->safepoint_table_size, 0);
      54             :   DCHECK_EQ(desc->safepoint_table_size + desc->safepoint_table_offset,
      55             :             desc->handler_table_offset);
      56             :   DCHECK_GE(desc->handler_table_size, 0);
      57             :   DCHECK_EQ(desc->handler_table_size + desc->handler_table_offset,
      58             :             desc->constant_pool_offset);
      59             :   DCHECK_GE(desc->constant_pool_size, 0);
      60             :   DCHECK_EQ(desc->constant_pool_size + desc->constant_pool_offset,
      61             :             desc->code_comments_offset);
      62             :   DCHECK_GE(desc->code_comments_size, 0);
      63             :   DCHECK_EQ(desc->code_comments_size + desc->code_comments_offset,
      64             :             desc->instr_size);
      65             : 
      66             :   DCHECK_GE(desc->reloc_offset, 0);
      67             :   DCHECK_GE(desc->reloc_size, 0);
      68             :   DCHECK_GE(desc->unwinding_info_size, 0);
      69             : }
      70             : #endif
      71             : 
      72             : }  // namespace internal
      73      122036 : }  // namespace v8

Generated by: LCOV version 1.10