5#ifndef V8_BASE_NUMBERS_DIY_FP_H_
6#define V8_BASE_NUMBERS_DIY_FP_H_
51#ifdef __SIZEOF_INT128__
55 uint64_t hi = (a.f_ *
static_cast<unsigned __int128
>(b.
f_)) >> 64;
56 uint64_t lo = (a.f_ *
static_cast<unsigned __int128
>(b.
f_));
57 return {hi + (lo >> 63), a.e_ + b.
e_ + 64};
72 const uint64_t k10MSBits =
static_cast<uint64_t
>(0x3FF) << 54;
73 while ((
f & k10MSBits) == 0) {
91 constexpr uint64_t
f()
const {
return f_; }
92 constexpr int e()
const {
return e_; }
94 constexpr void set_f(uint64_t new_value) {
f_ = new_value; }
95 constexpr void set_e(
int new_value) {
e_ = new_value; }
98 static const uint64_t
kUint64MSB =
static_cast<uint64_t
>(1) << 63;
static DiyFp Minus(const DiyFp &a, const DiyFp &b)
static const int kSignificandSize
static DiyFp Normalize(const DiyFp &a)
static DiyFp Times(const DiyFp &a, const DiyFp &b)
constexpr uint64_t f() const
static const uint64_t kUint64MSB
void Subtract(const DiyFp &other)
V8_BASE_EXPORT void Multiply(const DiyFp &other)
constexpr void set_f(uint64_t new_value)
constexpr void set_e(int new_value)
constexpr DiyFp(uint64_t f, int e)
std::optional< TNode< JSArray > > a
ZoneVector< RpoNumber > & result
#define DCHECK_NE(v1, v2)
#define DCHECK(condition)