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-10-20 13:21:21 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      491055 : unsigned getULEB128Size(uint64_t Value) {
      21             :   unsigned Size = 0;
      22             :   do {
      23      515827 :     Value >>= 7;
      24      515827 :     Size += sizeof(int8_t);
      25      515827 :   } while (Value);
      26      491055 :   return Size;
      27             : }
      28             : 
      29             : /// Utility function to get the size of the SLEB128-encoded value.
      30      106221 : unsigned getSLEB128Size(int64_t Value) {
      31             :   unsigned Size = 0;
      32      106221 :   int Sign = Value >> (8 * sizeof(Value) - 1);
      33             :   bool IsMore;
      34             : 
      35             :   do {
      36      108033 :     unsigned Byte = Value & 0x7f;
      37      108033 :     Value >>= 7;
      38      108033 :     IsMore = Value != Sign || ((Byte ^ Sign) & 0x40) != 0;
      39        1812 :     Size += sizeof(int8_t);
      40             :   } while (IsMore);
      41      106221 :   return Size;
      42             : }
      43             : 
      44             : }  // namespace llvm

Generated by: LCOV version 1.13