Line data Source code
1 : #include "src/builtins/builtins-utils-gen.h"
2 : #include "src/builtins/builtins.h"
3 : #include "src/code-factory.h"
4 : #include "src/elements-kind.h"
5 : #include "src/heap/factory-inl.h"
6 : #include "src/objects.h"
7 : #include "src/objects/arguments.h"
8 : #include "src/objects/bigint.h"
9 : #include "src/objects/free-space.h"
10 : #include "src/objects/js-generator.h"
11 : #include "src/objects/js-promise.h"
12 : #include "src/objects/js-regexp-string-iterator.h"
13 : #include "src/objects/module.h"
14 : #include "src/objects/stack-frame-info.h"
15 : #include "src/builtins/builtins-regexp-gen.h"
16 : #include "src/builtins/builtins-array-gen.h"
17 : #include "src/builtins/builtins-collections-gen.h"
18 : #include "src/builtins/builtins-data-view-gen.h"
19 : #include "src/builtins/builtins-iterator-gen.h"
20 : #include "src/builtins/builtins-proxy-gen.h"
21 : #include "src/builtins/builtins-proxy-gen.h"
22 : #include "src/builtins/builtins-proxy-gen.h"
23 : #include "src/builtins/builtins-proxy-gen.h"
24 : #include "src/builtins/builtins-regexp-gen.h"
25 : #include "src/builtins/builtins-regexp-gen.h"
26 : #include "src/builtins/builtins-regexp-gen.h"
27 : #include "src/builtins/builtins-typed-array-gen.h"
28 : #include "src/builtins/builtins-constructor-gen.h"
29 : #include "src/builtins/builtins-typed-array-gen.h"
30 : #include "src/builtins/builtins-typed-array-gen.h"
31 : #include "src/builtins/builtins-typed-array-gen.h"
32 : #include "src/builtins/builtins-typed-array-gen.h"
33 : #include "src/builtins/builtins-typed-array-gen.h"
34 : #include "src/builtins/builtins-typed-array-gen.h"
35 : #include "src/builtins/builtins-typed-array-gen.h"
36 : #include "src/builtins/builtins-typed-array-gen.h"
37 : #include "torque-generated/builtins-base-from-dsl-gen.h"
38 : #include "torque-generated/builtins-growable-fixed-array-from-dsl-gen.h"
39 : #include "torque-generated/builtins-arguments-from-dsl-gen.h"
40 : #include "torque-generated/builtins-array-from-dsl-gen.h"
41 : #include "torque-generated/builtins-array-copywithin-from-dsl-gen.h"
42 : #include "torque-generated/builtins-array-filter-from-dsl-gen.h"
43 : #include "torque-generated/builtins-array-find-from-dsl-gen.h"
44 : #include "torque-generated/builtins-array-findindex-from-dsl-gen.h"
45 : #include "torque-generated/builtins-array-foreach-from-dsl-gen.h"
46 : #include "torque-generated/builtins-array-join-from-dsl-gen.h"
47 : #include "torque-generated/builtins-array-lastindexof-from-dsl-gen.h"
48 : #include "torque-generated/builtins-array-of-from-dsl-gen.h"
49 : #include "torque-generated/builtins-array-map-from-dsl-gen.h"
50 : #include "torque-generated/builtins-array-reverse-from-dsl-gen.h"
51 : #include "torque-generated/builtins-array-shift-from-dsl-gen.h"
52 : #include "torque-generated/builtins-array-slice-from-dsl-gen.h"
53 : #include "torque-generated/builtins-array-splice-from-dsl-gen.h"
54 : #include "torque-generated/builtins-array-unshift-from-dsl-gen.h"
55 : #include "torque-generated/builtins-collections-from-dsl-gen.h"
56 : #include "torque-generated/builtins-data-view-from-dsl-gen.h"
57 : #include "torque-generated/builtins-extras-utils-from-dsl-gen.h"
58 : #include "torque-generated/builtins-iterator-from-dsl-gen.h"
59 : #include "torque-generated/builtins-object-from-dsl-gen.h"
60 : #include "torque-generated/builtins-proxy-from-dsl-gen.h"
61 : #include "torque-generated/builtins-regexp-from-dsl-gen.h"
62 : #include "torque-generated/builtins-regexp-replace-from-dsl-gen.h"
63 : #include "torque-generated/builtins-string-from-dsl-gen.h"
64 : #include "torque-generated/builtins-string-html-from-dsl-gen.h"
65 : #include "torque-generated/builtins-string-repeat-from-dsl-gen.h"
66 : #include "torque-generated/builtins-typed-array-from-dsl-gen.h"
67 : #include "torque-generated/builtins-typed-array-createtypedarray-from-dsl-gen.h"
68 : #include "torque-generated/builtins-typed-array-every-from-dsl-gen.h"
69 : #include "torque-generated/builtins-typed-array-filter-from-dsl-gen.h"
70 : #include "torque-generated/builtins-typed-array-find-from-dsl-gen.h"
71 : #include "torque-generated/builtins-typed-array-findindex-from-dsl-gen.h"
72 : #include "torque-generated/builtins-typed-array-foreach-from-dsl-gen.h"
73 : #include "torque-generated/builtins-typed-array-reduce-from-dsl-gen.h"
74 : #include "torque-generated/builtins-typed-array-reduceright-from-dsl-gen.h"
75 : #include "torque-generated/builtins-typed-array-slice-from-dsl-gen.h"
76 : #include "torque-generated/builtins-typed-array-some-from-dsl-gen.h"
77 : #include "torque-generated/builtins-typed-array-subarray-from-dsl-gen.h"
78 : #include "torque-generated/builtins-test-from-dsl-gen.h"
79 :
80 : namespace v8 {
81 : namespace internal {
82 :
83 168 : ArgumentsBuiltinsFromDSLAssembler::ArgumentsInfo ArgumentsBuiltinsFromDSLAssembler::GetArgumentsFrameAndCount(compiler::TNode<Context> p_context, compiler::TNode<JSFunction> p_f) {
84 168 : compiler::CodeAssemblerParameterizedLabel<Context, JSFunction> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
85 : compiler::CodeAssemblerParameterizedLabel<Context, JSFunction, RawPtrT, SharedFunctionInfo, BInt, BInt, RawPtrT> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
86 : compiler::CodeAssemblerParameterizedLabel<Context, JSFunction, RawPtrT, SharedFunctionInfo, BInt, BInt, RawPtrT, RawPtrT> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
87 : compiler::CodeAssemblerParameterizedLabel<Context, JSFunction, RawPtrT, SharedFunctionInfo, BInt, BInt> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
88 : compiler::CodeAssemblerParameterizedLabel<Context, JSFunction, RawPtrT, SharedFunctionInfo, BInt, BInt, RawPtrT> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
89 : compiler::CodeAssemblerParameterizedLabel<Context, JSFunction, RawPtrT, BInt, BInt> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
90 : compiler::CodeAssemblerParameterizedLabel<Context, JSFunction, RawPtrT, BInt, BInt> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
91 : ca_.Goto(&block0, p_context, p_f);
92 :
93 168 : if (block0.is_used()) {
94 : compiler::TNode<Context> tmp0;
95 : compiler::TNode<JSFunction> tmp1;
96 : ca_.Bind(&block0, &tmp0, &tmp1);
97 168 : ca_.SetSourcePosition("../../src/builtins/arguments.tq", 36);
98 : compiler::TNode<RawPtrT> tmp2;
99 : USE(tmp2);
100 336 : tmp2 = ca_.UncheckedCast<RawPtrT>(CodeStubAssembler(state_).LoadParentFramePointer());
101 168 : ca_.SetSourcePosition("../../src/builtins/arguments.tq", 39);
102 168 : compiler::TNode<IntPtrT> tmp3 = ca_.IntPtrConstant(JSFunction::kSharedFunctionInfoOffset);
103 : USE(tmp3);
104 336 : compiler::TNode<SharedFunctionInfo>tmp4 = CodeStubAssembler(state_).LoadReference<SharedFunctionInfo>(CodeStubAssembler::Reference{tmp1, tmp3});
105 168 : ca_.SetSourcePosition("../../src/builtins/arguments.tq", 41);
106 168 : compiler::TNode<IntPtrT> tmp5 = ca_.IntPtrConstant(SharedFunctionInfo::kFormalParameterCountOffset);
107 : USE(tmp5);
108 504 : compiler::TNode<Uint16T>tmp6 = CodeStubAssembler(state_).LoadReference<Uint16T>(CodeStubAssembler::Reference{tmp4, tmp5});
109 : compiler::TNode<Int32T> tmp7;
110 : USE(tmp7);
111 504 : tmp7 = ca_.UncheckedCast<Int32T>(BaseBuiltinsFromDSLAssembler(state_).Convert7ATint328ATuint16(compiler::TNode<Uint16T>{tmp6}));
112 : compiler::TNode<BInt> tmp8;
113 : USE(tmp8);
114 504 : tmp8 = ca_.UncheckedCast<BInt>(BaseBuiltinsFromDSLAssembler(state_).Convert6ATbint7ATint32(compiler::TNode<Int32T>{tmp7}));
115 168 : ca_.SetSourcePosition("../../src/builtins/arguments.tq", 40);
116 168 : ca_.SetSourcePosition("../../src/builtins/arguments.tq", 42);
117 168 : ca_.SetSourcePosition("../../src/builtins/arguments.tq", 45);
118 : compiler::TNode<RawPtrT> tmp9;
119 : USE(tmp9);
120 504 : tmp9 = ca_.UncheckedCast<RawPtrT>(BaseBuiltinsFromDSLAssembler(state_).LoadCallerFromFrame(compiler::TNode<RawPtrT>{tmp2}));
121 : compiler::TNode<RawPtrT> tmp10;
122 : USE(tmp10);
123 168 : compiler::CodeAssemblerLabel label0(&ca_);
124 504 : tmp10 = BaseBuiltinsFromDSLAssembler(state_).Cast23ATArgumentsAdaptorFrame(compiler::TNode<Context>{tmp0}, compiler::TNode<RawPtrT>{tmp9}, &label0);
125 : ca_.Goto(&block4, tmp0, tmp1, tmp2, tmp4, tmp8, tmp8, tmp9, tmp10);
126 168 : if (label0.is_used()) {
127 168 : ca_.Bind(&label0);
128 : ca_.Goto(&block5, tmp0, tmp1, tmp2, tmp4, tmp8, tmp8, tmp9);
129 : }
130 : }
131 :
132 168 : if (block5.is_used()) {
133 : compiler::TNode<Context> tmp11;
134 : compiler::TNode<JSFunction> tmp12;
135 : compiler::TNode<RawPtrT> tmp13;
136 : compiler::TNode<SharedFunctionInfo> tmp14;
137 : compiler::TNode<BInt> tmp15;
138 : compiler::TNode<BInt> tmp16;
139 : compiler::TNode<RawPtrT> tmp17;
140 : ca_.Bind(&block5, &tmp11, &tmp12, &tmp13, &tmp14, &tmp15, &tmp16, &tmp17);
141 : ca_.Goto(&block3, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16);
142 : }
143 :
144 168 : if (block4.is_used()) {
145 : compiler::TNode<Context> tmp18;
146 : compiler::TNode<JSFunction> tmp19;
147 : compiler::TNode<RawPtrT> tmp20;
148 : compiler::TNode<SharedFunctionInfo> tmp21;
149 : compiler::TNode<BInt> tmp22;
150 : compiler::TNode<BInt> tmp23;
151 : compiler::TNode<RawPtrT> tmp24;
152 : compiler::TNode<RawPtrT> tmp25;
153 : ca_.Bind(&block4, &tmp18, &tmp19, &tmp20, &tmp21, &tmp22, &tmp23, &tmp24, &tmp25);
154 : ca_.Goto(&block2, tmp18, tmp19, tmp20, tmp21, tmp22, tmp23, tmp25);
155 : }
156 :
157 168 : if (block3.is_used()) {
158 : compiler::TNode<Context> tmp26;
159 : compiler::TNode<JSFunction> tmp27;
160 : compiler::TNode<RawPtrT> tmp28;
161 : compiler::TNode<SharedFunctionInfo> tmp29;
162 : compiler::TNode<BInt> tmp30;
163 : compiler::TNode<BInt> tmp31;
164 : ca_.Bind(&block3, &tmp26, &tmp27, &tmp28, &tmp29, &tmp30, &tmp31);
165 168 : ca_.SetSourcePosition("../../src/builtins/arguments.tq", 47);
166 168 : ca_.SetSourcePosition("../../src/builtins/arguments.tq", 48);
167 168 : ca_.SetSourcePosition("../../src/builtins/arguments.tq", 49);
168 168 : ca_.SetSourcePosition("../../src/builtins/arguments.tq", 46);
169 : ca_.Goto(&block1, tmp26, tmp27, tmp28, tmp31, tmp30);
170 : }
171 :
172 168 : if (block2.is_used()) {
173 : compiler::TNode<Context> tmp32;
174 : compiler::TNode<JSFunction> tmp33;
175 : compiler::TNode<RawPtrT> tmp34;
176 : compiler::TNode<SharedFunctionInfo> tmp35;
177 : compiler::TNode<BInt> tmp36;
178 : compiler::TNode<BInt> tmp37;
179 : compiler::TNode<RawPtrT> tmp38;
180 : ca_.Bind(&block2, &tmp32, &tmp33, &tmp34, &tmp35, &tmp36, &tmp37, &tmp38);
181 168 : ca_.SetSourcePosition("../../src/builtins/arguments.tq", 44);
182 168 : ca_.SetSourcePosition("../../src/builtins/arguments.tq", 53);
183 168 : ca_.SetSourcePosition("../../src/builtins/arguments.tq", 54);
184 : compiler::TNode<Smi> tmp39;
185 : USE(tmp39);
186 504 : tmp39 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).LoadLengthFromAdapterFrame(compiler::TNode<Context>{tmp32}, compiler::TNode<RawPtrT>{tmp38}));
187 : compiler::TNode<BInt> tmp40;
188 : USE(tmp40);
189 504 : tmp40 = ca_.UncheckedCast<BInt>(BaseBuiltinsFromDSLAssembler(state_).Convert6ATbint5ATSmi(compiler::TNode<Smi>{tmp39}));
190 168 : ca_.SetSourcePosition("../../src/builtins/arguments.tq", 55);
191 168 : ca_.SetSourcePosition("../../src/builtins/arguments.tq", 52);
192 : ca_.Goto(&block1, tmp32, tmp33, tmp38, tmp40, tmp36);
193 : }
194 :
195 168 : if (block1.is_used()) {
196 : compiler::TNode<Context> tmp41;
197 : compiler::TNode<JSFunction> tmp42;
198 : compiler::TNode<RawPtrT> tmp43;
199 : compiler::TNode<BInt> tmp44;
200 : compiler::TNode<BInt> tmp45;
201 : ca_.Bind(&block1, &tmp41, &tmp42, &tmp43, &tmp44, &tmp45);
202 168 : ca_.SetSourcePosition("../../src/builtins/arguments.tq", 34);
203 : ca_.Goto(&block6, tmp41, tmp42, tmp43, tmp44, tmp45);
204 : }
205 :
206 : compiler::TNode<Context> tmp46;
207 : compiler::TNode<JSFunction> tmp47;
208 : compiler::TNode<RawPtrT> tmp48;
209 : compiler::TNode<BInt> tmp49;
210 : compiler::TNode<BInt> tmp50;
211 : ca_.Bind(&block6, &tmp46, &tmp47, &tmp48, &tmp49, &tmp50);
212 336 : return ArgumentsBuiltinsFromDSLAssembler::ArgumentsInfo{compiler::TNode<RawPtrT>{tmp48}, compiler::TNode<BInt>{tmp49}, compiler::TNode<BInt>{tmp50}};
213 : }
214 :
215 : } // namespace internal
216 59480 : } // namespace v8
217 :
|