Line data Source code
1 : #ifndef V8_TORQUE_ARGUMENTS_FROM_DSL_BASE_H__
2 : #define V8_TORQUE_ARGUMENTS_FROM_DSL_BASE_H__
3 :
4 : #include "src/compiler/code-assembler.h"
5 : #include "src/code-stub-assembler.h"
6 :
7 : namespace v8 {
8 : namespace internal {
9 :
10 168 : class ArgumentsBuiltinsFromDSLAssembler {
11 : public:
12 168 : explicit ArgumentsBuiltinsFromDSLAssembler(compiler::CodeAssemblerState* state) : state_(state), ca_(state) { USE(state_, ca_); }
13 : struct ArgumentsInfo {
14 : compiler::TNode<RawPtrT> frame;
15 : compiler::TNode<BInt> argument_count;
16 : compiler::TNode<BInt> formal_parameter_count;
17 :
18 : std::tuple<compiler::TNode<RawPtrT>, compiler::TNode<BInt>, compiler::TNode<BInt>> Flatten() const {
19 : return std::tuple_cat(std::make_tuple(frame), std::make_tuple(argument_count), std::make_tuple(formal_parameter_count));
20 : }
21 : };
22 : ArgumentsBuiltinsFromDSLAssembler::ArgumentsInfo GetArgumentsFrameAndCount(compiler::TNode<Context> p_context, compiler::TNode<JSFunction> p_f);
23 : private:
24 : compiler::CodeAssemblerState* const state_;
25 : compiler::CodeAssembler ca_;};
26 :
27 : } // namespace internal
28 : } // namespace v8
29 :
30 : #endif // V8_TORQUE_ARGUMENTS_FROM_DSL_BASE_H__
|