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-regexp-gen.h"
23 : #include "src/builtins/builtins-regexp-gen.h"
24 : #include "src/builtins/builtins-regexp-gen.h"
25 : #include "src/builtins/builtins-typed-array-gen.h"
26 : #include "src/builtins/builtins-constructor-gen.h"
27 : #include "src/builtins/builtins-typed-array-gen.h"
28 : #include "src/builtins/builtins-typed-array-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 "torque-generated/builtins-base-from-dsl-gen.h"
36 : #include "torque-generated/builtins-growable-fixed-array-from-dsl-gen.h"
37 : #include "torque-generated/builtins-arguments-from-dsl-gen.h"
38 : #include "torque-generated/builtins-array-from-dsl-gen.h"
39 : #include "torque-generated/builtins-array-copywithin-from-dsl-gen.h"
40 : #include "torque-generated/builtins-array-filter-from-dsl-gen.h"
41 : #include "torque-generated/builtins-array-find-from-dsl-gen.h"
42 : #include "torque-generated/builtins-array-findindex-from-dsl-gen.h"
43 : #include "torque-generated/builtins-array-foreach-from-dsl-gen.h"
44 : #include "torque-generated/builtins-array-join-from-dsl-gen.h"
45 : #include "torque-generated/builtins-array-lastindexof-from-dsl-gen.h"
46 : #include "torque-generated/builtins-array-of-from-dsl-gen.h"
47 : #include "torque-generated/builtins-array-map-from-dsl-gen.h"
48 : #include "torque-generated/builtins-array-reverse-from-dsl-gen.h"
49 : #include "torque-generated/builtins-array-shift-from-dsl-gen.h"
50 : #include "torque-generated/builtins-array-slice-from-dsl-gen.h"
51 : #include "torque-generated/builtins-array-splice-from-dsl-gen.h"
52 : #include "torque-generated/builtins-array-unshift-from-dsl-gen.h"
53 : #include "torque-generated/builtins-collections-from-dsl-gen.h"
54 : #include "torque-generated/builtins-data-view-from-dsl-gen.h"
55 : #include "torque-generated/builtins-extras-utils-from-dsl-gen.h"
56 : #include "torque-generated/builtins-iterator-from-dsl-gen.h"
57 : #include "torque-generated/builtins-object-from-dsl-gen.h"
58 : #include "torque-generated/builtins-proxy-from-dsl-gen.h"
59 : #include "torque-generated/builtins-regexp-from-dsl-gen.h"
60 : #include "torque-generated/builtins-regexp-replace-from-dsl-gen.h"
61 : #include "torque-generated/builtins-string-from-dsl-gen.h"
62 : #include "torque-generated/builtins-string-html-from-dsl-gen.h"
63 : #include "torque-generated/builtins-string-repeat-from-dsl-gen.h"
64 : #include "torque-generated/builtins-typed-array-from-dsl-gen.h"
65 : #include "torque-generated/builtins-typed-array-createtypedarray-from-dsl-gen.h"
66 : #include "torque-generated/builtins-typed-array-every-from-dsl-gen.h"
67 : #include "torque-generated/builtins-typed-array-filter-from-dsl-gen.h"
68 : #include "torque-generated/builtins-typed-array-find-from-dsl-gen.h"
69 : #include "torque-generated/builtins-typed-array-findindex-from-dsl-gen.h"
70 : #include "torque-generated/builtins-typed-array-foreach-from-dsl-gen.h"
71 : #include "torque-generated/builtins-typed-array-reduce-from-dsl-gen.h"
72 : #include "torque-generated/builtins-typed-array-reduceright-from-dsl-gen.h"
73 : #include "torque-generated/builtins-typed-array-slice-from-dsl-gen.h"
74 : #include "torque-generated/builtins-typed-array-some-from-dsl-gen.h"
75 : #include "torque-generated/builtins-typed-array-subarray-from-dsl-gen.h"
76 : #include "torque-generated/builtins-test-from-dsl-gen.h"
77 :
78 : namespace v8 {
79 : namespace internal {
80 :
81 112 : compiler::TNode<Smi> ArrayReverseBuiltinsFromDSLAssembler::LoadElement23ATFastPackedSmiElements5ATSmi(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_index) {
82 112 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
83 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Smi> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
84 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Smi> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
85 : ca_.Goto(&block0, p_context, p_elements, p_index);
86 :
87 112 : if (block0.is_used()) {
88 : compiler::TNode<Context> tmp0;
89 : compiler::TNode<FixedArrayBase> tmp1;
90 : compiler::TNode<Smi> tmp2;
91 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2);
92 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 11);
93 : compiler::TNode<FixedArray> tmp3;
94 : USE(tmp3);
95 336 : tmp3 = ca_.UncheckedCast<FixedArray>(BaseBuiltinsFromDSLAssembler(state_).UnsafeCast10FixedArray(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}));
96 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 12);
97 : compiler::TNode<Object> tmp4;
98 : USE(tmp4);
99 224 : tmp4 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).LoadFixedArrayElement(compiler::TNode<FixedArray>{tmp3}, compiler::TNode<Smi>{tmp2}));
100 : compiler::TNode<Smi> tmp5;
101 : USE(tmp5);
102 336 : tmp5 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).UnsafeCast5ATSmi(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp4}));
103 : ca_.Goto(&block1, tmp0, tmp1, tmp2, tmp5);
104 : }
105 :
106 112 : if (block1.is_used()) {
107 : compiler::TNode<Context> tmp6;
108 : compiler::TNode<FixedArrayBase> tmp7;
109 : compiler::TNode<Smi> tmp8;
110 : compiler::TNode<Smi> tmp9;
111 : ca_.Bind(&block1, &tmp6, &tmp7, &tmp8, &tmp9);
112 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 6);
113 : ca_.Goto(&block2, tmp6, tmp7, tmp8, tmp9);
114 : }
115 :
116 : compiler::TNode<Context> tmp10;
117 : compiler::TNode<FixedArrayBase> tmp11;
118 : compiler::TNode<Smi> tmp12;
119 : compiler::TNode<Smi> tmp13;
120 : ca_.Bind(&block2, &tmp10, &tmp11, &tmp12, &tmp13);
121 224 : return compiler::TNode<Smi>{tmp13};
122 : }
123 :
124 112 : compiler::TNode<Object> ArrayReverseBuiltinsFromDSLAssembler::LoadElement26ATFastPackedObjectElements20UT5ATSmi10HeapObject(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_index) {
125 112 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
126 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Object> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
127 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Object> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
128 : ca_.Goto(&block0, p_context, p_elements, p_index);
129 :
130 112 : if (block0.is_used()) {
131 : compiler::TNode<Context> tmp0;
132 : compiler::TNode<FixedArrayBase> tmp1;
133 : compiler::TNode<Smi> tmp2;
134 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2);
135 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 17);
136 : compiler::TNode<FixedArray> tmp3;
137 : USE(tmp3);
138 336 : tmp3 = ca_.UncheckedCast<FixedArray>(BaseBuiltinsFromDSLAssembler(state_).UnsafeCast10FixedArray(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}));
139 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 18);
140 : compiler::TNode<Object> tmp4;
141 : USE(tmp4);
142 224 : tmp4 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).LoadFixedArrayElement(compiler::TNode<FixedArray>{tmp3}, compiler::TNode<Smi>{tmp2}));
143 : ca_.Goto(&block1, tmp0, tmp1, tmp2, tmp4);
144 : }
145 :
146 112 : if (block1.is_used()) {
147 : compiler::TNode<Context> tmp5;
148 : compiler::TNode<FixedArrayBase> tmp6;
149 : compiler::TNode<Smi> tmp7;
150 : compiler::TNode<Object> tmp8;
151 : ca_.Bind(&block1, &tmp5, &tmp6, &tmp7, &tmp8);
152 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 6);
153 : ca_.Goto(&block2, tmp5, tmp6, tmp7, tmp8);
154 : }
155 :
156 : compiler::TNode<Context> tmp9;
157 : compiler::TNode<FixedArrayBase> tmp10;
158 : compiler::TNode<Smi> tmp11;
159 : compiler::TNode<Object> tmp12;
160 : ca_.Bind(&block2, &tmp9, &tmp10, &tmp11, &tmp12);
161 224 : return compiler::TNode<Object>{tmp12};
162 : }
163 :
164 112 : compiler::TNode<Float64T> ArrayReverseBuiltinsFromDSLAssembler::LoadElement26ATFastPackedDoubleElements9ATfloat64(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_index) {
165 112 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
166 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, FixedDoubleArray, FixedDoubleArray, Smi> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
167 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, FixedDoubleArray, FixedDoubleArray, Smi, Float64T> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
168 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, FixedDoubleArray> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
169 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, FixedDoubleArray, Float64T> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
170 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Float64T> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
171 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Float64T> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
172 : ca_.Goto(&block0, p_context, p_elements, p_index);
173 :
174 112 : if (block0.is_used()) {
175 : compiler::TNode<Context> tmp0;
176 : compiler::TNode<FixedArrayBase> tmp1;
177 : compiler::TNode<Smi> tmp2;
178 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2);
179 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 24);
180 : compiler::TNode<FixedDoubleArray> tmp3;
181 : USE(tmp3);
182 336 : tmp3 = ca_.UncheckedCast<FixedDoubleArray>(BaseBuiltinsFromDSLAssembler(state_).UnsafeCast16FixedDoubleArray(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}));
183 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 27);
184 : compiler::TNode<Float64T> tmp4;
185 : USE(tmp4);
186 112 : compiler::CodeAssemblerLabel label0(&ca_);
187 224 : tmp4 = CodeStubAssembler(state_).LoadDoubleWithHoleCheck(compiler::TNode<FixedDoubleArray>{tmp3}, compiler::TNode<Smi>{tmp2}, &label0);
188 : ca_.Goto(&block4, tmp0, tmp1, tmp2, tmp3, tmp3, tmp2, tmp4);
189 112 : if (label0.is_used()) {
190 112 : ca_.Bind(&label0);
191 : ca_.Goto(&block5, tmp0, tmp1, tmp2, tmp3, tmp3, tmp2);
192 : }
193 : }
194 :
195 112 : if (block5.is_used()) {
196 : compiler::TNode<Context> tmp5;
197 : compiler::TNode<FixedArrayBase> tmp6;
198 : compiler::TNode<Smi> tmp7;
199 : compiler::TNode<FixedDoubleArray> tmp8;
200 : compiler::TNode<FixedDoubleArray> tmp9;
201 : compiler::TNode<Smi> tmp10;
202 : ca_.Bind(&block5, &tmp5, &tmp6, &tmp7, &tmp8, &tmp9, &tmp10);
203 : ca_.Goto(&block3, tmp5, tmp6, tmp7, tmp8);
204 : }
205 :
206 112 : if (block4.is_used()) {
207 : compiler::TNode<Context> tmp11;
208 : compiler::TNode<FixedArrayBase> tmp12;
209 : compiler::TNode<Smi> tmp13;
210 : compiler::TNode<FixedDoubleArray> tmp14;
211 : compiler::TNode<FixedDoubleArray> tmp15;
212 : compiler::TNode<Smi> tmp16;
213 : compiler::TNode<Float64T> tmp17;
214 : ca_.Bind(&block4, &tmp11, &tmp12, &tmp13, &tmp14, &tmp15, &tmp16, &tmp17);
215 : ca_.Goto(&block2, tmp11, tmp12, tmp13, tmp14, tmp17);
216 : }
217 :
218 112 : if (block3.is_used()) {
219 : compiler::TNode<Context> tmp18;
220 : compiler::TNode<FixedArrayBase> tmp19;
221 : compiler::TNode<Smi> tmp20;
222 : compiler::TNode<FixedDoubleArray> tmp21;
223 : ca_.Bind(&block3, &tmp18, &tmp19, &tmp20, &tmp21);
224 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 28);
225 224 : CodeStubAssembler(state_).Unreachable();
226 : }
227 :
228 112 : if (block2.is_used()) {
229 : compiler::TNode<Context> tmp22;
230 : compiler::TNode<FixedArrayBase> tmp23;
231 : compiler::TNode<Smi> tmp24;
232 : compiler::TNode<FixedDoubleArray> tmp25;
233 : compiler::TNode<Float64T> tmp26;
234 : ca_.Bind(&block2, &tmp22, &tmp23, &tmp24, &tmp25, &tmp26);
235 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 27);
236 : ca_.Goto(&block1, tmp22, tmp23, tmp24, tmp26);
237 : }
238 :
239 112 : if (block1.is_used()) {
240 : compiler::TNode<Context> tmp27;
241 : compiler::TNode<FixedArrayBase> tmp28;
242 : compiler::TNode<Smi> tmp29;
243 : compiler::TNode<Float64T> tmp30;
244 : ca_.Bind(&block1, &tmp27, &tmp28, &tmp29, &tmp30);
245 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 6);
246 : ca_.Goto(&block6, tmp27, tmp28, tmp29, tmp30);
247 : }
248 :
249 : compiler::TNode<Context> tmp31;
250 : compiler::TNode<FixedArrayBase> tmp32;
251 : compiler::TNode<Smi> tmp33;
252 : compiler::TNode<Float64T> tmp34;
253 : ca_.Bind(&block6, &tmp31, &tmp32, &tmp33, &tmp34);
254 224 : return compiler::TNode<Float64T>{tmp34};
255 : }
256 :
257 112 : void ArrayReverseBuiltinsFromDSLAssembler::StoreElement23ATFastPackedSmiElements5ATSmi(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_index, compiler::TNode<Smi> p_value) {
258 112 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Smi> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
259 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Smi> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
260 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Smi> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
261 : ca_.Goto(&block0, p_context, p_elements, p_index, p_value);
262 :
263 112 : if (block0.is_used()) {
264 : compiler::TNode<Context> tmp0;
265 : compiler::TNode<FixedArrayBase> tmp1;
266 : compiler::TNode<Smi> tmp2;
267 : compiler::TNode<Smi> tmp3;
268 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3);
269 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 37);
270 : compiler::TNode<FixedArray> tmp4;
271 : USE(tmp4);
272 336 : tmp4 = ca_.UncheckedCast<FixedArray>(BaseBuiltinsFromDSLAssembler(state_).UnsafeCast10FixedArray(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}));
273 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 38);
274 224 : CodeStubAssembler(state_).StoreFixedArrayElementSmi(compiler::TNode<FixedArray>{tmp4}, compiler::TNode<Smi>{tmp2}, compiler::TNode<Object>{tmp3}, SKIP_WRITE_BARRIER);
275 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 36);
276 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 31);
277 : ca_.Goto(&block1, tmp0, tmp1, tmp2, tmp3);
278 : }
279 :
280 112 : if (block1.is_used()) {
281 : compiler::TNode<Context> tmp5;
282 : compiler::TNode<FixedArrayBase> tmp6;
283 : compiler::TNode<Smi> tmp7;
284 : compiler::TNode<Smi> tmp8;
285 : ca_.Bind(&block1, &tmp5, &tmp6, &tmp7, &tmp8);
286 : ca_.Goto(&block2, tmp5, tmp6, tmp7, tmp8);
287 : }
288 :
289 : compiler::TNode<Context> tmp9;
290 : compiler::TNode<FixedArrayBase> tmp10;
291 : compiler::TNode<Smi> tmp11;
292 : compiler::TNode<Smi> tmp12;
293 : ca_.Bind(&block2, &tmp9, &tmp10, &tmp11, &tmp12);
294 112 : }
295 :
296 112 : void ArrayReverseBuiltinsFromDSLAssembler::StoreElement26ATFastPackedObjectElements20UT5ATSmi10HeapObject(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_index, compiler::TNode<Object> p_value) {
297 112 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
298 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Object> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
299 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Object> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
300 : ca_.Goto(&block0, p_context, p_elements, p_index, p_value);
301 :
302 112 : if (block0.is_used()) {
303 : compiler::TNode<Context> tmp0;
304 : compiler::TNode<FixedArrayBase> tmp1;
305 : compiler::TNode<Smi> tmp2;
306 : compiler::TNode<Object> tmp3;
307 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3);
308 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 44);
309 : compiler::TNode<FixedArray> tmp4;
310 : USE(tmp4);
311 336 : tmp4 = ca_.UncheckedCast<FixedArray>(BaseBuiltinsFromDSLAssembler(state_).UnsafeCast10FixedArray(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}));
312 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 45);
313 224 : CodeStubAssembler(state_).StoreFixedArrayElementSmi(compiler::TNode<FixedArray>{tmp4}, compiler::TNode<Smi>{tmp2}, compiler::TNode<Object>{tmp3});
314 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 43);
315 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 31);
316 : ca_.Goto(&block1, tmp0, tmp1, tmp2, tmp3);
317 : }
318 :
319 112 : if (block1.is_used()) {
320 : compiler::TNode<Context> tmp5;
321 : compiler::TNode<FixedArrayBase> tmp6;
322 : compiler::TNode<Smi> tmp7;
323 : compiler::TNode<Object> tmp8;
324 : ca_.Bind(&block1, &tmp5, &tmp6, &tmp7, &tmp8);
325 : ca_.Goto(&block2, tmp5, tmp6, tmp7, tmp8);
326 : }
327 :
328 : compiler::TNode<Context> tmp9;
329 : compiler::TNode<FixedArrayBase> tmp10;
330 : compiler::TNode<Smi> tmp11;
331 : compiler::TNode<Object> tmp12;
332 : ca_.Bind(&block2, &tmp9, &tmp10, &tmp11, &tmp12);
333 112 : }
334 :
335 112 : void ArrayReverseBuiltinsFromDSLAssembler::StoreElement26ATFastPackedDoubleElements9ATfloat64(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_index, compiler::TNode<Float64T> p_value) {
336 112 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Float64T> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
337 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Float64T> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
338 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Float64T> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
339 : ca_.Goto(&block0, p_context, p_elements, p_index, p_value);
340 :
341 112 : if (block0.is_used()) {
342 : compiler::TNode<Context> tmp0;
343 : compiler::TNode<FixedArrayBase> tmp1;
344 : compiler::TNode<Smi> tmp2;
345 : compiler::TNode<Float64T> tmp3;
346 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3);
347 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 51);
348 : compiler::TNode<FixedDoubleArray> tmp4;
349 : USE(tmp4);
350 336 : tmp4 = ca_.UncheckedCast<FixedDoubleArray>(BaseBuiltinsFromDSLAssembler(state_).UnsafeCast16FixedDoubleArray(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}));
351 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 52);
352 224 : CodeStubAssembler(state_).StoreFixedDoubleArrayElementSmi(compiler::TNode<FixedDoubleArray>{tmp4}, compiler::TNode<Smi>{tmp2}, compiler::TNode<Float64T>{tmp3});
353 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 50);
354 112 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 31);
355 : ca_.Goto(&block1, tmp0, tmp1, tmp2, tmp3);
356 : }
357 :
358 112 : if (block1.is_used()) {
359 : compiler::TNode<Context> tmp5;
360 : compiler::TNode<FixedArrayBase> tmp6;
361 : compiler::TNode<Smi> tmp7;
362 : compiler::TNode<Float64T> tmp8;
363 : ca_.Bind(&block1, &tmp5, &tmp6, &tmp7, &tmp8);
364 : ca_.Goto(&block2, tmp5, tmp6, tmp7, tmp8);
365 : }
366 :
367 : compiler::TNode<Context> tmp9;
368 : compiler::TNode<FixedArrayBase> tmp10;
369 : compiler::TNode<Smi> tmp11;
370 : compiler::TNode<Float64T> tmp12;
371 : ca_.Bind(&block2, &tmp9, &tmp10, &tmp11, &tmp12);
372 112 : }
373 :
374 56 : compiler::TNode<Object> ArrayReverseBuiltinsFromDSLAssembler::GenericArrayReverse(compiler::TNode<Context> p_context, compiler::TNode<Object> p_receiver) {
375 56 : compiler::CodeAssemblerParameterizedLabel<Context, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
376 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Number> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
377 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Number, Number, Number> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
378 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Number, Number, Number> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
379 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Number> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
380 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Number, Object, Object, Oddball> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
381 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Number, Object, Object, Oddball> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
382 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Number, Object, Object, Oddball, Oddball> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
383 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Number, Object, Object, Oddball, Oddball> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
384 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Number, Object, Object, Oddball, Oddball> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
385 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Number, Object, Object, Oddball, Oddball> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
386 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Number, Object, Object, Oddball, Oddball> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
387 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Number, Object, Object, Oddball, Oddball> block17(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
388 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Number, Object, Object, Oddball, Oddball> block15(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
389 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Number, Object, Object, Oddball, Oddball> block16(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
390 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Number, Object, Object, Oddball, Oddball> block21(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
391 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Number, Object, Object, Oddball, Oddball> block19(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
392 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Number, Object, Object, Oddball, Oddball> block20(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
393 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Number, Object, Object, Oddball, Oddball> block18(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
394 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Number, Object, Object, Oddball, Oddball> block14(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
395 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Number, Number> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
396 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
397 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block22(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
398 : ca_.Goto(&block0, p_context, p_receiver);
399 :
400 56 : if (block0.is_used()) {
401 : compiler::TNode<Context> tmp0;
402 : compiler::TNode<Object> tmp1;
403 : ca_.Bind(&block0, &tmp0, &tmp1);
404 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 76);
405 : compiler::TNode<JSReceiver> tmp2;
406 : USE(tmp2);
407 112 : tmp2 = ca_.UncheckedCast<JSReceiver>(CodeStubAssembler(state_).ToObject_Inline(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}));
408 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 79);
409 : compiler::TNode<Number> tmp3;
410 : USE(tmp3);
411 168 : tmp3 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).GetLengthProperty(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp2}));
412 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 88);
413 : compiler::TNode<Number> tmp4;
414 : USE(tmp4);
415 168 : tmp4 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(0));
416 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 89);
417 : compiler::TNode<Number> tmp5;
418 : USE(tmp5);
419 168 : tmp5 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(1));
420 : compiler::TNode<Number> tmp6;
421 : USE(tmp6);
422 112 : tmp6 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberSub(compiler::TNode<Number>{tmp3}, compiler::TNode<Number>{tmp5}));
423 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 91);
424 : ca_.Goto(&block4, tmp0, tmp1, tmp2, tmp3, tmp4, tmp6);
425 : }
426 :
427 56 : if (block4.is_used()) {
428 : compiler::TNode<Context> tmp7;
429 : compiler::TNode<Object> tmp8;
430 : compiler::TNode<JSReceiver> tmp9;
431 : compiler::TNode<Number> tmp10;
432 : compiler::TNode<Number> tmp11;
433 : compiler::TNode<Number> tmp12;
434 : ca_.Bind(&block4, &tmp7, &tmp8, &tmp9, &tmp10, &tmp11, &tmp12);
435 56 : compiler::CodeAssemblerLabel label0(&ca_);
436 56 : compiler::CodeAssemblerLabel label1(&ca_);
437 112 : CodeStubAssembler(state_).BranchIfNumberLessThan(compiler::TNode<Number>{tmp11}, compiler::TNode<Number>{tmp12}, &label0, &label1);
438 56 : if (label0.is_used()) {
439 56 : ca_.Bind(&label0);
440 : ca_.Goto(&block5, tmp7, tmp8, tmp9, tmp10, tmp11, tmp12, tmp11, tmp12);
441 : }
442 56 : if (label1.is_used()) {
443 56 : ca_.Bind(&label1);
444 : ca_.Goto(&block6, tmp7, tmp8, tmp9, tmp10, tmp11, tmp12, tmp11, tmp12);
445 : }
446 : }
447 :
448 56 : if (block5.is_used()) {
449 : compiler::TNode<Context> tmp13;
450 : compiler::TNode<Object> tmp14;
451 : compiler::TNode<JSReceiver> tmp15;
452 : compiler::TNode<Number> tmp16;
453 : compiler::TNode<Number> tmp17;
454 : compiler::TNode<Number> tmp18;
455 : compiler::TNode<Number> tmp19;
456 : compiler::TNode<Number> tmp20;
457 : ca_.Bind(&block5, &tmp13, &tmp14, &tmp15, &tmp16, &tmp17, &tmp18, &tmp19, &tmp20);
458 : ca_.Goto(&block2, tmp13, tmp14, tmp15, tmp16, tmp17, tmp18);
459 : }
460 :
461 56 : if (block6.is_used()) {
462 : compiler::TNode<Context> tmp21;
463 : compiler::TNode<Object> tmp22;
464 : compiler::TNode<JSReceiver> tmp23;
465 : compiler::TNode<Number> tmp24;
466 : compiler::TNode<Number> tmp25;
467 : compiler::TNode<Number> tmp26;
468 : compiler::TNode<Number> tmp27;
469 : compiler::TNode<Number> tmp28;
470 : ca_.Bind(&block6, &tmp21, &tmp22, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27, &tmp28);
471 : ca_.Goto(&block3, tmp21, tmp22, tmp23, tmp24, tmp25, tmp26);
472 : }
473 :
474 56 : if (block2.is_used()) {
475 : compiler::TNode<Context> tmp29;
476 : compiler::TNode<Object> tmp30;
477 : compiler::TNode<JSReceiver> tmp31;
478 : compiler::TNode<Number> tmp32;
479 : compiler::TNode<Number> tmp33;
480 : compiler::TNode<Number> tmp34;
481 : ca_.Bind(&block2, &tmp29, &tmp30, &tmp31, &tmp32, &tmp33, &tmp34);
482 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 92);
483 : compiler::TNode<Oddball> tmp35;
484 : USE(tmp35);
485 168 : tmp35 = BaseBuiltinsFromDSLAssembler(state_).Undefined();
486 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 93);
487 : compiler::TNode<Oddball> tmp36;
488 : USE(tmp36);
489 168 : tmp36 = BaseBuiltinsFromDSLAssembler(state_).Undefined();
490 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 98);
491 : compiler::TNode<Oddball> tmp37;
492 112 : tmp37 = TORQUE_CAST(CodeStubAssembler(state_).CallBuiltin(Builtins::kHasProperty, tmp29, tmp31, tmp33));
493 : USE(tmp37);
494 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 101);
495 : compiler::TNode<Oddball> tmp38;
496 : USE(tmp38);
497 168 : tmp38 = BaseBuiltinsFromDSLAssembler(state_).True();
498 : compiler::TNode<BoolT> tmp39;
499 : USE(tmp39);
500 112 : tmp39 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<HeapObject>{tmp37}, compiler::TNode<HeapObject>{tmp38}));
501 56 : ca_.Branch(tmp39, &block7, &block8, tmp29, tmp30, tmp31, tmp32, tmp33, tmp34, tmp35, tmp36, tmp37);
502 : }
503 :
504 56 : if (block7.is_used()) {
505 : compiler::TNode<Context> tmp40;
506 : compiler::TNode<Object> tmp41;
507 : compiler::TNode<JSReceiver> tmp42;
508 : compiler::TNode<Number> tmp43;
509 : compiler::TNode<Number> tmp44;
510 : compiler::TNode<Number> tmp45;
511 : compiler::TNode<Object> tmp46;
512 : compiler::TNode<Object> tmp47;
513 : compiler::TNode<Oddball> tmp48;
514 : ca_.Bind(&block7, &tmp40, &tmp41, &tmp42, &tmp43, &tmp44, &tmp45, &tmp46, &tmp47, &tmp48);
515 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 103);
516 : compiler::TNode<Object> tmp49;
517 : USE(tmp49);
518 112 : tmp49 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetProperty(compiler::TNode<Context>{tmp40}, compiler::TNode<Object>{tmp42}, compiler::TNode<Object>{tmp44}));
519 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 101);
520 : ca_.Goto(&block8, tmp40, tmp41, tmp42, tmp43, tmp44, tmp45, tmp49, tmp47, tmp48);
521 : }
522 :
523 56 : if (block8.is_used()) {
524 : compiler::TNode<Context> tmp50;
525 : compiler::TNode<Object> tmp51;
526 : compiler::TNode<JSReceiver> tmp52;
527 : compiler::TNode<Number> tmp53;
528 : compiler::TNode<Number> tmp54;
529 : compiler::TNode<Number> tmp55;
530 : compiler::TNode<Object> tmp56;
531 : compiler::TNode<Object> tmp57;
532 : compiler::TNode<Oddball> tmp58;
533 : ca_.Bind(&block8, &tmp50, &tmp51, &tmp52, &tmp53, &tmp54, &tmp55, &tmp56, &tmp57, &tmp58);
534 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 107);
535 : compiler::TNode<Oddball> tmp59;
536 112 : tmp59 = TORQUE_CAST(CodeStubAssembler(state_).CallBuiltin(Builtins::kHasProperty, tmp50, tmp52, tmp55));
537 : USE(tmp59);
538 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 110);
539 : compiler::TNode<Oddball> tmp60;
540 : USE(tmp60);
541 168 : tmp60 = BaseBuiltinsFromDSLAssembler(state_).True();
542 : compiler::TNode<BoolT> tmp61;
543 : USE(tmp61);
544 112 : tmp61 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<HeapObject>{tmp59}, compiler::TNode<HeapObject>{tmp60}));
545 56 : ca_.Branch(tmp61, &block9, &block10, tmp50, tmp51, tmp52, tmp53, tmp54, tmp55, tmp56, tmp57, tmp58, tmp59);
546 : }
547 :
548 56 : if (block9.is_used()) {
549 : compiler::TNode<Context> tmp62;
550 : compiler::TNode<Object> tmp63;
551 : compiler::TNode<JSReceiver> tmp64;
552 : compiler::TNode<Number> tmp65;
553 : compiler::TNode<Number> tmp66;
554 : compiler::TNode<Number> tmp67;
555 : compiler::TNode<Object> tmp68;
556 : compiler::TNode<Object> tmp69;
557 : compiler::TNode<Oddball> tmp70;
558 : compiler::TNode<Oddball> tmp71;
559 : ca_.Bind(&block9, &tmp62, &tmp63, &tmp64, &tmp65, &tmp66, &tmp67, &tmp68, &tmp69, &tmp70, &tmp71);
560 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 112);
561 : compiler::TNode<Object> tmp72;
562 : USE(tmp72);
563 112 : tmp72 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetProperty(compiler::TNode<Context>{tmp62}, compiler::TNode<Object>{tmp64}, compiler::TNode<Object>{tmp67}));
564 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 110);
565 : ca_.Goto(&block10, tmp62, tmp63, tmp64, tmp65, tmp66, tmp67, tmp68, tmp72, tmp70, tmp71);
566 : }
567 :
568 56 : if (block10.is_used()) {
569 : compiler::TNode<Context> tmp73;
570 : compiler::TNode<Object> tmp74;
571 : compiler::TNode<JSReceiver> tmp75;
572 : compiler::TNode<Number> tmp76;
573 : compiler::TNode<Number> tmp77;
574 : compiler::TNode<Number> tmp78;
575 : compiler::TNode<Object> tmp79;
576 : compiler::TNode<Object> tmp80;
577 : compiler::TNode<Oddball> tmp81;
578 : compiler::TNode<Oddball> tmp82;
579 : ca_.Bind(&block10, &tmp73, &tmp74, &tmp75, &tmp76, &tmp77, &tmp78, &tmp79, &tmp80, &tmp81, &tmp82);
580 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 116);
581 : compiler::TNode<Oddball> tmp83;
582 : USE(tmp83);
583 168 : tmp83 = BaseBuiltinsFromDSLAssembler(state_).True();
584 : compiler::TNode<BoolT> tmp84;
585 : USE(tmp84);
586 112 : tmp84 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<HeapObject>{tmp81}, compiler::TNode<HeapObject>{tmp83}));
587 56 : ca_.Branch(tmp84, &block13, &block12, tmp73, tmp74, tmp75, tmp76, tmp77, tmp78, tmp79, tmp80, tmp81, tmp82);
588 : }
589 :
590 56 : if (block13.is_used()) {
591 : compiler::TNode<Context> tmp85;
592 : compiler::TNode<Object> tmp86;
593 : compiler::TNode<JSReceiver> tmp87;
594 : compiler::TNode<Number> tmp88;
595 : compiler::TNode<Number> tmp89;
596 : compiler::TNode<Number> tmp90;
597 : compiler::TNode<Object> tmp91;
598 : compiler::TNode<Object> tmp92;
599 : compiler::TNode<Oddball> tmp93;
600 : compiler::TNode<Oddball> tmp94;
601 : ca_.Bind(&block13, &tmp85, &tmp86, &tmp87, &tmp88, &tmp89, &tmp90, &tmp91, &tmp92, &tmp93, &tmp94);
602 : compiler::TNode<Oddball> tmp95;
603 : USE(tmp95);
604 168 : tmp95 = BaseBuiltinsFromDSLAssembler(state_).True();
605 : compiler::TNode<BoolT> tmp96;
606 : USE(tmp96);
607 112 : tmp96 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<HeapObject>{tmp94}, compiler::TNode<HeapObject>{tmp95}));
608 56 : ca_.Branch(tmp96, &block11, &block12, tmp85, tmp86, tmp87, tmp88, tmp89, tmp90, tmp91, tmp92, tmp93, tmp94);
609 : }
610 :
611 56 : if (block11.is_used()) {
612 : compiler::TNode<Context> tmp97;
613 : compiler::TNode<Object> tmp98;
614 : compiler::TNode<JSReceiver> tmp99;
615 : compiler::TNode<Number> tmp100;
616 : compiler::TNode<Number> tmp101;
617 : compiler::TNode<Number> tmp102;
618 : compiler::TNode<Object> tmp103;
619 : compiler::TNode<Object> tmp104;
620 : compiler::TNode<Oddball> tmp105;
621 : compiler::TNode<Oddball> tmp106;
622 : ca_.Bind(&block11, &tmp97, &tmp98, &tmp99, &tmp100, &tmp101, &tmp102, &tmp103, &tmp104, &tmp105, &tmp106);
623 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 118);
624 112 : CodeStubAssembler(state_).CallBuiltin(Builtins::kSetProperty, tmp97, tmp99, tmp101, tmp104);
625 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 121);
626 112 : CodeStubAssembler(state_).CallBuiltin(Builtins::kSetProperty, tmp97, tmp99, tmp102, tmp103);
627 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 116);
628 : ca_.Goto(&block14, tmp97, tmp98, tmp99, tmp100, tmp101, tmp102, tmp103, tmp104, tmp105, tmp106);
629 : }
630 :
631 56 : if (block12.is_used()) {
632 : compiler::TNode<Context> tmp109;
633 : compiler::TNode<Object> tmp110;
634 : compiler::TNode<JSReceiver> tmp111;
635 : compiler::TNode<Number> tmp112;
636 : compiler::TNode<Number> tmp113;
637 : compiler::TNode<Number> tmp114;
638 : compiler::TNode<Object> tmp115;
639 : compiler::TNode<Object> tmp116;
640 : compiler::TNode<Oddball> tmp117;
641 : compiler::TNode<Oddball> tmp118;
642 : ca_.Bind(&block12, &tmp109, &tmp110, &tmp111, &tmp112, &tmp113, &tmp114, &tmp115, &tmp116, &tmp117, &tmp118);
643 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 122);
644 : compiler::TNode<Oddball> tmp119;
645 : USE(tmp119);
646 168 : tmp119 = BaseBuiltinsFromDSLAssembler(state_).False();
647 : compiler::TNode<BoolT> tmp120;
648 : USE(tmp120);
649 112 : tmp120 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<HeapObject>{tmp117}, compiler::TNode<HeapObject>{tmp119}));
650 56 : ca_.Branch(tmp120, &block17, &block16, tmp109, tmp110, tmp111, tmp112, tmp113, tmp114, tmp115, tmp116, tmp117, tmp118);
651 : }
652 :
653 56 : if (block17.is_used()) {
654 : compiler::TNode<Context> tmp121;
655 : compiler::TNode<Object> tmp122;
656 : compiler::TNode<JSReceiver> tmp123;
657 : compiler::TNode<Number> tmp124;
658 : compiler::TNode<Number> tmp125;
659 : compiler::TNode<Number> tmp126;
660 : compiler::TNode<Object> tmp127;
661 : compiler::TNode<Object> tmp128;
662 : compiler::TNode<Oddball> tmp129;
663 : compiler::TNode<Oddball> tmp130;
664 : ca_.Bind(&block17, &tmp121, &tmp122, &tmp123, &tmp124, &tmp125, &tmp126, &tmp127, &tmp128, &tmp129, &tmp130);
665 : compiler::TNode<Oddball> tmp131;
666 : USE(tmp131);
667 168 : tmp131 = BaseBuiltinsFromDSLAssembler(state_).True();
668 : compiler::TNode<BoolT> tmp132;
669 : USE(tmp132);
670 112 : tmp132 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<HeapObject>{tmp130}, compiler::TNode<HeapObject>{tmp131}));
671 56 : ca_.Branch(tmp132, &block15, &block16, tmp121, tmp122, tmp123, tmp124, tmp125, tmp126, tmp127, tmp128, tmp129, tmp130);
672 : }
673 :
674 56 : if (block15.is_used()) {
675 : compiler::TNode<Context> tmp133;
676 : compiler::TNode<Object> tmp134;
677 : compiler::TNode<JSReceiver> tmp135;
678 : compiler::TNode<Number> tmp136;
679 : compiler::TNode<Number> tmp137;
680 : compiler::TNode<Number> tmp138;
681 : compiler::TNode<Object> tmp139;
682 : compiler::TNode<Object> tmp140;
683 : compiler::TNode<Oddball> tmp141;
684 : compiler::TNode<Oddball> tmp142;
685 : ca_.Bind(&block15, &tmp133, &tmp134, &tmp135, &tmp136, &tmp137, &tmp138, &tmp139, &tmp140, &tmp141, &tmp142);
686 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 124);
687 112 : CodeStubAssembler(state_).CallBuiltin(Builtins::kSetProperty, tmp133, tmp135, tmp137, tmp140);
688 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 127);
689 : compiler::TNode<Smi> tmp144;
690 : USE(tmp144);
691 168 : tmp144 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr14ATLanguageMode24ATconstexpr_LanguageMode(LanguageMode::kStrict));
692 112 : CodeStubAssembler(state_).CallBuiltin(Builtins::kDeleteProperty, tmp133, tmp135, tmp138, tmp144);
693 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 122);
694 : ca_.Goto(&block18, tmp133, tmp134, tmp135, tmp136, tmp137, tmp138, tmp139, tmp140, tmp141, tmp142);
695 : }
696 :
697 56 : if (block16.is_used()) {
698 : compiler::TNode<Context> tmp146;
699 : compiler::TNode<Object> tmp147;
700 : compiler::TNode<JSReceiver> tmp148;
701 : compiler::TNode<Number> tmp149;
702 : compiler::TNode<Number> tmp150;
703 : compiler::TNode<Number> tmp151;
704 : compiler::TNode<Object> tmp152;
705 : compiler::TNode<Object> tmp153;
706 : compiler::TNode<Oddball> tmp154;
707 : compiler::TNode<Oddball> tmp155;
708 : ca_.Bind(&block16, &tmp146, &tmp147, &tmp148, &tmp149, &tmp150, &tmp151, &tmp152, &tmp153, &tmp154, &tmp155);
709 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 128);
710 : compiler::TNode<Oddball> tmp156;
711 : USE(tmp156);
712 168 : tmp156 = BaseBuiltinsFromDSLAssembler(state_).True();
713 : compiler::TNode<BoolT> tmp157;
714 : USE(tmp157);
715 112 : tmp157 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<HeapObject>{tmp154}, compiler::TNode<HeapObject>{tmp156}));
716 56 : ca_.Branch(tmp157, &block21, &block20, tmp146, tmp147, tmp148, tmp149, tmp150, tmp151, tmp152, tmp153, tmp154, tmp155);
717 : }
718 :
719 56 : if (block21.is_used()) {
720 : compiler::TNode<Context> tmp158;
721 : compiler::TNode<Object> tmp159;
722 : compiler::TNode<JSReceiver> tmp160;
723 : compiler::TNode<Number> tmp161;
724 : compiler::TNode<Number> tmp162;
725 : compiler::TNode<Number> tmp163;
726 : compiler::TNode<Object> tmp164;
727 : compiler::TNode<Object> tmp165;
728 : compiler::TNode<Oddball> tmp166;
729 : compiler::TNode<Oddball> tmp167;
730 : ca_.Bind(&block21, &tmp158, &tmp159, &tmp160, &tmp161, &tmp162, &tmp163, &tmp164, &tmp165, &tmp166, &tmp167);
731 : compiler::TNode<Oddball> tmp168;
732 : USE(tmp168);
733 168 : tmp168 = BaseBuiltinsFromDSLAssembler(state_).False();
734 : compiler::TNode<BoolT> tmp169;
735 : USE(tmp169);
736 112 : tmp169 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<HeapObject>{tmp167}, compiler::TNode<HeapObject>{tmp168}));
737 56 : ca_.Branch(tmp169, &block19, &block20, tmp158, tmp159, tmp160, tmp161, tmp162, tmp163, tmp164, tmp165, tmp166, tmp167);
738 : }
739 :
740 56 : if (block19.is_used()) {
741 : compiler::TNode<Context> tmp170;
742 : compiler::TNode<Object> tmp171;
743 : compiler::TNode<JSReceiver> tmp172;
744 : compiler::TNode<Number> tmp173;
745 : compiler::TNode<Number> tmp174;
746 : compiler::TNode<Number> tmp175;
747 : compiler::TNode<Object> tmp176;
748 : compiler::TNode<Object> tmp177;
749 : compiler::TNode<Oddball> tmp178;
750 : compiler::TNode<Oddball> tmp179;
751 : ca_.Bind(&block19, &tmp170, &tmp171, &tmp172, &tmp173, &tmp174, &tmp175, &tmp176, &tmp177, &tmp178, &tmp179);
752 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 130);
753 : compiler::TNode<Smi> tmp180;
754 : USE(tmp180);
755 168 : tmp180 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr14ATLanguageMode24ATconstexpr_LanguageMode(LanguageMode::kStrict));
756 112 : CodeStubAssembler(state_).CallBuiltin(Builtins::kDeleteProperty, tmp170, tmp172, tmp174, tmp180);
757 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 133);
758 112 : CodeStubAssembler(state_).CallBuiltin(Builtins::kSetProperty, tmp170, tmp172, tmp175, tmp176);
759 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 128);
760 : ca_.Goto(&block20, tmp170, tmp171, tmp172, tmp173, tmp174, tmp175, tmp176, tmp177, tmp178, tmp179);
761 : }
762 :
763 56 : if (block20.is_used()) {
764 : compiler::TNode<Context> tmp183;
765 : compiler::TNode<Object> tmp184;
766 : compiler::TNode<JSReceiver> tmp185;
767 : compiler::TNode<Number> tmp186;
768 : compiler::TNode<Number> tmp187;
769 : compiler::TNode<Number> tmp188;
770 : compiler::TNode<Object> tmp189;
771 : compiler::TNode<Object> tmp190;
772 : compiler::TNode<Oddball> tmp191;
773 : compiler::TNode<Oddball> tmp192;
774 : ca_.Bind(&block20, &tmp183, &tmp184, &tmp185, &tmp186, &tmp187, &tmp188, &tmp189, &tmp190, &tmp191, &tmp192);
775 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 122);
776 : ca_.Goto(&block18, tmp183, tmp184, tmp185, tmp186, tmp187, tmp188, tmp189, tmp190, tmp191, tmp192);
777 : }
778 :
779 56 : if (block18.is_used()) {
780 : compiler::TNode<Context> tmp193;
781 : compiler::TNode<Object> tmp194;
782 : compiler::TNode<JSReceiver> tmp195;
783 : compiler::TNode<Number> tmp196;
784 : compiler::TNode<Number> tmp197;
785 : compiler::TNode<Number> tmp198;
786 : compiler::TNode<Object> tmp199;
787 : compiler::TNode<Object> tmp200;
788 : compiler::TNode<Oddball> tmp201;
789 : compiler::TNode<Oddball> tmp202;
790 : ca_.Bind(&block18, &tmp193, &tmp194, &tmp195, &tmp196, &tmp197, &tmp198, &tmp199, &tmp200, &tmp201, &tmp202);
791 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 116);
792 : ca_.Goto(&block14, tmp193, tmp194, tmp195, tmp196, tmp197, tmp198, tmp199, tmp200, tmp201, tmp202);
793 : }
794 :
795 56 : if (block14.is_used()) {
796 : compiler::TNode<Context> tmp203;
797 : compiler::TNode<Object> tmp204;
798 : compiler::TNode<JSReceiver> tmp205;
799 : compiler::TNode<Number> tmp206;
800 : compiler::TNode<Number> tmp207;
801 : compiler::TNode<Number> tmp208;
802 : compiler::TNode<Object> tmp209;
803 : compiler::TNode<Object> tmp210;
804 : compiler::TNode<Oddball> tmp211;
805 : compiler::TNode<Oddball> tmp212;
806 : ca_.Bind(&block14, &tmp203, &tmp204, &tmp205, &tmp206, &tmp207, &tmp208, &tmp209, &tmp210, &tmp211, &tmp212);
807 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 137);
808 : compiler::TNode<Number> tmp213;
809 : USE(tmp213);
810 168 : tmp213 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(1));
811 : compiler::TNode<Number> tmp214;
812 : USE(tmp214);
813 168 : tmp214 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberAdd(compiler::TNode<Number>{tmp207}, compiler::TNode<Number>{tmp213}));
814 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 138);
815 : compiler::TNode<Number> tmp215;
816 : USE(tmp215);
817 168 : tmp215 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(1));
818 : compiler::TNode<Number> tmp216;
819 : USE(tmp216);
820 168 : tmp216 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberSub(compiler::TNode<Number>{tmp208}, compiler::TNode<Number>{tmp215}));
821 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 91);
822 : ca_.Goto(&block4, tmp203, tmp204, tmp205, tmp206, tmp214, tmp216);
823 : }
824 :
825 56 : if (block3.is_used()) {
826 : compiler::TNode<Context> tmp217;
827 : compiler::TNode<Object> tmp218;
828 : compiler::TNode<JSReceiver> tmp219;
829 : compiler::TNode<Number> tmp220;
830 : compiler::TNode<Number> tmp221;
831 : compiler::TNode<Number> tmp222;
832 : ca_.Bind(&block3, &tmp217, &tmp218, &tmp219, &tmp220, &tmp221, &tmp222);
833 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 142);
834 : ca_.Goto(&block1, tmp217, tmp218, tmp219);
835 : }
836 :
837 56 : if (block1.is_used()) {
838 : compiler::TNode<Context> tmp223;
839 : compiler::TNode<Object> tmp224;
840 : compiler::TNode<Object> tmp225;
841 : ca_.Bind(&block1, &tmp223, &tmp224, &tmp225);
842 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 73);
843 : ca_.Goto(&block22, tmp223, tmp224, tmp225);
844 : }
845 :
846 : compiler::TNode<Context> tmp226;
847 : compiler::TNode<Object> tmp227;
848 : compiler::TNode<Object> tmp228;
849 : ca_.Bind(&block22, &tmp226, &tmp227, &tmp228);
850 112 : return compiler::TNode<Object>{tmp228};
851 : }
852 :
853 56 : void ArrayReverseBuiltinsFromDSLAssembler::TryFastPackedArrayReverse(compiler::TNode<Context> p_context, compiler::TNode<Object> p_receiver, compiler::CodeAssemblerLabel* label_Slow) {
854 56 : compiler::CodeAssemblerParameterizedLabel<Context, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
855 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
856 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, JSArray> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
857 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSArray, Int32T> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
858 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSArray, Int32T> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
859 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSArray, Int32T> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
860 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSArray, Int32T> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
861 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSArray, Int32T> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
862 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSArray, Int32T> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
863 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSArray, Int32T> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
864 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSArray, Int32T> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
865 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSArray, Int32T> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
866 : compiler::CodeAssemblerParameterizedLabel<Context, Object> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
867 : compiler::CodeAssemblerParameterizedLabel<> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
868 : compiler::CodeAssemblerParameterizedLabel<Context, Object> block14(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
869 : ca_.Goto(&block0, p_context, p_receiver);
870 :
871 56 : if (block0.is_used()) {
872 : compiler::TNode<Context> tmp0;
873 : compiler::TNode<Object> tmp1;
874 : ca_.Bind(&block0, &tmp0, &tmp1);
875 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 147);
876 : compiler::TNode<JSArray> tmp2;
877 : USE(tmp2);
878 56 : compiler::CodeAssemblerLabel label0(&ca_);
879 168 : tmp2 = BaseBuiltinsFromDSLAssembler(state_).Cast13ATFastJSArray(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}, &label0);
880 : ca_.Goto(&block3, tmp0, tmp1, tmp1, tmp2);
881 56 : if (label0.is_used()) {
882 56 : ca_.Bind(&label0);
883 : ca_.Goto(&block4, tmp0, tmp1, tmp1);
884 : }
885 : }
886 :
887 56 : if (block4.is_used()) {
888 : compiler::TNode<Context> tmp3;
889 : compiler::TNode<Object> tmp4;
890 : compiler::TNode<Object> tmp5;
891 : ca_.Bind(&block4, &tmp3, &tmp4, &tmp5);
892 : ca_.Goto(&block1);
893 : }
894 :
895 56 : if (block3.is_used()) {
896 : compiler::TNode<Context> tmp6;
897 : compiler::TNode<Object> tmp7;
898 : compiler::TNode<Object> tmp8;
899 : compiler::TNode<JSArray> tmp9;
900 : ca_.Bind(&block3, &tmp6, &tmp7, &tmp8, &tmp9);
901 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 149);
902 56 : compiler::TNode<IntPtrT> tmp10 = ca_.IntPtrConstant(HeapObject::kMapOffset);
903 : USE(tmp10);
904 112 : compiler::TNode<Map>tmp11 = CodeStubAssembler(state_).LoadReference<Map>(CodeStubAssembler::Reference{tmp9, tmp10});
905 : compiler::TNode<Int32T> tmp12;
906 : USE(tmp12);
907 112 : tmp12 = ca_.UncheckedCast<Int32T>(CodeStubAssembler(state_).LoadMapElementsKind(compiler::TNode<Map>{tmp11}));
908 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 150);
909 : compiler::TNode<Int32T> tmp13;
910 : USE(tmp13);
911 168 : tmp13 = ca_.UncheckedCast<Int32T>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr14ATElementsKind24ATconstexpr_ElementsKind(PACKED_SMI_ELEMENTS));
912 : compiler::TNode<BoolT> tmp14;
913 : USE(tmp14);
914 112 : tmp14 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).ElementsKindEqual(compiler::TNode<Int32T>{tmp12}, compiler::TNode<Int32T>{tmp13}));
915 56 : ca_.Branch(tmp14, &block5, &block6, tmp6, tmp7, tmp9, tmp12);
916 : }
917 :
918 56 : if (block5.is_used()) {
919 : compiler::TNode<Context> tmp15;
920 : compiler::TNode<Object> tmp16;
921 : compiler::TNode<JSArray> tmp17;
922 : compiler::TNode<Int32T> tmp18;
923 : ca_.Bind(&block5, &tmp15, &tmp16, &tmp17, &tmp18);
924 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 151);
925 168 : ArrayBuiltinsFromDSLAssembler(state_).EnsureWriteableFastElements(compiler::TNode<Context>{tmp15}, compiler::TNode<JSArray>{tmp17});
926 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 153);
927 56 : compiler::TNode<IntPtrT> tmp19 = ca_.IntPtrConstant(JSObject::kElementsOffset);
928 : USE(tmp19);
929 168 : compiler::TNode<FixedArrayBase>tmp20 = CodeStubAssembler(state_).LoadReference<FixedArrayBase>(CodeStubAssembler::Reference{tmp17, tmp19});
930 : compiler::TNode<Smi> tmp21;
931 : USE(tmp21);
932 168 : tmp21 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).LoadFastJSArrayLength(compiler::TNode<JSArray>{tmp17}));
933 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 152);
934 168 : ArrayReverseBuiltinsFromDSLAssembler(state_).FastPackedArrayReverse23ATFastPackedSmiElements5ATSmi(compiler::TNode<Context>{tmp15}, compiler::TNode<FixedArrayBase>{tmp20}, compiler::TNode<Smi>{tmp21});
935 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 150);
936 : ca_.Goto(&block7, tmp15, tmp16, tmp17, tmp18);
937 : }
938 :
939 56 : if (block6.is_used()) {
940 : compiler::TNode<Context> tmp22;
941 : compiler::TNode<Object> tmp23;
942 : compiler::TNode<JSArray> tmp24;
943 : compiler::TNode<Int32T> tmp25;
944 : ca_.Bind(&block6, &tmp22, &tmp23, &tmp24, &tmp25);
945 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 154);
946 : compiler::TNode<Int32T> tmp26;
947 : USE(tmp26);
948 168 : tmp26 = ca_.UncheckedCast<Int32T>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr14ATElementsKind24ATconstexpr_ElementsKind(PACKED_ELEMENTS));
949 : compiler::TNode<BoolT> tmp27;
950 : USE(tmp27);
951 112 : tmp27 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).ElementsKindEqual(compiler::TNode<Int32T>{tmp25}, compiler::TNode<Int32T>{tmp26}));
952 56 : ca_.Branch(tmp27, &block8, &block9, tmp22, tmp23, tmp24, tmp25);
953 : }
954 :
955 56 : if (block8.is_used()) {
956 : compiler::TNode<Context> tmp28;
957 : compiler::TNode<Object> tmp29;
958 : compiler::TNode<JSArray> tmp30;
959 : compiler::TNode<Int32T> tmp31;
960 : ca_.Bind(&block8, &tmp28, &tmp29, &tmp30, &tmp31);
961 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 155);
962 168 : ArrayBuiltinsFromDSLAssembler(state_).EnsureWriteableFastElements(compiler::TNode<Context>{tmp28}, compiler::TNode<JSArray>{tmp30});
963 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 157);
964 56 : compiler::TNode<IntPtrT> tmp32 = ca_.IntPtrConstant(JSObject::kElementsOffset);
965 : USE(tmp32);
966 168 : compiler::TNode<FixedArrayBase>tmp33 = CodeStubAssembler(state_).LoadReference<FixedArrayBase>(CodeStubAssembler::Reference{tmp30, tmp32});
967 : compiler::TNode<Smi> tmp34;
968 : USE(tmp34);
969 168 : tmp34 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).LoadFastJSArrayLength(compiler::TNode<JSArray>{tmp30}));
970 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 156);
971 168 : ArrayReverseBuiltinsFromDSLAssembler(state_).FastPackedArrayReverse26ATFastPackedObjectElements20UT5ATSmi10HeapObject(compiler::TNode<Context>{tmp28}, compiler::TNode<FixedArrayBase>{tmp33}, compiler::TNode<Smi>{tmp34});
972 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 154);
973 : ca_.Goto(&block10, tmp28, tmp29, tmp30, tmp31);
974 : }
975 :
976 56 : if (block9.is_used()) {
977 : compiler::TNode<Context> tmp35;
978 : compiler::TNode<Object> tmp36;
979 : compiler::TNode<JSArray> tmp37;
980 : compiler::TNode<Int32T> tmp38;
981 : ca_.Bind(&block9, &tmp35, &tmp36, &tmp37, &tmp38);
982 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 158);
983 : compiler::TNode<Int32T> tmp39;
984 : USE(tmp39);
985 168 : tmp39 = ca_.UncheckedCast<Int32T>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr14ATElementsKind24ATconstexpr_ElementsKind(PACKED_DOUBLE_ELEMENTS));
986 : compiler::TNode<BoolT> tmp40;
987 : USE(tmp40);
988 112 : tmp40 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).ElementsKindEqual(compiler::TNode<Int32T>{tmp38}, compiler::TNode<Int32T>{tmp39}));
989 56 : ca_.Branch(tmp40, &block11, &block12, tmp35, tmp36, tmp37, tmp38);
990 : }
991 :
992 56 : if (block11.is_used()) {
993 : compiler::TNode<Context> tmp41;
994 : compiler::TNode<Object> tmp42;
995 : compiler::TNode<JSArray> tmp43;
996 : compiler::TNode<Int32T> tmp44;
997 : ca_.Bind(&block11, &tmp41, &tmp42, &tmp43, &tmp44);
998 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 160);
999 56 : compiler::TNode<IntPtrT> tmp45 = ca_.IntPtrConstant(JSObject::kElementsOffset);
1000 : USE(tmp45);
1001 168 : compiler::TNode<FixedArrayBase>tmp46 = CodeStubAssembler(state_).LoadReference<FixedArrayBase>(CodeStubAssembler::Reference{tmp43, tmp45});
1002 : compiler::TNode<Smi> tmp47;
1003 : USE(tmp47);
1004 168 : tmp47 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).LoadFastJSArrayLength(compiler::TNode<JSArray>{tmp43}));
1005 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 159);
1006 168 : ArrayReverseBuiltinsFromDSLAssembler(state_).FastPackedArrayReverse26ATFastPackedDoubleElements9ATfloat64(compiler::TNode<Context>{tmp41}, compiler::TNode<FixedArrayBase>{tmp46}, compiler::TNode<Smi>{tmp47});
1007 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 158);
1008 : ca_.Goto(&block13, tmp41, tmp42, tmp43, tmp44);
1009 : }
1010 :
1011 56 : if (block12.is_used()) {
1012 : compiler::TNode<Context> tmp48;
1013 : compiler::TNode<Object> tmp49;
1014 : compiler::TNode<JSArray> tmp50;
1015 : compiler::TNode<Int32T> tmp51;
1016 : ca_.Bind(&block12, &tmp48, &tmp49, &tmp50, &tmp51);
1017 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 162);
1018 : ca_.Goto(&block1);
1019 : }
1020 :
1021 56 : if (block13.is_used()) {
1022 : compiler::TNode<Context> tmp52;
1023 : compiler::TNode<Object> tmp53;
1024 : compiler::TNode<JSArray> tmp54;
1025 : compiler::TNode<Int32T> tmp55;
1026 : ca_.Bind(&block13, &tmp52, &tmp53, &tmp54, &tmp55);
1027 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 154);
1028 : ca_.Goto(&block10, tmp52, tmp53, tmp54, tmp55);
1029 : }
1030 :
1031 56 : if (block10.is_used()) {
1032 : compiler::TNode<Context> tmp56;
1033 : compiler::TNode<Object> tmp57;
1034 : compiler::TNode<JSArray> tmp58;
1035 : compiler::TNode<Int32T> tmp59;
1036 : ca_.Bind(&block10, &tmp56, &tmp57, &tmp58, &tmp59);
1037 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 150);
1038 : ca_.Goto(&block7, tmp56, tmp57, tmp58, tmp59);
1039 : }
1040 :
1041 56 : if (block7.is_used()) {
1042 : compiler::TNode<Context> tmp60;
1043 : compiler::TNode<Object> tmp61;
1044 : compiler::TNode<JSArray> tmp62;
1045 : compiler::TNode<Int32T> tmp63;
1046 : ca_.Bind(&block7, &tmp60, &tmp61, &tmp62, &tmp63);
1047 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 146);
1048 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 145);
1049 : ca_.Goto(&block2, tmp60, tmp61);
1050 : }
1051 :
1052 56 : if (block2.is_used()) {
1053 : compiler::TNode<Context> tmp64;
1054 : compiler::TNode<Object> tmp65;
1055 : ca_.Bind(&block2, &tmp64, &tmp65);
1056 : ca_.Goto(&block14, tmp64, tmp65);
1057 : }
1058 :
1059 56 : if (block1.is_used()) {
1060 : ca_.Bind(&block1);
1061 56 : ca_.Goto(label_Slow);
1062 : }
1063 :
1064 : compiler::TNode<Context> tmp66;
1065 : compiler::TNode<Object> tmp67;
1066 : ca_.Bind(&block14, &tmp66, &tmp67);
1067 56 : }
1068 :
1069 224 : TF_BUILTIN(ArrayPrototypeReverse, CodeStubAssembler) {
1070 56 : compiler::CodeAssemblerState* state_ = state(); compiler::CodeAssembler ca_(state());
1071 : TNode<Context> parameter0 = UncheckedCast<Context>(Parameter(Descriptor::kContext));
1072 : USE(parameter0);
1073 : Node* argc = Parameter(Descriptor::kJSActualArgumentsCount);
1074 56 : TNode<IntPtrT> arguments_length(ChangeInt32ToIntPtr(argc));
1075 56 : TNode<RawPtrT> arguments_frame = UncheckedCast<RawPtrT>(LoadFramePointer());
1076 56 : BaseBuiltinsFromDSLAssembler::Arguments torque_arguments(GetFrameArguments(arguments_frame, arguments_length));
1077 : CodeStubArguments arguments(this, torque_arguments);
1078 56 : TNode<Object> parameter1 = arguments.GetReceiver();
1079 : USE(parameter1);
1080 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1081 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1082 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1083 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1084 : ca_.Goto(&block0, parameter0, parameter1, torque_arguments.frame, torque_arguments.base, torque_arguments.length);
1085 :
1086 56 : if (block0.is_used()) {
1087 : compiler::TNode<Context> tmp0;
1088 : compiler::TNode<Object> tmp1;
1089 : compiler::TNode<RawPtrT> tmp2;
1090 : compiler::TNode<RawPtrT> tmp3;
1091 : compiler::TNode<IntPtrT> tmp4;
1092 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3, &tmp4);
1093 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 170);
1094 56 : compiler::CodeAssemblerLabel label0(&ca_);
1095 112 : ArrayReverseBuiltinsFromDSLAssembler(state_).TryFastPackedArrayReverse(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}, &label0);
1096 : ca_.Goto(&block3, tmp0, tmp1, tmp2, tmp3, tmp4, tmp1);
1097 56 : if (label0.is_used()) {
1098 56 : ca_.Bind(&label0);
1099 : ca_.Goto(&block4, tmp0, tmp1, tmp2, tmp3, tmp4, tmp1);
1100 : }
1101 : }
1102 :
1103 56 : if (block4.is_used()) {
1104 : compiler::TNode<Context> tmp5;
1105 : compiler::TNode<Object> tmp6;
1106 : compiler::TNode<RawPtrT> tmp7;
1107 : compiler::TNode<RawPtrT> tmp8;
1108 : compiler::TNode<IntPtrT> tmp9;
1109 : compiler::TNode<Object> tmp10;
1110 : ca_.Bind(&block4, &tmp5, &tmp6, &tmp7, &tmp8, &tmp9, &tmp10);
1111 : ca_.Goto(&block2, tmp5, tmp6, tmp7, tmp8, tmp9);
1112 : }
1113 :
1114 56 : if (block3.is_used()) {
1115 : compiler::TNode<Context> tmp11;
1116 : compiler::TNode<Object> tmp12;
1117 : compiler::TNode<RawPtrT> tmp13;
1118 : compiler::TNode<RawPtrT> tmp14;
1119 : compiler::TNode<IntPtrT> tmp15;
1120 : compiler::TNode<Object> tmp16;
1121 : ca_.Bind(&block3, &tmp11, &tmp12, &tmp13, &tmp14, &tmp15, &tmp16);
1122 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 171);
1123 56 : arguments.PopAndReturn(tmp12);
1124 : }
1125 :
1126 56 : if (block2.is_used()) {
1127 : compiler::TNode<Context> tmp17;
1128 : compiler::TNode<Object> tmp18;
1129 : compiler::TNode<RawPtrT> tmp19;
1130 : compiler::TNode<RawPtrT> tmp20;
1131 : compiler::TNode<IntPtrT> tmp21;
1132 : ca_.Bind(&block2, &tmp17, &tmp18, &tmp19, &tmp20, &tmp21);
1133 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 174);
1134 : compiler::TNode<Object> tmp22;
1135 : USE(tmp22);
1136 112 : tmp22 = ca_.UncheckedCast<Object>(ArrayReverseBuiltinsFromDSLAssembler(state_).GenericArrayReverse(compiler::TNode<Context>{tmp17}, compiler::TNode<Object>{tmp18}));
1137 56 : arguments.PopAndReturn(tmp22);
1138 : }
1139 56 : }
1140 :
1141 56 : void ArrayReverseBuiltinsFromDSLAssembler::FastPackedArrayReverse23ATFastPackedSmiElements5ATSmi(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_length) {
1142 56 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1143 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Smi, Smi> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1144 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Smi, Smi> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1145 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Smi, Smi> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1146 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1147 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1148 : ca_.Goto(&block0, p_context, p_elements, p_length);
1149 :
1150 56 : if (block0.is_used()) {
1151 : compiler::TNode<Context> tmp0;
1152 : compiler::TNode<FixedArrayBase> tmp1;
1153 : compiler::TNode<Smi> tmp2;
1154 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2);
1155 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 60);
1156 : compiler::TNode<Smi> tmp3;
1157 : USE(tmp3);
1158 168 : tmp3 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(0));
1159 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 61);
1160 : compiler::TNode<Smi> tmp4;
1161 : USE(tmp4);
1162 168 : tmp4 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
1163 : compiler::TNode<Smi> tmp5;
1164 : USE(tmp5);
1165 112 : tmp5 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiSub(compiler::TNode<Smi>{tmp2}, compiler::TNode<Smi>{tmp4}));
1166 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 63);
1167 : ca_.Goto(&block4, tmp0, tmp1, tmp2, tmp3, tmp5);
1168 : }
1169 :
1170 56 : if (block4.is_used()) {
1171 : compiler::TNode<Context> tmp6;
1172 : compiler::TNode<FixedArrayBase> tmp7;
1173 : compiler::TNode<Smi> tmp8;
1174 : compiler::TNode<Smi> tmp9;
1175 : compiler::TNode<Smi> tmp10;
1176 : ca_.Bind(&block4, &tmp6, &tmp7, &tmp8, &tmp9, &tmp10);
1177 : compiler::TNode<BoolT> tmp11;
1178 : USE(tmp11);
1179 112 : tmp11 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiLessThan(compiler::TNode<Smi>{tmp9}, compiler::TNode<Smi>{tmp10}));
1180 56 : ca_.Branch(tmp11, &block2, &block3, tmp6, tmp7, tmp8, tmp9, tmp10);
1181 : }
1182 :
1183 56 : if (block2.is_used()) {
1184 : compiler::TNode<Context> tmp12;
1185 : compiler::TNode<FixedArrayBase> tmp13;
1186 : compiler::TNode<Smi> tmp14;
1187 : compiler::TNode<Smi> tmp15;
1188 : compiler::TNode<Smi> tmp16;
1189 : ca_.Bind(&block2, &tmp12, &tmp13, &tmp14, &tmp15, &tmp16);
1190 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 64);
1191 : compiler::TNode<Smi> tmp17;
1192 : USE(tmp17);
1193 168 : tmp17 = ca_.UncheckedCast<Smi>(ArrayReverseBuiltinsFromDSLAssembler(state_).LoadElement23ATFastPackedSmiElements5ATSmi(compiler::TNode<Context>{tmp12}, compiler::TNode<FixedArrayBase>{tmp13}, compiler::TNode<Smi>{tmp15}));
1194 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 65);
1195 : compiler::TNode<Smi> tmp18;
1196 : USE(tmp18);
1197 168 : tmp18 = ca_.UncheckedCast<Smi>(ArrayReverseBuiltinsFromDSLAssembler(state_).LoadElement23ATFastPackedSmiElements5ATSmi(compiler::TNode<Context>{tmp12}, compiler::TNode<FixedArrayBase>{tmp13}, compiler::TNode<Smi>{tmp16}));
1198 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 66);
1199 168 : ArrayReverseBuiltinsFromDSLAssembler(state_).StoreElement23ATFastPackedSmiElements5ATSmi(compiler::TNode<Context>{tmp12}, compiler::TNode<FixedArrayBase>{tmp13}, compiler::TNode<Smi>{tmp15}, compiler::TNode<Smi>{tmp18});
1200 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 67);
1201 168 : ArrayReverseBuiltinsFromDSLAssembler(state_).StoreElement23ATFastPackedSmiElements5ATSmi(compiler::TNode<Context>{tmp12}, compiler::TNode<FixedArrayBase>{tmp13}, compiler::TNode<Smi>{tmp16}, compiler::TNode<Smi>{tmp17});
1202 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 68);
1203 : compiler::TNode<Smi> tmp19;
1204 : USE(tmp19);
1205 168 : tmp19 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
1206 : compiler::TNode<Smi> tmp20;
1207 : USE(tmp20);
1208 112 : tmp20 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiAdd(compiler::TNode<Smi>{tmp15}, compiler::TNode<Smi>{tmp19}));
1209 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 69);
1210 : compiler::TNode<Smi> tmp21;
1211 : USE(tmp21);
1212 168 : tmp21 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
1213 : compiler::TNode<Smi> tmp22;
1214 : USE(tmp22);
1215 112 : tmp22 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiSub(compiler::TNode<Smi>{tmp16}, compiler::TNode<Smi>{tmp21}));
1216 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 63);
1217 : ca_.Goto(&block4, tmp12, tmp13, tmp14, tmp20, tmp22);
1218 : }
1219 :
1220 56 : if (block3.is_used()) {
1221 : compiler::TNode<Context> tmp23;
1222 : compiler::TNode<FixedArrayBase> tmp24;
1223 : compiler::TNode<Smi> tmp25;
1224 : compiler::TNode<Smi> tmp26;
1225 : compiler::TNode<Smi> tmp27;
1226 : ca_.Bind(&block3, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27);
1227 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 59);
1228 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 58);
1229 : ca_.Goto(&block1, tmp23, tmp24, tmp25);
1230 : }
1231 :
1232 56 : if (block1.is_used()) {
1233 : compiler::TNode<Context> tmp28;
1234 : compiler::TNode<FixedArrayBase> tmp29;
1235 : compiler::TNode<Smi> tmp30;
1236 : ca_.Bind(&block1, &tmp28, &tmp29, &tmp30);
1237 : ca_.Goto(&block5, tmp28, tmp29, tmp30);
1238 : }
1239 :
1240 : compiler::TNode<Context> tmp31;
1241 : compiler::TNode<FixedArrayBase> tmp32;
1242 : compiler::TNode<Smi> tmp33;
1243 : ca_.Bind(&block5, &tmp31, &tmp32, &tmp33);
1244 56 : }
1245 :
1246 56 : void ArrayReverseBuiltinsFromDSLAssembler::FastPackedArrayReverse26ATFastPackedObjectElements20UT5ATSmi10HeapObject(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_length) {
1247 56 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1248 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Smi, Smi> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1249 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Smi, Smi> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1250 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Smi, Smi> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1251 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1252 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1253 : ca_.Goto(&block0, p_context, p_elements, p_length);
1254 :
1255 56 : if (block0.is_used()) {
1256 : compiler::TNode<Context> tmp0;
1257 : compiler::TNode<FixedArrayBase> tmp1;
1258 : compiler::TNode<Smi> tmp2;
1259 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2);
1260 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 60);
1261 : compiler::TNode<Smi> tmp3;
1262 : USE(tmp3);
1263 168 : tmp3 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(0));
1264 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 61);
1265 : compiler::TNode<Smi> tmp4;
1266 : USE(tmp4);
1267 168 : tmp4 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
1268 : compiler::TNode<Smi> tmp5;
1269 : USE(tmp5);
1270 112 : tmp5 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiSub(compiler::TNode<Smi>{tmp2}, compiler::TNode<Smi>{tmp4}));
1271 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 63);
1272 : ca_.Goto(&block4, tmp0, tmp1, tmp2, tmp3, tmp5);
1273 : }
1274 :
1275 56 : if (block4.is_used()) {
1276 : compiler::TNode<Context> tmp6;
1277 : compiler::TNode<FixedArrayBase> tmp7;
1278 : compiler::TNode<Smi> tmp8;
1279 : compiler::TNode<Smi> tmp9;
1280 : compiler::TNode<Smi> tmp10;
1281 : ca_.Bind(&block4, &tmp6, &tmp7, &tmp8, &tmp9, &tmp10);
1282 : compiler::TNode<BoolT> tmp11;
1283 : USE(tmp11);
1284 112 : tmp11 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiLessThan(compiler::TNode<Smi>{tmp9}, compiler::TNode<Smi>{tmp10}));
1285 56 : ca_.Branch(tmp11, &block2, &block3, tmp6, tmp7, tmp8, tmp9, tmp10);
1286 : }
1287 :
1288 56 : if (block2.is_used()) {
1289 : compiler::TNode<Context> tmp12;
1290 : compiler::TNode<FixedArrayBase> tmp13;
1291 : compiler::TNode<Smi> tmp14;
1292 : compiler::TNode<Smi> tmp15;
1293 : compiler::TNode<Smi> tmp16;
1294 : ca_.Bind(&block2, &tmp12, &tmp13, &tmp14, &tmp15, &tmp16);
1295 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 64);
1296 : compiler::TNode<Object> tmp17;
1297 : USE(tmp17);
1298 168 : tmp17 = ca_.UncheckedCast<Object>(ArrayReverseBuiltinsFromDSLAssembler(state_).LoadElement26ATFastPackedObjectElements20UT5ATSmi10HeapObject(compiler::TNode<Context>{tmp12}, compiler::TNode<FixedArrayBase>{tmp13}, compiler::TNode<Smi>{tmp15}));
1299 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 65);
1300 : compiler::TNode<Object> tmp18;
1301 : USE(tmp18);
1302 168 : tmp18 = ca_.UncheckedCast<Object>(ArrayReverseBuiltinsFromDSLAssembler(state_).LoadElement26ATFastPackedObjectElements20UT5ATSmi10HeapObject(compiler::TNode<Context>{tmp12}, compiler::TNode<FixedArrayBase>{tmp13}, compiler::TNode<Smi>{tmp16}));
1303 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 66);
1304 168 : ArrayReverseBuiltinsFromDSLAssembler(state_).StoreElement26ATFastPackedObjectElements20UT5ATSmi10HeapObject(compiler::TNode<Context>{tmp12}, compiler::TNode<FixedArrayBase>{tmp13}, compiler::TNode<Smi>{tmp15}, compiler::TNode<Object>{tmp18});
1305 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 67);
1306 168 : ArrayReverseBuiltinsFromDSLAssembler(state_).StoreElement26ATFastPackedObjectElements20UT5ATSmi10HeapObject(compiler::TNode<Context>{tmp12}, compiler::TNode<FixedArrayBase>{tmp13}, compiler::TNode<Smi>{tmp16}, compiler::TNode<Object>{tmp17});
1307 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 68);
1308 : compiler::TNode<Smi> tmp19;
1309 : USE(tmp19);
1310 168 : tmp19 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
1311 : compiler::TNode<Smi> tmp20;
1312 : USE(tmp20);
1313 112 : tmp20 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiAdd(compiler::TNode<Smi>{tmp15}, compiler::TNode<Smi>{tmp19}));
1314 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 69);
1315 : compiler::TNode<Smi> tmp21;
1316 : USE(tmp21);
1317 168 : tmp21 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
1318 : compiler::TNode<Smi> tmp22;
1319 : USE(tmp22);
1320 112 : tmp22 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiSub(compiler::TNode<Smi>{tmp16}, compiler::TNode<Smi>{tmp21}));
1321 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 63);
1322 : ca_.Goto(&block4, tmp12, tmp13, tmp14, tmp20, tmp22);
1323 : }
1324 :
1325 56 : if (block3.is_used()) {
1326 : compiler::TNode<Context> tmp23;
1327 : compiler::TNode<FixedArrayBase> tmp24;
1328 : compiler::TNode<Smi> tmp25;
1329 : compiler::TNode<Smi> tmp26;
1330 : compiler::TNode<Smi> tmp27;
1331 : ca_.Bind(&block3, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27);
1332 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 59);
1333 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 58);
1334 : ca_.Goto(&block1, tmp23, tmp24, tmp25);
1335 : }
1336 :
1337 56 : if (block1.is_used()) {
1338 : compiler::TNode<Context> tmp28;
1339 : compiler::TNode<FixedArrayBase> tmp29;
1340 : compiler::TNode<Smi> tmp30;
1341 : ca_.Bind(&block1, &tmp28, &tmp29, &tmp30);
1342 : ca_.Goto(&block5, tmp28, tmp29, tmp30);
1343 : }
1344 :
1345 : compiler::TNode<Context> tmp31;
1346 : compiler::TNode<FixedArrayBase> tmp32;
1347 : compiler::TNode<Smi> tmp33;
1348 : ca_.Bind(&block5, &tmp31, &tmp32, &tmp33);
1349 56 : }
1350 :
1351 56 : void ArrayReverseBuiltinsFromDSLAssembler::FastPackedArrayReverse26ATFastPackedDoubleElements9ATfloat64(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_length) {
1352 56 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1353 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Smi, Smi> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1354 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Smi, Smi> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1355 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi, Smi, Smi> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1356 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1357 : compiler::CodeAssemblerParameterizedLabel<Context, FixedArrayBase, Smi> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1358 : ca_.Goto(&block0, p_context, p_elements, p_length);
1359 :
1360 56 : if (block0.is_used()) {
1361 : compiler::TNode<Context> tmp0;
1362 : compiler::TNode<FixedArrayBase> tmp1;
1363 : compiler::TNode<Smi> tmp2;
1364 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2);
1365 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 60);
1366 : compiler::TNode<Smi> tmp3;
1367 : USE(tmp3);
1368 168 : tmp3 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(0));
1369 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 61);
1370 : compiler::TNode<Smi> tmp4;
1371 : USE(tmp4);
1372 168 : tmp4 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
1373 : compiler::TNode<Smi> tmp5;
1374 : USE(tmp5);
1375 112 : tmp5 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiSub(compiler::TNode<Smi>{tmp2}, compiler::TNode<Smi>{tmp4}));
1376 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 63);
1377 : ca_.Goto(&block4, tmp0, tmp1, tmp2, tmp3, tmp5);
1378 : }
1379 :
1380 56 : if (block4.is_used()) {
1381 : compiler::TNode<Context> tmp6;
1382 : compiler::TNode<FixedArrayBase> tmp7;
1383 : compiler::TNode<Smi> tmp8;
1384 : compiler::TNode<Smi> tmp9;
1385 : compiler::TNode<Smi> tmp10;
1386 : ca_.Bind(&block4, &tmp6, &tmp7, &tmp8, &tmp9, &tmp10);
1387 : compiler::TNode<BoolT> tmp11;
1388 : USE(tmp11);
1389 112 : tmp11 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiLessThan(compiler::TNode<Smi>{tmp9}, compiler::TNode<Smi>{tmp10}));
1390 56 : ca_.Branch(tmp11, &block2, &block3, tmp6, tmp7, tmp8, tmp9, tmp10);
1391 : }
1392 :
1393 56 : if (block2.is_used()) {
1394 : compiler::TNode<Context> tmp12;
1395 : compiler::TNode<FixedArrayBase> tmp13;
1396 : compiler::TNode<Smi> tmp14;
1397 : compiler::TNode<Smi> tmp15;
1398 : compiler::TNode<Smi> tmp16;
1399 : ca_.Bind(&block2, &tmp12, &tmp13, &tmp14, &tmp15, &tmp16);
1400 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 64);
1401 : compiler::TNode<Float64T> tmp17;
1402 : USE(tmp17);
1403 168 : tmp17 = ca_.UncheckedCast<Float64T>(ArrayReverseBuiltinsFromDSLAssembler(state_).LoadElement26ATFastPackedDoubleElements9ATfloat64(compiler::TNode<Context>{tmp12}, compiler::TNode<FixedArrayBase>{tmp13}, compiler::TNode<Smi>{tmp15}));
1404 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 65);
1405 : compiler::TNode<Float64T> tmp18;
1406 : USE(tmp18);
1407 168 : tmp18 = ca_.UncheckedCast<Float64T>(ArrayReverseBuiltinsFromDSLAssembler(state_).LoadElement26ATFastPackedDoubleElements9ATfloat64(compiler::TNode<Context>{tmp12}, compiler::TNode<FixedArrayBase>{tmp13}, compiler::TNode<Smi>{tmp16}));
1408 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 66);
1409 168 : ArrayReverseBuiltinsFromDSLAssembler(state_).StoreElement26ATFastPackedDoubleElements9ATfloat64(compiler::TNode<Context>{tmp12}, compiler::TNode<FixedArrayBase>{tmp13}, compiler::TNode<Smi>{tmp15}, compiler::TNode<Float64T>{tmp18});
1410 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 67);
1411 168 : ArrayReverseBuiltinsFromDSLAssembler(state_).StoreElement26ATFastPackedDoubleElements9ATfloat64(compiler::TNode<Context>{tmp12}, compiler::TNode<FixedArrayBase>{tmp13}, compiler::TNode<Smi>{tmp16}, compiler::TNode<Float64T>{tmp17});
1412 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 68);
1413 : compiler::TNode<Smi> tmp19;
1414 : USE(tmp19);
1415 168 : tmp19 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
1416 : compiler::TNode<Smi> tmp20;
1417 : USE(tmp20);
1418 112 : tmp20 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiAdd(compiler::TNode<Smi>{tmp15}, compiler::TNode<Smi>{tmp19}));
1419 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 69);
1420 : compiler::TNode<Smi> tmp21;
1421 : USE(tmp21);
1422 168 : tmp21 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
1423 : compiler::TNode<Smi> tmp22;
1424 : USE(tmp22);
1425 112 : tmp22 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiSub(compiler::TNode<Smi>{tmp16}, compiler::TNode<Smi>{tmp21}));
1426 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 63);
1427 : ca_.Goto(&block4, tmp12, tmp13, tmp14, tmp20, tmp22);
1428 : }
1429 :
1430 56 : if (block3.is_used()) {
1431 : compiler::TNode<Context> tmp23;
1432 : compiler::TNode<FixedArrayBase> tmp24;
1433 : compiler::TNode<Smi> tmp25;
1434 : compiler::TNode<Smi> tmp26;
1435 : compiler::TNode<Smi> tmp27;
1436 : ca_.Bind(&block3, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27);
1437 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 59);
1438 56 : ca_.SetSourcePosition("../../src/builtins/array-reverse.tq", 58);
1439 : ca_.Goto(&block1, tmp23, tmp24, tmp25);
1440 : }
1441 :
1442 56 : if (block1.is_used()) {
1443 : compiler::TNode<Context> tmp28;
1444 : compiler::TNode<FixedArrayBase> tmp29;
1445 : compiler::TNode<Smi> tmp30;
1446 : ca_.Bind(&block1, &tmp28, &tmp29, &tmp30);
1447 : ca_.Goto(&block5, tmp28, tmp29, tmp30);
1448 : }
1449 :
1450 : compiler::TNode<Context> tmp31;
1451 : compiler::TNode<FixedArrayBase> tmp32;
1452 : compiler::TNode<Smi> tmp33;
1453 : ca_.Bind(&block5, &tmp31, &tmp32, &tmp33);
1454 56 : }
1455 :
1456 : } // namespace internal
1457 59456 : } // namespace v8
1458 :
|