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

Public Member Functions

 PPCOperandGeneratorT (InstructionSelectorT *selector)
 
InstructionOperand UseOperand (OpIndex node, ImmediateMode mode)
 
bool CanBeImmediate (OpIndex node, ImmediateMode mode)
 
bool CanBeImmediate (int64_t value, ImmediateMode mode)
 
- Public Member Functions inherited from v8::internal::compiler::OperandGeneratorT
 OperandGeneratorT (InstructionSelectorT *selector)
 
InstructionOperand NoOutput ()
 
InstructionOperand DefineAsRegister (turboshaft::OpIndex node)
 
InstructionOperand DefineSameAsInput (turboshaft::OpIndex node, int input_index)
 
InstructionOperand DefineSameAsFirst (turboshaft::OpIndex node)
 
InstructionOperand DefineAsFixed (turboshaft::OpIndex node, Register reg)
 
template<typename FPRegType >
InstructionOperand DefineAsFixed (turboshaft::OpIndex node, FPRegType reg)
 
InstructionOperand DefineAsConstant (turboshaft::OpIndex node)
 
InstructionOperand DefineAsLocation (turboshaft::OpIndex node, LinkageLocation location)
 
InstructionOperand DefineAsDualLocation (turboshaft::OpIndex node, LinkageLocation primary_location, LinkageLocation secondary_location)
 
InstructionOperand Use (turboshaft::OpIndex node)
 
InstructionOperand UseAnyAtEnd (turboshaft::OpIndex node)
 
InstructionOperand UseAny (turboshaft::OpIndex node)
 
InstructionOperand UseRegisterOrSlotOrConstant (turboshaft::OpIndex node)
 
InstructionOperand UseUniqueRegisterOrSlotOrConstant (turboshaft::OpIndex node)
 
InstructionOperand UseRegister (turboshaft::OpIndex node)
 
InstructionOperand UseRegisterAtEnd (turboshaft::OpIndex node)
 
InstructionOperand UseUniqueSlot (turboshaft::OpIndex node)
 
InstructionOperand UseUnique (turboshaft::OpIndex node)
 
InstructionOperand UseUniqueRegister (turboshaft::OpIndex node)
 
InstructionOperand UseRegister (turboshaft::OpIndex node, RegisterUseKind unique_reg)
 
InstructionOperand UseFixed (turboshaft::OpIndex node, Register reg)
 
template<typename FPRegType >
InstructionOperand UseFixed (turboshaft::OpIndex node, FPRegType reg)
 
InstructionOperand UseImmediate (int immediate)
 
InstructionOperand UseImmediate64 (int64_t immediate)
 
InstructionOperand UseImmediate (turboshaft::OpIndex node)
 
InstructionOperand UseNegatedImmediate (turboshaft::OpIndex node)
 
InstructionOperand UseLocation (turboshaft::OpIndex node, LinkageLocation location)
 
InstructionOperand UsePointerLocation (LinkageLocation to_location, LinkageLocation from_location)
 
InstructionOperand TempRegister ()
 
int AllocateVirtualRegister ()
 
InstructionOperand DefineSameAsFirstForVreg (int vreg)
 
InstructionOperand DefineAsRegistertForVreg (int vreg)
 
InstructionOperand UseRegisterForVreg (int vreg)
 
InstructionOperand UseRegisterWithMode (turboshaft::OpIndex node, RegisterMode register_mode)
 
InstructionOperand TempDoubleRegister ()
 
InstructionOperand TempSimd128Register ()
 
InstructionOperand TempSimd256Register ()
 
InstructionOperand TempRegister (Register reg)
 
InstructionOperand TempRegister (int code)
 
template<typename FPRegType >
InstructionOperand TempFpRegister (FPRegType reg)
 
InstructionOperand TempImmediate (int32_t imm)
 
InstructionOperand TempLocation (LinkageLocation location)
 
InstructionOperand Label (turboshaft::Block *block)
 
- Public Member Functions inherited from v8::internal::compiler::TurboshaftAdapter
 TurboshaftAdapter (turboshaft::Graph *graph)
 
bool is_load (turboshaft::OpIndex node) const
 
bool is_load_root_register (turboshaft::OpIndex node) const
 
LoadView load_view (turboshaft::OpIndex node)
 
StoreView store_view (turboshaft::OpIndex node)
 
turboshaft::Graphturboshaft_graph () const
 
turboshaft::Blockblock (turboshaft::Graph *schedule, turboshaft::OpIndex node) const
 
RpoNumber rpo_number (const turboshaft::Block *block) const
 
const ZoneVector< turboshaft::Block * > & rpo_order (turboshaft::Graph *schedule)
 
bool IsLoopHeader (const turboshaft::Block *block) const
 
size_t PredecessorCount (const turboshaft::Block *block) const
 
turboshaft::BlockPredecessorAt (const turboshaft::Block *block, size_t index) const
 
base::iterator_range< turboshaft::Graph::OpIndexIteratornodes (const turboshaft::Block *block)
 
bool IsRetain (turboshaft::OpIndex node) const
 
bool IsHeapConstant (turboshaft::OpIndex node) const
 
bool IsExternalConstant (turboshaft::OpIndex node) const
 
bool IsRelocatableWasmConstant (turboshaft::OpIndex node) const
 
bool IsLoadOrLoadImmutable (turboshaft::OpIndex node) const
 
bool IsProtectedLoad (turboshaft::OpIndex node) const
 
int value_input_count (turboshaft::OpIndex node) const
 
turboshaft::OpIndex input_at (turboshaft::OpIndex node, size_t index) const
 
base::Vector< const turboshaft::OpIndexinputs (turboshaft::OpIndex node) const
 
turboshaft::Opcode opcode (turboshaft::OpIndex node) const
 
uint32_t id (turboshaft::OpIndex node) const
 
- Public Member Functions inherited from v8::internal::compiler::turboshaft::OperationMatcher
 OperationMatcher (const Graph &graph)
 
template<class Op >
bool Is (V< AnyOrNone > op_idx) const
 
template<class Op >
const underlying_operation_t< Op > * TryCast (V< AnyOrNone > op_idx) const
 
template<class Op >
const underlying_operation_t< Op > & Cast (V< AnyOrNone > op_idx) const
 
const OperationGet (V< AnyOrNone > op_idx) const
 
V< AnyOrNoneIndex (const Operation &op) const
 
bool MatchZero (V< Any > matched) const
 
bool MatchIntegralZero (V< Any > matched) const
 
bool MatchSmiZero (V< Any > matched) const
 
bool MatchFloat32Constant (V< Any > matched, float *constant) const
 
bool MatchFloat32Constant (V< Any > matched, i::Float32 *constant) const
 
bool MatchFloat64Constant (V< Any > matched, double *constant) const
 
bool MatchFloat64Constant (V< Any > matched, i::Float64 *constant) const
 
bool MatchFloat (V< Any > matched, double *value) const
 
bool MatchFloat (V< Any > matched, double value) const
 
bool MatchNaN (V< Float > matched) const
 
bool MatchHeapConstant (V< Any > matched, Handle< HeapObject > *tagged=nullptr) const
 
bool MatchIntegralWordConstant (V< Any > matched, WordRepresentation rep, uint64_t *unsigned_constant, int64_t *signed_constant=nullptr) const
 
bool MatchIntegralWordConstant (V< Any > matched, WordRepresentation rep, int64_t *signed_constant) const
 
bool MatchIntegralWord32Constant (V< Any > matched, uint32_t *constant) const
 
bool MatchIntegralWord64Constant (V< Any > matched, uint64_t *constant) const
 
bool MatchIntegralWord32Constant (V< Any > matched, uint32_t constant) const
 
bool MatchIntegralWord64Constant (V< Any > matched, int64_t *constant) const
 
bool MatchIntegralWord32Constant (V< Any > matched, int32_t *constant) const
 
template<typename T = intptr_t>
bool MatchIntegralWordPtrConstant (V< Any > matched, T *constant) const
 
bool MatchSignedIntegralConstant (V< Any > matched, int64_t *constant) const
 
bool MatchUnsignedIntegralConstant (V< Any > matched, uint64_t *constant) const
 
bool MatchExternalConstant (V< Any > matched, ExternalReference *reference) const
 
bool MatchWasmStubCallConstant (V< Any > matched, uint64_t *stub_id) const
 
template<typename T >
bool MatchChange (V< Any > matched, VMatch< T > input, OMatch< ChangeOp::Kind > kind={}, OMatch< ChangeOp::Assumption > assumption={}, OMatch< RegisterRepresentation > from={}, OMatch< RegisterRepresentation > to={}) const
 
bool MatchTruncateWord64ToWord32 (V< Any > matched, VMatch< Word64 > input) const
 
template<typename T >
requires (IsWord<T>())
bool MatchWordBinop (V< Any > matched, VMatch< T > left, VMatch< T > right, OMatch< WordBinopOp::Kind > kind={}, OMatch< WordRepresentation > rep={}) const
 
template<class T >
requires (IsWord<T>())
bool MatchWordAdd (V< Any > matched, V< T > *left, V< T > *right, WordRepresentation rep) const
 
template<class T >
requires (IsWord<T>())
bool MatchWordSub (V< Any > matched, V< T > *left, V< T > *right, WordRepresentation rep) const
 
template<class T >
requires (IsWord<T>())
bool MatchWordMul (V< Any > matched, V< T > *left, V< T > *right, WordRepresentation rep) const
 
template<class T >
requires (IsWord<T>())
bool MatchBitwiseAnd (V< Any > matched, V< T > *left, V< T > *right, WordRepresentation rep) const
 
template<class T >
requires (IsWord<T>())
bool MatchBitwiseAndWithConstant (V< Any > matched, V< T > *value, uint64_t *constant, WordRepresentation rep) const
 
template<typename T >
bool MatchEqual (V< Any > matched, V< T > *left, V< T > *right) const
 
bool MatchFloatUnary (V< Any > matched, V< Float > *input, FloatUnaryOp::Kind kind, FloatRepresentation rep) const
 
bool MatchFloatRoundDown (V< Any > matched, V< Float > *input, FloatRepresentation rep) const
 
bool MatchFloatBinary (V< Any > matched, V< Float > *left, V< Float > *right, FloatBinopOp::Kind kind, FloatRepresentation rep) const
 
bool MatchFloatSub (V< Any > matched, V< Float > *left, V< Float > *right, FloatRepresentation rep) const
 
template<class T >
requires (IsWord<T>())
bool MatchConstantShift (V< Any > matched, V< T > *input, ShiftOp::Kind *kind, WordRepresentation *rep, int *amount) const
 
template<class T >
requires (IsWord<T>())
bool MatchConstantShift (V< Any > matched, V< T > *input, ShiftOp::Kind kind, WordRepresentation rep, int *amount) const
 
template<class T >
requires (IsWord<T>())
bool MatchConstantRightShift (V< Any > matched, V< T > *input, WordRepresentation rep, int *amount) const
 
template<class T >
requires (IsWord<T>())
bool MatchConstantLeftShift (V< Any > matched, V< T > *input, WordRepresentation rep, int *amount) const
 
template<class T >
requires (IsWord<T>())
bool MatchConstantShiftRightArithmeticShiftOutZeros (V< Any > matched, V< T > *input, WordRepresentation rep, uint16_t *amount) const
 
bool MatchPhi (V< Any > matched, std::optional< int > input_count=std::nullopt) const
 
bool MatchPowerOfTwoWordConstant (V< Any > matched, int64_t *ret_cst, WordRepresentation rep) const
 
bool MatchPowerOfTwoWord32Constant (V< Any > matched, int32_t *divisor) const
 

Additional Inherited Members

- Public Types inherited from v8::internal::compiler::OperandGeneratorT
enum class  RegisterUseKind { kUseRegister , kUseUniqueRegister }
 
enum  RegisterMode { kRegister , kUniqueRegister }
 
- Public Types inherited from v8::internal::compiler::turboshaft::OperationMatcher
template<typename T >
using VMatch = detail::ValueMatch<T, const_or_v_exists_v<T>>
 
template<typename T >
using OMatch = detail::OptionMatch<T>
 
- Static Public Member Functions inherited from v8::internal::compiler::TurboshaftAdapter
static turboshaft::OpIndex value (turboshaft::OptionalOpIndex node)
 
- Static Public Attributes inherited from v8::internal::compiler::TurboshaftAdapter
static constexpr bool IsTurbofan = false
 
static constexpr bool IsTurboshaft = true
 
static constexpr bool AllowsImplicitWord64ToWord32Truncation = true
 
- Protected Member Functions inherited from v8::internal::compiler::OperandGeneratorT
InstructionSelectorTselector () const
 
InstructionSequencesequence () const
 
Zonezone () const
 

Detailed Description

Definition at line 31 of file instruction-selector-ppc.cc.

Constructor & Destructor Documentation

◆ PPCOperandGeneratorT()

v8::internal::compiler::PPCOperandGeneratorT::PPCOperandGeneratorT ( InstructionSelectorT * selector)
inlineexplicit

Definition at line 33 of file instruction-selector-ppc.cc.

Member Function Documentation

◆ CanBeImmediate() [1/2]

bool v8::internal::compiler::PPCOperandGeneratorT::CanBeImmediate ( int64_t value,
ImmediateMode mode )
inline

Definition at line 69 of file instruction-selector-ppc.cc.

◆ CanBeImmediate() [2/2]

bool v8::internal::compiler::PPCOperandGeneratorT::CanBeImmediate ( OpIndex node,
ImmediateMode mode )
inline

Definition at line 43 of file instruction-selector-ppc.cc.

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

◆ UseOperand()

InstructionOperand v8::internal::compiler::PPCOperandGeneratorT::UseOperand ( OpIndex node,
ImmediateMode mode )
inline

Definition at line 36 of file instruction-selector-ppc.cc.

Here is the call graph for this function:

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