V8 API Reference, 7.2.502.16 (for Deno 0.2.4)
v8::internal::compiler::RawMachineAssembler Class Reference

Public Member Functions

 RawMachineAssembler (Isolate *isolate, Graph *graph, CallDescriptor *call_descriptor, MachineRepresentation word=MachineType::PointerRepresentation(), MachineOperatorBuilder::Flags flags=MachineOperatorBuilder::Flag::kNoFlags, MachineOperatorBuilder::AlignmentRequirements alignment_requirements=MachineOperatorBuilder::AlignmentRequirements::FullUnalignedAccessSupport(), PoisoningMitigationLevel poisoning_level=PoisoningMitigationLevel::kPoisonCriticalOnly)
 
Isolate * isolate () const
 
Graph * graph () const
 
Zone * zone () const
 
MachineOperatorBuilder * machine ()
 
CommonOperatorBuilder * common ()
 
CallDescriptor * call_descriptor () const
 
PoisoningMitigationLevel poisoning_level () const
 
Schedule * Export ()
 
Graph * ExportForOptimization ()
 
Node * NullConstant ()
 
Node * UndefinedConstant ()
 
Node * PointerConstant (void *value)
 
Node * IntPtrConstant (intptr_t value)
 
Node * RelocatableIntPtrConstant (intptr_t value, RelocInfo::Mode rmode)
 
Node * Int32Constant (int32_t value)
 
Node * StackSlot (MachineRepresentation rep, int alignment=0)
 
Node * Int64Constant (int64_t value)
 
Node * NumberConstant (double value)
 
Node * Float32Constant (float value)
 
Node * Float64Constant (double value)
 
Node * HeapConstant (Handle< HeapObject > object)
 
Node * ExternalConstant (ExternalReference address)
 
Node * RelocatableInt32Constant (int32_t value, RelocInfo::Mode rmode)
 
Node * RelocatableInt64Constant (int64_t value, RelocInfo::Mode rmode)
 
Node * Projection (int index, Node *a)
 
Node * Load (MachineType rep, Node *base, LoadSensitivity needs_poisoning=LoadSensitivity::kSafe)
 
Node * Load (MachineType rep, Node *base, Node *index, LoadSensitivity needs_poisoning=LoadSensitivity::kSafe)
 
Node * Store (MachineRepresentation rep, Node *base, Node *value, WriteBarrierKind write_barrier)
 
Node * Store (MachineRepresentation rep, Node *base, Node *index, Node *value, WriteBarrierKind write_barrier)
 
Node * Retain (Node *value)
 
Node * UnalignedLoad (MachineType type, Node *base)
 
Node * UnalignedLoad (MachineType type, Node *base, Node *index)
 
Node * UnalignedStore (MachineRepresentation rep, Node *base, Node *value)
 
Node * UnalignedStore (MachineRepresentation rep, Node *base, Node *index, Node *value)
 
Node * AtomicLoad (MachineType type, Node *base, Node *index)
 
Node * AtomicStore (MachineRepresentation rep, Node *base, Node *index, Node *value, Node *value_high)
 
 ATOMIC_FUNCTION (Exchange)
 
 ATOMIC_FUNCTION (Add)
 
 ATOMIC_FUNCTION (Sub)
 
 ATOMIC_FUNCTION (And)
 
 ATOMIC_FUNCTION (Or)
 
 ATOMIC_FUNCTION (Xor)
 
Node * AtomicCompareExchange (MachineType rep, Node *base, Node *index, Node *old_value, Node *old_value_high, Node *new_value, Node *new_value_high)
 
Node * SpeculationFence ()
 
Node * WordAnd (Node *a, Node *b)
 
Node * WordOr (Node *a, Node *b)
 
Node * WordXor (Node *a, Node *b)
 
Node * WordShl (Node *a, Node *b)
 
Node * WordShr (Node *a, Node *b)
 
Node * WordSar (Node *a, Node *b)
 
Node * WordRor (Node *a, Node *b)
 
Node * WordEqual (Node *a, Node *b)
 
Node * WordNotEqual (Node *a, Node *b)
 
Node * WordNot (Node *a)
 
Node * Word32And (Node *a, Node *b)
 
Node * Word32Or (Node *a, Node *b)
 
Node * Word32Xor (Node *a, Node *b)
 
Node * Word32Shl (Node *a, Node *b)
 
Node * Word32Shr (Node *a, Node *b)
 
Node * Word32Sar (Node *a, Node *b)
 
Node * Word32Ror (Node *a, Node *b)
 
Node * Word32Clz (Node *a)
 
Node * Word32Equal (Node *a, Node *b)
 
Node * Word32NotEqual (Node *a, Node *b)
 
Node * Word32BitwiseNot (Node *a)
 
Node * Word32BinaryNot (Node *a)
 
Node * Word64And (Node *a, Node *b)
 
Node * Word64Or (Node *a, Node *b)
 
Node * Word64Xor (Node *a, Node *b)
 
Node * Word64Shl (Node *a, Node *b)
 
Node * Word64Shr (Node *a, Node *b)
 
Node * Word64Sar (Node *a, Node *b)
 
Node * Word64Ror (Node *a, Node *b)
 
Node * Word64Clz (Node *a)
 
Node * Word64Equal (Node *a, Node *b)
 
Node * Word64NotEqual (Node *a, Node *b)
 
Node * Word64Not (Node *a)
 
Node * Int32Add (Node *a, Node *b)
 
Node * Int32AddWithOverflow (Node *a, Node *b)
 
Node * Int32Sub (Node *a, Node *b)
 
Node * Int32SubWithOverflow (Node *a, Node *b)
 
Node * Int32Mul (Node *a, Node *b)
 
Node * Int32MulHigh (Node *a, Node *b)
 
Node * Int32MulWithOverflow (Node *a, Node *b)
 
Node * Int32Div (Node *a, Node *b)
 
Node * Int32Mod (Node *a, Node *b)
 
Node * Int32LessThan (Node *a, Node *b)
 
Node * Int32LessThanOrEqual (Node *a, Node *b)
 
Node * Uint32Div (Node *a, Node *b)
 
Node * Uint32LessThan (Node *a, Node *b)
 
Node * Uint32LessThanOrEqual (Node *a, Node *b)
 
Node * Uint32Mod (Node *a, Node *b)
 
Node * Uint32MulHigh (Node *a, Node *b)
 
Node * Int32GreaterThan (Node *a, Node *b)
 
Node * Int32GreaterThanOrEqual (Node *a, Node *b)
 
Node * Uint32GreaterThan (Node *a, Node *b)
 
Node * Uint32GreaterThanOrEqual (Node *a, Node *b)
 
Node * Int32Neg (Node *a)
 
Node * Int64Add (Node *a, Node *b)
 
Node * Int64AddWithOverflow (Node *a, Node *b)
 
Node * Int64Sub (Node *a, Node *b)
 
Node * Int64SubWithOverflow (Node *a, Node *b)
 
Node * Int64Mul (Node *a, Node *b)
 
Node * Int64Div (Node *a, Node *b)
 
Node * Int64Mod (Node *a, Node *b)
 
Node * Int64Neg (Node *a)
 
Node * Int64LessThan (Node *a, Node *b)
 
Node * Int64LessThanOrEqual (Node *a, Node *b)
 
Node * Uint64LessThan (Node *a, Node *b)
 
Node * Uint64LessThanOrEqual (Node *a, Node *b)
 
Node * Int64GreaterThan (Node *a, Node *b)
 
Node * Int64GreaterThanOrEqual (Node *a, Node *b)
 
Node * Uint64GreaterThan (Node *a, Node *b)
 
Node * Uint64GreaterThanOrEqual (Node *a, Node *b)
 
Node * Uint64Div (Node *a, Node *b)
 
Node * Uint64Mod (Node *a, Node *b)
 
Node * Int32PairAdd (Node *a_low, Node *a_high, Node *b_low, Node *b_high)
 
Node * Int32PairSub (Node *a_low, Node *a_high, Node *b_low, Node *b_high)
 
Node * Int32PairMul (Node *a_low, Node *a_high, Node *b_low, Node *b_high)
 
Node * Word32PairShl (Node *low_word, Node *high_word, Node *shift)
 
Node * Word32PairShr (Node *low_word, Node *high_word, Node *shift)
 
Node * Word32PairSar (Node *low_word, Node *high_word, Node *shift)
 
 INTPTR_BINOP (Int, Add)
 
 INTPTR_BINOP (Int, AddWithOverflow)
 
 INTPTR_BINOP (Int, Sub)
 
 INTPTR_BINOP (Int, SubWithOverflow)
 
 INTPTR_BINOP (Int, Mul)
 
 INTPTR_BINOP (Int, Div)
 
 INTPTR_BINOP (Int, LessThan)
 
 INTPTR_BINOP (Int, LessThanOrEqual)
 
 INTPTR_BINOP (Word, Equal)
 
 INTPTR_BINOP (Word, NotEqual)
 
 INTPTR_BINOP (Int, GreaterThanOrEqual)
 
 INTPTR_BINOP (Int, GreaterThan)
 
 UINTPTR_BINOP (Uint, LessThan)
 
 UINTPTR_BINOP (Uint, LessThanOrEqual)
 
 UINTPTR_BINOP (Uint, GreaterThanOrEqual)
 
 UINTPTR_BINOP (Uint, GreaterThan)
 
Node * Int32AbsWithOverflow (Node *a)
 
Node * Int64AbsWithOverflow (Node *a)
 
Node * IntPtrAbsWithOverflow (Node *a)
 
Node * Float32Add (Node *a, Node *b)
 
Node * Float32Sub (Node *a, Node *b)
 
Node * Float32Mul (Node *a, Node *b)
 
Node * Float32Div (Node *a, Node *b)
 
Node * Float32Abs (Node *a)
 
Node * Float32Neg (Node *a)
 
Node * Float32Sqrt (Node *a)
 
Node * Float32Equal (Node *a, Node *b)
 
Node * Float32NotEqual (Node *a, Node *b)
 
Node * Float32LessThan (Node *a, Node *b)
 
Node * Float32LessThanOrEqual (Node *a, Node *b)
 
Node * Float32GreaterThan (Node *a, Node *b)
 
Node * Float32GreaterThanOrEqual (Node *a, Node *b)
 
Node * Float32Max (Node *a, Node *b)
 
Node * Float32Min (Node *a, Node *b)
 
Node * Float64Add (Node *a, Node *b)
 
Node * Float64Sub (Node *a, Node *b)
 
Node * Float64Mul (Node *a, Node *b)
 
Node * Float64Div (Node *a, Node *b)
 
Node * Float64Mod (Node *a, Node *b)
 
Node * Float64Max (Node *a, Node *b)
 
Node * Float64Min (Node *a, Node *b)
 
Node * Float64Abs (Node *a)
 
Node * Float64Neg (Node *a)
 
Node * Float64Acos (Node *a)
 
Node * Float64Acosh (Node *a)
 
Node * Float64Asin (Node *a)
 
Node * Float64Asinh (Node *a)
 
Node * Float64Atan (Node *a)
 
Node * Float64Atanh (Node *a)
 
Node * Float64Atan2 (Node *a, Node *b)
 
Node * Float64Cbrt (Node *a)
 
Node * Float64Cos (Node *a)
 
Node * Float64Cosh (Node *a)
 
Node * Float64Exp (Node *a)
 
Node * Float64Expm1 (Node *a)
 
Node * Float64Log (Node *a)
 
Node * Float64Log1p (Node *a)
 
Node * Float64Log10 (Node *a)
 
Node * Float64Log2 (Node *a)
 
Node * Float64Pow (Node *a, Node *b)
 
Node * Float64Sin (Node *a)
 
Node * Float64Sinh (Node *a)
 
Node * Float64Sqrt (Node *a)
 
Node * Float64Tan (Node *a)
 
Node * Float64Tanh (Node *a)
 
Node * Float64Equal (Node *a, Node *b)
 
Node * Float64NotEqual (Node *a, Node *b)
 
Node * Float64LessThan (Node *a, Node *b)
 
Node * Float64LessThanOrEqual (Node *a, Node *b)
 
Node * Float64GreaterThan (Node *a, Node *b)
 
Node * Float64GreaterThanOrEqual (Node *a, Node *b)
 
Node * BitcastTaggedToWord (Node *a)
 
Node * BitcastMaybeObjectToWord (Node *a)
 
Node * BitcastWordToTagged (Node *a)
 
Node * BitcastWordToTaggedSigned (Node *a)
 
Node * TruncateFloat64ToWord32 (Node *a)
 
Node * ChangeFloat32ToFloat64 (Node *a)
 
Node * ChangeInt32ToFloat64 (Node *a)
 
Node * ChangeInt64ToFloat64 (Node *a)
 
Node * ChangeUint32ToFloat64 (Node *a)
 
Node * ChangeFloat64ToInt32 (Node *a)
 
Node * ChangeFloat64ToInt64 (Node *a)
 
Node * ChangeFloat64ToUint32 (Node *a)
 
Node * ChangeFloat64ToUint64 (Node *a)
 
Node * TruncateFloat64ToUint32 (Node *a)
 
Node * TruncateFloat32ToInt32 (Node *a)
 
Node * TruncateFloat32ToUint32 (Node *a)
 
Node * TryTruncateFloat32ToInt64 (Node *a)
 
Node * TryTruncateFloat64ToInt64 (Node *a)
 
Node * TryTruncateFloat32ToUint64 (Node *a)
 
Node * TryTruncateFloat64ToUint64 (Node *a)
 
Node * ChangeInt32ToInt64 (Node *a)
 
Node * ChangeUint32ToUint64 (Node *a)
 
Node * TruncateFloat64ToFloat32 (Node *a)
 
Node * TruncateInt64ToInt32 (Node *a)
 
Node * RoundFloat64ToInt32 (Node *a)
 
Node * RoundInt32ToFloat32 (Node *a)
 
Node * RoundInt64ToFloat32 (Node *a)
 
Node * RoundInt64ToFloat64 (Node *a)
 
Node * RoundUint32ToFloat32 (Node *a)
 
Node * RoundUint64ToFloat32 (Node *a)
 
Node * RoundUint64ToFloat64 (Node *a)
 
Node * BitcastFloat32ToInt32 (Node *a)
 
Node * BitcastFloat64ToInt64 (Node *a)
 
Node * BitcastInt32ToFloat32 (Node *a)
 
Node * BitcastInt64ToFloat64 (Node *a)
 
Node * Float32RoundDown (Node *a)
 
Node * Float64RoundDown (Node *a)
 
Node * Float32RoundUp (Node *a)
 
Node * Float64RoundUp (Node *a)
 
Node * Float32RoundTruncate (Node *a)
 
Node * Float64RoundTruncate (Node *a)
 
Node * Float64RoundTiesAway (Node *a)
 
Node * Float32RoundTiesEven (Node *a)
 
Node * Float64RoundTiesEven (Node *a)
 
Node * Word32ReverseBytes (Node *a)
 
Node * Word64ReverseBytes (Node *a)
 
Node * Float64ExtractLowWord32 (Node *a)
 
Node * Float64ExtractHighWord32 (Node *a)
 
Node * Float64InsertLowWord32 (Node *a, Node *b)
 
Node * Float64InsertHighWord32 (Node *a, Node *b)
 
Node * Float64SilenceNaN (Node *a)
 
Node * LoadStackPointer ()
 
Node * LoadFramePointer ()
 
Node * LoadParentFramePointer ()
 
Node * TargetParameter ()
 
Node * Parameter (size_t index)
 
Node * LoadFromPointer (void *address, MachineType rep, int32_t offset=0)
 
Node * StoreToPointer (void *address, MachineRepresentation rep, Node *node)
 
Node * UnalignedLoadFromPointer (void *address, MachineType rep, int32_t offset=0)
 
Node * UnalignedStoreToPointer (void *address, MachineRepresentation rep, Node *node)
 
Node * StringConstant (const char *string)
 
Node * TaggedPoisonOnSpeculation (Node *value)
 
Node * WordPoisonOnSpeculation (Node *value)
 
Node * CallN (CallDescriptor *call_descriptor, int input_count, Node *const *inputs)
 
Node * CallNWithFrameState (CallDescriptor *call_descriptor, int input_count, Node *const *inputs)
 
Node * TailCallN (CallDescriptor *call_descriptor, int input_count, Node *const *inputs)
 
Node * CallCFunction0 (MachineType return_type, Node *function)
 
Node * CallCFunction1 (MachineType return_type, MachineType arg0_type, Node *function, Node *arg0)
 
Node * CallCFunction1WithCallerSavedRegisters (MachineType return_type, MachineType arg0_type, Node *function, Node *arg0, SaveFPRegsMode mode=kSaveFPRegs)
 
Node * CallCFunction2 (MachineType return_type, MachineType arg0_type, MachineType arg1_type, Node *function, Node *arg0, Node *arg1)
 
Node * CallCFunction3 (MachineType return_type, MachineType arg0_type, MachineType arg1_type, MachineType arg2_type, Node *function, Node *arg0, Node *arg1, Node *arg2)
 
Node * CallCFunction3WithCallerSavedRegisters (MachineType return_type, MachineType arg0_type, MachineType arg1_type, MachineType arg2_type, Node *function, Node *arg0, Node *arg1, Node *arg2, SaveFPRegsMode mode=kSaveFPRegs)
 
Node * CallCFunction4 (MachineType return_type, MachineType arg0_type, MachineType arg1_type, MachineType arg2_type, MachineType arg3_type, Node *function, Node *arg0, Node *arg1, Node *arg2, Node *arg3)
 
Node * CallCFunction5 (MachineType return_type, MachineType arg0_type, MachineType arg1_type, MachineType arg2_type, MachineType arg3_type, MachineType arg4_type, Node *function, Node *arg0, Node *arg1, Node *arg2, Node *arg3, Node *arg4)
 
Node * CallCFunction6 (MachineType return_type, MachineType arg0_type, MachineType arg1_type, MachineType arg2_type, MachineType arg3_type, MachineType arg4_type, MachineType arg5_type, Node *function, Node *arg0, Node *arg1, Node *arg2, Node *arg3, Node *arg4, Node *arg5)
 
Node * CallCFunction8 (MachineType return_type, MachineType arg0_type, MachineType arg1_type, MachineType arg2_type, MachineType arg3_type, MachineType arg4_type, MachineType arg5_type, MachineType arg6_type, MachineType arg7_type, Node *function, Node *arg0, Node *arg1, Node *arg2, Node *arg3, Node *arg4, Node *arg5, Node *arg6, Node *arg7)
 
Node * CallCFunction9 (MachineType return_type, MachineType arg0_type, MachineType arg1_type, MachineType arg2_type, MachineType arg3_type, MachineType arg4_type, MachineType arg5_type, MachineType arg6_type, MachineType arg7_type, MachineType arg8_type, Node *function, Node *arg0, Node *arg1, Node *arg2, Node *arg3, Node *arg4, Node *arg5, Node *arg6, Node *arg7, Node *arg8)
 
void Goto (RawMachineLabel *label)
 
void Branch (Node *condition, RawMachineLabel *true_val, RawMachineLabel *false_val)
 
void Switch (Node *index, RawMachineLabel *default_label, const int32_t *case_values, RawMachineLabel **case_labels, size_t case_count)
 
void Return (Node *value)
 
void Return (Node *v1, Node *v2)
 
void Return (Node *v1, Node *v2, Node *v3)
 
void Return (Node *v1, Node *v2, Node *v3, Node *v4)
 
void Return (int count, Node *v[])
 
void PopAndReturn (Node *pop, Node *value)
 
void PopAndReturn (Node *pop, Node *v1, Node *v2)
 
void PopAndReturn (Node *pop, Node *v1, Node *v2, Node *v3)
 
void PopAndReturn (Node *pop, Node *v1, Node *v2, Node *v3, Node *v4)
 
void Bind (RawMachineLabel *label)
 
void Deoptimize (Node *state)
 
void DebugAbort (Node *message)
 
void DebugBreak ()
 
void Unreachable ()
 
void Comment (const char *msg)
 
bool InsideBlock ()
 
void Continuations (Node *call, RawMachineLabel *if_success, RawMachineLabel *if_exception)
 
Node * Phi (MachineRepresentation rep, Node *n1, Node *n2)
 
Node * Phi (MachineRepresentation rep, Node *n1, Node *n2, Node *n3)
 
Node * Phi (MachineRepresentation rep, Node *n1, Node *n2, Node *n3, Node *n4)
 
Node * Phi (MachineRepresentation rep, int input_count, Node *const *inputs)
 
void AppendPhiInput (Node *phi, Node *new_input)
 
Node * AddNode (const Operator *op, int input_count, Node *const *inputs)
 
Node * AddNode (const Operator *op)
 
template<class... TArgs>
Node * AddNode (const Operator *op, Node *n1, TArgs... args)
 

Detailed Description

Definition at line 38 of file raw-machine-assembler.h.


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