| //===- LEB128.cpp - LEB128 utility functions implementation -----*- C++ -*-===// |
| // The LLVM Compiler Infrastructure |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| //===----------------------------------------------------------------------===// |
| // This file implements some utility functions for encoding SLEB128 and |
| //===----------------------------------------------------------------------===// |
| #include "llvm/Support/LEB128.h" |
| /// Utility function to get the size of the ULEB128-encoded value. |
| unsigned getULEB128Size(uint64_t Value) { |
| /// Utility function to get the size of the SLEB128-encoded value. |
| unsigned getSLEB128Size(int64_t Value) { |
| int Sign = Value >> (8 * sizeof(Value) - 1); |
| unsigned Byte = Value & 0x7f; |
| IsMore = Value != Sign || ((Byte ^ Sign) & 0x40) != 0; |