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