Line data Source code
1 : #include "src/builtins/builtins-utils-gen.h"
2 : #include "src/builtins/builtins.h"
3 : #include "src/code-factory.h"
4 : #include "src/elements-kind.h"
5 : #include "src/heap/factory-inl.h"
6 : #include "src/objects.h"
7 : #include "src/objects/arguments.h"
8 : #include "src/objects/bigint.h"
9 : #include "src/objects/free-space.h"
10 : #include "src/objects/js-generator.h"
11 : #include "src/objects/js-promise.h"
12 : #include "src/objects/js-regexp-string-iterator.h"
13 : #include "src/objects/module.h"
14 : #include "src/objects/stack-frame-info.h"
15 : #include "src/builtins/builtins-regexp-gen.h"
16 : #include "src/builtins/builtins-array-gen.h"
17 : #include "src/builtins/builtins-collections-gen.h"
18 : #include "src/builtins/builtins-data-view-gen.h"
19 : #include "src/builtins/builtins-iterator-gen.h"
20 : #include "src/builtins/builtins-proxy-gen.h"
21 : #include "src/builtins/builtins-proxy-gen.h"
22 : #include "src/builtins/builtins-proxy-gen.h"
23 : #include "src/builtins/builtins-proxy-gen.h"
24 : #include "src/builtins/builtins-regexp-gen.h"
25 : #include "src/builtins/builtins-regexp-gen.h"
26 : #include "src/builtins/builtins-regexp-gen.h"
27 : #include "src/builtins/builtins-typed-array-gen.h"
28 : #include "src/builtins/builtins-constructor-gen.h"
29 : #include "src/builtins/builtins-typed-array-gen.h"
30 : #include "src/builtins/builtins-typed-array-gen.h"
31 : #include "src/builtins/builtins-typed-array-gen.h"
32 : #include "src/builtins/builtins-typed-array-gen.h"
33 : #include "src/builtins/builtins-typed-array-gen.h"
34 : #include "src/builtins/builtins-typed-array-gen.h"
35 : #include "src/builtins/builtins-typed-array-gen.h"
36 : #include "src/builtins/builtins-typed-array-gen.h"
37 : #include "torque-generated/builtins-base-from-dsl-gen.h"
38 : #include "torque-generated/builtins-growable-fixed-array-from-dsl-gen.h"
39 : #include "torque-generated/builtins-arguments-from-dsl-gen.h"
40 : #include "torque-generated/builtins-array-from-dsl-gen.h"
41 : #include "torque-generated/builtins-array-copywithin-from-dsl-gen.h"
42 : #include "torque-generated/builtins-array-filter-from-dsl-gen.h"
43 : #include "torque-generated/builtins-array-find-from-dsl-gen.h"
44 : #include "torque-generated/builtins-array-findindex-from-dsl-gen.h"
45 : #include "torque-generated/builtins-array-foreach-from-dsl-gen.h"
46 : #include "torque-generated/builtins-array-join-from-dsl-gen.h"
47 : #include "torque-generated/builtins-array-lastindexof-from-dsl-gen.h"
48 : #include "torque-generated/builtins-array-of-from-dsl-gen.h"
49 : #include "torque-generated/builtins-array-map-from-dsl-gen.h"
50 : #include "torque-generated/builtins-array-reverse-from-dsl-gen.h"
51 : #include "torque-generated/builtins-array-shift-from-dsl-gen.h"
52 : #include "torque-generated/builtins-array-slice-from-dsl-gen.h"
53 : #include "torque-generated/builtins-array-splice-from-dsl-gen.h"
54 : #include "torque-generated/builtins-array-unshift-from-dsl-gen.h"
55 : #include "torque-generated/builtins-collections-from-dsl-gen.h"
56 : #include "torque-generated/builtins-data-view-from-dsl-gen.h"
57 : #include "torque-generated/builtins-extras-utils-from-dsl-gen.h"
58 : #include "torque-generated/builtins-iterator-from-dsl-gen.h"
59 : #include "torque-generated/builtins-object-from-dsl-gen.h"
60 : #include "torque-generated/builtins-proxy-from-dsl-gen.h"
61 : #include "torque-generated/builtins-regexp-from-dsl-gen.h"
62 : #include "torque-generated/builtins-regexp-replace-from-dsl-gen.h"
63 : #include "torque-generated/builtins-string-from-dsl-gen.h"
64 : #include "torque-generated/builtins-string-html-from-dsl-gen.h"
65 : #include "torque-generated/builtins-string-repeat-from-dsl-gen.h"
66 : #include "torque-generated/builtins-typed-array-from-dsl-gen.h"
67 : #include "torque-generated/builtins-typed-array-createtypedarray-from-dsl-gen.h"
68 : #include "torque-generated/builtins-typed-array-every-from-dsl-gen.h"
69 : #include "torque-generated/builtins-typed-array-filter-from-dsl-gen.h"
70 : #include "torque-generated/builtins-typed-array-find-from-dsl-gen.h"
71 : #include "torque-generated/builtins-typed-array-findindex-from-dsl-gen.h"
72 : #include "torque-generated/builtins-typed-array-foreach-from-dsl-gen.h"
73 : #include "torque-generated/builtins-typed-array-reduce-from-dsl-gen.h"
74 : #include "torque-generated/builtins-typed-array-reduceright-from-dsl-gen.h"
75 : #include "torque-generated/builtins-typed-array-slice-from-dsl-gen.h"
76 : #include "torque-generated/builtins-typed-array-some-from-dsl-gen.h"
77 : #include "torque-generated/builtins-typed-array-subarray-from-dsl-gen.h"
78 : #include "torque-generated/builtins-test-from-dsl-gen.h"
79 :
80 : namespace v8 {
81 : namespace internal {
82 :
83 56 : compiler::TNode<JSArray> ArraySliceBuiltinsFromDSLAssembler::HandleSimpleArgumentsSlice(compiler::TNode<Context> p_context, compiler::TNode<JSArgumentsObjectWithLength> p_args, compiler::TNode<Smi> p_start, compiler::TNode<Smi> p_count, compiler::CodeAssemblerLabel* label_Bailout) {
84 56 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
85 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
86 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
87 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, Smi, FixedArrayBase> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
88 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, Smi, FixedArrayBase, FixedArray> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
89 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, Smi, FixedArray> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
90 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, Smi, FixedArray> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
91 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, Smi, FixedArray, Map, JSArray, FixedArrayBase> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
92 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, Smi, FixedArray, Map, JSArray, FixedArrayBase, FixedArray> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
93 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, JSArray> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
94 : compiler::CodeAssemblerParameterizedLabel<> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
95 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, JSArray> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
96 : ca_.Goto(&block0, p_context, p_args, p_start, p_count);
97 :
98 56 : if (block0.is_used()) {
99 : compiler::TNode<Context> tmp0;
100 : compiler::TNode<JSArgumentsObjectWithLength> tmp1;
101 : compiler::TNode<Smi> tmp2;
102 : compiler::TNode<Smi> tmp3;
103 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3);
104 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 11);
105 : compiler::TNode<Smi> tmp4;
106 : USE(tmp4);
107 168 : tmp4 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(FixedArray::kMaxRegularLength));
108 : compiler::TNode<BoolT> tmp5;
109 : USE(tmp5);
110 112 : tmp5 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiGreaterThanOrEqual(compiler::TNode<Smi>{tmp3}, compiler::TNode<Smi>{tmp4}));
111 56 : ca_.Branch(tmp5, &block3, &block4, tmp0, tmp1, tmp2, tmp3);
112 : }
113 :
114 56 : if (block3.is_used()) {
115 : compiler::TNode<Context> tmp6;
116 : compiler::TNode<JSArgumentsObjectWithLength> tmp7;
117 : compiler::TNode<Smi> tmp8;
118 : compiler::TNode<Smi> tmp9;
119 : ca_.Bind(&block3, &tmp6, &tmp7, &tmp8, &tmp9);
120 : ca_.Goto(&block1);
121 : }
122 :
123 56 : if (block4.is_used()) {
124 : compiler::TNode<Context> tmp10;
125 : compiler::TNode<JSArgumentsObjectWithLength> tmp11;
126 : compiler::TNode<Smi> tmp12;
127 : compiler::TNode<Smi> tmp13;
128 : ca_.Bind(&block4, &tmp10, &tmp11, &tmp12, &tmp13);
129 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 13);
130 : compiler::TNode<Smi> tmp14;
131 : USE(tmp14);
132 112 : tmp14 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiAdd(compiler::TNode<Smi>{tmp12}, compiler::TNode<Smi>{tmp13}));
133 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 15);
134 56 : compiler::TNode<IntPtrT> tmp15 = ca_.IntPtrConstant(JSObject::kElementsOffset);
135 : USE(tmp15);
136 112 : compiler::TNode<FixedArrayBase>tmp16 = CodeStubAssembler(state_).LoadReference<FixedArrayBase>(CodeStubAssembler::Reference{tmp11, tmp15});
137 : compiler::TNode<FixedArray> tmp17;
138 : USE(tmp17);
139 56 : compiler::CodeAssemblerLabel label0(&ca_);
140 168 : tmp17 = BaseBuiltinsFromDSLAssembler(state_).Cast10FixedArray(compiler::TNode<HeapObject>{tmp16}, &label0);
141 : ca_.Goto(&block5, tmp10, tmp11, tmp12, tmp13, tmp14, tmp16, tmp17);
142 56 : if (label0.is_used()) {
143 56 : ca_.Bind(&label0);
144 : ca_.Goto(&block6, tmp10, tmp11, tmp12, tmp13, tmp14, tmp16);
145 : }
146 : }
147 :
148 56 : if (block6.is_used()) {
149 : compiler::TNode<Context> tmp18;
150 : compiler::TNode<JSArgumentsObjectWithLength> tmp19;
151 : compiler::TNode<Smi> tmp20;
152 : compiler::TNode<Smi> tmp21;
153 : compiler::TNode<Smi> tmp22;
154 : compiler::TNode<FixedArrayBase> tmp23;
155 : ca_.Bind(&block6, &tmp18, &tmp19, &tmp20, &tmp21, &tmp22, &tmp23);
156 : ca_.Goto(&block1);
157 : }
158 :
159 56 : if (block5.is_used()) {
160 : compiler::TNode<Context> tmp24;
161 : compiler::TNode<JSArgumentsObjectWithLength> tmp25;
162 : compiler::TNode<Smi> tmp26;
163 : compiler::TNode<Smi> tmp27;
164 : compiler::TNode<Smi> tmp28;
165 : compiler::TNode<FixedArrayBase> tmp29;
166 : compiler::TNode<FixedArray> tmp30;
167 : ca_.Bind(&block5, &tmp24, &tmp25, &tmp26, &tmp27, &tmp28, &tmp29, &tmp30);
168 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 14);
169 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 16);
170 56 : compiler::TNode<IntPtrT> tmp31 = ca_.IntPtrConstant(FixedArrayBase::kLengthOffset);
171 : USE(tmp31);
172 168 : compiler::TNode<Smi>tmp32 = CodeStubAssembler(state_).LoadReference<Smi>(CodeStubAssembler::Reference{tmp30, tmp31});
173 : compiler::TNode<BoolT> tmp33;
174 : USE(tmp33);
175 112 : tmp33 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiAbove(compiler::TNode<Smi>{tmp28}, compiler::TNode<Smi>{tmp32}));
176 56 : ca_.Branch(tmp33, &block7, &block8, tmp24, tmp25, tmp26, tmp27, tmp28, tmp30);
177 : }
178 :
179 56 : if (block7.is_used()) {
180 : compiler::TNode<Context> tmp34;
181 : compiler::TNode<JSArgumentsObjectWithLength> tmp35;
182 : compiler::TNode<Smi> tmp36;
183 : compiler::TNode<Smi> tmp37;
184 : compiler::TNode<Smi> tmp38;
185 : compiler::TNode<FixedArray> tmp39;
186 : ca_.Bind(&block7, &tmp34, &tmp35, &tmp36, &tmp37, &tmp38, &tmp39);
187 : ca_.Goto(&block1);
188 : }
189 :
190 56 : if (block8.is_used()) {
191 : compiler::TNode<Context> tmp40;
192 : compiler::TNode<JSArgumentsObjectWithLength> tmp41;
193 : compiler::TNode<Smi> tmp42;
194 : compiler::TNode<Smi> tmp43;
195 : compiler::TNode<Smi> tmp44;
196 : compiler::TNode<FixedArray> tmp45;
197 : ca_.Bind(&block8, &tmp40, &tmp41, &tmp42, &tmp43, &tmp44, &tmp45);
198 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 18);
199 : compiler::TNode<Map> tmp46;
200 : USE(tmp46);
201 168 : tmp46 = ca_.UncheckedCast<Map>(CodeStubAssembler(state_).LoadJSArrayElementsMap(HOLEY_ELEMENTS, compiler::TNode<Context>{tmp40}));
202 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 20);
203 : compiler::TNode<JSArray> tmp47;
204 : USE(tmp47);
205 112 : tmp47 = ca_.UncheckedCast<JSArray>(CodeStubAssembler(state_).AllocateJSArray(HOLEY_ELEMENTS, compiler::TNode<Map>{tmp46}, compiler::TNode<Smi>{tmp43}, compiler::TNode<Smi>{tmp43}));
206 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 19);
207 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 22);
208 56 : compiler::TNode<IntPtrT> tmp48 = ca_.IntPtrConstant(JSObject::kElementsOffset);
209 : USE(tmp48);
210 112 : compiler::TNode<FixedArrayBase>tmp49 = CodeStubAssembler(state_).LoadReference<FixedArrayBase>(CodeStubAssembler::Reference{tmp47, tmp48});
211 : compiler::TNode<FixedArray> tmp50;
212 : USE(tmp50);
213 56 : compiler::CodeAssemblerLabel label0(&ca_);
214 168 : tmp50 = BaseBuiltinsFromDSLAssembler(state_).Cast10FixedArray(compiler::TNode<HeapObject>{tmp49}, &label0);
215 : ca_.Goto(&block9, tmp40, tmp41, tmp42, tmp43, tmp44, tmp45, tmp46, tmp47, tmp49, tmp50);
216 56 : if (label0.is_used()) {
217 56 : ca_.Bind(&label0);
218 : ca_.Goto(&block10, tmp40, tmp41, tmp42, tmp43, tmp44, tmp45, tmp46, tmp47, tmp49);
219 : }
220 : }
221 :
222 56 : if (block10.is_used()) {
223 : compiler::TNode<Context> tmp51;
224 : compiler::TNode<JSArgumentsObjectWithLength> tmp52;
225 : compiler::TNode<Smi> tmp53;
226 : compiler::TNode<Smi> tmp54;
227 : compiler::TNode<Smi> tmp55;
228 : compiler::TNode<FixedArray> tmp56;
229 : compiler::TNode<Map> tmp57;
230 : compiler::TNode<JSArray> tmp58;
231 : compiler::TNode<FixedArrayBase> tmp59;
232 : ca_.Bind(&block10, &tmp51, &tmp52, &tmp53, &tmp54, &tmp55, &tmp56, &tmp57, &tmp58, &tmp59);
233 : ca_.Goto(&block1);
234 : }
235 :
236 56 : if (block9.is_used()) {
237 : compiler::TNode<Context> tmp60;
238 : compiler::TNode<JSArgumentsObjectWithLength> tmp61;
239 : compiler::TNode<Smi> tmp62;
240 : compiler::TNode<Smi> tmp63;
241 : compiler::TNode<Smi> tmp64;
242 : compiler::TNode<FixedArray> tmp65;
243 : compiler::TNode<Map> tmp66;
244 : compiler::TNode<JSArray> tmp67;
245 : compiler::TNode<FixedArrayBase> tmp68;
246 : compiler::TNode<FixedArray> tmp69;
247 : ca_.Bind(&block9, &tmp60, &tmp61, &tmp62, &tmp63, &tmp64, &tmp65, &tmp66, &tmp67, &tmp68, &tmp69);
248 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 21);
249 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 24);
250 : compiler::TNode<IntPtrT> tmp70;
251 : USE(tmp70);
252 168 : tmp70 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).Convert8ATintptr5ATSmi(compiler::TNode<Smi>{tmp62}));
253 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 25);
254 : compiler::TNode<IntPtrT> tmp71;
255 : USE(tmp71);
256 168 : tmp71 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).Convert8ATintptr5ATSmi(compiler::TNode<Smi>{tmp63}));
257 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 23);
258 : compiler::TNode<IntPtrT> tmp72;
259 : USE(tmp72);
260 168 : tmp72 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(0));
261 112 : CodeStubAssembler(state_).CopyElements(PACKED_ELEMENTS, compiler::TNode<FixedArrayBase>{tmp69}, compiler::TNode<IntPtrT>{tmp72}, compiler::TNode<FixedArrayBase>{tmp65}, compiler::TNode<IntPtrT>{tmp70}, compiler::TNode<IntPtrT>{tmp71});
262 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 26);
263 : ca_.Goto(&block2, tmp60, tmp61, tmp62, tmp63, tmp67);
264 : }
265 :
266 56 : if (block2.is_used()) {
267 : compiler::TNode<Context> tmp73;
268 : compiler::TNode<JSArgumentsObjectWithLength> tmp74;
269 : compiler::TNode<Smi> tmp75;
270 : compiler::TNode<Smi> tmp76;
271 : compiler::TNode<JSArray> tmp77;
272 : ca_.Bind(&block2, &tmp73, &tmp74, &tmp75, &tmp76, &tmp77);
273 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 6);
274 : ca_.Goto(&block11, tmp73, tmp74, tmp75, tmp76, tmp77);
275 : }
276 :
277 56 : if (block1.is_used()) {
278 : ca_.Bind(&block1);
279 56 : ca_.Goto(label_Bailout);
280 : }
281 :
282 : compiler::TNode<Context> tmp78;
283 : compiler::TNode<JSArgumentsObjectWithLength> tmp79;
284 : compiler::TNode<Smi> tmp80;
285 : compiler::TNode<Smi> tmp81;
286 : compiler::TNode<JSArray> tmp82;
287 : ca_.Bind(&block11, &tmp78, &tmp79, &tmp80, &tmp81, &tmp82);
288 112 : return compiler::TNode<JSArray>{tmp82};
289 : }
290 :
291 56 : compiler::TNode<JSArray> ArraySliceBuiltinsFromDSLAssembler::HandleFastAliasedSloppyArgumentsSlice(compiler::TNode<Context> p_context, compiler::TNode<JSArgumentsObjectWithLength> p_args, compiler::TNode<Smi> p_start, compiler::TNode<Smi> p_count, compiler::CodeAssemblerLabel* label_Bailout) {
292 56 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
293 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
294 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
295 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, FixedArrayBase> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
296 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, FixedArrayBase, SloppyArgumentsElements> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
297 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, Object> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
298 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, Object, FixedArray> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
299 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, FixedArray, Smi> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
300 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, FixedArray, Smi> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
301 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, FixedArray, Smi, Context, Map, JSArray, Smi, FixedArray, Smi, Smi> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
302 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, FixedArray, Smi, Context, Map, JSArray, Smi, FixedArray, Smi, Smi> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
303 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, FixedArray, Smi, Context, Map, JSArray, Smi, FixedArray, Smi, Smi, Object> block15(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
304 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, FixedArray, Smi, Context, Map, JSArray, Smi, FixedArray, Smi, Smi, Object> block16(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
305 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, FixedArray, Smi, Context, Map, JSArray, Smi, FixedArray, Smi, Smi, Object, Object> block18(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
306 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, FixedArray, Smi, Context, Map, JSArray, Smi, FixedArray, Smi, Smi, Object, Object> block17(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
307 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, FixedArray, Smi, Context, Map, JSArray, Smi, FixedArray, Smi, Smi> block14(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
308 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, SloppyArgumentsElements, Smi, Smi, Smi, FixedArray, Smi, Context, Map, JSArray, Smi, FixedArray, Smi, Smi> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
309 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, JSArray> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
310 : compiler::CodeAssemblerParameterizedLabel<> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
311 : compiler::CodeAssemblerParameterizedLabel<Context, JSArgumentsObjectWithLength, Smi, Smi, JSArray> block19(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
312 : ca_.Goto(&block0, p_context, p_args, p_start, p_count);
313 :
314 56 : if (block0.is_used()) {
315 : compiler::TNode<Context> tmp0;
316 : compiler::TNode<JSArgumentsObjectWithLength> tmp1;
317 : compiler::TNode<Smi> tmp2;
318 : compiler::TNode<Smi> tmp3;
319 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3);
320 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 34);
321 : compiler::TNode<Smi> tmp4;
322 : USE(tmp4);
323 168 : tmp4 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(FixedArray::kMaxRegularLength));
324 : compiler::TNode<BoolT> tmp5;
325 : USE(tmp5);
326 112 : tmp5 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiGreaterThanOrEqual(compiler::TNode<Smi>{tmp3}, compiler::TNode<Smi>{tmp4}));
327 56 : ca_.Branch(tmp5, &block3, &block4, tmp0, tmp1, tmp2, tmp3);
328 : }
329 :
330 56 : if (block3.is_used()) {
331 : compiler::TNode<Context> tmp6;
332 : compiler::TNode<JSArgumentsObjectWithLength> tmp7;
333 : compiler::TNode<Smi> tmp8;
334 : compiler::TNode<Smi> tmp9;
335 : ca_.Bind(&block3, &tmp6, &tmp7, &tmp8, &tmp9);
336 : ca_.Goto(&block1);
337 : }
338 :
339 56 : if (block4.is_used()) {
340 : compiler::TNode<Context> tmp10;
341 : compiler::TNode<JSArgumentsObjectWithLength> tmp11;
342 : compiler::TNode<Smi> tmp12;
343 : compiler::TNode<Smi> tmp13;
344 : ca_.Bind(&block4, &tmp10, &tmp11, &tmp12, &tmp13);
345 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 37);
346 56 : compiler::TNode<IntPtrT> tmp14 = ca_.IntPtrConstant(JSObject::kElementsOffset);
347 : USE(tmp14);
348 112 : compiler::TNode<FixedArrayBase>tmp15 = CodeStubAssembler(state_).LoadReference<FixedArrayBase>(CodeStubAssembler::Reference{tmp11, tmp14});
349 : compiler::TNode<SloppyArgumentsElements> tmp16;
350 : USE(tmp16);
351 56 : compiler::CodeAssemblerLabel label0(&ca_);
352 168 : tmp16 = BaseBuiltinsFromDSLAssembler(state_).Cast23SloppyArgumentsElements(compiler::TNode<HeapObject>{tmp15}, &label0);
353 : ca_.Goto(&block5, tmp10, tmp11, tmp12, tmp13, tmp15, tmp16);
354 56 : if (label0.is_used()) {
355 56 : ca_.Bind(&label0);
356 : ca_.Goto(&block6, tmp10, tmp11, tmp12, tmp13, tmp15);
357 : }
358 : }
359 :
360 56 : if (block6.is_used()) {
361 : compiler::TNode<Context> tmp17;
362 : compiler::TNode<JSArgumentsObjectWithLength> tmp18;
363 : compiler::TNode<Smi> tmp19;
364 : compiler::TNode<Smi> tmp20;
365 : compiler::TNode<FixedArrayBase> tmp21;
366 : ca_.Bind(&block6, &tmp17, &tmp18, &tmp19, &tmp20, &tmp21);
367 : ca_.Goto(&block1);
368 : }
369 :
370 56 : if (block5.is_used()) {
371 : compiler::TNode<Context> tmp22;
372 : compiler::TNode<JSArgumentsObjectWithLength> tmp23;
373 : compiler::TNode<Smi> tmp24;
374 : compiler::TNode<Smi> tmp25;
375 : compiler::TNode<FixedArrayBase> tmp26;
376 : compiler::TNode<SloppyArgumentsElements> tmp27;
377 : ca_.Bind(&block5, &tmp22, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27);
378 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 36);
379 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 38);
380 56 : compiler::TNode<IntPtrT> tmp28 = ca_.IntPtrConstant(FixedArrayBase::kLengthOffset);
381 : USE(tmp28);
382 112 : compiler::TNode<Smi>tmp29 = CodeStubAssembler(state_).LoadReference<Smi>(CodeStubAssembler::Reference{tmp27, tmp28});
383 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 40);
384 : compiler::TNode<Smi> tmp30;
385 : USE(tmp30);
386 168 : tmp30 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(SloppyArgumentsElements::kParameterMapStart));
387 : compiler::TNode<Smi> tmp31;
388 : USE(tmp31);
389 112 : tmp31 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiSub(compiler::TNode<Smi>{tmp29}, compiler::TNode<Smi>{tmp30}));
390 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 39);
391 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 44);
392 : compiler::TNode<Smi> tmp32;
393 : USE(tmp32);
394 112 : tmp32 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiAdd(compiler::TNode<Smi>{tmp24}, compiler::TNode<Smi>{tmp25}));
395 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 46);
396 : compiler::TNode<Object> tmp33;
397 : USE(tmp33);
398 112 : tmp33 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).LoadFixedArrayElement(compiler::TNode<FixedArray>{tmp27}, SloppyArgumentsElements::kArgumentsIndex));
399 : compiler::TNode<FixedArray> tmp34;
400 : USE(tmp34);
401 56 : compiler::CodeAssemblerLabel label0(&ca_);
402 168 : tmp34 = BaseBuiltinsFromDSLAssembler(state_).Cast10FixedArray(compiler::TNode<Context>{tmp22}, compiler::TNode<Object>{tmp33}, &label0);
403 : ca_.Goto(&block7, tmp22, tmp23, tmp24, tmp25, tmp27, tmp29, tmp31, tmp32, tmp33, tmp34);
404 56 : if (label0.is_used()) {
405 56 : ca_.Bind(&label0);
406 : ca_.Goto(&block8, tmp22, tmp23, tmp24, tmp25, tmp27, tmp29, tmp31, tmp32, tmp33);
407 : }
408 : }
409 :
410 56 : if (block8.is_used()) {
411 : compiler::TNode<Context> tmp35;
412 : compiler::TNode<JSArgumentsObjectWithLength> tmp36;
413 : compiler::TNode<Smi> tmp37;
414 : compiler::TNode<Smi> tmp38;
415 : compiler::TNode<SloppyArgumentsElements> tmp39;
416 : compiler::TNode<Smi> tmp40;
417 : compiler::TNode<Smi> tmp41;
418 : compiler::TNode<Smi> tmp42;
419 : compiler::TNode<Object> tmp43;
420 : ca_.Bind(&block8, &tmp35, &tmp36, &tmp37, &tmp38, &tmp39, &tmp40, &tmp41, &tmp42, &tmp43);
421 : ca_.Goto(&block1);
422 : }
423 :
424 56 : if (block7.is_used()) {
425 : compiler::TNode<Context> tmp44;
426 : compiler::TNode<JSArgumentsObjectWithLength> tmp45;
427 : compiler::TNode<Smi> tmp46;
428 : compiler::TNode<Smi> tmp47;
429 : compiler::TNode<SloppyArgumentsElements> tmp48;
430 : compiler::TNode<Smi> tmp49;
431 : compiler::TNode<Smi> tmp50;
432 : compiler::TNode<Smi> tmp51;
433 : compiler::TNode<Object> tmp52;
434 : compiler::TNode<FixedArray> tmp53;
435 : ca_.Bind(&block7, &tmp44, &tmp45, &tmp46, &tmp47, &tmp48, &tmp49, &tmp50, &tmp51, &tmp52, &tmp53);
436 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 45);
437 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 48);
438 56 : compiler::TNode<IntPtrT> tmp54 = ca_.IntPtrConstant(FixedArrayBase::kLengthOffset);
439 : USE(tmp54);
440 168 : compiler::TNode<Smi>tmp55 = CodeStubAssembler(state_).LoadReference<Smi>(CodeStubAssembler::Reference{tmp53, tmp54});
441 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 49);
442 : compiler::TNode<BoolT> tmp56;
443 : USE(tmp56);
444 112 : tmp56 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiAbove(compiler::TNode<Smi>{tmp51}, compiler::TNode<Smi>{tmp55}));
445 56 : ca_.Branch(tmp56, &block9, &block10, tmp44, tmp45, tmp46, tmp47, tmp48, tmp49, tmp50, tmp51, tmp53, tmp55);
446 : }
447 :
448 56 : if (block9.is_used()) {
449 : compiler::TNode<Context> tmp57;
450 : compiler::TNode<JSArgumentsObjectWithLength> tmp58;
451 : compiler::TNode<Smi> tmp59;
452 : compiler::TNode<Smi> tmp60;
453 : compiler::TNode<SloppyArgumentsElements> tmp61;
454 : compiler::TNode<Smi> tmp62;
455 : compiler::TNode<Smi> tmp63;
456 : compiler::TNode<Smi> tmp64;
457 : compiler::TNode<FixedArray> tmp65;
458 : compiler::TNode<Smi> tmp66;
459 : ca_.Bind(&block9, &tmp57, &tmp58, &tmp59, &tmp60, &tmp61, &tmp62, &tmp63, &tmp64, &tmp65, &tmp66);
460 : ca_.Goto(&block1);
461 : }
462 :
463 56 : if (block10.is_used()) {
464 : compiler::TNode<Context> tmp67;
465 : compiler::TNode<JSArgumentsObjectWithLength> tmp68;
466 : compiler::TNode<Smi> tmp69;
467 : compiler::TNode<Smi> tmp70;
468 : compiler::TNode<SloppyArgumentsElements> tmp71;
469 : compiler::TNode<Smi> tmp72;
470 : compiler::TNode<Smi> tmp73;
471 : compiler::TNode<Smi> tmp74;
472 : compiler::TNode<FixedArray> tmp75;
473 : compiler::TNode<Smi> tmp76;
474 : ca_.Bind(&block10, &tmp67, &tmp68, &tmp69, &tmp70, &tmp71, &tmp72, &tmp73, &tmp74, &tmp75, &tmp76);
475 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 52);
476 : compiler::TNode<Object> tmp77;
477 : USE(tmp77);
478 112 : tmp77 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).LoadFixedArrayElement(compiler::TNode<FixedArray>{tmp71}, SloppyArgumentsElements::kContextIndex));
479 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 51);
480 : compiler::TNode<Context> tmp78;
481 : USE(tmp78);
482 168 : tmp78 = ca_.UncheckedCast<Context>(BaseBuiltinsFromDSLAssembler(state_).UnsafeCast7Context(compiler::TNode<Context>{tmp67}, compiler::TNode<Object>{tmp77}));
483 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 54);
484 : compiler::TNode<Map> tmp79;
485 : USE(tmp79);
486 168 : tmp79 = ca_.UncheckedCast<Map>(CodeStubAssembler(state_).LoadJSArrayElementsMap(HOLEY_ELEMENTS, compiler::TNode<Context>{tmp67}));
487 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 56);
488 : compiler::TNode<JSArray> tmp80;
489 : USE(tmp80);
490 112 : tmp80 = ca_.UncheckedCast<JSArray>(CodeStubAssembler(state_).AllocateJSArray(HOLEY_ELEMENTS, compiler::TNode<Map>{tmp79}, compiler::TNode<Smi>{tmp70}, compiler::TNode<Smi>{tmp70}));
491 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 55);
492 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 58);
493 : compiler::TNode<Smi> tmp81;
494 : USE(tmp81);
495 168 : tmp81 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(0));
496 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 59);
497 56 : compiler::TNode<IntPtrT> tmp82 = ca_.IntPtrConstant(JSObject::kElementsOffset);
498 : USE(tmp82);
499 112 : compiler::TNode<FixedArrayBase>tmp83 = CodeStubAssembler(state_).LoadReference<FixedArrayBase>(CodeStubAssembler::Reference{tmp80, tmp82});
500 : compiler::TNode<FixedArray> tmp84;
501 : USE(tmp84);
502 168 : tmp84 = ca_.UncheckedCast<FixedArray>(BaseBuiltinsFromDSLAssembler(state_).UnsafeCast10FixedArray(compiler::TNode<Context>{tmp67}, compiler::TNode<Object>{tmp83}));
503 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 60);
504 : compiler::TNode<Smi> tmp85;
505 : USE(tmp85);
506 112 : tmp85 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiMin(compiler::TNode<Smi>{tmp73}, compiler::TNode<Smi>{tmp74}));
507 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 63);
508 : ca_.Goto(&block13, tmp67, tmp68, tmp69, tmp70, tmp71, tmp72, tmp73, tmp74, tmp75, tmp76, tmp78, tmp79, tmp80, tmp81, tmp84, tmp85, tmp69);
509 : }
510 :
511 56 : if (block13.is_used()) {
512 : compiler::TNode<Context> tmp86;
513 : compiler::TNode<JSArgumentsObjectWithLength> tmp87;
514 : compiler::TNode<Smi> tmp88;
515 : compiler::TNode<Smi> tmp89;
516 : compiler::TNode<SloppyArgumentsElements> tmp90;
517 : compiler::TNode<Smi> tmp91;
518 : compiler::TNode<Smi> tmp92;
519 : compiler::TNode<Smi> tmp93;
520 : compiler::TNode<FixedArray> tmp94;
521 : compiler::TNode<Smi> tmp95;
522 : compiler::TNode<Context> tmp96;
523 : compiler::TNode<Map> tmp97;
524 : compiler::TNode<JSArray> tmp98;
525 : compiler::TNode<Smi> tmp99;
526 : compiler::TNode<FixedArray> tmp100;
527 : compiler::TNode<Smi> tmp101;
528 : compiler::TNode<Smi> tmp102;
529 : ca_.Bind(&block13, &tmp86, &tmp87, &tmp88, &tmp89, &tmp90, &tmp91, &tmp92, &tmp93, &tmp94, &tmp95, &tmp96, &tmp97, &tmp98, &tmp99, &tmp100, &tmp101, &tmp102);
530 : compiler::TNode<BoolT> tmp103;
531 : USE(tmp103);
532 112 : tmp103 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiLessThan(compiler::TNode<Smi>{tmp102}, compiler::TNode<Smi>{tmp101}));
533 56 : ca_.Branch(tmp103, &block11, &block12, tmp86, tmp87, tmp88, tmp89, tmp90, tmp91, tmp92, tmp93, tmp94, tmp95, tmp96, tmp97, tmp98, tmp99, tmp100, tmp101, tmp102);
534 : }
535 :
536 56 : if (block11.is_used()) {
537 : compiler::TNode<Context> tmp104;
538 : compiler::TNode<JSArgumentsObjectWithLength> tmp105;
539 : compiler::TNode<Smi> tmp106;
540 : compiler::TNode<Smi> tmp107;
541 : compiler::TNode<SloppyArgumentsElements> tmp108;
542 : compiler::TNode<Smi> tmp109;
543 : compiler::TNode<Smi> tmp110;
544 : compiler::TNode<Smi> tmp111;
545 : compiler::TNode<FixedArray> tmp112;
546 : compiler::TNode<Smi> tmp113;
547 : compiler::TNode<Context> tmp114;
548 : compiler::TNode<Map> tmp115;
549 : compiler::TNode<JSArray> tmp116;
550 : compiler::TNode<Smi> tmp117;
551 : compiler::TNode<FixedArray> tmp118;
552 : compiler::TNode<Smi> tmp119;
553 : compiler::TNode<Smi> tmp120;
554 : ca_.Bind(&block11, &tmp104, &tmp105, &tmp106, &tmp107, &tmp108, &tmp109, &tmp110, &tmp111, &tmp112, &tmp113, &tmp114, &tmp115, &tmp116, &tmp117, &tmp118, &tmp119, &tmp120);
555 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 65);
556 : compiler::TNode<Smi> tmp121;
557 : USE(tmp121);
558 168 : tmp121 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(SloppyArgumentsElements::kParameterMapStart));
559 : compiler::TNode<Smi> tmp122;
560 : USE(tmp122);
561 112 : tmp122 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiAdd(compiler::TNode<Smi>{tmp120}, compiler::TNode<Smi>{tmp121}));
562 : compiler::TNode<Object> tmp123;
563 : USE(tmp123);
564 112 : tmp123 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).LoadFixedArrayElement(compiler::TNode<FixedArray>{tmp108}, compiler::TNode<Smi>{tmp122}));
565 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 64);
566 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 66);
567 : compiler::TNode<Oddball> tmp124;
568 : USE(tmp124);
569 168 : tmp124 = BaseBuiltinsFromDSLAssembler(state_).Hole();
570 : compiler::TNode<BoolT> tmp125;
571 : USE(tmp125);
572 112 : tmp125 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordNotEqual(compiler::TNode<Object>{tmp123}, compiler::TNode<HeapObject>{tmp124}));
573 56 : ca_.Branch(tmp125, &block15, &block16, tmp104, tmp105, tmp106, tmp107, tmp108, tmp109, tmp110, tmp111, tmp112, tmp113, tmp114, tmp115, tmp116, tmp117, tmp118, tmp119, tmp120, tmp123);
574 : }
575 :
576 56 : if (block15.is_used()) {
577 : compiler::TNode<Context> tmp126;
578 : compiler::TNode<JSArgumentsObjectWithLength> tmp127;
579 : compiler::TNode<Smi> tmp128;
580 : compiler::TNode<Smi> tmp129;
581 : compiler::TNode<SloppyArgumentsElements> tmp130;
582 : compiler::TNode<Smi> tmp131;
583 : compiler::TNode<Smi> tmp132;
584 : compiler::TNode<Smi> tmp133;
585 : compiler::TNode<FixedArray> tmp134;
586 : compiler::TNode<Smi> tmp135;
587 : compiler::TNode<Context> tmp136;
588 : compiler::TNode<Map> tmp137;
589 : compiler::TNode<JSArray> tmp138;
590 : compiler::TNode<Smi> tmp139;
591 : compiler::TNode<FixedArray> tmp140;
592 : compiler::TNode<Smi> tmp141;
593 : compiler::TNode<Smi> tmp142;
594 : compiler::TNode<Object> tmp143;
595 : ca_.Bind(&block15, &tmp126, &tmp127, &tmp128, &tmp129, &tmp130, &tmp131, &tmp132, &tmp133, &tmp134, &tmp135, &tmp136, &tmp137, &tmp138, &tmp139, &tmp140, &tmp141, &tmp142, &tmp143);
596 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 67);
597 : compiler::TNode<Smi> tmp144;
598 : USE(tmp144);
599 168 : tmp144 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).UnsafeCast5ATSmi(compiler::TNode<Context>{tmp126}, compiler::TNode<Object>{tmp143}));
600 : compiler::TNode<Object> tmp145;
601 : USE(tmp145);
602 112 : tmp145 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).LoadContextElement(compiler::TNode<Context>{tmp136}, compiler::TNode<Smi>{tmp144}));
603 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 66);
604 : ca_.Goto(&block18, tmp126, tmp127, tmp128, tmp129, tmp130, tmp131, tmp132, tmp133, tmp134, tmp135, tmp136, tmp137, tmp138, tmp139, tmp140, tmp141, tmp142, tmp143, tmp145);
605 : }
606 :
607 56 : if (block16.is_used()) {
608 : compiler::TNode<Context> tmp146;
609 : compiler::TNode<JSArgumentsObjectWithLength> tmp147;
610 : compiler::TNode<Smi> tmp148;
611 : compiler::TNode<Smi> tmp149;
612 : compiler::TNode<SloppyArgumentsElements> tmp150;
613 : compiler::TNode<Smi> tmp151;
614 : compiler::TNode<Smi> tmp152;
615 : compiler::TNode<Smi> tmp153;
616 : compiler::TNode<FixedArray> tmp154;
617 : compiler::TNode<Smi> tmp155;
618 : compiler::TNode<Context> tmp156;
619 : compiler::TNode<Map> tmp157;
620 : compiler::TNode<JSArray> tmp158;
621 : compiler::TNode<Smi> tmp159;
622 : compiler::TNode<FixedArray> tmp160;
623 : compiler::TNode<Smi> tmp161;
624 : compiler::TNode<Smi> tmp162;
625 : compiler::TNode<Object> tmp163;
626 : ca_.Bind(&block16, &tmp146, &tmp147, &tmp148, &tmp149, &tmp150, &tmp151, &tmp152, &tmp153, &tmp154, &tmp155, &tmp156, &tmp157, &tmp158, &tmp159, &tmp160, &tmp161, &tmp162, &tmp163);
627 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 68);
628 : compiler::TNode<Object> tmp164;
629 : USE(tmp164);
630 112 : tmp164 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).LoadFixedArrayElement(compiler::TNode<FixedArray>{tmp154}, compiler::TNode<Smi>{tmp162}));
631 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 66);
632 : ca_.Goto(&block17, tmp146, tmp147, tmp148, tmp149, tmp150, tmp151, tmp152, tmp153, tmp154, tmp155, tmp156, tmp157, tmp158, tmp159, tmp160, tmp161, tmp162, tmp163, tmp164);
633 : }
634 :
635 56 : if (block18.is_used()) {
636 : compiler::TNode<Context> tmp165;
637 : compiler::TNode<JSArgumentsObjectWithLength> tmp166;
638 : compiler::TNode<Smi> tmp167;
639 : compiler::TNode<Smi> tmp168;
640 : compiler::TNode<SloppyArgumentsElements> tmp169;
641 : compiler::TNode<Smi> tmp170;
642 : compiler::TNode<Smi> tmp171;
643 : compiler::TNode<Smi> tmp172;
644 : compiler::TNode<FixedArray> tmp173;
645 : compiler::TNode<Smi> tmp174;
646 : compiler::TNode<Context> tmp175;
647 : compiler::TNode<Map> tmp176;
648 : compiler::TNode<JSArray> tmp177;
649 : compiler::TNode<Smi> tmp178;
650 : compiler::TNode<FixedArray> tmp179;
651 : compiler::TNode<Smi> tmp180;
652 : compiler::TNode<Smi> tmp181;
653 : compiler::TNode<Object> tmp182;
654 : compiler::TNode<Object> tmp183;
655 : ca_.Bind(&block18, &tmp165, &tmp166, &tmp167, &tmp168, &tmp169, &tmp170, &tmp171, &tmp172, &tmp173, &tmp174, &tmp175, &tmp176, &tmp177, &tmp178, &tmp179, &tmp180, &tmp181, &tmp182, &tmp183);
656 : ca_.Goto(&block17, tmp165, tmp166, tmp167, tmp168, tmp169, tmp170, tmp171, tmp172, tmp173, tmp174, tmp175, tmp176, tmp177, tmp178, tmp179, tmp180, tmp181, tmp182, tmp183);
657 : }
658 :
659 56 : if (block17.is_used()) {
660 : compiler::TNode<Context> tmp184;
661 : compiler::TNode<JSArgumentsObjectWithLength> tmp185;
662 : compiler::TNode<Smi> tmp186;
663 : compiler::TNode<Smi> tmp187;
664 : compiler::TNode<SloppyArgumentsElements> tmp188;
665 : compiler::TNode<Smi> tmp189;
666 : compiler::TNode<Smi> tmp190;
667 : compiler::TNode<Smi> tmp191;
668 : compiler::TNode<FixedArray> tmp192;
669 : compiler::TNode<Smi> tmp193;
670 : compiler::TNode<Context> tmp194;
671 : compiler::TNode<Map> tmp195;
672 : compiler::TNode<JSArray> tmp196;
673 : compiler::TNode<Smi> tmp197;
674 : compiler::TNode<FixedArray> tmp198;
675 : compiler::TNode<Smi> tmp199;
676 : compiler::TNode<Smi> tmp200;
677 : compiler::TNode<Object> tmp201;
678 : compiler::TNode<Object> tmp202;
679 : ca_.Bind(&block17, &tmp184, &tmp185, &tmp186, &tmp187, &tmp188, &tmp189, &tmp190, &tmp191, &tmp192, &tmp193, &tmp194, &tmp195, &tmp196, &tmp197, &tmp198, &tmp199, &tmp200, &tmp201, &tmp202);
680 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 70);
681 : compiler::TNode<Smi> tmp203;
682 : USE(tmp203);
683 168 : tmp203 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
684 : compiler::TNode<Smi> tmp204;
685 : USE(tmp204);
686 112 : tmp204 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiAdd(compiler::TNode<Smi>{tmp197}, compiler::TNode<Smi>{tmp203}));
687 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 69);
688 112 : CodeStubAssembler(state_).StoreFixedArrayElementSmi(compiler::TNode<FixedArray>{tmp198}, compiler::TNode<Smi>{tmp197}, compiler::TNode<Object>{tmp202}, SKIP_WRITE_BARRIER);
689 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 63);
690 : ca_.Goto(&block14, tmp184, tmp185, tmp186, tmp187, tmp188, tmp189, tmp190, tmp191, tmp192, tmp193, tmp194, tmp195, tmp196, tmp204, tmp198, tmp199, tmp200);
691 : }
692 :
693 56 : if (block14.is_used()) {
694 : compiler::TNode<Context> tmp205;
695 : compiler::TNode<JSArgumentsObjectWithLength> tmp206;
696 : compiler::TNode<Smi> tmp207;
697 : compiler::TNode<Smi> tmp208;
698 : compiler::TNode<SloppyArgumentsElements> tmp209;
699 : compiler::TNode<Smi> tmp210;
700 : compiler::TNode<Smi> tmp211;
701 : compiler::TNode<Smi> tmp212;
702 : compiler::TNode<FixedArray> tmp213;
703 : compiler::TNode<Smi> tmp214;
704 : compiler::TNode<Context> tmp215;
705 : compiler::TNode<Map> tmp216;
706 : compiler::TNode<JSArray> tmp217;
707 : compiler::TNode<Smi> tmp218;
708 : compiler::TNode<FixedArray> tmp219;
709 : compiler::TNode<Smi> tmp220;
710 : compiler::TNode<Smi> tmp221;
711 : ca_.Bind(&block14, &tmp205, &tmp206, &tmp207, &tmp208, &tmp209, &tmp210, &tmp211, &tmp212, &tmp213, &tmp214, &tmp215, &tmp216, &tmp217, &tmp218, &tmp219, &tmp220, &tmp221);
712 : compiler::TNode<Smi> tmp222;
713 : USE(tmp222);
714 168 : tmp222 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
715 : compiler::TNode<Smi> tmp223;
716 : USE(tmp223);
717 112 : tmp223 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiAdd(compiler::TNode<Smi>{tmp221}, compiler::TNode<Smi>{tmp222}));
718 : ca_.Goto(&block13, tmp205, tmp206, tmp207, tmp208, tmp209, tmp210, tmp211, tmp212, tmp213, tmp214, tmp215, tmp216, tmp217, tmp218, tmp219, tmp220, tmp223);
719 : }
720 :
721 56 : if (block12.is_used()) {
722 : compiler::TNode<Context> tmp224;
723 : compiler::TNode<JSArgumentsObjectWithLength> tmp225;
724 : compiler::TNode<Smi> tmp226;
725 : compiler::TNode<Smi> tmp227;
726 : compiler::TNode<SloppyArgumentsElements> tmp228;
727 : compiler::TNode<Smi> tmp229;
728 : compiler::TNode<Smi> tmp230;
729 : compiler::TNode<Smi> tmp231;
730 : compiler::TNode<FixedArray> tmp232;
731 : compiler::TNode<Smi> tmp233;
732 : compiler::TNode<Context> tmp234;
733 : compiler::TNode<Map> tmp235;
734 : compiler::TNode<JSArray> tmp236;
735 : compiler::TNode<Smi> tmp237;
736 : compiler::TNode<FixedArray> tmp238;
737 : compiler::TNode<Smi> tmp239;
738 : compiler::TNode<Smi> tmp240;
739 : ca_.Bind(&block12, &tmp224, &tmp225, &tmp226, &tmp227, &tmp228, &tmp229, &tmp230, &tmp231, &tmp232, &tmp233, &tmp234, &tmp235, &tmp236, &tmp237, &tmp238, &tmp239, &tmp240);
740 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 75);
741 : compiler::TNode<Smi> tmp241;
742 : USE(tmp241);
743 112 : tmp241 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiMax(compiler::TNode<Smi>{tmp230}, compiler::TNode<Smi>{tmp226}));
744 : compiler::TNode<Smi> tmp242;
745 : USE(tmp242);
746 112 : tmp242 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiMin(compiler::TNode<Smi>{tmp241}, compiler::TNode<Smi>{tmp231}));
747 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 76);
748 : compiler::TNode<Smi> tmp243;
749 : USE(tmp243);
750 112 : tmp243 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiSub(compiler::TNode<Smi>{tmp231}, compiler::TNode<Smi>{tmp242}));
751 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 78);
752 : compiler::TNode<IntPtrT> tmp244;
753 : USE(tmp244);
754 168 : tmp244 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).Convert8ATintptr5ATSmi(compiler::TNode<Smi>{tmp237}));
755 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 79);
756 : compiler::TNode<IntPtrT> tmp245;
757 : USE(tmp245);
758 168 : tmp245 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).Convert8ATintptr5ATSmi(compiler::TNode<Smi>{tmp242}));
759 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 80);
760 : compiler::TNode<IntPtrT> tmp246;
761 : USE(tmp246);
762 168 : tmp246 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).Convert8ATintptr5ATSmi(compiler::TNode<Smi>{tmp243}));
763 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 77);
764 112 : CodeStubAssembler(state_).CopyElements(PACKED_ELEMENTS, compiler::TNode<FixedArrayBase>{tmp238}, compiler::TNode<IntPtrT>{tmp244}, compiler::TNode<FixedArrayBase>{tmp232}, compiler::TNode<IntPtrT>{tmp245}, compiler::TNode<IntPtrT>{tmp246});
765 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 81);
766 : ca_.Goto(&block2, tmp224, tmp225, tmp226, tmp227, tmp236);
767 : }
768 :
769 56 : if (block2.is_used()) {
770 : compiler::TNode<Context> tmp247;
771 : compiler::TNode<JSArgumentsObjectWithLength> tmp248;
772 : compiler::TNode<Smi> tmp249;
773 : compiler::TNode<Smi> tmp250;
774 : compiler::TNode<JSArray> tmp251;
775 : ca_.Bind(&block2, &tmp247, &tmp248, &tmp249, &tmp250, &tmp251);
776 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 29);
777 : ca_.Goto(&block19, tmp247, tmp248, tmp249, tmp250, tmp251);
778 : }
779 :
780 56 : if (block1.is_used()) {
781 : ca_.Bind(&block1);
782 56 : ca_.Goto(label_Bailout);
783 : }
784 :
785 : compiler::TNode<Context> tmp252;
786 : compiler::TNode<JSArgumentsObjectWithLength> tmp253;
787 : compiler::TNode<Smi> tmp254;
788 : compiler::TNode<Smi> tmp255;
789 : compiler::TNode<JSArray> tmp256;
790 : ca_.Bind(&block19, &tmp252, &tmp253, &tmp254, &tmp255, &tmp256);
791 112 : return compiler::TNode<JSArray>{tmp256};
792 : }
793 :
794 56 : compiler::TNode<JSArray> ArraySliceBuiltinsFromDSLAssembler::HandleFastSlice(compiler::TNode<Context> p_context, compiler::TNode<Object> p_o, compiler::TNode<Number> p_startNumber, compiler::TNode<Number> p_countNumber, compiler::CodeAssemblerLabel* label_Bailout) {
795 56 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
796 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Number> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
797 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Number, Smi> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
798 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Number> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
799 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Number, Smi> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
800 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, Object> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
801 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, Object, JSArray> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
802 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArray> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
803 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArray> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
804 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
805 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, Object> block16(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
806 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, Object, JSArgumentsObjectWithLength> block15(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
807 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArgumentsObjectWithLength, Context, Map> block17(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
808 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArgumentsObjectWithLength, Context, Map, Context, JSArgumentsObjectWithLength, Smi, Smi> block21(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
809 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArgumentsObjectWithLength, Context, Map, Context, JSArgumentsObjectWithLength, Smi, Smi, JSArray> block20(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
810 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArgumentsObjectWithLength, Context, Map> block18(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
811 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArgumentsObjectWithLength, Context, Map> block24(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
812 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArgumentsObjectWithLength, Context, Map> block22(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
813 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArgumentsObjectWithLength, Context, Map, Context, JSArgumentsObjectWithLength, Smi, Smi> block26(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
814 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArgumentsObjectWithLength, Context, Map, Context, JSArgumentsObjectWithLength, Smi, Smi, JSArray> block25(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
815 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArgumentsObjectWithLength, Context, Map> block23(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
816 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object, JSArgumentsObjectWithLength, Context, Map> block19(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
817 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object> block14(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
818 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
819 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, Smi, Smi, Object> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
820 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, JSArray> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
821 : compiler::CodeAssemblerParameterizedLabel<> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
822 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Number, Number, JSArray> block27(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
823 : ca_.Goto(&block0, p_context, p_o, p_startNumber, p_countNumber);
824 :
825 56 : if (block0.is_used()) {
826 : compiler::TNode<Context> tmp0;
827 : compiler::TNode<Object> tmp1;
828 : compiler::TNode<Number> tmp2;
829 : compiler::TNode<Number> tmp3;
830 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3);
831 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 88);
832 : compiler::TNode<Smi> tmp4;
833 : USE(tmp4);
834 56 : compiler::CodeAssemblerLabel label0(&ca_);
835 168 : tmp4 = BaseBuiltinsFromDSLAssembler(state_).Cast5ATSmi(compiler::TNode<Object>{tmp2}, &label0);
836 : ca_.Goto(&block3, tmp0, tmp1, tmp2, tmp3, tmp2, tmp4);
837 56 : if (label0.is_used()) {
838 56 : ca_.Bind(&label0);
839 : ca_.Goto(&block4, tmp0, tmp1, tmp2, tmp3, tmp2);
840 : }
841 : }
842 :
843 56 : if (block4.is_used()) {
844 : compiler::TNode<Context> tmp5;
845 : compiler::TNode<Object> tmp6;
846 : compiler::TNode<Number> tmp7;
847 : compiler::TNode<Number> tmp8;
848 : compiler::TNode<Number> tmp9;
849 : ca_.Bind(&block4, &tmp5, &tmp6, &tmp7, &tmp8, &tmp9);
850 : ca_.Goto(&block1);
851 : }
852 :
853 56 : if (block3.is_used()) {
854 : compiler::TNode<Context> tmp10;
855 : compiler::TNode<Object> tmp11;
856 : compiler::TNode<Number> tmp12;
857 : compiler::TNode<Number> tmp13;
858 : compiler::TNode<Number> tmp14;
859 : compiler::TNode<Smi> tmp15;
860 : ca_.Bind(&block3, &tmp10, &tmp11, &tmp12, &tmp13, &tmp14, &tmp15);
861 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 89);
862 : compiler::TNode<Smi> tmp16;
863 : USE(tmp16);
864 56 : compiler::CodeAssemblerLabel label0(&ca_);
865 168 : tmp16 = BaseBuiltinsFromDSLAssembler(state_).Cast5ATSmi(compiler::TNode<Object>{tmp13}, &label0);
866 : ca_.Goto(&block5, tmp10, tmp11, tmp12, tmp13, tmp15, tmp13, tmp16);
867 56 : if (label0.is_used()) {
868 56 : ca_.Bind(&label0);
869 : ca_.Goto(&block6, tmp10, tmp11, tmp12, tmp13, tmp15, tmp13);
870 : }
871 : }
872 :
873 56 : if (block6.is_used()) {
874 : compiler::TNode<Context> tmp17;
875 : compiler::TNode<Object> tmp18;
876 : compiler::TNode<Number> tmp19;
877 : compiler::TNode<Number> tmp20;
878 : compiler::TNode<Smi> tmp21;
879 : compiler::TNode<Number> tmp22;
880 : ca_.Bind(&block6, &tmp17, &tmp18, &tmp19, &tmp20, &tmp21, &tmp22);
881 : ca_.Goto(&block1);
882 : }
883 :
884 56 : if (block5.is_used()) {
885 : compiler::TNode<Context> tmp23;
886 : compiler::TNode<Object> tmp24;
887 : compiler::TNode<Number> tmp25;
888 : compiler::TNode<Number> tmp26;
889 : compiler::TNode<Smi> tmp27;
890 : compiler::TNode<Number> tmp28;
891 : compiler::TNode<Smi> tmp29;
892 : ca_.Bind(&block5, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27, &tmp28, &tmp29);
893 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 92);
894 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 93);
895 : compiler::TNode<JSArray> tmp30;
896 : USE(tmp30);
897 56 : compiler::CodeAssemblerLabel label0(&ca_);
898 168 : tmp30 = BaseBuiltinsFromDSLAssembler(state_).Cast20ATFastJSArrayForCopy(compiler::TNode<Context>{tmp23}, compiler::TNode<Object>{tmp24}, &label0);
899 : ca_.Goto(&block9, tmp23, tmp24, tmp25, tmp26, tmp27, tmp29, tmp24, tmp24, tmp30);
900 56 : if (label0.is_used()) {
901 56 : ca_.Bind(&label0);
902 : ca_.Goto(&block10, tmp23, tmp24, tmp25, tmp26, tmp27, tmp29, tmp24, tmp24);
903 : }
904 : }
905 :
906 56 : if (block10.is_used()) {
907 : compiler::TNode<Context> tmp31;
908 : compiler::TNode<Object> tmp32;
909 : compiler::TNode<Number> tmp33;
910 : compiler::TNode<Number> tmp34;
911 : compiler::TNode<Smi> tmp35;
912 : compiler::TNode<Smi> tmp36;
913 : compiler::TNode<Object> tmp37;
914 : compiler::TNode<Object> tmp38;
915 : ca_.Bind(&block10, &tmp31, &tmp32, &tmp33, &tmp34, &tmp35, &tmp36, &tmp37, &tmp38);
916 : ca_.Goto(&block8, tmp31, tmp32, tmp33, tmp34, tmp35, tmp36, tmp37);
917 : }
918 :
919 56 : if (block9.is_used()) {
920 : compiler::TNode<Context> tmp39;
921 : compiler::TNode<Object> tmp40;
922 : compiler::TNode<Number> tmp41;
923 : compiler::TNode<Number> tmp42;
924 : compiler::TNode<Smi> tmp43;
925 : compiler::TNode<Smi> tmp44;
926 : compiler::TNode<Object> tmp45;
927 : compiler::TNode<Object> tmp46;
928 : compiler::TNode<JSArray> tmp47;
929 : ca_.Bind(&block9, &tmp39, &tmp40, &tmp41, &tmp42, &tmp43, &tmp44, &tmp45, &tmp46, &tmp47);
930 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 100);
931 : compiler::TNode<Smi> tmp48;
932 : USE(tmp48);
933 112 : tmp48 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiAdd(compiler::TNode<Smi>{tmp43}, compiler::TNode<Smi>{tmp44}));
934 : compiler::TNode<Smi> tmp49;
935 : USE(tmp49);
936 168 : tmp49 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).LoadFastJSArrayLength(compiler::TNode<JSArray>{tmp47}));
937 : compiler::TNode<BoolT> tmp50;
938 : USE(tmp50);
939 112 : tmp50 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiAbove(compiler::TNode<Smi>{tmp48}, compiler::TNode<Smi>{tmp49}));
940 56 : ca_.Branch(tmp50, &block11, &block12, tmp39, tmp40, tmp41, tmp42, tmp43, tmp44, tmp45, tmp47);
941 : }
942 :
943 56 : if (block11.is_used()) {
944 : compiler::TNode<Context> tmp51;
945 : compiler::TNode<Object> tmp52;
946 : compiler::TNode<Number> tmp53;
947 : compiler::TNode<Number> tmp54;
948 : compiler::TNode<Smi> tmp55;
949 : compiler::TNode<Smi> tmp56;
950 : compiler::TNode<Object> tmp57;
951 : compiler::TNode<JSArray> tmp58;
952 : ca_.Bind(&block11, &tmp51, &tmp52, &tmp53, &tmp54, &tmp55, &tmp56, &tmp57, &tmp58);
953 : ca_.Goto(&block1);
954 : }
955 :
956 56 : if (block12.is_used()) {
957 : compiler::TNode<Context> tmp59;
958 : compiler::TNode<Object> tmp60;
959 : compiler::TNode<Number> tmp61;
960 : compiler::TNode<Number> tmp62;
961 : compiler::TNode<Smi> tmp63;
962 : compiler::TNode<Smi> tmp64;
963 : compiler::TNode<Object> tmp65;
964 : compiler::TNode<JSArray> tmp66;
965 : ca_.Bind(&block12, &tmp59, &tmp60, &tmp61, &tmp62, &tmp63, &tmp64, &tmp65, &tmp66);
966 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 101);
967 : compiler::TNode<JSArray> tmp67;
968 112 : tmp67 = TORQUE_CAST(CodeStubAssembler(state_).CallBuiltin(Builtins::kExtractFastJSArray, tmp59, tmp66, tmp63, tmp64));
969 : USE(tmp67);
970 : ca_.Goto(&block2, tmp59, tmp60, tmp61, tmp62, tmp67);
971 : }
972 :
973 56 : if (block8.is_used()) {
974 : compiler::TNode<Context> tmp68;
975 : compiler::TNode<Object> tmp69;
976 : compiler::TNode<Number> tmp70;
977 : compiler::TNode<Number> tmp71;
978 : compiler::TNode<Smi> tmp72;
979 : compiler::TNode<Smi> tmp73;
980 : compiler::TNode<Object> tmp74;
981 : ca_.Bind(&block8, &tmp68, &tmp69, &tmp70, &tmp71, &tmp72, &tmp73, &tmp74);
982 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 103);
983 : compiler::TNode<JSArgumentsObjectWithLength> tmp75;
984 : USE(tmp75);
985 56 : compiler::CodeAssemblerLabel label0(&ca_);
986 168 : tmp75 = BaseBuiltinsFromDSLAssembler(state_).Cast27JSArgumentsObjectWithLength(compiler::TNode<Context>{tmp68}, compiler::TNode<Object>{ca_.UncheckedCast<Object>(tmp74)}, &label0);
987 : ca_.Goto(&block15, tmp68, tmp69, tmp70, tmp71, tmp72, tmp73, tmp74, ca_.UncheckedCast<Object>(tmp74), tmp75);
988 56 : if (label0.is_used()) {
989 56 : ca_.Bind(&label0);
990 : ca_.Goto(&block16, tmp68, tmp69, tmp70, tmp71, tmp72, tmp73, tmp74, ca_.UncheckedCast<Object>(tmp74));
991 : }
992 : }
993 :
994 56 : if (block16.is_used()) {
995 : compiler::TNode<Context> tmp76;
996 : compiler::TNode<Object> tmp77;
997 : compiler::TNode<Number> tmp78;
998 : compiler::TNode<Number> tmp79;
999 : compiler::TNode<Smi> tmp80;
1000 : compiler::TNode<Smi> tmp81;
1001 : compiler::TNode<Object> tmp82;
1002 : compiler::TNode<Object> tmp83;
1003 : ca_.Bind(&block16, &tmp76, &tmp77, &tmp78, &tmp79, &tmp80, &tmp81, &tmp82, &tmp83);
1004 : ca_.Goto(&block14, tmp76, tmp77, tmp78, tmp79, tmp80, tmp81, tmp82);
1005 : }
1006 :
1007 56 : if (block15.is_used()) {
1008 : compiler::TNode<Context> tmp84;
1009 : compiler::TNode<Object> tmp85;
1010 : compiler::TNode<Number> tmp86;
1011 : compiler::TNode<Number> tmp87;
1012 : compiler::TNode<Smi> tmp88;
1013 : compiler::TNode<Smi> tmp89;
1014 : compiler::TNode<Object> tmp90;
1015 : compiler::TNode<Object> tmp91;
1016 : compiler::TNode<JSArgumentsObjectWithLength> tmp92;
1017 : ca_.Bind(&block15, &tmp84, &tmp85, &tmp86, &tmp87, &tmp88, &tmp89, &tmp90, &tmp91, &tmp92);
1018 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 104);
1019 : compiler::TNode<Context> tmp93;
1020 : USE(tmp93);
1021 168 : tmp93 = ca_.UncheckedCast<Context>(CodeStubAssembler(state_).LoadNativeContext(compiler::TNode<Context>{tmp84}));
1022 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 105);
1023 56 : compiler::TNode<IntPtrT> tmp94 = ca_.IntPtrConstant(HeapObject::kMapOffset);
1024 : USE(tmp94);
1025 168 : compiler::TNode<Map>tmp95 = CodeStubAssembler(state_).LoadReference<Map>(CodeStubAssembler::Reference{tmp92, tmp94});
1026 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 106);
1027 : compiler::TNode<BoolT> tmp96;
1028 : USE(tmp96);
1029 112 : tmp96 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).IsFastAliasedArgumentsMap(compiler::TNode<Context>{tmp84}, compiler::TNode<Map>{tmp95}));
1030 56 : ca_.Branch(tmp96, &block17, &block18, tmp84, tmp85, tmp86, tmp87, tmp88, tmp89, tmp90, tmp92, tmp93, tmp95);
1031 : }
1032 :
1033 56 : if (block17.is_used()) {
1034 : compiler::TNode<Context> tmp97;
1035 : compiler::TNode<Object> tmp98;
1036 : compiler::TNode<Number> tmp99;
1037 : compiler::TNode<Number> tmp100;
1038 : compiler::TNode<Smi> tmp101;
1039 : compiler::TNode<Smi> tmp102;
1040 : compiler::TNode<Object> tmp103;
1041 : compiler::TNode<JSArgumentsObjectWithLength> tmp104;
1042 : compiler::TNode<Context> tmp105;
1043 : compiler::TNode<Map> tmp106;
1044 : ca_.Bind(&block17, &tmp97, &tmp98, &tmp99, &tmp100, &tmp101, &tmp102, &tmp103, &tmp104, &tmp105, &tmp106);
1045 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 107);
1046 : compiler::TNode<JSArray> tmp107;
1047 : USE(tmp107);
1048 56 : compiler::CodeAssemblerLabel label0(&ca_);
1049 168 : tmp107 = ArraySliceBuiltinsFromDSLAssembler(state_).HandleFastAliasedSloppyArgumentsSlice(compiler::TNode<Context>{tmp97}, compiler::TNode<JSArgumentsObjectWithLength>{tmp104}, compiler::TNode<Smi>{tmp101}, compiler::TNode<Smi>{tmp102}, &label0);
1050 : ca_.Goto(&block20, tmp97, tmp98, tmp99, tmp100, tmp101, tmp102, tmp103, tmp104, tmp105, tmp106, tmp97, tmp104, tmp101, tmp102, tmp107);
1051 56 : if (label0.is_used()) {
1052 56 : ca_.Bind(&label0);
1053 : ca_.Goto(&block21, tmp97, tmp98, tmp99, tmp100, tmp101, tmp102, tmp103, tmp104, tmp105, tmp106, tmp97, tmp104, tmp101, tmp102);
1054 : }
1055 : }
1056 :
1057 56 : if (block21.is_used()) {
1058 : compiler::TNode<Context> tmp108;
1059 : compiler::TNode<Object> tmp109;
1060 : compiler::TNode<Number> tmp110;
1061 : compiler::TNode<Number> tmp111;
1062 : compiler::TNode<Smi> tmp112;
1063 : compiler::TNode<Smi> tmp113;
1064 : compiler::TNode<Object> tmp114;
1065 : compiler::TNode<JSArgumentsObjectWithLength> tmp115;
1066 : compiler::TNode<Context> tmp116;
1067 : compiler::TNode<Map> tmp117;
1068 : compiler::TNode<Context> tmp118;
1069 : compiler::TNode<JSArgumentsObjectWithLength> tmp119;
1070 : compiler::TNode<Smi> tmp120;
1071 : compiler::TNode<Smi> tmp121;
1072 : ca_.Bind(&block21, &tmp108, &tmp109, &tmp110, &tmp111, &tmp112, &tmp113, &tmp114, &tmp115, &tmp116, &tmp117, &tmp118, &tmp119, &tmp120, &tmp121);
1073 : ca_.Goto(&block1);
1074 : }
1075 :
1076 56 : if (block20.is_used()) {
1077 : compiler::TNode<Context> tmp122;
1078 : compiler::TNode<Object> tmp123;
1079 : compiler::TNode<Number> tmp124;
1080 : compiler::TNode<Number> tmp125;
1081 : compiler::TNode<Smi> tmp126;
1082 : compiler::TNode<Smi> tmp127;
1083 : compiler::TNode<Object> tmp128;
1084 : compiler::TNode<JSArgumentsObjectWithLength> tmp129;
1085 : compiler::TNode<Context> tmp130;
1086 : compiler::TNode<Map> tmp131;
1087 : compiler::TNode<Context> tmp132;
1088 : compiler::TNode<JSArgumentsObjectWithLength> tmp133;
1089 : compiler::TNode<Smi> tmp134;
1090 : compiler::TNode<Smi> tmp135;
1091 : compiler::TNode<JSArray> tmp136;
1092 : ca_.Bind(&block20, &tmp122, &tmp123, &tmp124, &tmp125, &tmp126, &tmp127, &tmp128, &tmp129, &tmp130, &tmp131, &tmp132, &tmp133, &tmp134, &tmp135, &tmp136);
1093 : ca_.Goto(&block2, tmp122, tmp123, tmp124, tmp125, tmp136);
1094 : }
1095 :
1096 56 : if (block18.is_used()) {
1097 : compiler::TNode<Context> tmp137;
1098 : compiler::TNode<Object> tmp138;
1099 : compiler::TNode<Number> tmp139;
1100 : compiler::TNode<Number> tmp140;
1101 : compiler::TNode<Smi> tmp141;
1102 : compiler::TNode<Smi> tmp142;
1103 : compiler::TNode<Object> tmp143;
1104 : compiler::TNode<JSArgumentsObjectWithLength> tmp144;
1105 : compiler::TNode<Context> tmp145;
1106 : compiler::TNode<Map> tmp146;
1107 : ca_.Bind(&block18, &tmp137, &tmp138, &tmp139, &tmp140, &tmp141, &tmp142, &tmp143, &tmp144, &tmp145, &tmp146);
1108 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 109);
1109 : compiler::TNode<BoolT> tmp147;
1110 : USE(tmp147);
1111 112 : tmp147 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).IsStrictArgumentsMap(compiler::TNode<Context>{tmp137}, compiler::TNode<Map>{tmp146}));
1112 56 : ca_.Branch(tmp147, &block22, &block24, tmp137, tmp138, tmp139, tmp140, tmp141, tmp142, tmp143, tmp144, tmp145, tmp146);
1113 : }
1114 :
1115 56 : if (block24.is_used()) {
1116 : compiler::TNode<Context> tmp148;
1117 : compiler::TNode<Object> tmp149;
1118 : compiler::TNode<Number> tmp150;
1119 : compiler::TNode<Number> tmp151;
1120 : compiler::TNode<Smi> tmp152;
1121 : compiler::TNode<Smi> tmp153;
1122 : compiler::TNode<Object> tmp154;
1123 : compiler::TNode<JSArgumentsObjectWithLength> tmp155;
1124 : compiler::TNode<Context> tmp156;
1125 : compiler::TNode<Map> tmp157;
1126 : ca_.Bind(&block24, &tmp148, &tmp149, &tmp150, &tmp151, &tmp152, &tmp153, &tmp154, &tmp155, &tmp156, &tmp157);
1127 : compiler::TNode<BoolT> tmp158;
1128 : USE(tmp158);
1129 112 : tmp158 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).IsSloppyArgumentsMap(compiler::TNode<Context>{tmp148}, compiler::TNode<Map>{tmp157}));
1130 56 : ca_.Branch(tmp158, &block22, &block23, tmp148, tmp149, tmp150, tmp151, tmp152, tmp153, tmp154, tmp155, tmp156, tmp157);
1131 : }
1132 :
1133 56 : if (block22.is_used()) {
1134 : compiler::TNode<Context> tmp159;
1135 : compiler::TNode<Object> tmp160;
1136 : compiler::TNode<Number> tmp161;
1137 : compiler::TNode<Number> tmp162;
1138 : compiler::TNode<Smi> tmp163;
1139 : compiler::TNode<Smi> tmp164;
1140 : compiler::TNode<Object> tmp165;
1141 : compiler::TNode<JSArgumentsObjectWithLength> tmp166;
1142 : compiler::TNode<Context> tmp167;
1143 : compiler::TNode<Map> tmp168;
1144 : ca_.Bind(&block22, &tmp159, &tmp160, &tmp161, &tmp162, &tmp163, &tmp164, &tmp165, &tmp166, &tmp167, &tmp168);
1145 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 110);
1146 : compiler::TNode<JSArray> tmp169;
1147 : USE(tmp169);
1148 56 : compiler::CodeAssemblerLabel label0(&ca_);
1149 168 : tmp169 = ArraySliceBuiltinsFromDSLAssembler(state_).HandleSimpleArgumentsSlice(compiler::TNode<Context>{tmp159}, compiler::TNode<JSArgumentsObjectWithLength>{tmp166}, compiler::TNode<Smi>{tmp163}, compiler::TNode<Smi>{tmp164}, &label0);
1150 : ca_.Goto(&block25, tmp159, tmp160, tmp161, tmp162, tmp163, tmp164, tmp165, tmp166, tmp167, tmp168, tmp159, tmp166, tmp163, tmp164, tmp169);
1151 56 : if (label0.is_used()) {
1152 56 : ca_.Bind(&label0);
1153 : ca_.Goto(&block26, tmp159, tmp160, tmp161, tmp162, tmp163, tmp164, tmp165, tmp166, tmp167, tmp168, tmp159, tmp166, tmp163, tmp164);
1154 : }
1155 : }
1156 :
1157 56 : if (block26.is_used()) {
1158 : compiler::TNode<Context> tmp170;
1159 : compiler::TNode<Object> tmp171;
1160 : compiler::TNode<Number> tmp172;
1161 : compiler::TNode<Number> tmp173;
1162 : compiler::TNode<Smi> tmp174;
1163 : compiler::TNode<Smi> tmp175;
1164 : compiler::TNode<Object> tmp176;
1165 : compiler::TNode<JSArgumentsObjectWithLength> tmp177;
1166 : compiler::TNode<Context> tmp178;
1167 : compiler::TNode<Map> tmp179;
1168 : compiler::TNode<Context> tmp180;
1169 : compiler::TNode<JSArgumentsObjectWithLength> tmp181;
1170 : compiler::TNode<Smi> tmp182;
1171 : compiler::TNode<Smi> tmp183;
1172 : ca_.Bind(&block26, &tmp170, &tmp171, &tmp172, &tmp173, &tmp174, &tmp175, &tmp176, &tmp177, &tmp178, &tmp179, &tmp180, &tmp181, &tmp182, &tmp183);
1173 : ca_.Goto(&block1);
1174 : }
1175 :
1176 56 : if (block25.is_used()) {
1177 : compiler::TNode<Context> tmp184;
1178 : compiler::TNode<Object> tmp185;
1179 : compiler::TNode<Number> tmp186;
1180 : compiler::TNode<Number> tmp187;
1181 : compiler::TNode<Smi> tmp188;
1182 : compiler::TNode<Smi> tmp189;
1183 : compiler::TNode<Object> tmp190;
1184 : compiler::TNode<JSArgumentsObjectWithLength> tmp191;
1185 : compiler::TNode<Context> tmp192;
1186 : compiler::TNode<Map> tmp193;
1187 : compiler::TNode<Context> tmp194;
1188 : compiler::TNode<JSArgumentsObjectWithLength> tmp195;
1189 : compiler::TNode<Smi> tmp196;
1190 : compiler::TNode<Smi> tmp197;
1191 : compiler::TNode<JSArray> tmp198;
1192 : ca_.Bind(&block25, &tmp184, &tmp185, &tmp186, &tmp187, &tmp188, &tmp189, &tmp190, &tmp191, &tmp192, &tmp193, &tmp194, &tmp195, &tmp196, &tmp197, &tmp198);
1193 : ca_.Goto(&block2, tmp184, tmp185, tmp186, tmp187, tmp198);
1194 : }
1195 :
1196 56 : if (block23.is_used()) {
1197 : compiler::TNode<Context> tmp199;
1198 : compiler::TNode<Object> tmp200;
1199 : compiler::TNode<Number> tmp201;
1200 : compiler::TNode<Number> tmp202;
1201 : compiler::TNode<Smi> tmp203;
1202 : compiler::TNode<Smi> tmp204;
1203 : compiler::TNode<Object> tmp205;
1204 : compiler::TNode<JSArgumentsObjectWithLength> tmp206;
1205 : compiler::TNode<Context> tmp207;
1206 : compiler::TNode<Map> tmp208;
1207 : ca_.Bind(&block23, &tmp199, &tmp200, &tmp201, &tmp202, &tmp203, &tmp204, &tmp205, &tmp206, &tmp207, &tmp208);
1208 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 106);
1209 : ca_.Goto(&block19, tmp199, tmp200, tmp201, tmp202, tmp203, tmp204, tmp205, tmp206, tmp207, tmp208);
1210 : }
1211 :
1212 56 : if (block19.is_used()) {
1213 : compiler::TNode<Context> tmp209;
1214 : compiler::TNode<Object> tmp210;
1215 : compiler::TNode<Number> tmp211;
1216 : compiler::TNode<Number> tmp212;
1217 : compiler::TNode<Smi> tmp213;
1218 : compiler::TNode<Smi> tmp214;
1219 : compiler::TNode<Object> tmp215;
1220 : compiler::TNode<JSArgumentsObjectWithLength> tmp216;
1221 : compiler::TNode<Context> tmp217;
1222 : compiler::TNode<Map> tmp218;
1223 : ca_.Bind(&block19, &tmp209, &tmp210, &tmp211, &tmp212, &tmp213, &tmp214, &tmp215, &tmp216, &tmp217, &tmp218);
1224 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 103);
1225 : ca_.Goto(&block13, tmp209, tmp210, tmp211, tmp212, tmp213, tmp214, tmp215);
1226 : }
1227 :
1228 56 : if (block14.is_used()) {
1229 : compiler::TNode<Context> tmp219;
1230 : compiler::TNode<Object> tmp220;
1231 : compiler::TNode<Number> tmp221;
1232 : compiler::TNode<Number> tmp222;
1233 : compiler::TNode<Smi> tmp223;
1234 : compiler::TNode<Smi> tmp224;
1235 : compiler::TNode<Object> tmp225;
1236 : ca_.Bind(&block14, &tmp219, &tmp220, &tmp221, &tmp222, &tmp223, &tmp224, &tmp225);
1237 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 114);
1238 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 103);
1239 : ca_.Goto(&block13, tmp219, tmp220, tmp221, tmp222, tmp223, tmp224, tmp225);
1240 : }
1241 :
1242 56 : if (block13.is_used()) {
1243 : compiler::TNode<Context> tmp226;
1244 : compiler::TNode<Object> tmp227;
1245 : compiler::TNode<Number> tmp228;
1246 : compiler::TNode<Number> tmp229;
1247 : compiler::TNode<Smi> tmp230;
1248 : compiler::TNode<Smi> tmp231;
1249 : compiler::TNode<Object> tmp232;
1250 : ca_.Bind(&block13, &tmp226, &tmp227, &tmp228, &tmp229, &tmp230, &tmp231, &tmp232);
1251 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 93);
1252 : ca_.Goto(&block7, tmp226, tmp227, tmp228, tmp229, tmp230, tmp231, tmp232);
1253 : }
1254 :
1255 56 : if (block7.is_used()) {
1256 : compiler::TNode<Context> tmp233;
1257 : compiler::TNode<Object> tmp234;
1258 : compiler::TNode<Number> tmp235;
1259 : compiler::TNode<Number> tmp236;
1260 : compiler::TNode<Smi> tmp237;
1261 : compiler::TNode<Smi> tmp238;
1262 : compiler::TNode<Object> tmp239;
1263 : ca_.Bind(&block7, &tmp233, &tmp234, &tmp235, &tmp236, &tmp237, &tmp238, &tmp239);
1264 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 92);
1265 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 117);
1266 : ca_.Goto(&block1);
1267 : }
1268 :
1269 56 : if (block2.is_used()) {
1270 : compiler::TNode<Context> tmp240;
1271 : compiler::TNode<Object> tmp241;
1272 : compiler::TNode<Number> tmp242;
1273 : compiler::TNode<Number> tmp243;
1274 : compiler::TNode<JSArray> tmp244;
1275 : ca_.Bind(&block2, &tmp240, &tmp241, &tmp242, &tmp243, &tmp244);
1276 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 84);
1277 : ca_.Goto(&block27, tmp240, tmp241, tmp242, tmp243, tmp244);
1278 : }
1279 :
1280 56 : if (block1.is_used()) {
1281 : ca_.Bind(&block1);
1282 56 : ca_.Goto(label_Bailout);
1283 : }
1284 :
1285 : compiler::TNode<Context> tmp245;
1286 : compiler::TNode<Object> tmp246;
1287 : compiler::TNode<Number> tmp247;
1288 : compiler::TNode<Number> tmp248;
1289 : compiler::TNode<JSArray> tmp249;
1290 : ca_.Bind(&block27, &tmp245, &tmp246, &tmp247, &tmp248, &tmp249);
1291 112 : return compiler::TNode<JSArray>{tmp249};
1292 : }
1293 :
1294 224 : TF_BUILTIN(ArrayPrototypeSlice, CodeStubAssembler) {
1295 56 : compiler::CodeAssemblerState* state_ = state(); compiler::CodeAssembler ca_(state());
1296 : TNode<Context> parameter0 = UncheckedCast<Context>(Parameter(Descriptor::kContext));
1297 : USE(parameter0);
1298 : Node* argc = Parameter(Descriptor::kJSActualArgumentsCount);
1299 56 : TNode<IntPtrT> arguments_length(ChangeInt32ToIntPtr(argc));
1300 56 : TNode<RawPtrT> arguments_frame = UncheckedCast<RawPtrT>(LoadFramePointer());
1301 56 : BaseBuiltinsFromDSLAssembler::Arguments torque_arguments(GetFrameArguments(arguments_frame, arguments_length));
1302 : CodeStubArguments arguments(this, torque_arguments);
1303 56 : TNode<Object> parameter1 = arguments.GetReceiver();
1304 : USE(parameter1);
1305 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1306 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1307 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1308 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, JSArray> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1309 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1310 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1311 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1312 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1313 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1314 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1315 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1316 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1317 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1318 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1319 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object> block14(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1320 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object, Number> block16(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1321 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object, Number> block15(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1322 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object, Number, Number> block21(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1323 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object, Number, Number> block22(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1324 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object, Number> block17(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1325 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object, Number> block18(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1326 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object, Number, Number> block20(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1327 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object, Number, Number> block19(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1328 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number, Context, JSReceiver, Number, Number> block26(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1329 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number, Context, JSReceiver, Number, Number, JSArray> block25(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1330 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number> block24(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1331 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number> block23(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1332 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number, JSReceiver, Number> block29(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1333 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number, JSReceiver, Number, Number, Number> block30(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1334 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number, JSReceiver, Number, Number, Number> block31(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1335 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number, JSReceiver, Number> block27(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1336 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number, JSReceiver, Number, Number, Oddball> block32(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1337 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number, JSReceiver, Number, Number, Oddball> block33(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1338 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Object, Number, Number, Object, Number, Number, Number, JSReceiver, Number> block28(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1339 : ca_.Goto(&block0, parameter0, parameter1, torque_arguments.frame, torque_arguments.base, torque_arguments.length);
1340 :
1341 56 : if (block0.is_used()) {
1342 : compiler::TNode<Context> tmp0;
1343 : compiler::TNode<Object> tmp1;
1344 : compiler::TNode<RawPtrT> tmp2;
1345 : compiler::TNode<RawPtrT> tmp3;
1346 : compiler::TNode<IntPtrT> tmp4;
1347 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3, &tmp4);
1348 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 125);
1349 : compiler::TNode<IntPtrT> tmp5;
1350 : USE(tmp5);
1351 112 : tmp5 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(0));
1352 : compiler::TNode<BoolT> tmp6;
1353 : USE(tmp6);
1354 168 : tmp6 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<IntPtrT>{tmp4}, compiler::TNode<IntPtrT>{tmp5}));
1355 56 : ca_.Branch(tmp6, &block1, &block2, tmp0, tmp1, tmp2, tmp3, tmp4);
1356 : }
1357 :
1358 56 : if (block1.is_used()) {
1359 : compiler::TNode<Context> tmp7;
1360 : compiler::TNode<Object> tmp8;
1361 : compiler::TNode<RawPtrT> tmp9;
1362 : compiler::TNode<RawPtrT> tmp10;
1363 : compiler::TNode<IntPtrT> tmp11;
1364 : ca_.Bind(&block1, &tmp7, &tmp8, &tmp9, &tmp10, &tmp11);
1365 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 126);
1366 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 127);
1367 : compiler::TNode<JSArray> tmp12;
1368 : USE(tmp12);
1369 56 : compiler::CodeAssemblerLabel label0(&ca_);
1370 112 : tmp12 = BaseBuiltinsFromDSLAssembler(state_).Cast20ATFastJSArrayForCopy(compiler::TNode<Context>{tmp7}, compiler::TNode<Object>{tmp8}, &label0);
1371 : ca_.Goto(&block5, tmp7, tmp8, tmp9, tmp10, tmp11, tmp8, tmp8, tmp12);
1372 56 : if (label0.is_used()) {
1373 56 : ca_.Bind(&label0);
1374 : ca_.Goto(&block6, tmp7, tmp8, tmp9, tmp10, tmp11, tmp8, tmp8);
1375 : }
1376 : }
1377 :
1378 56 : if (block6.is_used()) {
1379 : compiler::TNode<Context> tmp13;
1380 : compiler::TNode<Object> tmp14;
1381 : compiler::TNode<RawPtrT> tmp15;
1382 : compiler::TNode<RawPtrT> tmp16;
1383 : compiler::TNode<IntPtrT> tmp17;
1384 : compiler::TNode<Object> tmp18;
1385 : compiler::TNode<Object> tmp19;
1386 : ca_.Bind(&block6, &tmp13, &tmp14, &tmp15, &tmp16, &tmp17, &tmp18, &tmp19);
1387 : ca_.Goto(&block4, tmp13, tmp14, tmp15, tmp16, tmp17, tmp18);
1388 : }
1389 :
1390 56 : if (block5.is_used()) {
1391 : compiler::TNode<Context> tmp20;
1392 : compiler::TNode<Object> tmp21;
1393 : compiler::TNode<RawPtrT> tmp22;
1394 : compiler::TNode<RawPtrT> tmp23;
1395 : compiler::TNode<IntPtrT> tmp24;
1396 : compiler::TNode<Object> tmp25;
1397 : compiler::TNode<Object> tmp26;
1398 : compiler::TNode<JSArray> tmp27;
1399 : ca_.Bind(&block5, &tmp20, &tmp21, &tmp22, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27);
1400 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 128);
1401 : compiler::TNode<JSArray> tmp28;
1402 112 : tmp28 = TORQUE_CAST(CodeStubAssembler(state_).CallBuiltin(Builtins::kCloneFastJSArray, tmp20, tmp27));
1403 : USE(tmp28);
1404 56 : arguments.PopAndReturn(tmp28);
1405 : }
1406 :
1407 56 : if (block4.is_used()) {
1408 : compiler::TNode<Context> tmp29;
1409 : compiler::TNode<Object> tmp30;
1410 : compiler::TNode<RawPtrT> tmp31;
1411 : compiler::TNode<RawPtrT> tmp32;
1412 : compiler::TNode<IntPtrT> tmp33;
1413 : compiler::TNode<Object> tmp34;
1414 : ca_.Bind(&block4, &tmp29, &tmp30, &tmp31, &tmp32, &tmp33, &tmp34);
1415 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 130);
1416 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 127);
1417 : ca_.Goto(&block3, tmp29, tmp30, tmp31, tmp32, tmp33, tmp34);
1418 : }
1419 :
1420 56 : if (block3.is_used()) {
1421 : compiler::TNode<Context> tmp35;
1422 : compiler::TNode<Object> tmp36;
1423 : compiler::TNode<RawPtrT> tmp37;
1424 : compiler::TNode<RawPtrT> tmp38;
1425 : compiler::TNode<IntPtrT> tmp39;
1426 : compiler::TNode<Object> tmp40;
1427 : ca_.Bind(&block3, &tmp35, &tmp36, &tmp37, &tmp38, &tmp39, &tmp40);
1428 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 126);
1429 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 125);
1430 : ca_.Goto(&block2, tmp35, tmp36, tmp37, tmp38, tmp39);
1431 : }
1432 :
1433 56 : if (block2.is_used()) {
1434 : compiler::TNode<Context> tmp41;
1435 : compiler::TNode<Object> tmp42;
1436 : compiler::TNode<RawPtrT> tmp43;
1437 : compiler::TNode<RawPtrT> tmp44;
1438 : compiler::TNode<IntPtrT> tmp45;
1439 : ca_.Bind(&block2, &tmp41, &tmp42, &tmp43, &tmp44, &tmp45);
1440 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 136);
1441 : compiler::TNode<JSReceiver> tmp46;
1442 : USE(tmp46);
1443 112 : tmp46 = ca_.UncheckedCast<JSReceiver>(CodeStubAssembler(state_).ToObject_Inline(compiler::TNode<Context>{tmp41}, compiler::TNode<Object>{tmp42}));
1444 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 139);
1445 : compiler::TNode<Number> tmp47;
1446 : USE(tmp47);
1447 112 : tmp47 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).GetLengthProperty(compiler::TNode<Context>{tmp41}, compiler::TNode<Object>{tmp46}));
1448 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 142);
1449 : compiler::TNode<IntPtrT> tmp48;
1450 : USE(tmp48);
1451 112 : tmp48 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(0));
1452 : compiler::TNode<Object> tmp49;
1453 : USE(tmp49);
1454 112 : tmp49 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetArgumentValue(BaseBuiltinsFromDSLAssembler::Arguments{compiler::TNode<RawPtrT>{tmp43}, compiler::TNode<RawPtrT>{tmp44}, compiler::TNode<IntPtrT>{tmp45}}, compiler::TNode<IntPtrT>{tmp48}));
1455 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 143);
1456 : compiler::TNode<Number> tmp50;
1457 : USE(tmp50);
1458 168 : tmp50 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).ToInteger_Inline(compiler::TNode<Context>{tmp41}, compiler::TNode<Object>{tmp49}));
1459 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 147);
1460 : compiler::TNode<Number> tmp51;
1461 : USE(tmp51);
1462 112 : tmp51 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(0));
1463 56 : compiler::CodeAssemblerLabel label0(&ca_);
1464 56 : compiler::CodeAssemblerLabel label1(&ca_);
1465 112 : CodeStubAssembler(state_).BranchIfNumberLessThan(compiler::TNode<Number>{tmp50}, compiler::TNode<Number>{tmp51}, &label0, &label1);
1466 56 : if (label0.is_used()) {
1467 56 : ca_.Bind(&label0);
1468 : ca_.Goto(&block11, tmp41, tmp42, tmp43, tmp44, tmp45, tmp46, tmp47, tmp49, tmp50, tmp50);
1469 : }
1470 56 : if (label1.is_used()) {
1471 56 : ca_.Bind(&label1);
1472 : ca_.Goto(&block12, tmp41, tmp42, tmp43, tmp44, tmp45, tmp46, tmp47, tmp49, tmp50, tmp50);
1473 : }
1474 : }
1475 :
1476 56 : if (block11.is_used()) {
1477 : compiler::TNode<Context> tmp52;
1478 : compiler::TNode<Object> tmp53;
1479 : compiler::TNode<RawPtrT> tmp54;
1480 : compiler::TNode<RawPtrT> tmp55;
1481 : compiler::TNode<IntPtrT> tmp56;
1482 : compiler::TNode<JSReceiver> tmp57;
1483 : compiler::TNode<Number> tmp58;
1484 : compiler::TNode<Object> tmp59;
1485 : compiler::TNode<Number> tmp60;
1486 : compiler::TNode<Number> tmp61;
1487 : ca_.Bind(&block11, &tmp52, &tmp53, &tmp54, &tmp55, &tmp56, &tmp57, &tmp58, &tmp59, &tmp60, &tmp61);
1488 : ca_.Goto(&block7, tmp52, tmp53, tmp54, tmp55, tmp56, tmp57, tmp58, tmp59, tmp60);
1489 : }
1490 :
1491 56 : if (block12.is_used()) {
1492 : compiler::TNode<Context> tmp62;
1493 : compiler::TNode<Object> tmp63;
1494 : compiler::TNode<RawPtrT> tmp64;
1495 : compiler::TNode<RawPtrT> tmp65;
1496 : compiler::TNode<IntPtrT> tmp66;
1497 : compiler::TNode<JSReceiver> tmp67;
1498 : compiler::TNode<Number> tmp68;
1499 : compiler::TNode<Object> tmp69;
1500 : compiler::TNode<Number> tmp70;
1501 : compiler::TNode<Number> tmp71;
1502 : ca_.Bind(&block12, &tmp62, &tmp63, &tmp64, &tmp65, &tmp66, &tmp67, &tmp68, &tmp69, &tmp70, &tmp71);
1503 : ca_.Goto(&block8, tmp62, tmp63, tmp64, tmp65, tmp66, tmp67, tmp68, tmp69, tmp70);
1504 : }
1505 :
1506 56 : if (block7.is_used()) {
1507 : compiler::TNode<Context> tmp72;
1508 : compiler::TNode<Object> tmp73;
1509 : compiler::TNode<RawPtrT> tmp74;
1510 : compiler::TNode<RawPtrT> tmp75;
1511 : compiler::TNode<IntPtrT> tmp76;
1512 : compiler::TNode<JSReceiver> tmp77;
1513 : compiler::TNode<Number> tmp78;
1514 : compiler::TNode<Object> tmp79;
1515 : compiler::TNode<Number> tmp80;
1516 : ca_.Bind(&block7, &tmp72, &tmp73, &tmp74, &tmp75, &tmp76, &tmp77, &tmp78, &tmp79, &tmp80);
1517 : compiler::TNode<Number> tmp81;
1518 : USE(tmp81);
1519 224 : tmp81 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberAdd(compiler::TNode<Number>{tmp78}, compiler::TNode<Number>{tmp80}));
1520 : compiler::TNode<Number> tmp82;
1521 : USE(tmp82);
1522 112 : tmp82 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(0));
1523 : compiler::TNode<Number> tmp83;
1524 : USE(tmp83);
1525 112 : tmp83 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).Max(compiler::TNode<Number>{tmp81}, compiler::TNode<Number>{tmp82}));
1526 : ca_.Goto(&block10, tmp72, tmp73, tmp74, tmp75, tmp76, tmp77, tmp78, tmp79, tmp80, tmp83);
1527 : }
1528 :
1529 56 : if (block8.is_used()) {
1530 : compiler::TNode<Context> tmp84;
1531 : compiler::TNode<Object> tmp85;
1532 : compiler::TNode<RawPtrT> tmp86;
1533 : compiler::TNode<RawPtrT> tmp87;
1534 : compiler::TNode<IntPtrT> tmp88;
1535 : compiler::TNode<JSReceiver> tmp89;
1536 : compiler::TNode<Number> tmp90;
1537 : compiler::TNode<Object> tmp91;
1538 : compiler::TNode<Number> tmp92;
1539 : ca_.Bind(&block8, &tmp84, &tmp85, &tmp86, &tmp87, &tmp88, &tmp89, &tmp90, &tmp91, &tmp92);
1540 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 148);
1541 : compiler::TNode<Number> tmp93;
1542 : USE(tmp93);
1543 112 : tmp93 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).Min(compiler::TNode<Number>{tmp92}, compiler::TNode<Number>{tmp90}));
1544 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 147);
1545 : ca_.Goto(&block9, tmp84, tmp85, tmp86, tmp87, tmp88, tmp89, tmp90, tmp91, tmp92, tmp93);
1546 : }
1547 :
1548 56 : if (block10.is_used()) {
1549 : compiler::TNode<Context> tmp94;
1550 : compiler::TNode<Object> tmp95;
1551 : compiler::TNode<RawPtrT> tmp96;
1552 : compiler::TNode<RawPtrT> tmp97;
1553 : compiler::TNode<IntPtrT> tmp98;
1554 : compiler::TNode<JSReceiver> tmp99;
1555 : compiler::TNode<Number> tmp100;
1556 : compiler::TNode<Object> tmp101;
1557 : compiler::TNode<Number> tmp102;
1558 : compiler::TNode<Number> tmp103;
1559 : ca_.Bind(&block10, &tmp94, &tmp95, &tmp96, &tmp97, &tmp98, &tmp99, &tmp100, &tmp101, &tmp102, &tmp103);
1560 : ca_.Goto(&block9, tmp94, tmp95, tmp96, tmp97, tmp98, tmp99, tmp100, tmp101, tmp102, tmp103);
1561 : }
1562 :
1563 56 : if (block9.is_used()) {
1564 : compiler::TNode<Context> tmp104;
1565 : compiler::TNode<Object> tmp105;
1566 : compiler::TNode<RawPtrT> tmp106;
1567 : compiler::TNode<RawPtrT> tmp107;
1568 : compiler::TNode<IntPtrT> tmp108;
1569 : compiler::TNode<JSReceiver> tmp109;
1570 : compiler::TNode<Number> tmp110;
1571 : compiler::TNode<Object> tmp111;
1572 : compiler::TNode<Number> tmp112;
1573 : compiler::TNode<Number> tmp113;
1574 : ca_.Bind(&block9, &tmp104, &tmp105, &tmp106, &tmp107, &tmp108, &tmp109, &tmp110, &tmp111, &tmp112, &tmp113);
1575 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 152);
1576 : compiler::TNode<IntPtrT> tmp114;
1577 : USE(tmp114);
1578 112 : tmp114 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(1));
1579 : compiler::TNode<Object> tmp115;
1580 : USE(tmp115);
1581 112 : tmp115 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetArgumentValue(BaseBuiltinsFromDSLAssembler::Arguments{compiler::TNode<RawPtrT>{tmp106}, compiler::TNode<RawPtrT>{tmp107}, compiler::TNode<IntPtrT>{tmp108}}, compiler::TNode<IntPtrT>{tmp114}));
1582 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 154);
1583 : compiler::TNode<Oddball> tmp116;
1584 : USE(tmp116);
1585 112 : tmp116 = BaseBuiltinsFromDSLAssembler(state_).Undefined();
1586 : compiler::TNode<BoolT> tmp117;
1587 : USE(tmp117);
1588 112 : tmp117 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<Object>{tmp115}, compiler::TNode<HeapObject>{tmp116}));
1589 56 : ca_.Branch(tmp117, &block13, &block14, tmp104, tmp105, tmp106, tmp107, tmp108, tmp109, tmp110, tmp111, tmp112, tmp113, tmp115);
1590 : }
1591 :
1592 56 : if (block13.is_used()) {
1593 : compiler::TNode<Context> tmp118;
1594 : compiler::TNode<Object> tmp119;
1595 : compiler::TNode<RawPtrT> tmp120;
1596 : compiler::TNode<RawPtrT> tmp121;
1597 : compiler::TNode<IntPtrT> tmp122;
1598 : compiler::TNode<JSReceiver> tmp123;
1599 : compiler::TNode<Number> tmp124;
1600 : compiler::TNode<Object> tmp125;
1601 : compiler::TNode<Number> tmp126;
1602 : compiler::TNode<Number> tmp127;
1603 : compiler::TNode<Object> tmp128;
1604 : ca_.Bind(&block13, &tmp118, &tmp119, &tmp120, &tmp121, &tmp122, &tmp123, &tmp124, &tmp125, &tmp126, &tmp127, &tmp128);
1605 : ca_.Goto(&block16, tmp118, tmp119, tmp120, tmp121, tmp122, tmp123, tmp124, tmp125, tmp126, tmp127, tmp128, tmp124);
1606 : }
1607 :
1608 56 : if (block14.is_used()) {
1609 : compiler::TNode<Context> tmp129;
1610 : compiler::TNode<Object> tmp130;
1611 : compiler::TNode<RawPtrT> tmp131;
1612 : compiler::TNode<RawPtrT> tmp132;
1613 : compiler::TNode<IntPtrT> tmp133;
1614 : compiler::TNode<JSReceiver> tmp134;
1615 : compiler::TNode<Number> tmp135;
1616 : compiler::TNode<Object> tmp136;
1617 : compiler::TNode<Number> tmp137;
1618 : compiler::TNode<Number> tmp138;
1619 : compiler::TNode<Object> tmp139;
1620 : ca_.Bind(&block14, &tmp129, &tmp130, &tmp131, &tmp132, &tmp133, &tmp134, &tmp135, &tmp136, &tmp137, &tmp138, &tmp139);
1621 : compiler::TNode<Number> tmp140;
1622 : USE(tmp140);
1623 224 : tmp140 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).ToInteger_Inline(compiler::TNode<Context>{tmp129}, compiler::TNode<Object>{tmp139}));
1624 : ca_.Goto(&block15, tmp129, tmp130, tmp131, tmp132, tmp133, tmp134, tmp135, tmp136, tmp137, tmp138, tmp139, tmp140);
1625 : }
1626 :
1627 56 : if (block16.is_used()) {
1628 : compiler::TNode<Context> tmp141;
1629 : compiler::TNode<Object> tmp142;
1630 : compiler::TNode<RawPtrT> tmp143;
1631 : compiler::TNode<RawPtrT> tmp144;
1632 : compiler::TNode<IntPtrT> tmp145;
1633 : compiler::TNode<JSReceiver> tmp146;
1634 : compiler::TNode<Number> tmp147;
1635 : compiler::TNode<Object> tmp148;
1636 : compiler::TNode<Number> tmp149;
1637 : compiler::TNode<Number> tmp150;
1638 : compiler::TNode<Object> tmp151;
1639 : compiler::TNode<Number> tmp152;
1640 : ca_.Bind(&block16, &tmp141, &tmp142, &tmp143, &tmp144, &tmp145, &tmp146, &tmp147, &tmp148, &tmp149, &tmp150, &tmp151, &tmp152);
1641 : ca_.Goto(&block15, tmp141, tmp142, tmp143, tmp144, tmp145, tmp146, tmp147, tmp148, tmp149, tmp150, tmp151, tmp152);
1642 : }
1643 :
1644 56 : if (block15.is_used()) {
1645 : compiler::TNode<Context> tmp153;
1646 : compiler::TNode<Object> tmp154;
1647 : compiler::TNode<RawPtrT> tmp155;
1648 : compiler::TNode<RawPtrT> tmp156;
1649 : compiler::TNode<IntPtrT> tmp157;
1650 : compiler::TNode<JSReceiver> tmp158;
1651 : compiler::TNode<Number> tmp159;
1652 : compiler::TNode<Object> tmp160;
1653 : compiler::TNode<Number> tmp161;
1654 : compiler::TNode<Number> tmp162;
1655 : compiler::TNode<Object> tmp163;
1656 : compiler::TNode<Number> tmp164;
1657 : ca_.Bind(&block15, &tmp153, &tmp154, &tmp155, &tmp156, &tmp157, &tmp158, &tmp159, &tmp160, &tmp161, &tmp162, &tmp163, &tmp164);
1658 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 153);
1659 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 159);
1660 : compiler::TNode<Number> tmp165;
1661 : USE(tmp165);
1662 112 : tmp165 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(0));
1663 56 : compiler::CodeAssemblerLabel label0(&ca_);
1664 56 : compiler::CodeAssemblerLabel label1(&ca_);
1665 112 : CodeStubAssembler(state_).BranchIfNumberLessThan(compiler::TNode<Number>{tmp164}, compiler::TNode<Number>{tmp165}, &label0, &label1);
1666 56 : if (label0.is_used()) {
1667 56 : ca_.Bind(&label0);
1668 : ca_.Goto(&block21, tmp153, tmp154, tmp155, tmp156, tmp157, tmp158, tmp159, tmp160, tmp161, tmp162, tmp163, tmp164, tmp164);
1669 : }
1670 56 : if (label1.is_used()) {
1671 56 : ca_.Bind(&label1);
1672 : ca_.Goto(&block22, tmp153, tmp154, tmp155, tmp156, tmp157, tmp158, tmp159, tmp160, tmp161, tmp162, tmp163, tmp164, tmp164);
1673 : }
1674 : }
1675 :
1676 56 : if (block21.is_used()) {
1677 : compiler::TNode<Context> tmp166;
1678 : compiler::TNode<Object> tmp167;
1679 : compiler::TNode<RawPtrT> tmp168;
1680 : compiler::TNode<RawPtrT> tmp169;
1681 : compiler::TNode<IntPtrT> tmp170;
1682 : compiler::TNode<JSReceiver> tmp171;
1683 : compiler::TNode<Number> tmp172;
1684 : compiler::TNode<Object> tmp173;
1685 : compiler::TNode<Number> tmp174;
1686 : compiler::TNode<Number> tmp175;
1687 : compiler::TNode<Object> tmp176;
1688 : compiler::TNode<Number> tmp177;
1689 : compiler::TNode<Number> tmp178;
1690 : ca_.Bind(&block21, &tmp166, &tmp167, &tmp168, &tmp169, &tmp170, &tmp171, &tmp172, &tmp173, &tmp174, &tmp175, &tmp176, &tmp177, &tmp178);
1691 : ca_.Goto(&block17, tmp166, tmp167, tmp168, tmp169, tmp170, tmp171, tmp172, tmp173, tmp174, tmp175, tmp176, tmp177);
1692 : }
1693 :
1694 56 : if (block22.is_used()) {
1695 : compiler::TNode<Context> tmp179;
1696 : compiler::TNode<Object> tmp180;
1697 : compiler::TNode<RawPtrT> tmp181;
1698 : compiler::TNode<RawPtrT> tmp182;
1699 : compiler::TNode<IntPtrT> tmp183;
1700 : compiler::TNode<JSReceiver> tmp184;
1701 : compiler::TNode<Number> tmp185;
1702 : compiler::TNode<Object> tmp186;
1703 : compiler::TNode<Number> tmp187;
1704 : compiler::TNode<Number> tmp188;
1705 : compiler::TNode<Object> tmp189;
1706 : compiler::TNode<Number> tmp190;
1707 : compiler::TNode<Number> tmp191;
1708 : ca_.Bind(&block22, &tmp179, &tmp180, &tmp181, &tmp182, &tmp183, &tmp184, &tmp185, &tmp186, &tmp187, &tmp188, &tmp189, &tmp190, &tmp191);
1709 : ca_.Goto(&block18, tmp179, tmp180, tmp181, tmp182, tmp183, tmp184, tmp185, tmp186, tmp187, tmp188, tmp189, tmp190);
1710 : }
1711 :
1712 56 : if (block17.is_used()) {
1713 : compiler::TNode<Context> tmp192;
1714 : compiler::TNode<Object> tmp193;
1715 : compiler::TNode<RawPtrT> tmp194;
1716 : compiler::TNode<RawPtrT> tmp195;
1717 : compiler::TNode<IntPtrT> tmp196;
1718 : compiler::TNode<JSReceiver> tmp197;
1719 : compiler::TNode<Number> tmp198;
1720 : compiler::TNode<Object> tmp199;
1721 : compiler::TNode<Number> tmp200;
1722 : compiler::TNode<Number> tmp201;
1723 : compiler::TNode<Object> tmp202;
1724 : compiler::TNode<Number> tmp203;
1725 : ca_.Bind(&block17, &tmp192, &tmp193, &tmp194, &tmp195, &tmp196, &tmp197, &tmp198, &tmp199, &tmp200, &tmp201, &tmp202, &tmp203);
1726 : compiler::TNode<Number> tmp204;
1727 : USE(tmp204);
1728 224 : tmp204 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberAdd(compiler::TNode<Number>{tmp198}, compiler::TNode<Number>{tmp203}));
1729 : compiler::TNode<Number> tmp205;
1730 : USE(tmp205);
1731 112 : tmp205 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(0));
1732 : compiler::TNode<Number> tmp206;
1733 : USE(tmp206);
1734 112 : tmp206 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).Max(compiler::TNode<Number>{tmp204}, compiler::TNode<Number>{tmp205}));
1735 : ca_.Goto(&block20, tmp192, tmp193, tmp194, tmp195, tmp196, tmp197, tmp198, tmp199, tmp200, tmp201, tmp202, tmp203, tmp206);
1736 : }
1737 :
1738 56 : if (block18.is_used()) {
1739 : compiler::TNode<Context> tmp207;
1740 : compiler::TNode<Object> tmp208;
1741 : compiler::TNode<RawPtrT> tmp209;
1742 : compiler::TNode<RawPtrT> tmp210;
1743 : compiler::TNode<IntPtrT> tmp211;
1744 : compiler::TNode<JSReceiver> tmp212;
1745 : compiler::TNode<Number> tmp213;
1746 : compiler::TNode<Object> tmp214;
1747 : compiler::TNode<Number> tmp215;
1748 : compiler::TNode<Number> tmp216;
1749 : compiler::TNode<Object> tmp217;
1750 : compiler::TNode<Number> tmp218;
1751 : ca_.Bind(&block18, &tmp207, &tmp208, &tmp209, &tmp210, &tmp211, &tmp212, &tmp213, &tmp214, &tmp215, &tmp216, &tmp217, &tmp218);
1752 : compiler::TNode<Number> tmp219;
1753 : USE(tmp219);
1754 112 : tmp219 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).Min(compiler::TNode<Number>{tmp218}, compiler::TNode<Number>{tmp213}));
1755 : ca_.Goto(&block19, tmp207, tmp208, tmp209, tmp210, tmp211, tmp212, tmp213, tmp214, tmp215, tmp216, tmp217, tmp218, tmp219);
1756 : }
1757 :
1758 56 : if (block20.is_used()) {
1759 : compiler::TNode<Context> tmp220;
1760 : compiler::TNode<Object> tmp221;
1761 : compiler::TNode<RawPtrT> tmp222;
1762 : compiler::TNode<RawPtrT> tmp223;
1763 : compiler::TNode<IntPtrT> tmp224;
1764 : compiler::TNode<JSReceiver> tmp225;
1765 : compiler::TNode<Number> tmp226;
1766 : compiler::TNode<Object> tmp227;
1767 : compiler::TNode<Number> tmp228;
1768 : compiler::TNode<Number> tmp229;
1769 : compiler::TNode<Object> tmp230;
1770 : compiler::TNode<Number> tmp231;
1771 : compiler::TNode<Number> tmp232;
1772 : ca_.Bind(&block20, &tmp220, &tmp221, &tmp222, &tmp223, &tmp224, &tmp225, &tmp226, &tmp227, &tmp228, &tmp229, &tmp230, &tmp231, &tmp232);
1773 : ca_.Goto(&block19, tmp220, tmp221, tmp222, tmp223, tmp224, tmp225, tmp226, tmp227, tmp228, tmp229, tmp230, tmp231, tmp232);
1774 : }
1775 :
1776 56 : if (block19.is_used()) {
1777 : compiler::TNode<Context> tmp233;
1778 : compiler::TNode<Object> tmp234;
1779 : compiler::TNode<RawPtrT> tmp235;
1780 : compiler::TNode<RawPtrT> tmp236;
1781 : compiler::TNode<IntPtrT> tmp237;
1782 : compiler::TNode<JSReceiver> tmp238;
1783 : compiler::TNode<Number> tmp239;
1784 : compiler::TNode<Object> tmp240;
1785 : compiler::TNode<Number> tmp241;
1786 : compiler::TNode<Number> tmp242;
1787 : compiler::TNode<Object> tmp243;
1788 : compiler::TNode<Number> tmp244;
1789 : compiler::TNode<Number> tmp245;
1790 : ca_.Bind(&block19, &tmp233, &tmp234, &tmp235, &tmp236, &tmp237, &tmp238, &tmp239, &tmp240, &tmp241, &tmp242, &tmp243, &tmp244, &tmp245);
1791 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 158);
1792 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 162);
1793 : compiler::TNode<Number> tmp246;
1794 : USE(tmp246);
1795 224 : tmp246 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberSub(compiler::TNode<Number>{tmp245}, compiler::TNode<Number>{tmp242}));
1796 : compiler::TNode<Number> tmp247;
1797 : USE(tmp247);
1798 112 : tmp247 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(0));
1799 : compiler::TNode<Number> tmp248;
1800 : USE(tmp248);
1801 112 : tmp248 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).Max(compiler::TNode<Number>{tmp246}, compiler::TNode<Number>{tmp247}));
1802 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 172);
1803 : compiler::TNode<JSArray> tmp249;
1804 : USE(tmp249);
1805 56 : compiler::CodeAssemblerLabel label0(&ca_);
1806 112 : tmp249 = ArraySliceBuiltinsFromDSLAssembler(state_).HandleFastSlice(compiler::TNode<Context>{tmp233}, compiler::TNode<Object>{tmp238}, compiler::TNode<Number>{tmp242}, compiler::TNode<Number>{tmp248}, &label0);
1807 : ca_.Goto(&block25, tmp233, tmp234, tmp235, tmp236, tmp237, tmp238, tmp239, tmp240, tmp241, tmp242, tmp243, tmp244, tmp245, tmp248, tmp233, tmp238, tmp242, tmp248, tmp249);
1808 56 : if (label0.is_used()) {
1809 56 : ca_.Bind(&label0);
1810 : ca_.Goto(&block26, tmp233, tmp234, tmp235, tmp236, tmp237, tmp238, tmp239, tmp240, tmp241, tmp242, tmp243, tmp244, tmp245, tmp248, tmp233, tmp238, tmp242, tmp248);
1811 : }
1812 : }
1813 :
1814 56 : if (block26.is_used()) {
1815 : compiler::TNode<Context> tmp250;
1816 : compiler::TNode<Object> tmp251;
1817 : compiler::TNode<RawPtrT> tmp252;
1818 : compiler::TNode<RawPtrT> tmp253;
1819 : compiler::TNode<IntPtrT> tmp254;
1820 : compiler::TNode<JSReceiver> tmp255;
1821 : compiler::TNode<Number> tmp256;
1822 : compiler::TNode<Object> tmp257;
1823 : compiler::TNode<Number> tmp258;
1824 : compiler::TNode<Number> tmp259;
1825 : compiler::TNode<Object> tmp260;
1826 : compiler::TNode<Number> tmp261;
1827 : compiler::TNode<Number> tmp262;
1828 : compiler::TNode<Number> tmp263;
1829 : compiler::TNode<Context> tmp264;
1830 : compiler::TNode<JSReceiver> tmp265;
1831 : compiler::TNode<Number> tmp266;
1832 : compiler::TNode<Number> tmp267;
1833 : ca_.Bind(&block26, &tmp250, &tmp251, &tmp252, &tmp253, &tmp254, &tmp255, &tmp256, &tmp257, &tmp258, &tmp259, &tmp260, &tmp261, &tmp262, &tmp263, &tmp264, &tmp265, &tmp266, &tmp267);
1834 : ca_.Goto(&block24, tmp250, tmp251, tmp252, tmp253, tmp254, tmp255, tmp256, tmp257, tmp258, tmp259, tmp260, tmp261, tmp262, tmp263);
1835 : }
1836 :
1837 56 : if (block25.is_used()) {
1838 : compiler::TNode<Context> tmp268;
1839 : compiler::TNode<Object> tmp269;
1840 : compiler::TNode<RawPtrT> tmp270;
1841 : compiler::TNode<RawPtrT> tmp271;
1842 : compiler::TNode<IntPtrT> tmp272;
1843 : compiler::TNode<JSReceiver> tmp273;
1844 : compiler::TNode<Number> tmp274;
1845 : compiler::TNode<Object> tmp275;
1846 : compiler::TNode<Number> tmp276;
1847 : compiler::TNode<Number> tmp277;
1848 : compiler::TNode<Object> tmp278;
1849 : compiler::TNode<Number> tmp279;
1850 : compiler::TNode<Number> tmp280;
1851 : compiler::TNode<Number> tmp281;
1852 : compiler::TNode<Context> tmp282;
1853 : compiler::TNode<JSReceiver> tmp283;
1854 : compiler::TNode<Number> tmp284;
1855 : compiler::TNode<Number> tmp285;
1856 : compiler::TNode<JSArray> tmp286;
1857 : ca_.Bind(&block25, &tmp268, &tmp269, &tmp270, &tmp271, &tmp272, &tmp273, &tmp274, &tmp275, &tmp276, &tmp277, &tmp278, &tmp279, &tmp280, &tmp281, &tmp282, &tmp283, &tmp284, &tmp285, &tmp286);
1858 56 : arguments.PopAndReturn(tmp286);
1859 : }
1860 :
1861 56 : if (block24.is_used()) {
1862 : compiler::TNode<Context> tmp287;
1863 : compiler::TNode<Object> tmp288;
1864 : compiler::TNode<RawPtrT> tmp289;
1865 : compiler::TNode<RawPtrT> tmp290;
1866 : compiler::TNode<IntPtrT> tmp291;
1867 : compiler::TNode<JSReceiver> tmp292;
1868 : compiler::TNode<Number> tmp293;
1869 : compiler::TNode<Object> tmp294;
1870 : compiler::TNode<Number> tmp295;
1871 : compiler::TNode<Number> tmp296;
1872 : compiler::TNode<Object> tmp297;
1873 : compiler::TNode<Number> tmp298;
1874 : compiler::TNode<Number> tmp299;
1875 : compiler::TNode<Number> tmp300;
1876 : ca_.Bind(&block24, &tmp287, &tmp288, &tmp289, &tmp290, &tmp291, &tmp292, &tmp293, &tmp294, &tmp295, &tmp296, &tmp297, &tmp298, &tmp299, &tmp300);
1877 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 171);
1878 : ca_.Goto(&block23, tmp287, tmp288, tmp289, tmp290, tmp291, tmp292, tmp293, tmp294, tmp295, tmp296, tmp297, tmp298, tmp299, tmp300);
1879 : }
1880 :
1881 56 : if (block23.is_used()) {
1882 : compiler::TNode<Context> tmp301;
1883 : compiler::TNode<Object> tmp302;
1884 : compiler::TNode<RawPtrT> tmp303;
1885 : compiler::TNode<RawPtrT> tmp304;
1886 : compiler::TNode<IntPtrT> tmp305;
1887 : compiler::TNode<JSReceiver> tmp306;
1888 : compiler::TNode<Number> tmp307;
1889 : compiler::TNode<Object> tmp308;
1890 : compiler::TNode<Number> tmp309;
1891 : compiler::TNode<Number> tmp310;
1892 : compiler::TNode<Object> tmp311;
1893 : compiler::TNode<Number> tmp312;
1894 : compiler::TNode<Number> tmp313;
1895 : compiler::TNode<Number> tmp314;
1896 : ca_.Bind(&block23, &tmp301, &tmp302, &tmp303, &tmp304, &tmp305, &tmp306, &tmp307, &tmp308, &tmp309, &tmp310, &tmp311, &tmp312, &tmp313, &tmp314);
1897 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 177);
1898 : compiler::TNode<JSReceiver> tmp315;
1899 : USE(tmp315);
1900 112 : tmp315 = ca_.UncheckedCast<JSReceiver>(CodeStubAssembler(state_).ArraySpeciesCreate(compiler::TNode<Context>{tmp301}, compiler::TNode<Object>{tmp306}, compiler::TNode<Number>{tmp314}));
1901 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 180);
1902 : compiler::TNode<Number> tmp316;
1903 : USE(tmp316);
1904 112 : tmp316 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(0));
1905 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 183);
1906 : ca_.Goto(&block29, tmp301, tmp302, tmp303, tmp304, tmp305, tmp306, tmp307, tmp308, tmp309, tmp310, tmp311, tmp312, tmp313, tmp314, tmp315, tmp316);
1907 : }
1908 :
1909 56 : if (block29.is_used()) {
1910 : compiler::TNode<Context> tmp317;
1911 : compiler::TNode<Object> tmp318;
1912 : compiler::TNode<RawPtrT> tmp319;
1913 : compiler::TNode<RawPtrT> tmp320;
1914 : compiler::TNode<IntPtrT> tmp321;
1915 : compiler::TNode<JSReceiver> tmp322;
1916 : compiler::TNode<Number> tmp323;
1917 : compiler::TNode<Object> tmp324;
1918 : compiler::TNode<Number> tmp325;
1919 : compiler::TNode<Number> tmp326;
1920 : compiler::TNode<Object> tmp327;
1921 : compiler::TNode<Number> tmp328;
1922 : compiler::TNode<Number> tmp329;
1923 : compiler::TNode<Number> tmp330;
1924 : compiler::TNode<JSReceiver> tmp331;
1925 : compiler::TNode<Number> tmp332;
1926 : ca_.Bind(&block29, &tmp317, &tmp318, &tmp319, &tmp320, &tmp321, &tmp322, &tmp323, &tmp324, &tmp325, &tmp326, &tmp327, &tmp328, &tmp329, &tmp330, &tmp331, &tmp332);
1927 56 : compiler::CodeAssemblerLabel label0(&ca_);
1928 56 : compiler::CodeAssemblerLabel label1(&ca_);
1929 112 : CodeStubAssembler(state_).BranchIfNumberLessThan(compiler::TNode<Number>{tmp326}, compiler::TNode<Number>{tmp329}, &label0, &label1);
1930 56 : if (label0.is_used()) {
1931 56 : ca_.Bind(&label0);
1932 : ca_.Goto(&block30, tmp317, tmp318, tmp319, tmp320, tmp321, tmp322, tmp323, tmp324, tmp325, tmp326, tmp327, tmp328, tmp329, tmp330, tmp331, tmp332, tmp326, tmp329);
1933 : }
1934 56 : if (label1.is_used()) {
1935 56 : ca_.Bind(&label1);
1936 : ca_.Goto(&block31, tmp317, tmp318, tmp319, tmp320, tmp321, tmp322, tmp323, tmp324, tmp325, tmp326, tmp327, tmp328, tmp329, tmp330, tmp331, tmp332, tmp326, tmp329);
1937 : }
1938 : }
1939 :
1940 56 : if (block30.is_used()) {
1941 : compiler::TNode<Context> tmp333;
1942 : compiler::TNode<Object> tmp334;
1943 : compiler::TNode<RawPtrT> tmp335;
1944 : compiler::TNode<RawPtrT> tmp336;
1945 : compiler::TNode<IntPtrT> tmp337;
1946 : compiler::TNode<JSReceiver> tmp338;
1947 : compiler::TNode<Number> tmp339;
1948 : compiler::TNode<Object> tmp340;
1949 : compiler::TNode<Number> tmp341;
1950 : compiler::TNode<Number> tmp342;
1951 : compiler::TNode<Object> tmp343;
1952 : compiler::TNode<Number> tmp344;
1953 : compiler::TNode<Number> tmp345;
1954 : compiler::TNode<Number> tmp346;
1955 : compiler::TNode<JSReceiver> tmp347;
1956 : compiler::TNode<Number> tmp348;
1957 : compiler::TNode<Number> tmp349;
1958 : compiler::TNode<Number> tmp350;
1959 : ca_.Bind(&block30, &tmp333, &tmp334, &tmp335, &tmp336, &tmp337, &tmp338, &tmp339, &tmp340, &tmp341, &tmp342, &tmp343, &tmp344, &tmp345, &tmp346, &tmp347, &tmp348, &tmp349, &tmp350);
1960 : ca_.Goto(&block27, tmp333, tmp334, tmp335, tmp336, tmp337, tmp338, tmp339, tmp340, tmp341, tmp342, tmp343, tmp344, tmp345, tmp346, tmp347, tmp348);
1961 : }
1962 :
1963 56 : if (block31.is_used()) {
1964 : compiler::TNode<Context> tmp351;
1965 : compiler::TNode<Object> tmp352;
1966 : compiler::TNode<RawPtrT> tmp353;
1967 : compiler::TNode<RawPtrT> tmp354;
1968 : compiler::TNode<IntPtrT> tmp355;
1969 : compiler::TNode<JSReceiver> tmp356;
1970 : compiler::TNode<Number> tmp357;
1971 : compiler::TNode<Object> tmp358;
1972 : compiler::TNode<Number> tmp359;
1973 : compiler::TNode<Number> tmp360;
1974 : compiler::TNode<Object> tmp361;
1975 : compiler::TNode<Number> tmp362;
1976 : compiler::TNode<Number> tmp363;
1977 : compiler::TNode<Number> tmp364;
1978 : compiler::TNode<JSReceiver> tmp365;
1979 : compiler::TNode<Number> tmp366;
1980 : compiler::TNode<Number> tmp367;
1981 : compiler::TNode<Number> tmp368;
1982 : ca_.Bind(&block31, &tmp351, &tmp352, &tmp353, &tmp354, &tmp355, &tmp356, &tmp357, &tmp358, &tmp359, &tmp360, &tmp361, &tmp362, &tmp363, &tmp364, &tmp365, &tmp366, &tmp367, &tmp368);
1983 : ca_.Goto(&block28, tmp351, tmp352, tmp353, tmp354, tmp355, tmp356, tmp357, tmp358, tmp359, tmp360, tmp361, tmp362, tmp363, tmp364, tmp365, tmp366);
1984 : }
1985 :
1986 56 : if (block27.is_used()) {
1987 : compiler::TNode<Context> tmp369;
1988 : compiler::TNode<Object> tmp370;
1989 : compiler::TNode<RawPtrT> tmp371;
1990 : compiler::TNode<RawPtrT> tmp372;
1991 : compiler::TNode<IntPtrT> tmp373;
1992 : compiler::TNode<JSReceiver> tmp374;
1993 : compiler::TNode<Number> tmp375;
1994 : compiler::TNode<Object> tmp376;
1995 : compiler::TNode<Number> tmp377;
1996 : compiler::TNode<Number> tmp378;
1997 : compiler::TNode<Object> tmp379;
1998 : compiler::TNode<Number> tmp380;
1999 : compiler::TNode<Number> tmp381;
2000 : compiler::TNode<Number> tmp382;
2001 : compiler::TNode<JSReceiver> tmp383;
2002 : compiler::TNode<Number> tmp384;
2003 : ca_.Bind(&block27, &tmp369, &tmp370, &tmp371, &tmp372, &tmp373, &tmp374, &tmp375, &tmp376, &tmp377, &tmp378, &tmp379, &tmp380, &tmp381, &tmp382, &tmp383, &tmp384);
2004 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 185);
2005 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 188);
2006 : compiler::TNode<Oddball> tmp385;
2007 112 : tmp385 = TORQUE_CAST(CodeStubAssembler(state_).CallBuiltin(Builtins::kHasProperty, tmp369, tmp374, tmp378));
2008 : USE(tmp385);
2009 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 191);
2010 : compiler::TNode<Oddball> tmp386;
2011 : USE(tmp386);
2012 112 : tmp386 = BaseBuiltinsFromDSLAssembler(state_).True();
2013 : compiler::TNode<BoolT> tmp387;
2014 : USE(tmp387);
2015 112 : tmp387 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<HeapObject>{tmp385}, compiler::TNode<HeapObject>{tmp386}));
2016 56 : ca_.Branch(tmp387, &block32, &block33, tmp369, tmp370, tmp371, tmp372, tmp373, tmp374, tmp375, tmp376, tmp377, tmp378, tmp379, tmp380, tmp381, tmp382, tmp383, tmp384, tmp378, tmp385);
2017 : }
2018 :
2019 56 : if (block32.is_used()) {
2020 : compiler::TNode<Context> tmp388;
2021 : compiler::TNode<Object> tmp389;
2022 : compiler::TNode<RawPtrT> tmp390;
2023 : compiler::TNode<RawPtrT> tmp391;
2024 : compiler::TNode<IntPtrT> tmp392;
2025 : compiler::TNode<JSReceiver> tmp393;
2026 : compiler::TNode<Number> tmp394;
2027 : compiler::TNode<Object> tmp395;
2028 : compiler::TNode<Number> tmp396;
2029 : compiler::TNode<Number> tmp397;
2030 : compiler::TNode<Object> tmp398;
2031 : compiler::TNode<Number> tmp399;
2032 : compiler::TNode<Number> tmp400;
2033 : compiler::TNode<Number> tmp401;
2034 : compiler::TNode<JSReceiver> tmp402;
2035 : compiler::TNode<Number> tmp403;
2036 : compiler::TNode<Number> tmp404;
2037 : compiler::TNode<Oddball> tmp405;
2038 : ca_.Bind(&block32, &tmp388, &tmp389, &tmp390, &tmp391, &tmp392, &tmp393, &tmp394, &tmp395, &tmp396, &tmp397, &tmp398, &tmp399, &tmp400, &tmp401, &tmp402, &tmp403, &tmp404, &tmp405);
2039 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 193);
2040 : compiler::TNode<Object> tmp406;
2041 : USE(tmp406);
2042 112 : tmp406 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetProperty(compiler::TNode<Context>{tmp388}, compiler::TNode<Object>{tmp393}, compiler::TNode<Object>{tmp404}));
2043 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 196);
2044 : compiler::TNode<Object> tmp407;
2045 112 : tmp407 = CodeStubAssembler(state_).CallBuiltin(Builtins::kFastCreateDataProperty, tmp388, tmp402, tmp403, tmp406);
2046 : USE(tmp407);
2047 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 191);
2048 : ca_.Goto(&block33, tmp388, tmp389, tmp390, tmp391, tmp392, tmp393, tmp394, tmp395, tmp396, tmp397, tmp398, tmp399, tmp400, tmp401, tmp402, tmp403, tmp404, tmp405);
2049 : }
2050 :
2051 56 : if (block33.is_used()) {
2052 : compiler::TNode<Context> tmp408;
2053 : compiler::TNode<Object> tmp409;
2054 : compiler::TNode<RawPtrT> tmp410;
2055 : compiler::TNode<RawPtrT> tmp411;
2056 : compiler::TNode<IntPtrT> tmp412;
2057 : compiler::TNode<JSReceiver> tmp413;
2058 : compiler::TNode<Number> tmp414;
2059 : compiler::TNode<Object> tmp415;
2060 : compiler::TNode<Number> tmp416;
2061 : compiler::TNode<Number> tmp417;
2062 : compiler::TNode<Object> tmp418;
2063 : compiler::TNode<Number> tmp419;
2064 : compiler::TNode<Number> tmp420;
2065 : compiler::TNode<Number> tmp421;
2066 : compiler::TNode<JSReceiver> tmp422;
2067 : compiler::TNode<Number> tmp423;
2068 : compiler::TNode<Number> tmp424;
2069 : compiler::TNode<Oddball> tmp425;
2070 : ca_.Bind(&block33, &tmp408, &tmp409, &tmp410, &tmp411, &tmp412, &tmp413, &tmp414, &tmp415, &tmp416, &tmp417, &tmp418, &tmp419, &tmp420, &tmp421, &tmp422, &tmp423, &tmp424, &tmp425);
2071 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 200);
2072 : compiler::TNode<Number> tmp426;
2073 : USE(tmp426);
2074 112 : tmp426 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(1));
2075 : compiler::TNode<Number> tmp427;
2076 : USE(tmp427);
2077 168 : tmp427 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberAdd(compiler::TNode<Number>{tmp417}, compiler::TNode<Number>{tmp426}));
2078 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 203);
2079 : compiler::TNode<Number> tmp428;
2080 : USE(tmp428);
2081 112 : tmp428 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(1));
2082 : compiler::TNode<Number> tmp429;
2083 : USE(tmp429);
2084 168 : tmp429 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberAdd(compiler::TNode<Number>{tmp423}, compiler::TNode<Number>{tmp428}));
2085 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 183);
2086 : ca_.Goto(&block29, tmp408, tmp409, tmp410, tmp411, tmp412, tmp413, tmp414, tmp415, tmp416, tmp427, tmp418, tmp419, tmp420, tmp421, tmp422, tmp429);
2087 : }
2088 :
2089 56 : if (block28.is_used()) {
2090 : compiler::TNode<Context> tmp430;
2091 : compiler::TNode<Object> tmp431;
2092 : compiler::TNode<RawPtrT> tmp432;
2093 : compiler::TNode<RawPtrT> tmp433;
2094 : compiler::TNode<IntPtrT> tmp434;
2095 : compiler::TNode<JSReceiver> tmp435;
2096 : compiler::TNode<Number> tmp436;
2097 : compiler::TNode<Object> tmp437;
2098 : compiler::TNode<Number> tmp438;
2099 : compiler::TNode<Number> tmp439;
2100 : compiler::TNode<Object> tmp440;
2101 : compiler::TNode<Number> tmp441;
2102 : compiler::TNode<Number> tmp442;
2103 : compiler::TNode<Number> tmp443;
2104 : compiler::TNode<JSReceiver> tmp444;
2105 : compiler::TNode<Number> tmp445;
2106 : ca_.Bind(&block28, &tmp430, &tmp431, &tmp432, &tmp433, &tmp434, &tmp435, &tmp436, &tmp437, &tmp438, &tmp439, &tmp440, &tmp441, &tmp442, &tmp443, &tmp444, &tmp445);
2107 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 207);
2108 : compiler::TNode<String> tmp446;
2109 : USE(tmp446);
2110 112 : tmp446 = BaseBuiltinsFromDSLAssembler(state_).kLengthString();
2111 112 : CodeStubAssembler(state_).CallBuiltin(Builtins::kSetProperty, tmp430, tmp444, tmp446, tmp445);
2112 56 : ca_.SetSourcePosition("../../src/builtins/array-slice.tq", 210);
2113 56 : arguments.PopAndReturn(tmp444);
2114 : }
2115 56 : }
2116 :
2117 : } // namespace internal
2118 59456 : } // namespace v8
2119 :
|