Line data Source code
1 : #include "src/builtins/builtins-utils-gen.h"
2 : #include "src/builtins/builtins.h"
3 : #include "src/code-factory.h"
4 : #include "src/elements-kind.h"
5 : #include "src/heap/factory-inl.h"
6 : #include "src/objects.h"
7 : #include "src/objects/arguments.h"
8 : #include "src/objects/bigint.h"
9 : #include "src/objects/free-space.h"
10 : #include "src/objects/js-generator.h"
11 : #include "src/objects/js-promise.h"
12 : #include "src/objects/js-regexp-string-iterator.h"
13 : #include "src/objects/module.h"
14 : #include "src/objects/stack-frame-info.h"
15 : #include "src/builtins/builtins-regexp-gen.h"
16 : #include "src/builtins/builtins-array-gen.h"
17 : #include "src/builtins/builtins-collections-gen.h"
18 : #include "src/builtins/builtins-data-view-gen.h"
19 : #include "src/builtins/builtins-iterator-gen.h"
20 : #include "src/builtins/builtins-proxy-gen.h"
21 : #include "src/builtins/builtins-proxy-gen.h"
22 : #include "src/builtins/builtins-regexp-gen.h"
23 : #include "src/builtins/builtins-regexp-gen.h"
24 : #include "src/builtins/builtins-regexp-gen.h"
25 : #include "src/builtins/builtins-typed-array-gen.h"
26 : #include "src/builtins/builtins-constructor-gen.h"
27 : #include "src/builtins/builtins-typed-array-gen.h"
28 : #include "src/builtins/builtins-typed-array-gen.h"
29 : #include "src/builtins/builtins-typed-array-gen.h"
30 : #include "src/builtins/builtins-typed-array-gen.h"
31 : #include "src/builtins/builtins-typed-array-gen.h"
32 : #include "src/builtins/builtins-typed-array-gen.h"
33 : #include "src/builtins/builtins-typed-array-gen.h"
34 : #include "src/builtins/builtins-typed-array-gen.h"
35 : #include "torque-generated/builtins-base-from-dsl-gen.h"
36 : #include "torque-generated/builtins-growable-fixed-array-from-dsl-gen.h"
37 : #include "torque-generated/builtins-arguments-from-dsl-gen.h"
38 : #include "torque-generated/builtins-array-from-dsl-gen.h"
39 : #include "torque-generated/builtins-array-copywithin-from-dsl-gen.h"
40 : #include "torque-generated/builtins-array-filter-from-dsl-gen.h"
41 : #include "torque-generated/builtins-array-find-from-dsl-gen.h"
42 : #include "torque-generated/builtins-array-findindex-from-dsl-gen.h"
43 : #include "torque-generated/builtins-array-foreach-from-dsl-gen.h"
44 : #include "torque-generated/builtins-array-join-from-dsl-gen.h"
45 : #include "torque-generated/builtins-array-lastindexof-from-dsl-gen.h"
46 : #include "torque-generated/builtins-array-of-from-dsl-gen.h"
47 : #include "torque-generated/builtins-array-map-from-dsl-gen.h"
48 : #include "torque-generated/builtins-array-reverse-from-dsl-gen.h"
49 : #include "torque-generated/builtins-array-shift-from-dsl-gen.h"
50 : #include "torque-generated/builtins-array-slice-from-dsl-gen.h"
51 : #include "torque-generated/builtins-array-splice-from-dsl-gen.h"
52 : #include "torque-generated/builtins-array-unshift-from-dsl-gen.h"
53 : #include "torque-generated/builtins-collections-from-dsl-gen.h"
54 : #include "torque-generated/builtins-data-view-from-dsl-gen.h"
55 : #include "torque-generated/builtins-extras-utils-from-dsl-gen.h"
56 : #include "torque-generated/builtins-iterator-from-dsl-gen.h"
57 : #include "torque-generated/builtins-object-from-dsl-gen.h"
58 : #include "torque-generated/builtins-proxy-from-dsl-gen.h"
59 : #include "torque-generated/builtins-regexp-from-dsl-gen.h"
60 : #include "torque-generated/builtins-regexp-replace-from-dsl-gen.h"
61 : #include "torque-generated/builtins-string-from-dsl-gen.h"
62 : #include "torque-generated/builtins-string-html-from-dsl-gen.h"
63 : #include "torque-generated/builtins-string-repeat-from-dsl-gen.h"
64 : #include "torque-generated/builtins-typed-array-from-dsl-gen.h"
65 : #include "torque-generated/builtins-typed-array-createtypedarray-from-dsl-gen.h"
66 : #include "torque-generated/builtins-typed-array-every-from-dsl-gen.h"
67 : #include "torque-generated/builtins-typed-array-filter-from-dsl-gen.h"
68 : #include "torque-generated/builtins-typed-array-find-from-dsl-gen.h"
69 : #include "torque-generated/builtins-typed-array-findindex-from-dsl-gen.h"
70 : #include "torque-generated/builtins-typed-array-foreach-from-dsl-gen.h"
71 : #include "torque-generated/builtins-typed-array-reduce-from-dsl-gen.h"
72 : #include "torque-generated/builtins-typed-array-reduceright-from-dsl-gen.h"
73 : #include "torque-generated/builtins-typed-array-slice-from-dsl-gen.h"
74 : #include "torque-generated/builtins-typed-array-some-from-dsl-gen.h"
75 : #include "torque-generated/builtins-typed-array-subarray-from-dsl-gen.h"
76 : #include "torque-generated/builtins-test-from-dsl-gen.h"
77 :
78 : namespace v8 {
79 : namespace internal {
80 :
81 112 : compiler::TNode<Oddball> StringBuiltinsFromDSLAssembler::TryFastStringCompareSequence(compiler::TNode<String> p_string, compiler::TNode<String> p_searchStr, compiler::TNode<Number> p_start, compiler::TNode<Smi> p_searchLength, compiler::CodeAssemblerLabel* label_Slow) {
82 112 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
83 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
84 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String, String> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
85 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String, String> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
86 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String, String, String> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
87 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String, String, Number> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
88 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String, String, Number, Smi> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
89 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String, String, Smi, IntPtrT, IntPtrT, IntPtrT> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
90 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String, String, Smi, IntPtrT, IntPtrT, IntPtrT> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
91 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String, String, Smi, IntPtrT, IntPtrT, IntPtrT> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
92 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String, String, Smi, IntPtrT, IntPtrT, IntPtrT> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
93 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, String, String, Smi, IntPtrT, IntPtrT, IntPtrT> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
94 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, Oddball> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
95 : compiler::CodeAssemblerParameterizedLabel<> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
96 : compiler::CodeAssemblerParameterizedLabel<String, String, Number, Smi, Oddball> block14(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
97 : ca_.Goto(&block0, p_string, p_searchStr, p_start, p_searchLength);
98 :
99 112 : if (block0.is_used()) {
100 : compiler::TNode<String> tmp0;
101 : compiler::TNode<String> tmp1;
102 : compiler::TNode<Number> tmp2;
103 : compiler::TNode<Smi> tmp3;
104 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3);
105 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 9);
106 : compiler::TNode<String> tmp4;
107 : USE(tmp4);
108 112 : compiler::CodeAssemblerLabel label0(&ca_);
109 336 : tmp4 = BaseBuiltinsFromDSLAssembler(state_).Cast14ATDirectString(compiler::TNode<HeapObject>{tmp0}, &label0);
110 : ca_.Goto(&block3, tmp0, tmp1, tmp2, tmp3, tmp0, tmp4);
111 112 : if (label0.is_used()) {
112 112 : ca_.Bind(&label0);
113 : ca_.Goto(&block4, tmp0, tmp1, tmp2, tmp3, tmp0);
114 : }
115 : }
116 :
117 112 : if (block4.is_used()) {
118 : compiler::TNode<String> tmp5;
119 : compiler::TNode<String> tmp6;
120 : compiler::TNode<Number> tmp7;
121 : compiler::TNode<Smi> tmp8;
122 : compiler::TNode<String> tmp9;
123 : ca_.Bind(&block4, &tmp5, &tmp6, &tmp7, &tmp8, &tmp9);
124 : ca_.Goto(&block1);
125 : }
126 :
127 112 : if (block3.is_used()) {
128 : compiler::TNode<String> tmp10;
129 : compiler::TNode<String> tmp11;
130 : compiler::TNode<Number> tmp12;
131 : compiler::TNode<Smi> tmp13;
132 : compiler::TNode<String> tmp14;
133 : compiler::TNode<String> tmp15;
134 : ca_.Bind(&block3, &tmp10, &tmp11, &tmp12, &tmp13, &tmp14, &tmp15);
135 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 10);
136 : compiler::TNode<String> tmp16;
137 : USE(tmp16);
138 112 : compiler::CodeAssemblerLabel label0(&ca_);
139 336 : tmp16 = BaseBuiltinsFromDSLAssembler(state_).Cast14ATDirectString(compiler::TNode<HeapObject>{tmp11}, &label0);
140 : ca_.Goto(&block5, tmp10, tmp11, tmp12, tmp13, tmp15, tmp11, tmp16);
141 112 : if (label0.is_used()) {
142 112 : ca_.Bind(&label0);
143 : ca_.Goto(&block6, tmp10, tmp11, tmp12, tmp13, tmp15, tmp11);
144 : }
145 : }
146 :
147 112 : if (block6.is_used()) {
148 : compiler::TNode<String> tmp17;
149 : compiler::TNode<String> tmp18;
150 : compiler::TNode<Number> tmp19;
151 : compiler::TNode<Smi> tmp20;
152 : compiler::TNode<String> tmp21;
153 : compiler::TNode<String> tmp22;
154 : ca_.Bind(&block6, &tmp17, &tmp18, &tmp19, &tmp20, &tmp21, &tmp22);
155 : ca_.Goto(&block1);
156 : }
157 :
158 112 : if (block5.is_used()) {
159 : compiler::TNode<String> tmp23;
160 : compiler::TNode<String> tmp24;
161 : compiler::TNode<Number> tmp25;
162 : compiler::TNode<Smi> tmp26;
163 : compiler::TNode<String> tmp27;
164 : compiler::TNode<String> tmp28;
165 : compiler::TNode<String> tmp29;
166 : ca_.Bind(&block5, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27, &tmp28, &tmp29);
167 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 11);
168 : compiler::TNode<Smi> tmp30;
169 : USE(tmp30);
170 112 : compiler::CodeAssemblerLabel label0(&ca_);
171 336 : tmp30 = BaseBuiltinsFromDSLAssembler(state_).Cast5ATSmi(compiler::TNode<Object>{tmp25}, &label0);
172 : ca_.Goto(&block7, tmp23, tmp24, tmp25, tmp26, tmp27, tmp29, tmp25, tmp30);
173 112 : if (label0.is_used()) {
174 112 : ca_.Bind(&label0);
175 : ca_.Goto(&block8, tmp23, tmp24, tmp25, tmp26, tmp27, tmp29, tmp25);
176 : }
177 : }
178 :
179 112 : if (block8.is_used()) {
180 : compiler::TNode<String> tmp31;
181 : compiler::TNode<String> tmp32;
182 : compiler::TNode<Number> tmp33;
183 : compiler::TNode<Smi> tmp34;
184 : compiler::TNode<String> tmp35;
185 : compiler::TNode<String> tmp36;
186 : compiler::TNode<Number> tmp37;
187 : ca_.Bind(&block8, &tmp31, &tmp32, &tmp33, &tmp34, &tmp35, &tmp36, &tmp37);
188 : ca_.Goto(&block1);
189 : }
190 :
191 112 : if (block7.is_used()) {
192 : compiler::TNode<String> tmp38;
193 : compiler::TNode<String> tmp39;
194 : compiler::TNode<Number> tmp40;
195 : compiler::TNode<Smi> tmp41;
196 : compiler::TNode<String> tmp42;
197 : compiler::TNode<String> tmp43;
198 : compiler::TNode<Number> tmp44;
199 : compiler::TNode<Smi> tmp45;
200 : ca_.Bind(&block7, &tmp38, &tmp39, &tmp40, &tmp41, &tmp42, &tmp43, &tmp44, &tmp45);
201 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 13);
202 : compiler::TNode<IntPtrT> tmp46;
203 : USE(tmp46);
204 336 : tmp46 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(0));
205 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 14);
206 : compiler::TNode<IntPtrT> tmp47;
207 : USE(tmp47);
208 336 : tmp47 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).Convert8ATintptr5ATSmi(compiler::TNode<Smi>{tmp45}));
209 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 15);
210 : compiler::TNode<IntPtrT> tmp48;
211 : USE(tmp48);
212 336 : tmp48 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).Convert8ATintptr5ATSmi(compiler::TNode<Smi>{tmp41}));
213 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 17);
214 : ca_.Goto(&block11, tmp38, tmp39, tmp40, tmp41, tmp42, tmp43, tmp45, tmp46, tmp47, tmp48);
215 : }
216 :
217 112 : if (block11.is_used()) {
218 : compiler::TNode<String> tmp49;
219 : compiler::TNode<String> tmp50;
220 : compiler::TNode<Number> tmp51;
221 : compiler::TNode<Smi> tmp52;
222 : compiler::TNode<String> tmp53;
223 : compiler::TNode<String> tmp54;
224 : compiler::TNode<Smi> tmp55;
225 : compiler::TNode<IntPtrT> tmp56;
226 : compiler::TNode<IntPtrT> tmp57;
227 : compiler::TNode<IntPtrT> tmp58;
228 : ca_.Bind(&block11, &tmp49, &tmp50, &tmp51, &tmp52, &tmp53, &tmp54, &tmp55, &tmp56, &tmp57, &tmp58);
229 : compiler::TNode<BoolT> tmp59;
230 : USE(tmp59);
231 448 : tmp59 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).IntPtrLessThan(compiler::TNode<IntPtrT>{tmp56}, compiler::TNode<IntPtrT>{tmp58}));
232 112 : ca_.Branch(tmp59, &block9, &block10, tmp49, tmp50, tmp51, tmp52, tmp53, tmp54, tmp55, tmp56, tmp57, tmp58);
233 : }
234 :
235 112 : if (block9.is_used()) {
236 : compiler::TNode<String> tmp60;
237 : compiler::TNode<String> tmp61;
238 : compiler::TNode<Number> tmp62;
239 : compiler::TNode<Smi> tmp63;
240 : compiler::TNode<String> tmp64;
241 : compiler::TNode<String> tmp65;
242 : compiler::TNode<Smi> tmp66;
243 : compiler::TNode<IntPtrT> tmp67;
244 : compiler::TNode<IntPtrT> tmp68;
245 : compiler::TNode<IntPtrT> tmp69;
246 : ca_.Bind(&block9, &tmp60, &tmp61, &tmp62, &tmp63, &tmp64, &tmp65, &tmp66, &tmp67, &tmp68, &tmp69);
247 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 18);
248 : compiler::TNode<Int32T> tmp70;
249 : USE(tmp70);
250 448 : tmp70 = ca_.UncheckedCast<Int32T>(CodeStubAssembler(state_).StringCharCodeAt(compiler::TNode<String>{tmp65}, compiler::TNode<IntPtrT>{tmp67}));
251 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 19);
252 : compiler::TNode<Int32T> tmp71;
253 : USE(tmp71);
254 448 : tmp71 = ca_.UncheckedCast<Int32T>(CodeStubAssembler(state_).StringCharCodeAt(compiler::TNode<String>{tmp64}, compiler::TNode<IntPtrT>{tmp68}));
255 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 18);
256 : compiler::TNode<BoolT> tmp72;
257 : USE(tmp72);
258 224 : tmp72 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).Word32NotEqual(compiler::TNode<Int32T>{tmp70}, compiler::TNode<Int32T>{tmp71}));
259 112 : ca_.Branch(tmp72, &block12, &block13, tmp60, tmp61, tmp62, tmp63, tmp64, tmp65, tmp66, tmp67, tmp68, tmp69);
260 : }
261 :
262 112 : if (block12.is_used()) {
263 : compiler::TNode<String> tmp73;
264 : compiler::TNode<String> tmp74;
265 : compiler::TNode<Number> tmp75;
266 : compiler::TNode<Smi> tmp76;
267 : compiler::TNode<String> tmp77;
268 : compiler::TNode<String> tmp78;
269 : compiler::TNode<Smi> tmp79;
270 : compiler::TNode<IntPtrT> tmp80;
271 : compiler::TNode<IntPtrT> tmp81;
272 : compiler::TNode<IntPtrT> tmp82;
273 : ca_.Bind(&block12, &tmp73, &tmp74, &tmp75, &tmp76, &tmp77, &tmp78, &tmp79, &tmp80, &tmp81, &tmp82);
274 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 20);
275 : compiler::TNode<Oddball> tmp83;
276 : USE(tmp83);
277 336 : tmp83 = BaseBuiltinsFromDSLAssembler(state_).False();
278 : ca_.Goto(&block2, tmp73, tmp74, tmp75, tmp76, tmp83);
279 : }
280 :
281 112 : if (block13.is_used()) {
282 : compiler::TNode<String> tmp84;
283 : compiler::TNode<String> tmp85;
284 : compiler::TNode<Number> tmp86;
285 : compiler::TNode<Smi> tmp87;
286 : compiler::TNode<String> tmp88;
287 : compiler::TNode<String> tmp89;
288 : compiler::TNode<Smi> tmp90;
289 : compiler::TNode<IntPtrT> tmp91;
290 : compiler::TNode<IntPtrT> tmp92;
291 : compiler::TNode<IntPtrT> tmp93;
292 : ca_.Bind(&block13, &tmp84, &tmp85, &tmp86, &tmp87, &tmp88, &tmp89, &tmp90, &tmp91, &tmp92, &tmp93);
293 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 23);
294 : compiler::TNode<IntPtrT> tmp94;
295 : USE(tmp94);
296 336 : tmp94 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(1));
297 : compiler::TNode<IntPtrT> tmp95;
298 : USE(tmp95);
299 224 : tmp95 = ca_.UncheckedCast<IntPtrT>(CodeStubAssembler(state_).IntPtrAdd(compiler::TNode<IntPtrT>{tmp91}, compiler::TNode<IntPtrT>{tmp94}));
300 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 24);
301 : compiler::TNode<IntPtrT> tmp96;
302 : USE(tmp96);
303 336 : tmp96 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(1));
304 : compiler::TNode<IntPtrT> tmp97;
305 : USE(tmp97);
306 224 : tmp97 = ca_.UncheckedCast<IntPtrT>(CodeStubAssembler(state_).IntPtrAdd(compiler::TNode<IntPtrT>{tmp92}, compiler::TNode<IntPtrT>{tmp96}));
307 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 17);
308 : ca_.Goto(&block11, tmp84, tmp85, tmp86, tmp87, tmp88, tmp89, tmp90, tmp95, tmp97, tmp93);
309 : }
310 :
311 112 : if (block10.is_used()) {
312 : compiler::TNode<String> tmp98;
313 : compiler::TNode<String> tmp99;
314 : compiler::TNode<Number> tmp100;
315 : compiler::TNode<Smi> tmp101;
316 : compiler::TNode<String> tmp102;
317 : compiler::TNode<String> tmp103;
318 : compiler::TNode<Smi> tmp104;
319 : compiler::TNode<IntPtrT> tmp105;
320 : compiler::TNode<IntPtrT> tmp106;
321 : compiler::TNode<IntPtrT> tmp107;
322 : ca_.Bind(&block10, &tmp98, &tmp99, &tmp100, &tmp101, &tmp102, &tmp103, &tmp104, &tmp105, &tmp106, &tmp107);
323 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 26);
324 : compiler::TNode<Oddball> tmp108;
325 : USE(tmp108);
326 336 : tmp108 = BaseBuiltinsFromDSLAssembler(state_).True();
327 : ca_.Goto(&block2, tmp98, tmp99, tmp100, tmp101, tmp108);
328 : }
329 :
330 112 : if (block2.is_used()) {
331 : compiler::TNode<String> tmp109;
332 : compiler::TNode<String> tmp110;
333 : compiler::TNode<Number> tmp111;
334 : compiler::TNode<Smi> tmp112;
335 : compiler::TNode<Oddball> tmp113;
336 : ca_.Bind(&block2, &tmp109, &tmp110, &tmp111, &tmp112, &tmp113);
337 112 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 6);
338 : ca_.Goto(&block14, tmp109, tmp110, tmp111, tmp112, tmp113);
339 : }
340 :
341 112 : if (block1.is_used()) {
342 : ca_.Bind(&block1);
343 112 : ca_.Goto(label_Slow);
344 : }
345 :
346 : compiler::TNode<String> tmp114;
347 : compiler::TNode<String> tmp115;
348 : compiler::TNode<Number> tmp116;
349 : compiler::TNode<Smi> tmp117;
350 : compiler::TNode<Oddball> tmp118;
351 : ca_.Bind(&block14, &tmp114, &tmp115, &tmp116, &tmp117, &tmp118);
352 224 : return compiler::TNode<Oddball>{tmp118};
353 : }
354 :
355 224 : TF_BUILTIN(StringPrototypeEndsWith, CodeStubAssembler) {
356 56 : compiler::CodeAssemblerState* state_ = state(); compiler::CodeAssembler ca_(state());
357 : TNode<Context> parameter0 = UncheckedCast<Context>(Parameter(Descriptor::kContext));
358 : USE(parameter0);
359 : Node* argc = Parameter(Descriptor::kJSActualArgumentsCount);
360 56 : TNode<IntPtrT> arguments_length(ChangeInt32ToIntPtr(argc));
361 56 : TNode<RawPtrT> arguments_frame = UncheckedCast<RawPtrT>(LoadFramePointer());
362 56 : BaseBuiltinsFromDSLAssembler::Arguments torque_arguments(GetFrameArguments(arguments_frame, arguments_length));
363 : CodeStubArguments arguments(this, torque_arguments);
364 56 : TNode<Object> parameter1 = arguments.GetReceiver();
365 : USE(parameter1);
366 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
367 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
368 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
369 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String, String, Number> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
370 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String, String, Number> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
371 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String, String, Number, Number> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
372 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String, String, Number, Number> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
373 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String, String, Number, Number, Number, Smi, Number, Number> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
374 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String, String, Number, Number, Number, Smi, Number, Number> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
375 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String, String, Number, Number, Number, Smi, Number> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
376 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String, String, Number, Number, Number, Smi, Number> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
377 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String, String, Number, Number, Number, Smi, Number, String, String, Number, Smi> block14(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
378 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String, String, Number, Number, Number, Smi, Number, String, String, Number, Smi, Oddball> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
379 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String, String, Number, Number, Number, Smi, Number> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
380 : ca_.Goto(&block0, parameter0, parameter1, torque_arguments.frame, torque_arguments.base, torque_arguments.length);
381 :
382 56 : if (block0.is_used()) {
383 : compiler::TNode<Context> tmp0;
384 : compiler::TNode<Object> tmp1;
385 : compiler::TNode<RawPtrT> tmp2;
386 : compiler::TNode<RawPtrT> tmp3;
387 : compiler::TNode<IntPtrT> tmp4;
388 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3, &tmp4);
389 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 32);
390 : compiler::TNode<IntPtrT> tmp5;
391 : USE(tmp5);
392 112 : tmp5 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(0));
393 : compiler::TNode<Object> tmp6;
394 : USE(tmp6);
395 112 : tmp6 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetArgumentValue(BaseBuiltinsFromDSLAssembler::Arguments{compiler::TNode<RawPtrT>{tmp2}, compiler::TNode<RawPtrT>{tmp3}, compiler::TNode<IntPtrT>{tmp4}}, compiler::TNode<IntPtrT>{tmp5}));
396 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 33);
397 : compiler::TNode<IntPtrT> tmp7;
398 : USE(tmp7);
399 112 : tmp7 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(1));
400 : compiler::TNode<Object> tmp8;
401 : USE(tmp8);
402 112 : tmp8 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetArgumentValue(BaseBuiltinsFromDSLAssembler::Arguments{compiler::TNode<RawPtrT>{tmp2}, compiler::TNode<RawPtrT>{tmp3}, compiler::TNode<IntPtrT>{tmp4}}, compiler::TNode<IntPtrT>{tmp7}));
403 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 36);
404 : compiler::TNode<Object> tmp9;
405 : USE(tmp9);
406 112 : tmp9 = ca_.UncheckedCast<Object>(StringBuiltinsFromDSLAssembler(state_).RequireObjectCoercible(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}));
407 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 39);
408 : compiler::TNode<String> tmp10;
409 : USE(tmp10);
410 168 : tmp10 = ca_.UncheckedCast<String>(CodeStubAssembler(state_).ToString_Inline(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp9}));
411 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 43);
412 : compiler::TNode<BoolT> tmp11;
413 : USE(tmp11);
414 112 : tmp11 = ca_.UncheckedCast<BoolT>(RegExpBuiltinsAssembler(state_).IsRegExp(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp6}));
415 56 : ca_.Branch(tmp11, &block1, &block2, tmp0, tmp1, tmp2, tmp3, tmp4, tmp6, tmp8, tmp9, tmp10);
416 : }
417 :
418 56 : if (block1.is_used()) {
419 : compiler::TNode<Context> tmp12;
420 : compiler::TNode<Object> tmp13;
421 : compiler::TNode<RawPtrT> tmp14;
422 : compiler::TNode<RawPtrT> tmp15;
423 : compiler::TNode<IntPtrT> tmp16;
424 : compiler::TNode<Object> tmp17;
425 : compiler::TNode<Object> tmp18;
426 : compiler::TNode<Object> tmp19;
427 : compiler::TNode<String> tmp20;
428 : ca_.Bind(&block1, &tmp12, &tmp13, &tmp14, &tmp15, &tmp16, &tmp17, &tmp18, &tmp19, &tmp20);
429 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 44);
430 112 : CodeStubAssembler(state_).ThrowTypeError(compiler::TNode<Context>{tmp12}, MessageTemplate::kFirstArgumentNotRegExp, "String.prototype.endsWith");
431 : }
432 :
433 56 : if (block2.is_used()) {
434 : compiler::TNode<Context> tmp21;
435 : compiler::TNode<Object> tmp22;
436 : compiler::TNode<RawPtrT> tmp23;
437 : compiler::TNode<RawPtrT> tmp24;
438 : compiler::TNode<IntPtrT> tmp25;
439 : compiler::TNode<Object> tmp26;
440 : compiler::TNode<Object> tmp27;
441 : compiler::TNode<Object> tmp28;
442 : compiler::TNode<String> tmp29;
443 : ca_.Bind(&block2, &tmp21, &tmp22, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27, &tmp28, &tmp29);
444 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 48);
445 : compiler::TNode<String> tmp30;
446 : USE(tmp30);
447 224 : tmp30 = ca_.UncheckedCast<String>(CodeStubAssembler(state_).ToString_Inline(compiler::TNode<Context>{tmp21}, compiler::TNode<Object>{tmp26}));
448 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 51);
449 : compiler::TNode<Smi> tmp31;
450 : USE(tmp31);
451 168 : tmp31 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).LoadStringLengthAsSmi(compiler::TNode<String>{tmp29}));
452 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 55);
453 : compiler::TNode<Oddball> tmp32;
454 : USE(tmp32);
455 112 : tmp32 = BaseBuiltinsFromDSLAssembler(state_).Undefined();
456 : compiler::TNode<BoolT> tmp33;
457 : USE(tmp33);
458 112 : tmp33 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<Object>{tmp27}, compiler::TNode<HeapObject>{tmp32}));
459 56 : ca_.Branch(tmp33, &block3, &block4, tmp21, tmp22, tmp23, tmp24, tmp25, tmp26, tmp27, tmp28, tmp29, tmp30, tmp31);
460 : }
461 :
462 56 : if (block3.is_used()) {
463 : compiler::TNode<Context> tmp34;
464 : compiler::TNode<Object> tmp35;
465 : compiler::TNode<RawPtrT> tmp36;
466 : compiler::TNode<RawPtrT> tmp37;
467 : compiler::TNode<IntPtrT> tmp38;
468 : compiler::TNode<Object> tmp39;
469 : compiler::TNode<Object> tmp40;
470 : compiler::TNode<Object> tmp41;
471 : compiler::TNode<String> tmp42;
472 : compiler::TNode<String> tmp43;
473 : compiler::TNode<Number> tmp44;
474 : ca_.Bind(&block3, &tmp34, &tmp35, &tmp36, &tmp37, &tmp38, &tmp39, &tmp40, &tmp41, &tmp42, &tmp43, &tmp44);
475 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 56);
476 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 55);
477 : ca_.Goto(&block6, tmp34, tmp35, tmp36, tmp37, tmp38, tmp39, tmp40, tmp41, tmp42, tmp43, tmp44, tmp44);
478 : }
479 :
480 56 : if (block4.is_used()) {
481 : compiler::TNode<Context> tmp45;
482 : compiler::TNode<Object> tmp46;
483 : compiler::TNode<RawPtrT> tmp47;
484 : compiler::TNode<RawPtrT> tmp48;
485 : compiler::TNode<IntPtrT> tmp49;
486 : compiler::TNode<Object> tmp50;
487 : compiler::TNode<Object> tmp51;
488 : compiler::TNode<Object> tmp52;
489 : compiler::TNode<String> tmp53;
490 : compiler::TNode<String> tmp54;
491 : compiler::TNode<Number> tmp55;
492 : ca_.Bind(&block4, &tmp45, &tmp46, &tmp47, &tmp48, &tmp49, &tmp50, &tmp51, &tmp52, &tmp53, &tmp54, &tmp55);
493 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 57);
494 : compiler::TNode<Number> tmp56;
495 : USE(tmp56);
496 224 : tmp56 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).ToInteger_Inline(compiler::TNode<Context>{tmp45}, compiler::TNode<Object>{tmp51}));
497 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 55);
498 : ca_.Goto(&block5, tmp45, tmp46, tmp47, tmp48, tmp49, tmp50, tmp51, tmp52, tmp53, tmp54, tmp55, tmp56);
499 : }
500 :
501 56 : if (block6.is_used()) {
502 : compiler::TNode<Context> tmp57;
503 : compiler::TNode<Object> tmp58;
504 : compiler::TNode<RawPtrT> tmp59;
505 : compiler::TNode<RawPtrT> tmp60;
506 : compiler::TNode<IntPtrT> tmp61;
507 : compiler::TNode<Object> tmp62;
508 : compiler::TNode<Object> tmp63;
509 : compiler::TNode<Object> tmp64;
510 : compiler::TNode<String> tmp65;
511 : compiler::TNode<String> tmp66;
512 : compiler::TNode<Number> tmp67;
513 : compiler::TNode<Number> tmp68;
514 : ca_.Bind(&block6, &tmp57, &tmp58, &tmp59, &tmp60, &tmp61, &tmp62, &tmp63, &tmp64, &tmp65, &tmp66, &tmp67, &tmp68);
515 : ca_.Goto(&block5, tmp57, tmp58, tmp59, tmp60, tmp61, tmp62, tmp63, tmp64, tmp65, tmp66, tmp67, tmp68);
516 : }
517 :
518 56 : if (block5.is_used()) {
519 : compiler::TNode<Context> tmp69;
520 : compiler::TNode<Object> tmp70;
521 : compiler::TNode<RawPtrT> tmp71;
522 : compiler::TNode<RawPtrT> tmp72;
523 : compiler::TNode<IntPtrT> tmp73;
524 : compiler::TNode<Object> tmp74;
525 : compiler::TNode<Object> tmp75;
526 : compiler::TNode<Object> tmp76;
527 : compiler::TNode<String> tmp77;
528 : compiler::TNode<String> tmp78;
529 : compiler::TNode<Number> tmp79;
530 : compiler::TNode<Number> tmp80;
531 : ca_.Bind(&block5, &tmp69, &tmp70, &tmp71, &tmp72, &tmp73, &tmp74, &tmp75, &tmp76, &tmp77, &tmp78, &tmp79, &tmp80);
532 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 60);
533 : compiler::TNode<Number> tmp81;
534 : USE(tmp81);
535 112 : tmp81 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(0));
536 : compiler::TNode<Number> tmp82;
537 : USE(tmp82);
538 168 : tmp82 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberMax(compiler::TNode<Number>{tmp80}, compiler::TNode<Number>{tmp81}));
539 : compiler::TNode<Number> tmp83;
540 : USE(tmp83);
541 168 : tmp83 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberMin(compiler::TNode<Number>{tmp82}, compiler::TNode<Number>{tmp79}));
542 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 63);
543 : compiler::TNode<Smi> tmp84;
544 : USE(tmp84);
545 168 : tmp84 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).LoadStringLengthAsSmi(compiler::TNode<String>{tmp78}));
546 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 66);
547 : compiler::TNode<Number> tmp85;
548 : USE(tmp85);
549 112 : tmp85 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberSub(compiler::TNode<Number>{tmp83}, compiler::TNode<Number>{tmp84}));
550 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 69);
551 : compiler::TNode<Number> tmp86;
552 : USE(tmp86);
553 112 : tmp86 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(0));
554 56 : compiler::CodeAssemblerLabel label0(&ca_);
555 56 : compiler::CodeAssemblerLabel label1(&ca_);
556 112 : CodeStubAssembler(state_).BranchIfNumberLessThan(compiler::TNode<Number>{tmp85}, compiler::TNode<Number>{tmp86}, &label0, &label1);
557 56 : if (label0.is_used()) {
558 56 : ca_.Bind(&label0);
559 : ca_.Goto(&block9, tmp69, tmp70, tmp71, tmp72, tmp73, tmp74, tmp75, tmp76, tmp77, tmp78, tmp79, tmp80, tmp83, tmp84, tmp85, tmp85);
560 : }
561 56 : if (label1.is_used()) {
562 56 : ca_.Bind(&label1);
563 : ca_.Goto(&block10, tmp69, tmp70, tmp71, tmp72, tmp73, tmp74, tmp75, tmp76, tmp77, tmp78, tmp79, tmp80, tmp83, tmp84, tmp85, tmp85);
564 : }
565 : }
566 :
567 56 : if (block9.is_used()) {
568 : compiler::TNode<Context> tmp87;
569 : compiler::TNode<Object> tmp88;
570 : compiler::TNode<RawPtrT> tmp89;
571 : compiler::TNode<RawPtrT> tmp90;
572 : compiler::TNode<IntPtrT> tmp91;
573 : compiler::TNode<Object> tmp92;
574 : compiler::TNode<Object> tmp93;
575 : compiler::TNode<Object> tmp94;
576 : compiler::TNode<String> tmp95;
577 : compiler::TNode<String> tmp96;
578 : compiler::TNode<Number> tmp97;
579 : compiler::TNode<Number> tmp98;
580 : compiler::TNode<Number> tmp99;
581 : compiler::TNode<Smi> tmp100;
582 : compiler::TNode<Number> tmp101;
583 : compiler::TNode<Number> tmp102;
584 : ca_.Bind(&block9, &tmp87, &tmp88, &tmp89, &tmp90, &tmp91, &tmp92, &tmp93, &tmp94, &tmp95, &tmp96, &tmp97, &tmp98, &tmp99, &tmp100, &tmp101, &tmp102);
585 : ca_.Goto(&block7, tmp87, tmp88, tmp89, tmp90, tmp91, tmp92, tmp93, tmp94, tmp95, tmp96, tmp97, tmp98, tmp99, tmp100, tmp101);
586 : }
587 :
588 56 : if (block10.is_used()) {
589 : compiler::TNode<Context> tmp103;
590 : compiler::TNode<Object> tmp104;
591 : compiler::TNode<RawPtrT> tmp105;
592 : compiler::TNode<RawPtrT> tmp106;
593 : compiler::TNode<IntPtrT> tmp107;
594 : compiler::TNode<Object> tmp108;
595 : compiler::TNode<Object> tmp109;
596 : compiler::TNode<Object> tmp110;
597 : compiler::TNode<String> tmp111;
598 : compiler::TNode<String> tmp112;
599 : compiler::TNode<Number> tmp113;
600 : compiler::TNode<Number> tmp114;
601 : compiler::TNode<Number> tmp115;
602 : compiler::TNode<Smi> tmp116;
603 : compiler::TNode<Number> tmp117;
604 : compiler::TNode<Number> tmp118;
605 : ca_.Bind(&block10, &tmp103, &tmp104, &tmp105, &tmp106, &tmp107, &tmp108, &tmp109, &tmp110, &tmp111, &tmp112, &tmp113, &tmp114, &tmp115, &tmp116, &tmp117, &tmp118);
606 : ca_.Goto(&block8, tmp103, tmp104, tmp105, tmp106, tmp107, tmp108, tmp109, tmp110, tmp111, tmp112, tmp113, tmp114, tmp115, tmp116, tmp117);
607 : }
608 :
609 56 : if (block7.is_used()) {
610 : compiler::TNode<Context> tmp119;
611 : compiler::TNode<Object> tmp120;
612 : compiler::TNode<RawPtrT> tmp121;
613 : compiler::TNode<RawPtrT> tmp122;
614 : compiler::TNode<IntPtrT> tmp123;
615 : compiler::TNode<Object> tmp124;
616 : compiler::TNode<Object> tmp125;
617 : compiler::TNode<Object> tmp126;
618 : compiler::TNode<String> tmp127;
619 : compiler::TNode<String> tmp128;
620 : compiler::TNode<Number> tmp129;
621 : compiler::TNode<Number> tmp130;
622 : compiler::TNode<Number> tmp131;
623 : compiler::TNode<Smi> tmp132;
624 : compiler::TNode<Number> tmp133;
625 : ca_.Bind(&block7, &tmp119, &tmp120, &tmp121, &tmp122, &tmp123, &tmp124, &tmp125, &tmp126, &tmp127, &tmp128, &tmp129, &tmp130, &tmp131, &tmp132, &tmp133);
626 : compiler::TNode<Oddball> tmp134;
627 : USE(tmp134);
628 112 : tmp134 = BaseBuiltinsFromDSLAssembler(state_).False();
629 56 : arguments.PopAndReturn(tmp134);
630 : }
631 :
632 56 : if (block8.is_used()) {
633 : compiler::TNode<Context> tmp135;
634 : compiler::TNode<Object> tmp136;
635 : compiler::TNode<RawPtrT> tmp137;
636 : compiler::TNode<RawPtrT> tmp138;
637 : compiler::TNode<IntPtrT> tmp139;
638 : compiler::TNode<Object> tmp140;
639 : compiler::TNode<Object> tmp141;
640 : compiler::TNode<Object> tmp142;
641 : compiler::TNode<String> tmp143;
642 : compiler::TNode<String> tmp144;
643 : compiler::TNode<Number> tmp145;
644 : compiler::TNode<Number> tmp146;
645 : compiler::TNode<Number> tmp147;
646 : compiler::TNode<Smi> tmp148;
647 : compiler::TNode<Number> tmp149;
648 : ca_.Bind(&block8, &tmp135, &tmp136, &tmp137, &tmp138, &tmp139, &tmp140, &tmp141, &tmp142, &tmp143, &tmp144, &tmp145, &tmp146, &tmp147, &tmp148, &tmp149);
649 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 78);
650 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 77);
651 : compiler::TNode<Oddball> tmp150;
652 : USE(tmp150);
653 56 : compiler::CodeAssemblerLabel label0(&ca_);
654 112 : tmp150 = StringBuiltinsFromDSLAssembler(state_).TryFastStringCompareSequence(compiler::TNode<String>{tmp143}, compiler::TNode<String>{tmp144}, compiler::TNode<Number>{tmp149}, compiler::TNode<Smi>{tmp148}, &label0);
655 : ca_.Goto(&block13, tmp135, tmp136, tmp137, tmp138, tmp139, tmp140, tmp141, tmp142, tmp143, tmp144, tmp145, tmp146, tmp147, tmp148, tmp149, tmp143, tmp144, tmp149, tmp148, tmp150);
656 56 : if (label0.is_used()) {
657 56 : ca_.Bind(&label0);
658 : ca_.Goto(&block14, tmp135, tmp136, tmp137, tmp138, tmp139, tmp140, tmp141, tmp142, tmp143, tmp144, tmp145, tmp146, tmp147, tmp148, tmp149, tmp143, tmp144, tmp149, tmp148);
659 : }
660 : }
661 :
662 56 : if (block14.is_used()) {
663 : compiler::TNode<Context> tmp151;
664 : compiler::TNode<Object> tmp152;
665 : compiler::TNode<RawPtrT> tmp153;
666 : compiler::TNode<RawPtrT> tmp154;
667 : compiler::TNode<IntPtrT> tmp155;
668 : compiler::TNode<Object> tmp156;
669 : compiler::TNode<Object> tmp157;
670 : compiler::TNode<Object> tmp158;
671 : compiler::TNode<String> tmp159;
672 : compiler::TNode<String> tmp160;
673 : compiler::TNode<Number> tmp161;
674 : compiler::TNode<Number> tmp162;
675 : compiler::TNode<Number> tmp163;
676 : compiler::TNode<Smi> tmp164;
677 : compiler::TNode<Number> tmp165;
678 : compiler::TNode<String> tmp166;
679 : compiler::TNode<String> tmp167;
680 : compiler::TNode<Number> tmp168;
681 : compiler::TNode<Smi> tmp169;
682 : ca_.Bind(&block14, &tmp151, &tmp152, &tmp153, &tmp154, &tmp155, &tmp156, &tmp157, &tmp158, &tmp159, &tmp160, &tmp161, &tmp162, &tmp163, &tmp164, &tmp165, &tmp166, &tmp167, &tmp168, &tmp169);
683 : ca_.Goto(&block12, tmp151, tmp152, tmp153, tmp154, tmp155, tmp156, tmp157, tmp158, tmp159, tmp160, tmp161, tmp162, tmp163, tmp164, tmp165);
684 : }
685 :
686 56 : if (block13.is_used()) {
687 : compiler::TNode<Context> tmp170;
688 : compiler::TNode<Object> tmp171;
689 : compiler::TNode<RawPtrT> tmp172;
690 : compiler::TNode<RawPtrT> tmp173;
691 : compiler::TNode<IntPtrT> tmp174;
692 : compiler::TNode<Object> tmp175;
693 : compiler::TNode<Object> tmp176;
694 : compiler::TNode<Object> tmp177;
695 : compiler::TNode<String> tmp178;
696 : compiler::TNode<String> tmp179;
697 : compiler::TNode<Number> tmp180;
698 : compiler::TNode<Number> tmp181;
699 : compiler::TNode<Number> tmp182;
700 : compiler::TNode<Smi> tmp183;
701 : compiler::TNode<Number> tmp184;
702 : compiler::TNode<String> tmp185;
703 : compiler::TNode<String> tmp186;
704 : compiler::TNode<Number> tmp187;
705 : compiler::TNode<Smi> tmp188;
706 : compiler::TNode<Oddball> tmp189;
707 : ca_.Bind(&block13, &tmp170, &tmp171, &tmp172, &tmp173, &tmp174, &tmp175, &tmp176, &tmp177, &tmp178, &tmp179, &tmp180, &tmp181, &tmp182, &tmp183, &tmp184, &tmp185, &tmp186, &tmp187, &tmp188, &tmp189);
708 56 : arguments.PopAndReturn(tmp189);
709 : }
710 :
711 56 : if (block12.is_used()) {
712 : compiler::TNode<Context> tmp190;
713 : compiler::TNode<Object> tmp191;
714 : compiler::TNode<RawPtrT> tmp192;
715 : compiler::TNode<RawPtrT> tmp193;
716 : compiler::TNode<IntPtrT> tmp194;
717 : compiler::TNode<Object> tmp195;
718 : compiler::TNode<Object> tmp196;
719 : compiler::TNode<Object> tmp197;
720 : compiler::TNode<String> tmp198;
721 : compiler::TNode<String> tmp199;
722 : compiler::TNode<Number> tmp200;
723 : compiler::TNode<Number> tmp201;
724 : compiler::TNode<Number> tmp202;
725 : compiler::TNode<Smi> tmp203;
726 : compiler::TNode<Number> tmp204;
727 : ca_.Bind(&block12, &tmp190, &tmp191, &tmp192, &tmp193, &tmp194, &tmp195, &tmp196, &tmp197, &tmp198, &tmp199, &tmp200, &tmp201, &tmp202, &tmp203, &tmp204);
728 56 : ca_.SetSourcePosition("../../src/builtins/string-endswith.tq", 82);
729 : compiler::TNode<Oddball> tmp205;
730 112 : tmp205 = TORQUE_CAST(CodeStubAssembler(state_).CallRuntime(Runtime::kStringCompareSequence, tmp190, tmp198, tmp199, tmp204));
731 : USE(tmp205);
732 56 : arguments.PopAndReturn(tmp205);
733 : }
734 56 : }
735 :
736 112 : compiler::TNode<Object> StringBuiltinsFromDSLAssembler::RequireObjectCoercible(compiler::TNode<Context> p_context, compiler::TNode<Object> p_argument) {
737 112 : compiler::CodeAssemblerParameterizedLabel<Context, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
738 : compiler::CodeAssemblerParameterizedLabel<Context, Object> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
739 : compiler::CodeAssemblerParameterizedLabel<Context, Object> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
740 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
741 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
742 : ca_.Goto(&block0, p_context, p_argument);
743 :
744 112 : if (block0.is_used()) {
745 : compiler::TNode<Context> tmp0;
746 : compiler::TNode<Object> tmp1;
747 : ca_.Bind(&block0, &tmp0, &tmp1);
748 112 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 14);
749 : compiler::TNode<BoolT> tmp2;
750 : USE(tmp2);
751 336 : tmp2 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).IsNullOrUndefined(compiler::TNode<Object>{tmp1}));
752 112 : ca_.Branch(tmp2, &block2, &block3, tmp0, tmp1);
753 : }
754 :
755 112 : if (block2.is_used()) {
756 : compiler::TNode<Context> tmp3;
757 : compiler::TNode<Object> tmp4;
758 : ca_.Bind(&block2, &tmp3, &tmp4);
759 112 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 15);
760 224 : CodeStubAssembler(state_).ThrowTypeError(compiler::TNode<Context>{tmp3}, MessageTemplate::kCalledOnNullOrUndefined, "String.prototype.startsWith");
761 : }
762 :
763 112 : if (block3.is_used()) {
764 : compiler::TNode<Context> tmp5;
765 : compiler::TNode<Object> tmp6;
766 : ca_.Bind(&block3, &tmp5, &tmp6);
767 112 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 17);
768 : ca_.Goto(&block1, tmp5, tmp6, tmp6);
769 : }
770 :
771 112 : if (block1.is_used()) {
772 : compiler::TNode<Context> tmp7;
773 : compiler::TNode<Object> tmp8;
774 : compiler::TNode<Object> tmp9;
775 : ca_.Bind(&block1, &tmp7, &tmp8, &tmp9);
776 112 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 12);
777 : ca_.Goto(&block4, tmp7, tmp8, tmp9);
778 : }
779 :
780 : compiler::TNode<Context> tmp10;
781 : compiler::TNode<Object> tmp11;
782 : compiler::TNode<Object> tmp12;
783 : ca_.Bind(&block4, &tmp10, &tmp11, &tmp12);
784 224 : return compiler::TNode<Object>{tmp12};
785 : }
786 :
787 224 : TF_BUILTIN(StringPrototypeStartsWith, CodeStubAssembler) {
788 56 : compiler::CodeAssemblerState* state_ = state(); compiler::CodeAssembler ca_(state());
789 : TNode<Context> parameter0 = UncheckedCast<Context>(Parameter(Descriptor::kContext));
790 : USE(parameter0);
791 : Node* argc = Parameter(Descriptor::kJSActualArgumentsCount);
792 56 : TNode<IntPtrT> arguments_length(ChangeInt32ToIntPtr(argc));
793 56 : TNode<RawPtrT> arguments_frame = UncheckedCast<RawPtrT>(LoadFramePointer());
794 56 : BaseBuiltinsFromDSLAssembler::Arguments torque_arguments(GetFrameArguments(arguments_frame, arguments_length));
795 : CodeStubArguments arguments(this, torque_arguments);
796 56 : TNode<Object> parameter1 = arguments.GetReceiver();
797 : USE(parameter1);
798 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
799 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
800 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
801 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String, String, Number, Number, Number, Smi, Number, Number> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
802 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String, String, Number, Number, Number, Smi, Number, Number> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
803 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String, String, Number, Number, Number, Smi> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
804 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String, String, Number, Number, Number, Smi> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
805 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String, String, Number, Number, Number, Smi, String, String, Number, Smi> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
806 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String, String, Number, Number, Number, Smi, String, String, Number, Smi, Oddball> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
807 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, Object, Object, String, String, Number, Number, Number, Smi> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
808 : ca_.Goto(&block0, parameter0, parameter1, torque_arguments.frame, torque_arguments.base, torque_arguments.length);
809 :
810 56 : if (block0.is_used()) {
811 : compiler::TNode<Context> tmp0;
812 : compiler::TNode<Object> tmp1;
813 : compiler::TNode<RawPtrT> tmp2;
814 : compiler::TNode<RawPtrT> tmp3;
815 : compiler::TNode<IntPtrT> tmp4;
816 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3, &tmp4);
817 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 23);
818 : compiler::TNode<IntPtrT> tmp5;
819 : USE(tmp5);
820 112 : tmp5 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(0));
821 : compiler::TNode<Object> tmp6;
822 : USE(tmp6);
823 112 : tmp6 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetArgumentValue(BaseBuiltinsFromDSLAssembler::Arguments{compiler::TNode<RawPtrT>{tmp2}, compiler::TNode<RawPtrT>{tmp3}, compiler::TNode<IntPtrT>{tmp4}}, compiler::TNode<IntPtrT>{tmp5}));
824 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 24);
825 : compiler::TNode<IntPtrT> tmp7;
826 : USE(tmp7);
827 112 : tmp7 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(1));
828 : compiler::TNode<Object> tmp8;
829 : USE(tmp8);
830 112 : tmp8 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetArgumentValue(BaseBuiltinsFromDSLAssembler::Arguments{compiler::TNode<RawPtrT>{tmp2}, compiler::TNode<RawPtrT>{tmp3}, compiler::TNode<IntPtrT>{tmp4}}, compiler::TNode<IntPtrT>{tmp7}));
831 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 27);
832 : compiler::TNode<Object> tmp9;
833 : USE(tmp9);
834 112 : tmp9 = ca_.UncheckedCast<Object>(StringBuiltinsFromDSLAssembler(state_).RequireObjectCoercible(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}));
835 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 30);
836 : compiler::TNode<String> tmp10;
837 : USE(tmp10);
838 168 : tmp10 = ca_.UncheckedCast<String>(CodeStubAssembler(state_).ToString_Inline(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp9}));
839 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 34);
840 : compiler::TNode<BoolT> tmp11;
841 : USE(tmp11);
842 112 : tmp11 = ca_.UncheckedCast<BoolT>(RegExpBuiltinsAssembler(state_).IsRegExp(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp6}));
843 56 : ca_.Branch(tmp11, &block1, &block2, tmp0, tmp1, tmp2, tmp3, tmp4, tmp6, tmp8, tmp9, tmp10);
844 : }
845 :
846 56 : if (block1.is_used()) {
847 : compiler::TNode<Context> tmp12;
848 : compiler::TNode<Object> tmp13;
849 : compiler::TNode<RawPtrT> tmp14;
850 : compiler::TNode<RawPtrT> tmp15;
851 : compiler::TNode<IntPtrT> tmp16;
852 : compiler::TNode<Object> tmp17;
853 : compiler::TNode<Object> tmp18;
854 : compiler::TNode<Object> tmp19;
855 : compiler::TNode<String> tmp20;
856 : ca_.Bind(&block1, &tmp12, &tmp13, &tmp14, &tmp15, &tmp16, &tmp17, &tmp18, &tmp19, &tmp20);
857 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 35);
858 112 : CodeStubAssembler(state_).ThrowTypeError(compiler::TNode<Context>{tmp12}, MessageTemplate::kFirstArgumentNotRegExp, "String.prototype.startsWith");
859 : }
860 :
861 56 : if (block2.is_used()) {
862 : compiler::TNode<Context> tmp21;
863 : compiler::TNode<Object> tmp22;
864 : compiler::TNode<RawPtrT> tmp23;
865 : compiler::TNode<RawPtrT> tmp24;
866 : compiler::TNode<IntPtrT> tmp25;
867 : compiler::TNode<Object> tmp26;
868 : compiler::TNode<Object> tmp27;
869 : compiler::TNode<Object> tmp28;
870 : compiler::TNode<String> tmp29;
871 : ca_.Bind(&block2, &tmp21, &tmp22, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27, &tmp28, &tmp29);
872 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 39);
873 : compiler::TNode<String> tmp30;
874 : USE(tmp30);
875 224 : tmp30 = ca_.UncheckedCast<String>(CodeStubAssembler(state_).ToString_Inline(compiler::TNode<Context>{tmp21}, compiler::TNode<Object>{tmp26}));
876 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 42);
877 : compiler::TNode<Number> tmp31;
878 : USE(tmp31);
879 224 : tmp31 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).ToInteger_Inline(compiler::TNode<Context>{tmp21}, compiler::TNode<Object>{tmp27}));
880 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 46);
881 : compiler::TNode<Smi> tmp32;
882 : USE(tmp32);
883 168 : tmp32 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).LoadStringLengthAsSmi(compiler::TNode<String>{tmp29}));
884 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 49);
885 : compiler::TNode<Number> tmp33;
886 : USE(tmp33);
887 112 : tmp33 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(0));
888 : compiler::TNode<Number> tmp34;
889 : USE(tmp34);
890 112 : tmp34 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberMax(compiler::TNode<Number>{tmp31}, compiler::TNode<Number>{tmp33}));
891 : compiler::TNode<Number> tmp35;
892 : USE(tmp35);
893 112 : tmp35 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberMin(compiler::TNode<Number>{tmp34}, compiler::TNode<Number>{tmp32}));
894 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 52);
895 : compiler::TNode<Smi> tmp36;
896 : USE(tmp36);
897 112 : tmp36 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).LoadStringLengthAsSmi(compiler::TNode<String>{tmp30}));
898 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 55);
899 : compiler::TNode<Number> tmp37;
900 : USE(tmp37);
901 112 : tmp37 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberAdd(compiler::TNode<Number>{tmp36}, compiler::TNode<Number>{tmp35}));
902 56 : compiler::CodeAssemblerLabel label0(&ca_);
903 56 : compiler::CodeAssemblerLabel label1(&ca_);
904 112 : CodeStubAssembler(state_).BranchIfNumberGreaterThan(compiler::TNode<Number>{tmp37}, compiler::TNode<Number>{tmp32}, &label0, &label1);
905 56 : if (label0.is_used()) {
906 56 : ca_.Bind(&label0);
907 : ca_.Goto(&block5, tmp21, tmp22, tmp23, tmp24, tmp25, tmp26, tmp27, tmp28, tmp29, tmp30, tmp31, tmp32, tmp35, tmp36, tmp37, tmp32);
908 : }
909 56 : if (label1.is_used()) {
910 56 : ca_.Bind(&label1);
911 : ca_.Goto(&block6, tmp21, tmp22, tmp23, tmp24, tmp25, tmp26, tmp27, tmp28, tmp29, tmp30, tmp31, tmp32, tmp35, tmp36, tmp37, tmp32);
912 : }
913 : }
914 :
915 56 : if (block5.is_used()) {
916 : compiler::TNode<Context> tmp38;
917 : compiler::TNode<Object> tmp39;
918 : compiler::TNode<RawPtrT> tmp40;
919 : compiler::TNode<RawPtrT> tmp41;
920 : compiler::TNode<IntPtrT> tmp42;
921 : compiler::TNode<Object> tmp43;
922 : compiler::TNode<Object> tmp44;
923 : compiler::TNode<Object> tmp45;
924 : compiler::TNode<String> tmp46;
925 : compiler::TNode<String> tmp47;
926 : compiler::TNode<Number> tmp48;
927 : compiler::TNode<Number> tmp49;
928 : compiler::TNode<Number> tmp50;
929 : compiler::TNode<Smi> tmp51;
930 : compiler::TNode<Number> tmp52;
931 : compiler::TNode<Number> tmp53;
932 : ca_.Bind(&block5, &tmp38, &tmp39, &tmp40, &tmp41, &tmp42, &tmp43, &tmp44, &tmp45, &tmp46, &tmp47, &tmp48, &tmp49, &tmp50, &tmp51, &tmp52, &tmp53);
933 : ca_.Goto(&block3, tmp38, tmp39, tmp40, tmp41, tmp42, tmp43, tmp44, tmp45, tmp46, tmp47, tmp48, tmp49, tmp50, tmp51);
934 : }
935 :
936 56 : if (block6.is_used()) {
937 : compiler::TNode<Context> tmp54;
938 : compiler::TNode<Object> tmp55;
939 : compiler::TNode<RawPtrT> tmp56;
940 : compiler::TNode<RawPtrT> tmp57;
941 : compiler::TNode<IntPtrT> tmp58;
942 : compiler::TNode<Object> tmp59;
943 : compiler::TNode<Object> tmp60;
944 : compiler::TNode<Object> tmp61;
945 : compiler::TNode<String> tmp62;
946 : compiler::TNode<String> tmp63;
947 : compiler::TNode<Number> tmp64;
948 : compiler::TNode<Number> tmp65;
949 : compiler::TNode<Number> tmp66;
950 : compiler::TNode<Smi> tmp67;
951 : compiler::TNode<Number> tmp68;
952 : compiler::TNode<Number> tmp69;
953 : ca_.Bind(&block6, &tmp54, &tmp55, &tmp56, &tmp57, &tmp58, &tmp59, &tmp60, &tmp61, &tmp62, &tmp63, &tmp64, &tmp65, &tmp66, &tmp67, &tmp68, &tmp69);
954 : ca_.Goto(&block4, tmp54, tmp55, tmp56, tmp57, tmp58, tmp59, tmp60, tmp61, tmp62, tmp63, tmp64, tmp65, tmp66, tmp67);
955 : }
956 :
957 56 : if (block3.is_used()) {
958 : compiler::TNode<Context> tmp70;
959 : compiler::TNode<Object> tmp71;
960 : compiler::TNode<RawPtrT> tmp72;
961 : compiler::TNode<RawPtrT> tmp73;
962 : compiler::TNode<IntPtrT> tmp74;
963 : compiler::TNode<Object> tmp75;
964 : compiler::TNode<Object> tmp76;
965 : compiler::TNode<Object> tmp77;
966 : compiler::TNode<String> tmp78;
967 : compiler::TNode<String> tmp79;
968 : compiler::TNode<Number> tmp80;
969 : compiler::TNode<Number> tmp81;
970 : compiler::TNode<Number> tmp82;
971 : compiler::TNode<Smi> tmp83;
972 : ca_.Bind(&block3, &tmp70, &tmp71, &tmp72, &tmp73, &tmp74, &tmp75, &tmp76, &tmp77, &tmp78, &tmp79, &tmp80, &tmp81, &tmp82, &tmp83);
973 : compiler::TNode<Oddball> tmp84;
974 : USE(tmp84);
975 112 : tmp84 = BaseBuiltinsFromDSLAssembler(state_).False();
976 56 : arguments.PopAndReturn(tmp84);
977 : }
978 :
979 56 : if (block4.is_used()) {
980 : compiler::TNode<Context> tmp85;
981 : compiler::TNode<Object> tmp86;
982 : compiler::TNode<RawPtrT> tmp87;
983 : compiler::TNode<RawPtrT> tmp88;
984 : compiler::TNode<IntPtrT> tmp89;
985 : compiler::TNode<Object> tmp90;
986 : compiler::TNode<Object> tmp91;
987 : compiler::TNode<Object> tmp92;
988 : compiler::TNode<String> tmp93;
989 : compiler::TNode<String> tmp94;
990 : compiler::TNode<Number> tmp95;
991 : compiler::TNode<Number> tmp96;
992 : compiler::TNode<Number> tmp97;
993 : compiler::TNode<Smi> tmp98;
994 : ca_.Bind(&block4, &tmp85, &tmp86, &tmp87, &tmp88, &tmp89, &tmp90, &tmp91, &tmp92, &tmp93, &tmp94, &tmp95, &tmp96, &tmp97, &tmp98);
995 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 64);
996 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 63);
997 : compiler::TNode<Oddball> tmp99;
998 : USE(tmp99);
999 56 : compiler::CodeAssemblerLabel label0(&ca_);
1000 112 : tmp99 = StringBuiltinsFromDSLAssembler(state_).TryFastStringCompareSequence(compiler::TNode<String>{tmp93}, compiler::TNode<String>{tmp94}, compiler::TNode<Number>{tmp97}, compiler::TNode<Smi>{tmp98}, &label0);
1001 : ca_.Goto(&block9, tmp85, tmp86, tmp87, tmp88, tmp89, tmp90, tmp91, tmp92, tmp93, tmp94, tmp95, tmp96, tmp97, tmp98, tmp93, tmp94, tmp97, tmp98, tmp99);
1002 56 : if (label0.is_used()) {
1003 56 : ca_.Bind(&label0);
1004 : ca_.Goto(&block10, tmp85, tmp86, tmp87, tmp88, tmp89, tmp90, tmp91, tmp92, tmp93, tmp94, tmp95, tmp96, tmp97, tmp98, tmp93, tmp94, tmp97, tmp98);
1005 : }
1006 : }
1007 :
1008 56 : if (block10.is_used()) {
1009 : compiler::TNode<Context> tmp100;
1010 : compiler::TNode<Object> tmp101;
1011 : compiler::TNode<RawPtrT> tmp102;
1012 : compiler::TNode<RawPtrT> tmp103;
1013 : compiler::TNode<IntPtrT> tmp104;
1014 : compiler::TNode<Object> tmp105;
1015 : compiler::TNode<Object> tmp106;
1016 : compiler::TNode<Object> tmp107;
1017 : compiler::TNode<String> tmp108;
1018 : compiler::TNode<String> tmp109;
1019 : compiler::TNode<Number> tmp110;
1020 : compiler::TNode<Number> tmp111;
1021 : compiler::TNode<Number> tmp112;
1022 : compiler::TNode<Smi> tmp113;
1023 : compiler::TNode<String> tmp114;
1024 : compiler::TNode<String> tmp115;
1025 : compiler::TNode<Number> tmp116;
1026 : compiler::TNode<Smi> tmp117;
1027 : ca_.Bind(&block10, &tmp100, &tmp101, &tmp102, &tmp103, &tmp104, &tmp105, &tmp106, &tmp107, &tmp108, &tmp109, &tmp110, &tmp111, &tmp112, &tmp113, &tmp114, &tmp115, &tmp116, &tmp117);
1028 : ca_.Goto(&block8, tmp100, tmp101, tmp102, tmp103, tmp104, tmp105, tmp106, tmp107, tmp108, tmp109, tmp110, tmp111, tmp112, tmp113);
1029 : }
1030 :
1031 56 : if (block9.is_used()) {
1032 : compiler::TNode<Context> tmp118;
1033 : compiler::TNode<Object> tmp119;
1034 : compiler::TNode<RawPtrT> tmp120;
1035 : compiler::TNode<RawPtrT> tmp121;
1036 : compiler::TNode<IntPtrT> tmp122;
1037 : compiler::TNode<Object> tmp123;
1038 : compiler::TNode<Object> tmp124;
1039 : compiler::TNode<Object> tmp125;
1040 : compiler::TNode<String> tmp126;
1041 : compiler::TNode<String> tmp127;
1042 : compiler::TNode<Number> tmp128;
1043 : compiler::TNode<Number> tmp129;
1044 : compiler::TNode<Number> tmp130;
1045 : compiler::TNode<Smi> tmp131;
1046 : compiler::TNode<String> tmp132;
1047 : compiler::TNode<String> tmp133;
1048 : compiler::TNode<Number> tmp134;
1049 : compiler::TNode<Smi> tmp135;
1050 : compiler::TNode<Oddball> tmp136;
1051 : ca_.Bind(&block9, &tmp118, &tmp119, &tmp120, &tmp121, &tmp122, &tmp123, &tmp124, &tmp125, &tmp126, &tmp127, &tmp128, &tmp129, &tmp130, &tmp131, &tmp132, &tmp133, &tmp134, &tmp135, &tmp136);
1052 56 : arguments.PopAndReturn(tmp136);
1053 : }
1054 :
1055 56 : if (block8.is_used()) {
1056 : compiler::TNode<Context> tmp137;
1057 : compiler::TNode<Object> tmp138;
1058 : compiler::TNode<RawPtrT> tmp139;
1059 : compiler::TNode<RawPtrT> tmp140;
1060 : compiler::TNode<IntPtrT> tmp141;
1061 : compiler::TNode<Object> tmp142;
1062 : compiler::TNode<Object> tmp143;
1063 : compiler::TNode<Object> tmp144;
1064 : compiler::TNode<String> tmp145;
1065 : compiler::TNode<String> tmp146;
1066 : compiler::TNode<Number> tmp147;
1067 : compiler::TNode<Number> tmp148;
1068 : compiler::TNode<Number> tmp149;
1069 : compiler::TNode<Smi> tmp150;
1070 : ca_.Bind(&block8, &tmp137, &tmp138, &tmp139, &tmp140, &tmp141, &tmp142, &tmp143, &tmp144, &tmp145, &tmp146, &tmp147, &tmp148, &tmp149, &tmp150);
1071 56 : ca_.SetSourcePosition("../../src/builtins/string-startswith.tq", 68);
1072 : compiler::TNode<Oddball> tmp151;
1073 112 : tmp151 = TORQUE_CAST(CodeStubAssembler(state_).CallRuntime(Runtime::kStringCompareSequence, tmp137, tmp145, tmp146, tmp149));
1074 : USE(tmp151);
1075 56 : arguments.PopAndReturn(tmp151);
1076 : }
1077 56 : }
1078 :
1079 : } // namespace internal
1080 59456 : } // namespace v8
1081 :
|