| // Copyright 2020 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef V8_IC_UNARY_OP_ASSEMBLER_H_ |
| #define V8_IC_UNARY_OP_ASSEMBLER_H_ |
| |
| #include "src/codegen/code-stub-assembler.h" |
| |
| namespace v8 { |
| namespace internal { |
| |
| namespace compiler { |
| class CodeAssemblerState; |
| } // namespace compiler |
| |
| class UnaryOpAssembler final { |
| public: |
| explicit UnaryOpAssembler(compiler::CodeAssemblerState* state) |
| : state_(state) {} |
| |
| TNode<Object> Generate_BitwiseNotWithFeedback( |
| TNode<Context> context, TNode<Object> value, TNode<UintPtrT> slot, |
| TNode<HeapObject> maybe_feedback_vector, |
| UpdateFeedbackMode update_feedback_mode); |
| |
| TNode<Object> Generate_DecrementWithFeedback( |
| TNode<Context> context, TNode<Object> value, TNode<UintPtrT> slot, |
| TNode<HeapObject> maybe_feedback_vector, |
| UpdateFeedbackMode update_feedback_mode); |
| |
| TNode<Object> Generate_IncrementWithFeedback( |
| TNode<Context> context, TNode<Object> value, TNode<UintPtrT> slot, |
| TNode<HeapObject> maybe_feedback_vector, |
| UpdateFeedbackMode update_feedback_mode); |
| |
| TNode<Object> Generate_NegateWithFeedback( |
| TNode<Context> context, TNode<Object> value, TNode<UintPtrT> slot, |
| TNode<HeapObject> maybe_feedback_vector, |
| UpdateFeedbackMode update_feedback_mode); |
| |
| private: |
| compiler::CodeAssemblerState* const state_; |
| }; |
| |
| } // namespace internal |
| } // namespace v8 |
| |
| #endif // V8_IC_UNARY_OP_ASSEMBLER_H_ |