summaryrefslogtreecommitdiff
path: root/deps/v8/src/ic/binary-op-assembler.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/ic/binary-op-assembler.h')
-rw-r--r--deps/v8/src/ic/binary-op-assembler.h60
1 files changed, 33 insertions, 27 deletions
diff --git a/deps/v8/src/ic/binary-op-assembler.h b/deps/v8/src/ic/binary-op-assembler.h
index 26324660c8..37484909d4 100644
--- a/deps/v8/src/ic/binary-op-assembler.h
+++ b/deps/v8/src/ic/binary-op-assembler.h
@@ -17,44 +17,50 @@ class CodeAssemblerState;
class BinaryOpAssembler : public CodeStubAssembler {
public:
- using Node = compiler::Node;
-
explicit BinaryOpAssembler(compiler::CodeAssemblerState* state)
: CodeStubAssembler(state) {}
- Node* Generate_AddWithFeedback(Node* context, Node* lhs, Node* rhs,
- Node* slot_id, Node* feedback_vector,
- bool rhs_is_smi);
+ TNode<Object> Generate_AddWithFeedback(
+ TNode<Context> context, TNode<Object> left, TNode<Object> right,
+ TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
+ bool rhs_known_smi);
- Node* Generate_SubtractWithFeedback(Node* context, Node* lhs, Node* rhs,
- Node* slot_id, Node* feedback_vector,
- bool rhs_is_smi);
+ TNode<Object> Generate_SubtractWithFeedback(
+ TNode<Context> context, TNode<Object> left, TNode<Object> right,
+ TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
+ bool rhs_known_smi);
- Node* Generate_MultiplyWithFeedback(Node* context, Node* lhs, Node* rhs,
- Node* slot_id, Node* feedback_vector,
- bool rhs_is_smi);
+ TNode<Object> Generate_MultiplyWithFeedback(
+ TNode<Context> context, TNode<Object> left, TNode<Object> right,
+ TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
+ bool rhs_known_smi);
- Node* Generate_DivideWithFeedback(Node* context, Node* dividend,
- Node* divisor, Node* slot_id,
- Node* feedback_vector, bool rhs_is_smi);
+ TNode<Object> Generate_DivideWithFeedback(
+ TNode<Context> context, TNode<Object> dividend, TNode<Object> divisor,
+ TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
+ bool rhs_known_smi);
- Node* Generate_ModulusWithFeedback(Node* context, Node* dividend,
- Node* divisor, Node* slot_id,
- Node* feedback_vector, bool rhs_is_smi);
+ TNode<Object> Generate_ModulusWithFeedback(
+ TNode<Context> context, TNode<Object> dividend, TNode<Object> divisor,
+ TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
+ bool rhs_known_smi);
- Node* Generate_ExponentiateWithFeedback(Node* context, Node* dividend,
- Node* divisor, Node* slot_id,
- Node* feedback_vector,
- bool rhs_is_smi);
+ TNode<Object> Generate_ExponentiateWithFeedback(
+ TNode<Context> context, TNode<Object> base, TNode<Object> exponent,
+ TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
+ bool rhs_known_smi);
private:
- using SmiOperation = std::function<Node*(Node*, Node*, Variable*)>;
- using FloatOperation = std::function<Node*(Node*, Node*)>;
-
- Node* Generate_BinaryOperationWithFeedback(
- Node* context, Node* lhs, Node* rhs, Node* slot_id, Node* feedback_vector,
+ using SmiOperation =
+ std::function<TNode<Object>(TNode<Smi>, TNode<Smi>, TVariable<Smi>*)>;
+ using FloatOperation =
+ std::function<TNode<Float64T>(TNode<Float64T>, TNode<Float64T>)>;
+
+ TNode<Object> Generate_BinaryOperationWithFeedback(
+ TNode<Context> context, TNode<Object> left, TNode<Object> right,
+ TNode<UintPtrT> slot, TNode<HeapObject> maybe_feedback_vector,
const SmiOperation& smiOperation, const FloatOperation& floatOperation,
- Operation op, bool rhs_is_smi);
+ Operation op, bool rhs_known_smi);
};
} // namespace internal