v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
bigint.h File Reference
#include <stdint.h>
#include <algorithm>
#include <cstring>
#include <iostream>
#include <vector>
Include dependency graph for bigint.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  v8::bigint::Digits
 
class  v8::bigint::RWDigits
 
class  v8::bigint::RWDigits::WritableDigitReference
 
class  v8::bigint::Platform
 
struct  v8::bigint::RightShiftState
 
class  v8::bigint::Processor
 
class  v8::bigint::Processor::Destroyer
 
class  v8::bigint::FromStringAccumulator
 

Namespaces

namespace  v8
 
namespace  v8::bigint
 

Macros

#define BIGINT_H_DCHECK(cond)
 
#define ALWAYS_INLINE   inline
 
#define HAVE_BUILTIN_MUL_OVERFLOW   0
 

Typedefs

using v8::bigint::digit_t = uintptr_t
 
using v8::bigint::signed_digit_t = intptr_t
 

Enumerations

enum class  v8::bigint::Status { v8::bigint::kOk , v8::bigint::kInterrupted }
 

Functions

int v8::bigint::Compare (Digits A, Digits B)
 
void v8::bigint::Add (RWDigits Z, Digits X, Digits Y)
 
bool v8::bigint::AddSigned (RWDigits Z, Digits X, bool x_negative, Digits Y, bool y_negative)
 
void v8::bigint::AddOne (RWDigits Z, Digits X)
 
void v8::bigint::Subtract (RWDigits Z, Digits X, Digits Y)
 
bool v8::bigint::SubtractSigned (RWDigits Z, Digits X, bool x_negative, Digits Y, bool y_negative)
 
void v8::bigint::SubtractOne (RWDigits Z, Digits X)
 
void v8::bigint::BitwiseAnd_PosPos (RWDigits Z, Digits X, Digits Y)
 
void v8::bigint::BitwiseAnd_NegNeg (RWDigits Z, Digits X, Digits Y)
 
void v8::bigint::BitwiseAnd_PosNeg (RWDigits Z, Digits X, Digits Y)
 
void v8::bigint::BitwiseOr_PosPos (RWDigits Z, Digits X, Digits Y)
 
void v8::bigint::BitwiseOr_NegNeg (RWDigits Z, Digits X, Digits Y)
 
void v8::bigint::BitwiseOr_PosNeg (RWDigits Z, Digits X, Digits Y)
 
void v8::bigint::BitwiseXor_PosPos (RWDigits Z, Digits X, Digits Y)
 
void v8::bigint::BitwiseXor_NegNeg (RWDigits Z, Digits X, Digits Y)
 
void v8::bigint::BitwiseXor_PosNeg (RWDigits Z, Digits X, Digits Y)
 
void v8::bigint::LeftShift (RWDigits Z, Digits X, digit_t shift)
 
void v8::bigint::RightShift (RWDigits Z, Digits X, digit_t shift, const RightShiftState &state)
 
bool v8::bigint::AsIntN (RWDigits Z, Digits X, bool x_negative, int n)
 
void v8::bigint::AsUintN_Pos (RWDigits Z, Digits X, int n)
 
void v8::bigint::AsUintN_Neg (RWDigits Z, Digits X, int n)
 
int v8::bigint::AddResultLength (int x_length, int y_length)
 
int v8::bigint::AddSignedResultLength (int x_length, int y_length, bool same_sign)
 
int v8::bigint::SubtractResultLength (int x_length, int y_length)
 
int v8::bigint::SubtractSignedResultLength (int x_length, int y_length, bool same_sign)
 
int v8::bigint::MultiplyResultLength (Digits X, Digits Y)
 
int v8::bigint::DivideResultLength (Digits A, Digits B)
 
int v8::bigint::ModuloResultLength (Digits B)
 
uint32_t v8::bigint::ToStringResultLength (Digits X, int radix, bool sign)
 
int v8::bigint::RightShift_ResultLength (Digits X, bool x_sign, digit_t shift, RightShiftState *state)
 
int v8::bigint::AsIntNResultLength (Digits X, bool x_negative, int n)
 
int v8::bigint::AsUintN_Pos_ResultLength (Digits X, int n)
 
int v8::bigint::AsUintN_Neg_ResultLength (int n)
 

Variables

static constexpr int v8::bigint::kDigitBits = 1 << kLog2DigitBits
 
constexpr int v8::bigint::kBarrettThreshold = 13310
 
constexpr char v8::bigint::kStringZapValue = '?'
 
static constexpr int v8::bigint::kStackParts = 8
 
static constexpr uint8_t v8::bigint::kCharValue []
 
static constexpr uint8_t v8::bigint::kCharBits [] = {1, 2, 3, 0, 4, 0, 0, 0, 5}
 

Macro Definition Documentation

◆ ALWAYS_INLINE

#define ALWAYS_INLINE   inline

Definition at line 379 of file bigint.h.

◆ BIGINT_H_DCHECK

#define BIGINT_H_DCHECK ( cond)
Value:
(void(0))

Definition at line 30 of file bigint.h.

◆ HAVE_BUILTIN_MUL_OVERFLOW

#define HAVE_BUILTIN_MUL_OVERFLOW   0

Definition at line 451 of file bigint.h.