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