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