v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
bits.h File Reference
#include <stdint.h>
#include <type_traits>
#include "src/base/base-export.h"
#include "src/base/macros.h"
Include dependency graph for bits.h:

Go to the source code of this file.

Namespaces

namespace  v8
 
namespace  v8::base
 
namespace  v8::base::bits
 

Functions

template<typename T >
requires (std::is_unsigned<T>::value && sizeof(T) <= 8)
constexpr unsigned v8::base::bits::CountPopulation (T value)
 
template<typename T >
T v8::base::bits::ReverseBits (T value)
 
template<typename T >
T v8::base::bits::ReverseBytes (T value)
 
template<class T >
constexpr std::make_unsigned_t< Tv8::base::bits::Unsigned (T value)
 
template<class T >
constexpr std::make_signed_t< Tv8::base::bits::Signed (T value)
 
template<typename T , unsigned bits = sizeof(T) * 8>
requires (std::is_unsigned<T>::value && sizeof(T) <= 8)
constexpr unsigned v8::base::bits::CountLeadingZeros (T value)
 
constexpr unsigned v8::base::bits::CountLeadingZeros32 (uint32_t value)
 
constexpr unsigned v8::base::bits::CountLeadingZeros64 (uint64_t value)
 
template<class T >
constexpr unsigned v8::base::bits::CountLeadingSignBits (T value)
 
template<typename T , unsigned bits = sizeof(T) * 8>
requires (std::is_integral<T>::value && sizeof(T) <= 8)
constexpr unsigned v8::base::bits::CountTrailingZeros (T value)
 
constexpr unsigned v8::base::bits::CountTrailingZeros32 (uint32_t value)
 
constexpr unsigned v8::base::bits::CountTrailingZeros64 (uint64_t value)
 
template<typename T , unsigned bits = sizeof(T) * 8>
requires (std::is_integral<T>::value && sizeof(T) <= 8)
constexpr unsigned v8::base::bits::CountTrailingZerosNonZero (T value)
 
template<typename T >
requires (std::is_integral<T>::value || std::is_enum<T>::value)
constexpr bool v8::base::bits::IsPowerOfTwo (T value)
 
template<typename T >
requires std::is_integral<T>::value
constexpr int v8::base::bits::WhichPowerOfTwo (T value)
 
V8_BASE_EXPORT constexpr uint32_t v8::base::bits::RoundUpToPowerOfTwo32 (uint32_t value)
 
V8_BASE_EXPORT constexpr uint64_t v8::base::bits::RoundUpToPowerOfTwo64 (uint64_t value)
 
constexpr size_t v8::base::bits::RoundUpToPowerOfTwo (size_t value)
 
uint32_t v8::base::bits::RoundDownToPowerOfTwo32 (uint32_t value)
 
constexpr uint32_t v8::base::bits::RotateRight32 (uint32_t value, uint32_t shift)
 
constexpr uint32_t v8::base::bits::RotateLeft32 (uint32_t value, uint32_t shift)
 
constexpr uint64_t v8::base::bits::RotateRight64 (uint64_t value, uint64_t shift)
 
constexpr uint64_t v8::base::bits::RotateLeft64 (uint64_t value, uint64_t shift)
 
bool v8::base::bits::SignedAddOverflow32 (int32_t lhs, int32_t rhs, int32_t *val)
 
bool v8::base::bits::SignedSubOverflow32 (int32_t lhs, int32_t rhs, int32_t *val)
 
bool v8::base::bits::SignedMulOverflow32 (int32_t lhs, int32_t rhs, int32_t *val)
 
bool v8::base::bits::SignedAddOverflow64 (int64_t lhs, int64_t rhs, int64_t *val)
 
bool v8::base::bits::SignedSubOverflow64 (int64_t lhs, int64_t rhs, int64_t *val)
 
bool v8::base::bits::SignedMulOverflow64 (int64_t lhs, int64_t rhs, int64_t *val)
 
int32_t v8::base::bits::SignedMulHigh32 (int32_t lhs, int32_t rhs)
 
uint32_t v8::base::bits::UnsignedMulHigh32 (uint32_t lhs, uint32_t rhs)
 
int64_t v8::base::bits::SignedMulHigh64 (int64_t u, int64_t v)
 
uint64_t v8::base::bits::UnsignedMulHigh64 (uint64_t u, uint64_t v)
 
int32_t v8::base::bits::SignedMulHighAndAdd32 (int32_t lhs, int32_t rhs, int32_t acc)
 
int32_t v8::base::bits::SignedDiv32 (int32_t lhs, int32_t rhs)
 
int64_t v8::base::bits::SignedDiv64 (int64_t lhs, int64_t rhs)
 
int32_t v8::base::bits::SignedMod32 (int32_t lhs, int32_t rhs)
 
int64_t v8::base::bits::SignedMod64 (int64_t lhs, int64_t rhs)
 
bool v8::base::bits::UnsignedAddOverflow32 (uint32_t lhs, uint32_t rhs, uint32_t *val)
 
uint32_t v8::base::bits::UnsignedDiv32 (uint32_t lhs, uint32_t rhs)
 
uint64_t v8::base::bits::UnsignedDiv64 (uint64_t lhs, uint64_t rhs)
 
uint32_t v8::base::bits::UnsignedMod32 (uint32_t lhs, uint32_t rhs)
 
uint64_t v8::base::bits::UnsignedMod64 (uint64_t lhs, uint64_t rhs)
 
int32_t v8::base::bits::WraparoundAdd32 (int32_t lhs, int32_t rhs)
 
int32_t v8::base::bits::WraparoundNeg32 (int32_t x)
 
int64_t v8::base::bits::SignedSaturatedAdd64 (int64_t lhs, int64_t rhs)
 
int64_t v8::base::bits::SignedSaturatedSub64 (int64_t lhs, int64_t rhs)
 
template<class T >
V8_BASE_EXPORT constexpr int v8::base::bits::BitWidth (T x)