5#ifndef V8_IC_BINARY_OP_ASSEMBLER_H_
6#define V8_IC_BINARY_OP_ASSEMBLER_H_
62 Operation::kBitwiseOr, left, right, context, slot,
63 maybe_feedback_vector, update_feedback_mode, rhs_known_smi);
72 Operation::kBitwiseXor, left, right, context, slot,
73 maybe_feedback_vector, update_feedback_mode, rhs_known_smi);
83 Operation::kBitwiseAnd, left, right, context, slot,
84 maybe_feedback_vector, update_feedback_mode, rhs_known_smi);
94 Operation::kShiftLeft, left, right, context, slot,
95 maybe_feedback_vector, update_feedback_mode, rhs_known_smi);
105 Operation::kShiftRight, left, right, context, slot,
106 maybe_feedback_vector, update_feedback_mode, rhs_known_smi);
116 Operation::kShiftRightLogical, left, right, context, slot,
117 maybe_feedback_vector, update_feedback_mode, rhs_known_smi);
129 bitwise_op, left, right, context, &slot,
130 &maybe_feedback_vector, update_feedback_mode)
132 bitwise_op, left, right, context, &slot,
133 &maybe_feedback_vector, update_feedback_mode);
141 bitwise_op, left, right, [&] {
return context; },
nullptr,
nullptr,
173 switch (bitwise_op) {
174 case Operation::kBitwiseAnd:
175 case Operation::kBitwiseOr:
176 case Operation::kBitwiseXor:
177 case Operation::kShiftRight:
bool IsBitwiseOutputKnownSmi(Operation bitwise_op)
TNode< Object > Generate_ShiftLeftWithFeedback(const LazyNode< Context > &context, TNode< Object > left, TNode< Object > right, TNode< UintPtrT > slot, const LazyNode< HeapObject > &maybe_feedback_vector, UpdateFeedbackMode update_feedback_mode, bool rhs_known_smi)
TNode< Object > Generate_BitwiseXorWithFeedback(const LazyNode< Context > &context, TNode< Object > left, TNode< Object > right, TNode< UintPtrT > slot, const LazyNode< HeapObject > &maybe_feedback_vector, UpdateFeedbackMode update_feedback_mode, bool rhs_known_smi)
TNode< Object > Generate_ShiftRightWithFeedback(const LazyNode< Context > &context, TNode< Object > left, TNode< Object > right, TNode< UintPtrT > slot, const LazyNode< HeapObject > &maybe_feedback_vector, UpdateFeedbackMode update_feedback_mode, bool rhs_known_smi)
TNode< Object > Generate_BitwiseBinaryOp(Operation bitwise_op, TNode< Object > left, TNode< Object > right, TNode< Context > context)
std::function< TNode< Object >(TNode< Smi >, TNode< Smi >, TVariable< Smi > *)> SmiOperation
TNode< Object > Generate_BitwiseBinaryOpWithSmiOperandAndOptionalFeedback(Operation bitwise_op, TNode< Object > left, TNode< Object > right, const LazyNode< Context > &context, TNode< UintPtrT > *slot, const LazyNode< HeapObject > *maybe_feedback_vector, UpdateFeedbackMode update_feedback_mode)
std::function< TNode< Float64T >(TNode< Float64T >, TNode< Float64T >)> FloatOperation
TNode< Object > Generate_ExponentiateWithFeedback(const LazyNode< Context > &context, TNode< Object > base, TNode< Object > exponent, TNode< UintPtrT > slot, const LazyNode< HeapObject > &maybe_feedback_vector, UpdateFeedbackMode update_feedback_mode, bool rhs_known_smi)
TNode< Object > Generate_BinaryOperationWithFeedback(const LazyNode< Context > &context, TNode< Object > left, TNode< Object > right, TNode< UintPtrT > slot, const LazyNode< HeapObject > &maybe_feedback_vector, const SmiOperation &smiOperation, const FloatOperation &floatOperation, Operation op, UpdateFeedbackMode update_feedback_mode, bool rhs_known_smi)
TNode< Object > Generate_DivideWithFeedback(const LazyNode< Context > &context, TNode< Object > dividend, TNode< Object > divisor, TNode< UintPtrT > slot, const LazyNode< HeapObject > &maybe_feedback_vector, UpdateFeedbackMode update_feedback_mode, bool rhs_known_smi)
TNode< Object > Generate_AddWithFeedback(const LazyNode< Context > &context, TNode< Object > left, TNode< Object > right, TNode< UintPtrT > slot, const LazyNode< HeapObject > &maybe_feedback_vector, UpdateFeedbackMode update_feedback_mode, bool rhs_known_smi)
TNode< Object > Generate_BitwiseOrWithFeedback(const LazyNode< Context > &context, TNode< Object > left, TNode< Object > right, TNode< UintPtrT > slot, const LazyNode< HeapObject > &maybe_feedback_vector, UpdateFeedbackMode update_feedback_mode, bool rhs_known_smi)
TNode< Object > Generate_BitwiseBinaryOpWithOptionalFeedback(Operation bitwise_op, TNode< Object > left, TNode< Object > right, const LazyNode< Context > &context, TNode< UintPtrT > *slot, const LazyNode< HeapObject > *maybe_feedback_vector, UpdateFeedbackMode update_feedback_mode)
TNode< Object > Generate_BitwiseAndWithFeedback(const LazyNode< Context > &context, TNode< Object > left, TNode< Object > right, TNode< UintPtrT > slot, const LazyNode< HeapObject > &maybe_feedback_vector, UpdateFeedbackMode update_feedback_mode, bool rhs_known_smi)
BinaryOpAssembler(compiler::CodeAssemblerState *state)
TNode< Object > Generate_MultiplyWithFeedback(const LazyNode< Context > &context, TNode< Object > left, TNode< Object > right, TNode< UintPtrT > slot, const LazyNode< HeapObject > &maybe_feedback_vector, UpdateFeedbackMode update_feedback_mode, bool rhs_known_smi)
TNode< Object > Generate_SubtractWithFeedback(const LazyNode< Context > &context, TNode< Object > left, TNode< Object > right, TNode< UintPtrT > slot, const LazyNode< HeapObject > &maybe_feedback_vector, UpdateFeedbackMode update_feedback_mode, bool rhs_known_smi)
TNode< Object > Generate_BitwiseBinaryOpWithFeedback(Operation bitwise_op, TNode< Object > left, TNode< Object > right, const LazyNode< Context > &context, TNode< UintPtrT > slot, const LazyNode< HeapObject > &maybe_feedback_vector, UpdateFeedbackMode update_feedback_mode, bool rhs_known_smi)
TNode< Object > Generate_ModulusWithFeedback(const LazyNode< Context > &context, TNode< Object > dividend, TNode< Object > divisor, TNode< UintPtrT > slot, const LazyNode< HeapObject > &maybe_feedback_vector, UpdateFeedbackMode update_feedback_mode, bool rhs_known_smi)
TNode< Object > Generate_ShiftRightLogicalWithFeedback(const LazyNode< Context > &context, TNode< Object > left, TNode< Object > right, TNode< UintPtrT > slot, const LazyNode< HeapObject > &maybe_feedback_vector, UpdateFeedbackMode update_feedback_mode, bool rhs_known_smi)
std::function< TNode< T >()> LazyNode
ZoneVector< RpoNumber > & result
compiler::CodeAssemblerState CodeAssemblerState