v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::compiler::turboshaft::AtomicWord32PairOp Struct Reference

#include <operations.h>

Inheritance diagram for v8::internal::compiler::turboshaft::AtomicWord32PairOp:
Collaboration diagram for v8::internal::compiler::turboshaft::AtomicWord32PairOp:

Public Types

enum class  Kind : uint8_t {
  kAdd , kSub , kAnd , kOr ,
  kXor , kExchange , kCompareExchange , kLoad ,
  kStore
}
 
- Public Types inherited from v8::internal::compiler::turboshaft::OperationT< AtomicWord32PairOp >
using Base
 

Public Member Functions

OpEffects Effects () const
 
base::Vector< const RegisterRepresentationoutputs_rep () const
 
base::Vector< const MaybeRegisterRepresentationinputs_rep (ZoneVector< MaybeRegisterRepresentation > &storage) const
 
V< WordPtrbase () const
 
OptionalV< WordPtrindex () const
 
OptionalV< Word32value_low () const
 
OptionalV< Word32value_high () const
 
OptionalV< Word32expected_low () const
 
OptionalV< Word32expected_high () const
 
 AtomicWord32PairOp (V< WordPtr > base, OptionalV< WordPtr > index, OptionalV< Word32 > value_low, OptionalV< Word32 > value_high, OptionalV< Word32 > expected_low, OptionalV< Word32 > expected_high, Kind kind, int32_t offset)
 
template<typename Fn , typename Mapper >
V8_INLINE auto Explode (Fn fn, Mapper &mapper) const
 
bool HasIndex () const
 
void PrintInputs (std::ostream &os, const std::string &op_index_prefix) const
 
void PrintOptions (std::ostream &os) const
 
auto options () const
 
- Public Member Functions inherited from v8::internal::compiler::turboshaft::OperationT< AtomicWord32PairOp >
bool IsRequiredWhenUnused () const
 
AtomicWord32PairOpderived_this ()
 
const AtomicWord32PairOpderived_this () const
 
base::Vector< OpIndexinputs ()
 
base::Vector< const OpIndexinputs () const
 
V8_INLINE OpIndexinput (size_t i)
 
V8_INLINE V< Anyinput (size_t i) const
 
V8_INLINE V< Tinput (size_t i) const
 
size_t StorageSlotCount () const
 
 OperationT (size_t input_count)
 
 OperationT (ShadowyOpIndexVectorWrapper inputs)
 
bool EqualsForGVN (const Base &other) const
 
bool operator== (const Base &other) const
 
size_t HashWithOptions (const Args &... args) const
 
size_t hash_value (HashingStrategy strategy=HashingStrategy::kDefault) const
 
void PrintInputs (std::ostream &os, const std::string &op_index_prefix) const
 
void PrintOptions (std::ostream &os) const
 
void Validate (const Graph &graph) const
 
- Public Member Functions inherited from v8::internal::compiler::turboshaft::Operation
base::Vector< const OpIndexinputs () const
 
V8_INLINE OpIndex input (size_t i) const
 
size_t StorageSlotCount () const
 
base::Vector< const RegisterRepresentationoutputs_rep () const
 
base::Vector< const MaybeRegisterRepresentationinputs_rep (ZoneVector< MaybeRegisterRepresentation > &storage) const
 
template<class Op >
bool Is () const
 
template<class Op >
underlying_operation_t< Op > & Cast ()
 
template<class Op >
const underlying_operation_t< Op > & Cast () const
 
template<class Op >
const underlying_operation_t< Op > * TryCast () const
 
template<class Op >
underlying_operation_t< Op > * TryCast ()
 
OpEffects Effects () const
 
bool IsBlockTerminator () const
 
bool IsRequiredWhenUnused () const
 
bool IsProtectedLoad () const
 
std::string ToString () const
 
void PrintInputs (std::ostream &os, const std::string &op_index_prefix) const
 
void PrintOptions (std::ostream &os) const
 
bool IsOnlyUserOf (const Operation &value, const Graph &graph) const
 
void Print () const
 

Static Public Member Functions

static Kind KindFromBinOp (AtomicRMWOp::BinOp bin_op)
 
static constexpr size_t InputCount (Kind kind, bool has_index)
 
static AtomicWord32PairOpNew (Graph *graph, V< WordPtr > base, OptionalV< WordPtr > index, OptionalV< Word32 > value_low, OptionalV< Word32 > value_high, OptionalV< Word32 > expected_low, OptionalV< Word32 > expected_high, Kind kind, int32_t offset)
 
- Static Public Member Functions inherited from v8::internal::compiler::turboshaft::OperationT< AtomicWord32PairOp >
static constexpr OpEffects Effects ()
 
static constexpr bool IsBlockTerminator ()
 
static constexpr std::optional< OpEffectsEffectsIfStatic ()
 
static size_t StorageSlotCount (size_t input_count)
 
static AtomicWord32PairOpNew (Graph *graph, size_t input_count, Args... args)
 
static AtomicWord32PairOpNew (Graph *graph, ShadowyOpIndexVectorWrapper inputs, Args... args)
 
- Static Public Member Functions inherited from v8::internal::compiler::turboshaft::Operation
static size_t StorageSlotCount (Opcode opcode, size_t input_count)
 

Public Attributes

Kind kind
 
int32_t offset
 
- Public Attributes inherited from v8::internal::compiler::turboshaft::Operation
const Opcode opcode
 
SaturatedUint8 saturated_use_count
 
const uint16_t input_count
 

Additional Inherited Members

- Static Public Attributes inherited from v8::internal::compiler::turboshaft::OperationT< AtomicWord32PairOp >
static const Opcode opcode
 
- Protected Member Functions inherited from v8::internal::compiler::turboshaft::Operation
 Operation (Opcode opcode, size_t input_count)
 
template<class OpmaskT >
 V8_CLANG_NO_SANITIZE ("memory") bool IsOpmask() const
 
 Operation (const Operation &)=delete
 
Operationoperator= (const Operation &)=delete
 

Detailed Description

Definition at line 3190 of file operations.h.

Member Enumeration Documentation

◆ Kind

Enumerator
kAdd 
kSub 
kAnd 
kOr 
kXor 
kExchange 
kCompareExchange 
kLoad 
kStore 

Definition at line 3191 of file operations.h.

Constructor & Destructor Documentation

◆ AtomicWord32PairOp()

v8::internal::compiler::turboshaft::AtomicWord32PairOp::AtomicWord32PairOp ( V< WordPtr > base,
OptionalV< WordPtr > index,
OptionalV< Word32 > value_low,
OptionalV< Word32 > value_high,
OptionalV< Word32 > expected_low,
OptionalV< Word32 > expected_high,
Kind kind,
int32_t offset )
inline

Definition at line 3285 of file operations.h.

Here is the call graph for this function:

Member Function Documentation

◆ base()

V< WordPtr > v8::internal::compiler::turboshaft::AtomicWord32PairOp::base ( ) const
inline

Definition at line 3263 of file operations.h.

Here is the caller graph for this function:

◆ Effects()

OpEffects v8::internal::compiler::turboshaft::AtomicWord32PairOp::Effects ( ) const
inline

Definition at line 3225 of file operations.h.

Here is the call graph for this function:

◆ expected_high()

OptionalV< Word32 > v8::internal::compiler::turboshaft::AtomicWord32PairOp::expected_high ( ) const
inline

Definition at line 3279 of file operations.h.

◆ expected_low()

OptionalV< Word32 > v8::internal::compiler::turboshaft::AtomicWord32PairOp::expected_low ( ) const
inline

Definition at line 3275 of file operations.h.

◆ Explode()

template<typename Fn , typename Mapper >
V8_INLINE auto v8::internal::compiler::turboshaft::AtomicWord32PairOp::Explode ( Fn fn,
Mapper & mapper ) const
inline

Definition at line 3311 of file operations.h.

◆ HasIndex()

bool v8::internal::compiler::turboshaft::AtomicWord32PairOp::HasIndex ( ) const
inline

Definition at line 3334 of file operations.h.

◆ index()

OptionalV< WordPtr > v8::internal::compiler::turboshaft::AtomicWord32PairOp::index ( ) const
inline

Definition at line 3264 of file operations.h.

Here is the caller graph for this function:

◆ InputCount()

static constexpr size_t v8::internal::compiler::turboshaft::AtomicWord32PairOp::InputCount ( Kind kind,
bool has_index )
inlinestaticconstexpr

Definition at line 3317 of file operations.h.

◆ inputs_rep()

base::Vector< const MaybeRegisterRepresentation > v8::internal::compiler::turboshaft::AtomicWord32PairOp::inputs_rep ( ZoneVector< MaybeRegisterRepresentation > & storage) const
inline

Definition at line 3241 of file operations.h.

Here is the call graph for this function:

◆ KindFromBinOp()

static Kind v8::internal::compiler::turboshaft::AtomicWord32PairOp::KindFromBinOp ( AtomicRMWOp::BinOp bin_op)
inlinestatic

Definition at line 3206 of file operations.h.

Here is the caller graph for this function:

◆ New()

static AtomicWord32PairOp & v8::internal::compiler::turboshaft::AtomicWord32PairOp::New ( Graph * graph,
V< WordPtr > base,
OptionalV< WordPtr > index,
OptionalV< Word32 > value_low,
OptionalV< Word32 > value_high,
OptionalV< Word32 > expected_low,
OptionalV< Word32 > expected_high,
Kind kind,
int32_t offset )
inlinestatic

Definition at line 3336 of file operations.h.

◆ options()

auto v8::internal::compiler::turboshaft::AtomicWord32PairOp::options ( ) const
inline

Definition at line 3352 of file operations.h.

◆ outputs_rep()

base::Vector< const RegisterRepresentation > v8::internal::compiler::turboshaft::AtomicWord32PairOp::outputs_rep ( ) const
inline

Definition at line 3236 of file operations.h.

Here is the call graph for this function:

◆ PrintInputs()

void v8::internal::compiler::turboshaft::AtomicWord32PairOp::PrintInputs ( std::ostream & os,
const std::string & op_index_prefix ) const

Definition at line 683 of file operations.cc.

Here is the call graph for this function:

◆ PrintOptions()

void v8::internal::compiler::turboshaft::AtomicWord32PairOp::PrintOptions ( std::ostream & os) const

Definition at line 705 of file operations.cc.

◆ value_high()

OptionalV< Word32 > v8::internal::compiler::turboshaft::AtomicWord32PairOp::value_high ( ) const
inline

Definition at line 3271 of file operations.h.

Here is the caller graph for this function:

◆ value_low()

OptionalV< Word32 > v8::internal::compiler::turboshaft::AtomicWord32PairOp::value_low ( ) const
inline

Definition at line 3267 of file operations.h.

Here is the caller graph for this function:

Member Data Documentation

◆ kind

Kind v8::internal::compiler::turboshaft::AtomicWord32PairOp::kind

Definition at line 3203 of file operations.h.

◆ offset

int32_t v8::internal::compiler::turboshaft::AtomicWord32PairOp::offset

Definition at line 3204 of file operations.h.


The documentation for this struct was generated from the following files: