v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::MutableBigInt Class Reference
Inheritance diagram for v8::internal::MutableBigInt:
Collaboration diagram for v8::internal::MutableBigInt:

Public Types

enum  Rounding { kRoundDown , kTie , kRoundUp }
 
- Public Types inherited from v8::internal::BigIntBase
using SignBits = base::BitField<bool, 0, 1>
 
using LengthBits = SignBits::Next<uint32_t, kLengthFieldBits>
 

Public Member Functions

void InitializeDigits (uint32_t length, uint8_t value=0)
 
bigint::RWDigits rw_digits ()
 
void set_sign (bool new_sign)
 
void set_length (uint32_t new_length, ReleaseStoreTag)
 
void initialize_bitfield (bool sign, uint32_t length)
 
void set_digit (uint32_t n, digit_t value)
 
void set_64_bits (uint64_t bits)
 
- Public Member Functions inherited from v8::internal::FreshlyAllocatedBigInt
void clear_padding ()
 
- Public Member Functions inherited from v8::internal::BigIntBase
uint32_t length () const
 
uint32_t length (AcquireLoadTag) const
 
bigint::Digits digits () const
 
- Public Member Functions inherited from v8::internal::HeapObjectLayout
 HeapObjectLayout ()=delete
 
Tagged< Mapmap () const
 
Tagged< Mapmap (AcquireLoadTag) const
 
MapWord map_word (RelaxedLoadTag) const
 
void set_map (Isolate *isolate, Tagged< Map > value)
 
template<typename IsolateT >
void set_map (IsolateT *isolate, Tagged< Map > value, ReleaseStoreTag)
 
template<typename IsolateT >
void set_map_safe_transition (IsolateT *isolate, Tagged< Map > value, ReleaseStoreTag)
 
void set_map_safe_transition_no_write_barrier (Isolate *isolate, Tagged< Map > value, RelaxedStoreTag=kRelaxedStore)
 
template<typename IsolateT >
void set_map_after_allocation (IsolateT *isolate, Tagged< Map > value, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
 
void set_map_no_write_barrier (Isolate *isolate, Tagged< Map > value, RelaxedStoreTag=kRelaxedStore)
 
void set_map_word_forwarded (Tagged< HeapObject > target_object, ReleaseStoreTag)
 
void set_map_word_forwarded (Tagged< HeapObject > target_object, RelaxedStoreTag)
 
Address ptr () const
 
Address address () const
 
ReadOnlyRoots EarlyGetReadOnlyRoots () const
 
int Size () const
 
V8_EXPORT_PRIVATE int SizeFromMap (Tagged< Map > map) const
 
WriteBarrierMode GetWriteBarrierMode (const DisallowGarbageCollection &promise)
 

Static Public Member Functions

static MaybeHandle< BigIntMakeImmutable (MaybeHandle< MutableBigInt > maybe)
 
template<typename Isolate = v8::internal::Isolate>
static Handle< BigIntMakeImmutable (Handle< MutableBigInt > result)
 
static void Canonicalize (Tagged< MutableBigInt > result)
 
template<typename IsolateT >
static MaybeHandle< MutableBigIntNew (IsolateT *isolate, uint32_t length, AllocationType allocation=AllocationType::kYoung)
 
static Handle< BigIntNewFromInt (Isolate *isolate, int value)
 
static Handle< BigIntNewFromDouble (Isolate *isolate, double value)
 
static Handle< MutableBigIntCopy (Isolate *isolate, DirectHandle< BigIntBase > source)
 
template<typename IsolateT >
static Handle< BigIntZero (IsolateT *isolate, AllocationType allocation=AllocationType::kYoung)
 
static MaybeHandle< MutableBigIntAbsoluteAddOne (Isolate *isolate, DirectHandle< BigIntBase > x, bool sign, Tagged< MutableBigInt > result_storage={})
 
static Handle< MutableBigIntAbsoluteSubOne (Isolate *isolate, DirectHandle< BigIntBase > x)
 
static MaybeDirectHandle< BigIntLeftShiftByAbsolute (Isolate *isolate, Handle< BigIntBase > x, Handle< BigIntBase > y)
 
static DirectHandle< BigIntRightShiftByAbsolute (Isolate *isolate, Handle< BigIntBase > x, Handle< BigIntBase > y)
 
static DirectHandle< BigIntRightShiftByMaximum (Isolate *isolate, bool sign)
 
static Maybe< digit_tToShiftAmount (Handle< BigIntBase > x)
 
static double ToDouble (DirectHandle< BigIntBase > x)
 
static Rounding DecideRounding (DirectHandle< BigIntBase > x, int mantissa_bits_unset, int digit_index, uint64_t current_digit)
 
static uint64_t GetRawBits (BigIntBase *x, bool *lossless)
 
static bool digit_ismax (digit_t x)
 
static bool IsMutableBigInt (Tagged< MutableBigInt > o)
 

Additional Inherited Members

- Static Public Attributes inherited from v8::internal::BigIntBase
static const uint32_t kMaxLengthBits = 1 << 30
 
static const uint32_t kMaxLength
 
static const uint32_t kLengthFieldBits = 30
 

Detailed Description

Definition at line 52 of file bigint.cc.

Member Enumeration Documentation

◆ Rounding

Enumerator
kRoundDown 
kTie 
kRoundUp 

Definition at line 97 of file bigint.cc.

Member Function Documentation

◆ AbsoluteAddOne()

MaybeHandle< MutableBigInt > v8::internal::MutableBigInt::AbsoluteAddOne ( Isolate * isolate,
DirectHandle< BigIntBase > x,
bool sign,
Tagged< MutableBigInt > result_storage = {} )
static

Definition at line 1142 of file bigint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AbsoluteSubOne()

Handle< MutableBigInt > v8::internal::MutableBigInt::AbsoluteSubOne ( Isolate * isolate,
DirectHandle< BigIntBase > x )
static

Definition at line 1174 of file bigint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Canonicalize()

void v8::internal::MutableBigInt::Canonicalize ( Tagged< MutableBigInt > result)
static

Definition at line 302 of file bigint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Copy()

Handle< MutableBigInt > v8::internal::MutableBigInt::Copy ( Isolate * isolate,
DirectHandle< BigIntBase > source )
static

Definition at line 276 of file bigint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DecideRounding()

MutableBigInt::Rounding v8::internal::MutableBigInt::DecideRounding ( DirectHandle< BigIntBase > x,
int mantissa_bits_unset,
int digit_index,
uint64_t current_digit )
static

Definition at line 1093 of file bigint.cc.

Here is the caller graph for this function:

◆ digit_ismax()

static bool v8::internal::MutableBigInt::digit_ismax ( digit_t x)
inlinestatic

Definition at line 106 of file bigint.cc.

Here is the caller graph for this function:

◆ GetRawBits()

uint64_t v8::internal::MutableBigInt::GetRawBits ( BigIntBase * x,
bool * lossless )
static

Definition at line 1428 of file bigint.cc.

Here is the caller graph for this function:

◆ initialize_bitfield()

void v8::internal::MutableBigInt::initialize_bitfield ( bool sign,
uint32_t length )
inline

Definition at line 122 of file bigint.cc.

Here is the call graph for this function:

◆ InitializeDigits()

void v8::internal::MutableBigInt::InitializeDigits ( uint32_t length,
uint8_t value = 0 )

Definition at line 285 of file bigint.cc.

◆ IsMutableBigInt()

static bool v8::internal::MutableBigInt::IsMutableBigInt ( Tagged< MutableBigInt > o)
inlinestatic

Definition at line 133 of file bigint.cc.

◆ LeftShiftByAbsolute()

static MaybeDirectHandle< BigInt > v8::internal::MutableBigInt::LeftShiftByAbsolute ( Isolate * isolate,
Handle< BigIntBase > x,
Handle< BigIntBase > y )
static

◆ MakeImmutable() [1/2]

template<typename IsolateT >
Handle< BigInt > v8::internal::MutableBigInt::MakeImmutable ( Handle< MutableBigInt > result)
static

Definition at line 297 of file bigint.cc.

Here is the call graph for this function:

◆ MakeImmutable() [2/2]

MaybeHandle< BigInt > v8::internal::MutableBigInt::MakeImmutable ( MaybeHandle< MutableBigInt > maybe)
static

Definition at line 289 of file bigint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ New()

template<typename IsolateT >
MaybeHandle< MutableBigInt > v8::internal::MutableBigInt::New ( IsolateT * isolate,
uint32_t length,
AllocationType allocation = AllocationType::kYoung )
static

Definition at line 170 of file bigint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NewFromDouble()

Handle< BigInt > v8::internal::MutableBigInt::NewFromDouble ( Isolate * isolate,
double value )
static

Definition at line 204 of file bigint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NewFromInt()

Handle< BigInt > v8::internal::MutableBigInt::NewFromInt ( Isolate * isolate,
int value )
static

Definition at line 185 of file bigint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RightShiftByAbsolute()

static DirectHandle< BigInt > v8::internal::MutableBigInt::RightShiftByAbsolute ( Isolate * isolate,
Handle< BigIntBase > x,
Handle< BigIntBase > y )
static

◆ RightShiftByMaximum()

static DirectHandle< BigInt > v8::internal::MutableBigInt::RightShiftByMaximum ( Isolate * isolate,
bool sign )
static

◆ rw_digits()

bigint::RWDigits v8::internal::MutableBigInt::rw_digits ( )

Definition at line 151 of file bigint.cc.

◆ set_64_bits()

void v8::internal::MutableBigInt::set_64_bits ( uint64_t bits)

Definition at line 1455 of file bigint.cc.

Here is the call graph for this function:

◆ set_digit()

void v8::internal::MutableBigInt::set_digit ( uint32_t n,
digit_t value )
inline

Definition at line 126 of file bigint.cc.

Here is the caller graph for this function:

◆ set_length()

void v8::internal::MutableBigInt::set_length ( uint32_t new_length,
ReleaseStoreTag  )
inline

Definition at line 117 of file bigint.cc.

Here is the call graph for this function:

◆ set_sign()

void v8::internal::MutableBigInt::set_sign ( bool new_sign)
inline

Definition at line 112 of file bigint.cc.

Here is the call graph for this function:

◆ ToDouble()

double v8::internal::MutableBigInt::ToDouble ( DirectHandle< BigIntBase > x)
static

Definition at line 1035 of file bigint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ToShiftAmount()

static Maybe< digit_t > v8::internal::MutableBigInt::ToShiftAmount ( Handle< BigIntBase > x)
static

◆ Zero()

template<typename IsolateT >
static Handle< BigInt > v8::internal::MutableBigInt::Zero ( IsolateT * isolate,
AllocationType allocation = AllocationType::kYoung )
inlinestatic

Definition at line 72 of file bigint.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following file: