LCOV - code coverage report
Current view: top level - lib/Support - LEB128.cpp (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 12 12 100.0 %
Date: 2018-02-22 04:41:24 Functions: 2 2 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //===- LEB128.cpp - LEB128 utility functions implementation -----*- C++ -*-===//
       2             : //
       3             : //                     The LLVM Compiler Infrastructure
       4             : //
       5             : // This file is distributed under the University of Illinois Open Source
       6             : // License. See LICENSE.TXT for details.
       7             : //
       8             : //===----------------------------------------------------------------------===//
       9             : //
      10             : // This file implements some utility functions for encoding SLEB128 and
      11             : // ULEB128 values.
      12             : //
      13             : //===----------------------------------------------------------------------===//
      14             : 
      15             : #include "llvm/Support/LEB128.h"
      16             : 
      17             : namespace llvm {
      18             : 
      19             : /// Utility function to get the size of the ULEB128-encoded value.
      20      244907 : unsigned getULEB128Size(uint64_t Value) {
      21             :   unsigned Size = 0;
      22             :   do {
      23      254377 :     Value >>= 7;
      24      254377 :     Size += sizeof(int8_t);
      25      254377 :   } while (Value);
      26      244907 :   return Size;
      27             : }
      28             : 
      29             : /// Utility function to get the size of the SLEB128-encoded value.
      30        3629 : unsigned getSLEB128Size(int64_t Value) {
      31             :   unsigned Size = 0;
      32        3629 :   int Sign = Value >> (8 * sizeof(Value) - 1);
      33             :   bool IsMore;
      34             : 
      35             :   do {
      36        4752 :     unsigned Byte = Value & 0x7f;
      37        4752 :     Value >>= 7;
      38        8575 :     IsMore = Value != Sign || ((Byte ^ Sign) & 0x40) != 0;
      39        1123 :     Size += sizeof(int8_t);
      40             :   } while (IsMore);
      41        3629 :   return Size;
      42             : }
      43             : 
      44             : }  // namespace llvm

Generated by: LCOV version 1.13