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

Classes

struct  MaskBuilder
 
struct  OpMaskField
 
struct  UnwrapRepresentation
 
struct  UnwrapRepresentation< FloatRepresentation >
 
struct  UnwrapRepresentation< RegisterRepresentation >
 
struct  UnwrapRepresentation< WordRepresentation >
 

Typedefs

using WordBinopMask
 
using WordBinopKindMask = MaskBuilder<WordBinopOp, FIELD(WordBinopOp, kind)>
 
using kWord32Add
 
using kWord32Sub
 
using kWord32Mul
 
using kWord32SignedMulOverflownBits
 
using kWord32UnsignedMulOverflownBits
 
using kWord32BitwiseAnd
 
using kWord32BitwiseOr
 
using kWord32BitwiseXor
 
using kWord64Add
 
using kWord64Sub
 
using kWord64Mul
 
using kWord64BitwiseAnd
 
using kWord64BitwiseOr
 
using kWord64BitwiseXor
 
using kBitwiseAnd = WordBinopKindMask::For<WordBinopOp::Kind::kBitwiseAnd>
 
using kBitwiseXor = WordBinopKindMask::For<WordBinopOp::Kind::kBitwiseXor>
 
using WordUnaryMask
 
using kWord32ReverseBytes
 
using kWord64ReverseBytes
 
using FloatUnaryMask
 
using kFloat32Negate
 
using kFloat64Abs
 
using kFloat64Negate
 
using FloatBinopMask
 
using kFloat32Sub
 
using kFloat32Mul
 
using kFloat64Sub
 
using kFloat64Mul
 
using ShiftMask
 
using ShiftKindMask = MaskBuilder<ShiftOp, FIELD(ShiftOp, kind)>
 
using kWord32ShiftLeft
 
using kWord32ShiftRightArithmetic
 
using kWord32ShiftRightArithmeticShiftOutZeros
 
using kWord32ShiftRightLogical
 
using kWord32RotateRight
 
using kWord64ShiftLeft
 
using kWord64ShiftRightArithmetic
 
using kWord64ShiftRightLogical
 
using kShiftLeft = ShiftKindMask::For<ShiftOp::Kind::kShiftLeft>
 
using PhiMask = MaskBuilder<PhiOp, FIELD(PhiOp, rep)>
 
using kTaggedPhi = PhiMask::For<RegisterRepresentation::Tagged()>
 
using ConstantMask = MaskBuilder<ConstantOp, FIELD(ConstantOp, kind)>
 
using kWord32Constant = ConstantMask::For<ConstantOp::Kind::kWord32>
 
using kWord64Constant = ConstantMask::For<ConstantOp::Kind::kWord64>
 
using kExternalConstant = ConstantMask::For<ConstantOp::Kind::kExternal>
 
using kHeapConstant = ConstantMask::For<ConstantOp::Kind::kHeapObject>
 
using kSmiConstant = ConstantMask::For<ConstantOp::Kind::kSmi>
 
using ProjectionMask = MaskBuilder<ProjectionOp, FIELD(ProjectionOp, index)>
 
using kProjection0 = ProjectionMask::For<0>
 
using kProjection1 = ProjectionMask::For<1>
 
using ComparisonMask
 
using kWord32Equal
 
using kWord64Equal
 
using ComparisonKindMask = MaskBuilder<ComparisonOp, FIELD(ComparisonOp, kind)>
 
using kComparisonEqual = ComparisonKindMask::For<ComparisonOp::Kind::kEqual>
 
using ChangeOpMask
 
using kChangeInt32ToInt64
 
using kChangeUint32ToUint64
 
using kFloat64ExtractHighWord32
 
using kTruncateFloat64ToInt64OverflowToMin
 
using kTruncateFloat32ToInt32OverflowToMin
 
using kTruncateFloat32ToUint32OverflowToMin
 
using kTruncateWord64ToWord32
 
using OverflowCheckedBinopMask
 
using kOverflowCheckedWord32Add
 
using TaggedBitcastMask
 
using kBitcastTaggedToWordPtrForTagAndSmiBits
 
using kBitcastWordPtrToSmi
 
using TaggedBitcastKindMask
 
using kTaggedBitcastSmi
 
using kTaggedBitcastHeapObject
 

Functions

template<typename T >
constexpr uint64_t encode_for_mask (T value)
 

Typedef Documentation

◆ ChangeOpMask

Initial value:
MaskBuilder<ChangeOp, FIELD(ChangeOp, kind), FIELD(ChangeOp, assumption),
FIELD(ChangeOp, from), FIELD(ChangeOp, to)>
Builtins::Kind kind
Definition builtins.cc:40
#define FIELD(op, field_name)

Definition at line 263 of file opmasks.h.

◆ ComparisonKindMask

◆ ComparisonMask

Initial value:
MaskBuilder<ComparisonOp, FIELD(ComparisonOp, kind),
FIELD(ComparisonOp, rep)>

Definition at line 253 of file opmasks.h.

◆ ConstantMask

◆ FloatBinopMask

Initial value:
MaskBuilder<FloatBinopOp, FIELD(FloatBinopOp, kind),
FIELD(FloatBinopOp, rep)>

Definition at line 198 of file opmasks.h.

◆ FloatUnaryMask

Initial value:
MaskBuilder<FloatUnaryOp, FIELD(FloatUnaryOp, kind),
FIELD(FloatUnaryOp, rep)>

Definition at line 188 of file opmasks.h.

◆ kBitcastTaggedToWordPtrForTagAndSmiBits

Initial value:
TaggedBitcastMask::For<RegisterRepresentation::Tagged(),
RegisterRepresentation::WordPtr(),
TaggedBitcastOp::Kind::kTagAndSmiBits>

Definition at line 306 of file opmasks.h.

◆ kBitcastWordPtrToSmi

Initial value:
TaggedBitcastMask::For<RegisterRepresentation::WordPtr(),
RegisterRepresentation::Tagged(),
TaggedBitcastOp::Kind::kSmi>

Definition at line 310 of file opmasks.h.

◆ kBitwiseAnd

Definition at line 178 of file opmasks.h.

◆ kBitwiseXor

Definition at line 179 of file opmasks.h.

◆ kChangeInt32ToInt64

Initial value:
ChangeOpMask::For<
ChangeOp::Kind::kSignExtend, ChangeOp::Assumption::kNoAssumption,
RegisterRepresentation::Word32(), RegisterRepresentation::Word64()>

Definition at line 267 of file opmasks.h.

◆ kChangeUint32ToUint64

Initial value:
ChangeOpMask::For<
ChangeOp::Kind::kZeroExtend, ChangeOp::Assumption::kNoAssumption,
RegisterRepresentation::Word32(), RegisterRepresentation::Word64()>

Definition at line 270 of file opmasks.h.

◆ kComparisonEqual

◆ kExternalConstant

◆ kFloat32Mul

Initial value:
FloatBinopMask::For<FloatBinopOp::Kind::kMul,
FloatRepresentation::Float32()>

Definition at line 203 of file opmasks.h.

◆ kFloat32Negate

Initial value:
FloatUnaryMask::For<FloatUnaryOp::Kind::kNegate,
FloatRepresentation::Float32()>

Definition at line 191 of file opmasks.h.

◆ kFloat32Sub

Initial value:
FloatBinopMask::For<FloatBinopOp::Kind::kSub,
FloatRepresentation::Float32()>

Definition at line 201 of file opmasks.h.

◆ kFloat64Abs

Initial value:
FloatUnaryMask::For<FloatUnaryOp::Kind::kAbs,
FloatRepresentation::Float64()>

Definition at line 193 of file opmasks.h.

◆ kFloat64ExtractHighWord32

Initial value:
ChangeOpMask::For<
ChangeOp::Kind::kExtractHighHalf, ChangeOp::Assumption::kNoAssumption,
RegisterRepresentation::Float64(), RegisterRepresentation::Word32()>

Definition at line 273 of file opmasks.h.

◆ kFloat64Mul

Initial value:
FloatBinopMask::For<FloatBinopOp::Kind::kMul,
FloatRepresentation::Float64()>

Definition at line 207 of file opmasks.h.

◆ kFloat64Negate

Initial value:
FloatUnaryMask::For<FloatUnaryOp::Kind::kNegate,
FloatRepresentation::Float64()>

Definition at line 195 of file opmasks.h.

◆ kFloat64Sub

Initial value:
FloatBinopMask::For<FloatBinopOp::Kind::kSub,
FloatRepresentation::Float64()>

Definition at line 205 of file opmasks.h.

◆ kHeapConstant

◆ kOverflowCheckedWord32Add

Initial value:
OverflowCheckedBinopMask::For<OverflowCheckedBinopOp::Kind::kSignedAdd,
WordRepresentation::Word32()>

Definition at line 299 of file opmasks.h.

◆ kProjection0

◆ kProjection1

◆ kShiftLeft

Definition at line 235 of file opmasks.h.

◆ kSmiConstant

◆ kTaggedBitcastHeapObject

Initial value:
TaggedBitcastKindMask::For<TaggedBitcastOp::Kind::kHeapObject>

Definition at line 319 of file opmasks.h.

◆ kTaggedBitcastSmi

Initial value:
TaggedBitcastKindMask::For<TaggedBitcastOp::Kind::kSmi>

Definition at line 317 of file opmasks.h.

◆ kTaggedPhi

◆ kTruncateFloat32ToInt32OverflowToMin

Initial value:
ChangeOpMask::For<ChangeOp::Kind::kSignedFloatTruncateOverflowToMin,
ChangeOp::Assumption::kNoAssumption,
RegisterRepresentation::Float32(),
RegisterRepresentation::Word32()>

Definition at line 281 of file opmasks.h.

◆ kTruncateFloat32ToUint32OverflowToMin

Initial value:
ChangeOpMask::For<ChangeOp::Kind::kUnsignedFloatTruncateOverflowToMin,
ChangeOp::Assumption::kNoAssumption,
RegisterRepresentation::Float32(),
RegisterRepresentation::Word32()>

Definition at line 286 of file opmasks.h.

◆ kTruncateFloat64ToInt64OverflowToMin

Initial value:
ChangeOpMask::For<ChangeOp::Kind::kSignedFloatTruncateOverflowToMin,
ChangeOp::Assumption::kNoAssumption,
RegisterRepresentation::Float64(),
RegisterRepresentation::Word64()>

Definition at line 276 of file opmasks.h.

◆ kTruncateWord64ToWord32

Initial value:
ChangeOpMask::For<
ChangeOp::Kind::kTruncate, ChangeOp::Assumption::kNoAssumption,
RegisterRepresentation::Word64(), RegisterRepresentation::Word32()>

Definition at line 292 of file opmasks.h.

◆ kWord32Add

Initial value:
WordBinopMask::For<WordBinopOp::Kind::kAdd, WordRepresentation::Word32()>

Definition at line 146 of file opmasks.h.

◆ kWord32BitwiseAnd

Initial value:
WordBinopMask::For<WordBinopOp::Kind::kBitwiseAnd,
WordRepresentation::Word32()>

Definition at line 159 of file opmasks.h.

◆ kWord32BitwiseOr

Initial value:
WordBinopMask::For<WordBinopOp::Kind::kBitwiseOr,
WordRepresentation::Word32()>

Definition at line 161 of file opmasks.h.

◆ kWord32BitwiseXor

Initial value:
WordBinopMask::For<WordBinopOp::Kind::kBitwiseXor,
WordRepresentation::Word32()>

Definition at line 163 of file opmasks.h.

◆ kWord32Constant

◆ kWord32Equal

Initial value:
ComparisonMask::For<ComparisonOp::Kind::kEqual,
WordRepresentation::Word32()>

Definition at line 256 of file opmasks.h.

◆ kWord32Mul

Initial value:
WordBinopMask::For<WordBinopOp::Kind::kMul, WordRepresentation::Word32()>

Definition at line 150 of file opmasks.h.

◆ kWord32ReverseBytes

Initial value:
WordUnaryMask::For<WordUnaryOp::Kind::kReverseBytes,
WordRepresentation::Word32()>

Definition at line 183 of file opmasks.h.

◆ kWord32RotateRight

Initial value:
ShiftMask::For<ShiftOp::Kind::kRotateRight, WordRepresentation::Word32()>

Definition at line 225 of file opmasks.h.

◆ kWord32ShiftLeft

Initial value:
ShiftMask::For<ShiftOp::Kind::kShiftLeft, WordRepresentation::Word32()>

Definition at line 214 of file opmasks.h.

◆ kWord32ShiftRightArithmetic

Initial value:
ShiftMask::For<ShiftOp::Kind::kShiftRightArithmetic,
WordRepresentation::Word32()>

Definition at line 216 of file opmasks.h.

◆ kWord32ShiftRightArithmeticShiftOutZeros

Initial value:
ShiftMask::For<ShiftOp::Kind::kShiftRightArithmeticShiftOutZeros,
WordRepresentation::Word32()>

Definition at line 219 of file opmasks.h.

◆ kWord32ShiftRightLogical

Initial value:
ShiftMask::For<ShiftOp::Kind::kShiftRightLogical,
WordRepresentation::Word32()>

Definition at line 222 of file opmasks.h.

◆ kWord32SignedMulOverflownBits

Initial value:
WordBinopMask::For<WordBinopOp::Kind::kSignedMulOverflownBits,
WordRepresentation::Word32()>

Definition at line 152 of file opmasks.h.

◆ kWord32Sub

Initial value:
WordBinopMask::For<WordBinopOp::Kind::kSub, WordRepresentation::Word32()>

Definition at line 148 of file opmasks.h.

◆ kWord32UnsignedMulOverflownBits

Initial value:
WordBinopMask::For<WordBinopOp::Kind::kUnsignedMulOverflownBits,
WordRepresentation::Word32()>

Definition at line 155 of file opmasks.h.

◆ kWord64Add

Initial value:
WordBinopMask::For<WordBinopOp::Kind::kAdd, WordRepresentation::Word64()>

Definition at line 165 of file opmasks.h.

◆ kWord64BitwiseAnd

Initial value:
WordBinopMask::For<WordBinopOp::Kind::kBitwiseAnd,
WordRepresentation::Word64()>

Definition at line 171 of file opmasks.h.

◆ kWord64BitwiseOr

Initial value:
WordBinopMask::For<WordBinopOp::Kind::kBitwiseOr,
WordRepresentation::Word64()>

Definition at line 173 of file opmasks.h.

◆ kWord64BitwiseXor

Initial value:
WordBinopMask::For<WordBinopOp::Kind::kBitwiseXor,
WordRepresentation::Word64()>

Definition at line 175 of file opmasks.h.

◆ kWord64Constant

◆ kWord64Equal

Initial value:
ComparisonMask::For<ComparisonOp::Kind::kEqual,
WordRepresentation::Word64()>

Definition at line 258 of file opmasks.h.

◆ kWord64Mul

Initial value:
WordBinopMask::For<WordBinopOp::Kind::kMul, WordRepresentation::Word64()>

Definition at line 169 of file opmasks.h.

◆ kWord64ReverseBytes

Initial value:
WordUnaryMask::For<WordUnaryOp::Kind::kReverseBytes,
WordRepresentation::Word64()>

Definition at line 185 of file opmasks.h.

◆ kWord64ShiftLeft

Initial value:
ShiftMask::For<ShiftOp::Kind::kShiftLeft, WordRepresentation::Word64()>

Definition at line 227 of file opmasks.h.

◆ kWord64ShiftRightArithmetic

Initial value:
ShiftMask::For<ShiftOp::Kind::kShiftRightArithmetic,
WordRepresentation::Word64()>

Definition at line 229 of file opmasks.h.

◆ kWord64ShiftRightLogical

Initial value:
ShiftMask::For<ShiftOp::Kind::kShiftRightLogical,
WordRepresentation::Word64()>

Definition at line 232 of file opmasks.h.

◆ kWord64Sub

Initial value:
WordBinopMask::For<WordBinopOp::Kind::kSub, WordRepresentation::Word64()>

Definition at line 167 of file opmasks.h.

◆ OverflowCheckedBinopMask

Initial value:
MaskBuilder<OverflowCheckedBinopOp, FIELD(OverflowCheckedBinopOp, kind),
FIELD(OverflowCheckedBinopOp, rep)>

Definition at line 296 of file opmasks.h.

◆ PhiMask

◆ ProjectionMask

◆ ShiftKindMask

◆ ShiftMask

Initial value:
MaskBuilder<ShiftOp, FIELD(ShiftOp, kind), FIELD(ShiftOp, rep)>

Definition at line 210 of file opmasks.h.

◆ TaggedBitcastKindMask

Initial value:
MaskBuilder<TaggedBitcastOp, FIELD(TaggedBitcastOp, kind)>

Definition at line 315 of file opmasks.h.

◆ TaggedBitcastMask

Initial value:
MaskBuilder<TaggedBitcastOp, FIELD(TaggedBitcastOp, from),
FIELD(TaggedBitcastOp, to), FIELD(TaggedBitcastOp, kind)>

Definition at line 303 of file opmasks.h.

◆ WordBinopKindMask

◆ WordBinopMask

Initial value:
MaskBuilder<WordBinopOp, FIELD(WordBinopOp, kind), FIELD(WordBinopOp, rep)>

Definition at line 142 of file opmasks.h.

◆ WordUnaryMask

Initial value:
MaskBuilder<WordUnaryOp, FIELD(WordUnaryOp, kind), FIELD(WordUnaryOp, rep)>

Definition at line 181 of file opmasks.h.

Function Documentation

◆ encode_for_mask()

template<typename T >
uint64_t v8::internal::compiler::turboshaft::Opmask::encode_for_mask ( T value)
constexpr

Definition at line 58 of file opmasks.h.

Here is the caller graph for this function: