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<Object> ArrayShiftBuiltinsFromDSLAssembler::TryFastArrayShift(compiler::TNode<Context> p_context, compiler::TNode<Object> p_receiver, BaseBuiltinsFromDSLAssembler::Arguments p_arguments, compiler::CodeAssemblerLabel* label_Slow) {
84 56 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
85 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
86 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, JSArray> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
87 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Context, Map> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
88 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Context, Map, Int32T> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
89 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Context> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
90 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
91 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
92 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
93 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
94 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi> block14(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
95 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi> block15(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
96 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Context, Smi, Smi, Context, Smi> block20(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
97 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Context, Smi, Smi, Context, Smi, JSArray, Smi> block24(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
98 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Context, Smi, Smi, Context, Smi, JSArray, Smi, Object> block23(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
99 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Context, Smi, Smi, Context, Smi> block21(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
100 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Context, Smi, Smi, Context, Smi, JSArray, Smi> block26(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
101 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Context, Smi, Smi, Context, Smi, JSArray, Smi, Object> block25(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
102 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Context, Smi, Smi, Context, Smi, Object> block19(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
103 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Context, Smi> block18(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
104 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Context, Smi, Object> block16(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
105 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Object, Smi, Smi> block27(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
106 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Object, IntPtrT, IntPtrT, IntPtrT, IntPtrT> block29(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
107 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Object, IntPtrT, IntPtrT, IntPtrT, IntPtrT, FixedArrayBase> block35(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
108 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Object, IntPtrT, IntPtrT, IntPtrT, IntPtrT, FixedArrayBase, FixedDoubleArray> block34(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
109 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Object, IntPtrT, IntPtrT, IntPtrT, IntPtrT> block33(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
110 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Object, IntPtrT, IntPtrT, IntPtrT, IntPtrT, FixedDoubleArray> block32(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
111 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Object, IntPtrT, IntPtrT, IntPtrT, IntPtrT> block30(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
112 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Object, IntPtrT, IntPtrT, IntPtrT, IntPtrT, FixedArrayBase> block39(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
113 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Object, IntPtrT, IntPtrT, IntPtrT, IntPtrT, FixedArrayBase, FixedArray> block38(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
114 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Object, IntPtrT, IntPtrT, IntPtrT, IntPtrT> block37(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
115 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Object, IntPtrT, IntPtrT, IntPtrT, IntPtrT, FixedArray> block36(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
116 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Object, IntPtrT, IntPtrT, IntPtrT, IntPtrT, FixedArray> block40(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
117 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Object, IntPtrT, IntPtrT, IntPtrT, IntPtrT, FixedArray> block41(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
118 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Object, IntPtrT, IntPtrT, IntPtrT, IntPtrT, FixedArray> block42(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
119 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Object, IntPtrT, IntPtrT, IntPtrT, IntPtrT> block31(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
120 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT, Smi, Object, IntPtrT, IntPtrT, IntPtrT, IntPtrT> block28(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
121 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, JSArray, JSArray, Map, BoolT, BoolT, BoolT> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
122 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
123 : compiler::CodeAssemblerParameterizedLabel<> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
124 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object> block43(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
125 : ca_.Goto(&block0, p_context, p_receiver, p_arguments.frame, p_arguments.base, p_arguments.length);
126 :
127 56 : if (block0.is_used()) {
128 : compiler::TNode<Context> tmp0;
129 : compiler::TNode<Object> tmp1;
130 : compiler::TNode<RawPtrT> tmp2;
131 : compiler::TNode<RawPtrT> tmp3;
132 : compiler::TNode<IntPtrT> tmp4;
133 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3, &tmp4);
134 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 11);
135 : compiler::TNode<JSArray> tmp5;
136 : USE(tmp5);
137 56 : compiler::CodeAssemblerLabel label0(&ca_);
138 168 : tmp5 = BaseBuiltinsFromDSLAssembler(state_).Cast13ATFastJSArray(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}, &label0);
139 : ca_.Goto(&block3, tmp0, tmp1, tmp2, tmp3, tmp4, tmp1, tmp5);
140 56 : if (label0.is_used()) {
141 56 : ca_.Bind(&label0);
142 : ca_.Goto(&block4, tmp0, tmp1, tmp2, tmp3, tmp4, tmp1);
143 : }
144 : }
145 :
146 56 : if (block4.is_used()) {
147 : compiler::TNode<Context> tmp6;
148 : compiler::TNode<Object> tmp7;
149 : compiler::TNode<RawPtrT> tmp8;
150 : compiler::TNode<RawPtrT> tmp9;
151 : compiler::TNode<IntPtrT> tmp10;
152 : compiler::TNode<Object> tmp11;
153 : ca_.Bind(&block4, &tmp6, &tmp7, &tmp8, &tmp9, &tmp10, &tmp11);
154 : ca_.Goto(&block1);
155 : }
156 :
157 56 : if (block3.is_used()) {
158 : compiler::TNode<Context> tmp12;
159 : compiler::TNode<Object> tmp13;
160 : compiler::TNode<RawPtrT> tmp14;
161 : compiler::TNode<RawPtrT> tmp15;
162 : compiler::TNode<IntPtrT> tmp16;
163 : compiler::TNode<Object> tmp17;
164 : compiler::TNode<JSArray> tmp18;
165 : ca_.Bind(&block3, &tmp12, &tmp13, &tmp14, &tmp15, &tmp16, &tmp17, &tmp18);
166 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 12);
167 : compiler::TNode<JSArray> tmp19;
168 : USE(tmp19);
169 : compiler::TNode<JSArray> tmp20;
170 : USE(tmp20);
171 : compiler::TNode<Map> tmp21;
172 : USE(tmp21);
173 : compiler::TNode<BoolT> tmp22;
174 : USE(tmp22);
175 : compiler::TNode<BoolT> tmp23;
176 : USE(tmp23);
177 : compiler::TNode<BoolT> tmp24;
178 : USE(tmp24);
179 224 : std::tie(tmp19, tmp20, tmp21, tmp22, tmp23, tmp24) = BaseBuiltinsFromDSLAssembler(state_).NewFastJSArrayWitness(compiler::TNode<JSArray>{tmp18}).Flatten();
180 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 14);
181 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2198);
182 : compiler::TNode<Int32T> tmp25;
183 : USE(tmp25);
184 56 : compiler::CodeAssemblerLabel label0(&ca_);
185 112 : tmp25 = CodeStubAssembler(state_).EnsureArrayPushable(compiler::TNode<Map>{tmp21}, &label0);
186 : ca_.Goto(&block6, tmp12, tmp13, tmp14, tmp15, tmp16, tmp18, tmp19, tmp20, tmp21, tmp22, tmp23, tmp24, tmp12, tmp21, tmp25);
187 56 : if (label0.is_used()) {
188 56 : ca_.Bind(&label0);
189 : ca_.Goto(&block7, tmp12, tmp13, tmp14, tmp15, tmp16, tmp18, tmp19, tmp20, tmp21, tmp22, tmp23, tmp24, tmp12, tmp21);
190 : }
191 : }
192 :
193 56 : if (block7.is_used()) {
194 : compiler::TNode<Context> tmp26;
195 : compiler::TNode<Object> tmp27;
196 : compiler::TNode<RawPtrT> tmp28;
197 : compiler::TNode<RawPtrT> tmp29;
198 : compiler::TNode<IntPtrT> tmp30;
199 : compiler::TNode<JSArray> tmp31;
200 : compiler::TNode<JSArray> tmp32;
201 : compiler::TNode<JSArray> tmp33;
202 : compiler::TNode<Map> tmp34;
203 : compiler::TNode<BoolT> tmp35;
204 : compiler::TNode<BoolT> tmp36;
205 : compiler::TNode<BoolT> tmp37;
206 : compiler::TNode<Context> tmp38;
207 : compiler::TNode<Map> tmp39;
208 : ca_.Bind(&block7, &tmp26, &tmp27, &tmp28, &tmp29, &tmp30, &tmp31, &tmp32, &tmp33, &tmp34, &tmp35, &tmp36, &tmp37, &tmp38, &tmp39);
209 : ca_.Goto(&block1);
210 : }
211 :
212 56 : if (block6.is_used()) {
213 : compiler::TNode<Context> tmp40;
214 : compiler::TNode<Object> tmp41;
215 : compiler::TNode<RawPtrT> tmp42;
216 : compiler::TNode<RawPtrT> tmp43;
217 : compiler::TNode<IntPtrT> tmp44;
218 : compiler::TNode<JSArray> tmp45;
219 : compiler::TNode<JSArray> tmp46;
220 : compiler::TNode<JSArray> tmp47;
221 : compiler::TNode<Map> tmp48;
222 : compiler::TNode<BoolT> tmp49;
223 : compiler::TNode<BoolT> tmp50;
224 : compiler::TNode<BoolT> tmp51;
225 : compiler::TNode<Context> tmp52;
226 : compiler::TNode<Map> tmp53;
227 : compiler::TNode<Int32T> tmp54;
228 : ca_.Bind(&block6, &tmp40, &tmp41, &tmp42, &tmp43, &tmp44, &tmp45, &tmp46, &tmp47, &tmp48, &tmp49, &tmp50, &tmp51, &tmp52, &tmp53, &tmp54);
229 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2199);
230 168 : ArrayBuiltinsFromDSLAssembler(state_).EnsureWriteableFastElements(compiler::TNode<Context>{tmp52}, compiler::TNode<JSArray>{tmp47});
231 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2200);
232 : compiler::TNode<BoolT> tmp55;
233 : USE(tmp55);
234 168 : tmp55 = ca_.UncheckedCast<BoolT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr6ATbool16ATconstexpr_bool(true));
235 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 14);
236 : ca_.Goto(&block5, tmp40, tmp41, tmp42, tmp43, tmp44, tmp45, tmp46, tmp47, tmp48, tmp49, tmp50, tmp55, tmp52);
237 : }
238 :
239 56 : if (block5.is_used()) {
240 : compiler::TNode<Context> tmp56;
241 : compiler::TNode<Object> tmp57;
242 : compiler::TNode<RawPtrT> tmp58;
243 : compiler::TNode<RawPtrT> tmp59;
244 : compiler::TNode<IntPtrT> tmp60;
245 : compiler::TNode<JSArray> tmp61;
246 : compiler::TNode<JSArray> tmp62;
247 : compiler::TNode<JSArray> tmp63;
248 : compiler::TNode<Map> tmp64;
249 : compiler::TNode<BoolT> tmp65;
250 : compiler::TNode<BoolT> tmp66;
251 : compiler::TNode<BoolT> tmp67;
252 : compiler::TNode<Context> tmp68;
253 : ca_.Bind(&block5, &tmp56, &tmp57, &tmp58, &tmp59, &tmp60, &tmp61, &tmp62, &tmp63, &tmp64, &tmp65, &tmp66, &tmp67, &tmp68);
254 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 16);
255 : compiler::TNode<Smi> tmp69;
256 : USE(tmp69);
257 168 : tmp69 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).LoadFastJSArrayLength(compiler::TNode<JSArray>{tmp61}));
258 : compiler::TNode<Smi> tmp70;
259 : USE(tmp70);
260 168 : tmp70 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(0));
261 : compiler::TNode<BoolT> tmp71;
262 : USE(tmp71);
263 112 : tmp71 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiEqual(compiler::TNode<Smi>{tmp69}, compiler::TNode<Smi>{tmp70}));
264 56 : ca_.Branch(tmp71, &block8, &block9, tmp56, tmp57, tmp58, tmp59, tmp60, tmp61, tmp62, tmp63, tmp64, tmp65, tmp66, tmp67);
265 : }
266 :
267 56 : if (block8.is_used()) {
268 : compiler::TNode<Context> tmp72;
269 : compiler::TNode<Object> tmp73;
270 : compiler::TNode<RawPtrT> tmp74;
271 : compiler::TNode<RawPtrT> tmp75;
272 : compiler::TNode<IntPtrT> tmp76;
273 : compiler::TNode<JSArray> tmp77;
274 : compiler::TNode<JSArray> tmp78;
275 : compiler::TNode<JSArray> tmp79;
276 : compiler::TNode<Map> tmp80;
277 : compiler::TNode<BoolT> tmp81;
278 : compiler::TNode<BoolT> tmp82;
279 : compiler::TNode<BoolT> tmp83;
280 : ca_.Bind(&block8, &tmp72, &tmp73, &tmp74, &tmp75, &tmp76, &tmp77, &tmp78, &tmp79, &tmp80, &tmp81, &tmp82, &tmp83);
281 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 17);
282 : compiler::TNode<Oddball> tmp84;
283 : USE(tmp84);
284 168 : tmp84 = BaseBuiltinsFromDSLAssembler(state_).Undefined();
285 : ca_.Goto(&block2, tmp72, tmp73, tmp74, tmp75, tmp76, tmp84);
286 : }
287 :
288 56 : if (block9.is_used()) {
289 : compiler::TNode<Context> tmp85;
290 : compiler::TNode<Object> tmp86;
291 : compiler::TNode<RawPtrT> tmp87;
292 : compiler::TNode<RawPtrT> tmp88;
293 : compiler::TNode<IntPtrT> tmp89;
294 : compiler::TNode<JSArray> tmp90;
295 : compiler::TNode<JSArray> tmp91;
296 : compiler::TNode<JSArray> tmp92;
297 : compiler::TNode<Map> tmp93;
298 : compiler::TNode<BoolT> tmp94;
299 : compiler::TNode<BoolT> tmp95;
300 : compiler::TNode<BoolT> tmp96;
301 : ca_.Bind(&block9, &tmp85, &tmp86, &tmp87, &tmp88, &tmp89, &tmp90, &tmp91, &tmp92, &tmp93, &tmp94, &tmp95, &tmp96);
302 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 21);
303 : compiler::TNode<Smi> tmp97;
304 : USE(tmp97);
305 168 : tmp97 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).LoadFastJSArrayLength(compiler::TNode<JSArray>{tmp90}));
306 : compiler::TNode<Smi> tmp98;
307 : USE(tmp98);
308 168 : tmp98 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
309 : compiler::TNode<Smi> tmp99;
310 : USE(tmp99);
311 112 : tmp99 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiSub(compiler::TNode<Smi>{tmp97}, compiler::TNode<Smi>{tmp98}));
312 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 25);
313 : compiler::TNode<Smi> tmp100;
314 : USE(tmp100);
315 112 : tmp100 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiAdd(compiler::TNode<Smi>{tmp99}, compiler::TNode<Smi>{tmp99}));
316 : compiler::TNode<Smi> tmp101;
317 : USE(tmp101);
318 168 : tmp101 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(JSObject::kMinAddedElementsCapacity));
319 : compiler::TNode<Smi> tmp102;
320 : USE(tmp102);
321 112 : tmp102 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiAdd(compiler::TNode<Smi>{tmp100}, compiler::TNode<Smi>{tmp101}));
322 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 26);
323 56 : compiler::TNode<IntPtrT> tmp103 = ca_.IntPtrConstant(JSObject::kElementsOffset);
324 : USE(tmp103);
325 112 : compiler::TNode<FixedArrayBase>tmp104 = CodeStubAssembler(state_).LoadReference<FixedArrayBase>(CodeStubAssembler::Reference{tmp90, tmp103});
326 56 : compiler::TNode<IntPtrT> tmp105 = ca_.IntPtrConstant(FixedArrayBase::kLengthOffset);
327 : USE(tmp105);
328 168 : compiler::TNode<Smi>tmp106 = CodeStubAssembler(state_).LoadReference<Smi>(CodeStubAssembler::Reference{tmp104, tmp105});
329 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 25);
330 : compiler::TNode<BoolT> tmp107;
331 : USE(tmp107);
332 112 : tmp107 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiLessThan(compiler::TNode<Smi>{tmp102}, compiler::TNode<Smi>{tmp106}));
333 56 : ca_.Branch(tmp107, &block12, &block13, tmp85, tmp86, tmp87, tmp88, tmp89, tmp90, tmp91, tmp92, tmp93, tmp94, tmp95, tmp96, tmp99);
334 : }
335 :
336 56 : if (block12.is_used()) {
337 : compiler::TNode<Context> tmp108;
338 : compiler::TNode<Object> tmp109;
339 : compiler::TNode<RawPtrT> tmp110;
340 : compiler::TNode<RawPtrT> tmp111;
341 : compiler::TNode<IntPtrT> tmp112;
342 : compiler::TNode<JSArray> tmp113;
343 : compiler::TNode<JSArray> tmp114;
344 : compiler::TNode<JSArray> tmp115;
345 : compiler::TNode<Map> tmp116;
346 : compiler::TNode<BoolT> tmp117;
347 : compiler::TNode<BoolT> tmp118;
348 : compiler::TNode<BoolT> tmp119;
349 : compiler::TNode<Smi> tmp120;
350 : ca_.Bind(&block12, &tmp108, &tmp109, &tmp110, &tmp111, &tmp112, &tmp113, &tmp114, &tmp115, &tmp116, &tmp117, &tmp118, &tmp119, &tmp120);
351 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 27);
352 : ca_.Goto(&block11, tmp108, tmp109, tmp110, tmp111, tmp112, tmp113, tmp114, tmp115, tmp116, tmp117, tmp118, tmp119);
353 : }
354 :
355 56 : if (block13.is_used()) {
356 : compiler::TNode<Context> tmp121;
357 : compiler::TNode<Object> tmp122;
358 : compiler::TNode<RawPtrT> tmp123;
359 : compiler::TNode<RawPtrT> tmp124;
360 : compiler::TNode<IntPtrT> tmp125;
361 : compiler::TNode<JSArray> tmp126;
362 : compiler::TNode<JSArray> tmp127;
363 : compiler::TNode<JSArray> tmp128;
364 : compiler::TNode<Map> tmp129;
365 : compiler::TNode<BoolT> tmp130;
366 : compiler::TNode<BoolT> tmp131;
367 : compiler::TNode<BoolT> tmp132;
368 : compiler::TNode<Smi> tmp133;
369 : ca_.Bind(&block13, &tmp121, &tmp122, &tmp123, &tmp124, &tmp125, &tmp126, &tmp127, &tmp128, &tmp129, &tmp130, &tmp131, &tmp132, &tmp133);
370 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 32);
371 : compiler::TNode<Smi> tmp134;
372 : USE(tmp134);
373 168 : tmp134 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(JSArray::kMaxCopyElements));
374 : compiler::TNode<BoolT> tmp135;
375 : USE(tmp135);
376 112 : tmp135 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiGreaterThan(compiler::TNode<Smi>{tmp133}, compiler::TNode<Smi>{tmp134}));
377 56 : ca_.Branch(tmp135, &block14, &block15, tmp121, tmp122, tmp123, tmp124, tmp125, tmp126, tmp127, tmp128, tmp129, tmp130, tmp131, tmp132, tmp133);
378 : }
379 :
380 56 : if (block14.is_used()) {
381 : compiler::TNode<Context> tmp136;
382 : compiler::TNode<Object> tmp137;
383 : compiler::TNode<RawPtrT> tmp138;
384 : compiler::TNode<RawPtrT> tmp139;
385 : compiler::TNode<IntPtrT> tmp140;
386 : compiler::TNode<JSArray> tmp141;
387 : compiler::TNode<JSArray> tmp142;
388 : compiler::TNode<JSArray> tmp143;
389 : compiler::TNode<Map> tmp144;
390 : compiler::TNode<BoolT> tmp145;
391 : compiler::TNode<BoolT> tmp146;
392 : compiler::TNode<BoolT> tmp147;
393 : compiler::TNode<Smi> tmp148;
394 : ca_.Bind(&block14, &tmp136, &tmp137, &tmp138, &tmp139, &tmp140, &tmp141, &tmp142, &tmp143, &tmp144, &tmp145, &tmp146, &tmp147, &tmp148);
395 : ca_.Goto(&block11, tmp136, tmp137, tmp138, tmp139, tmp140, tmp141, tmp142, tmp143, tmp144, tmp145, tmp146, tmp147);
396 : }
397 :
398 56 : if (block15.is_used()) {
399 : compiler::TNode<Context> tmp149;
400 : compiler::TNode<Object> tmp150;
401 : compiler::TNode<RawPtrT> tmp151;
402 : compiler::TNode<RawPtrT> tmp152;
403 : compiler::TNode<IntPtrT> tmp153;
404 : compiler::TNode<JSArray> tmp154;
405 : compiler::TNode<JSArray> tmp155;
406 : compiler::TNode<JSArray> tmp156;
407 : compiler::TNode<Map> tmp157;
408 : compiler::TNode<BoolT> tmp158;
409 : compiler::TNode<BoolT> tmp159;
410 : compiler::TNode<BoolT> tmp160;
411 : compiler::TNode<Smi> tmp161;
412 : ca_.Bind(&block15, &tmp149, &tmp150, &tmp151, &tmp152, &tmp153, &tmp154, &tmp155, &tmp156, &tmp157, &tmp158, &tmp159, &tmp160, &tmp161);
413 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 34);
414 : compiler::TNode<Smi> tmp162;
415 : USE(tmp162);
416 168 : tmp162 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(0));
417 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2190);
418 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2179);
419 56 : ca_.Branch(tmp158, &block20, &block21, tmp149, tmp150, tmp151, tmp152, tmp153, tmp154, tmp155, tmp156, tmp157, tmp158, tmp159, tmp160, tmp161, tmp149, tmp162, tmp162, tmp149, tmp162);
420 : }
421 :
422 56 : if (block20.is_used()) {
423 : compiler::TNode<Context> tmp163;
424 : compiler::TNode<Object> tmp164;
425 : compiler::TNode<RawPtrT> tmp165;
426 : compiler::TNode<RawPtrT> tmp166;
427 : compiler::TNode<IntPtrT> tmp167;
428 : compiler::TNode<JSArray> tmp168;
429 : compiler::TNode<JSArray> tmp169;
430 : compiler::TNode<JSArray> tmp170;
431 : compiler::TNode<Map> tmp171;
432 : compiler::TNode<BoolT> tmp172;
433 : compiler::TNode<BoolT> tmp173;
434 : compiler::TNode<BoolT> tmp174;
435 : compiler::TNode<Smi> tmp175;
436 : compiler::TNode<Context> tmp176;
437 : compiler::TNode<Smi> tmp177;
438 : compiler::TNode<Smi> tmp178;
439 : compiler::TNode<Context> tmp179;
440 : compiler::TNode<Smi> tmp180;
441 : ca_.Bind(&block20, &tmp163, &tmp164, &tmp165, &tmp166, &tmp167, &tmp168, &tmp169, &tmp170, &tmp171, &tmp172, &tmp173, &tmp174, &tmp175, &tmp176, &tmp177, &tmp178, &tmp179, &tmp180);
442 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2180);
443 : compiler::TNode<Object> tmp181;
444 : USE(tmp181);
445 56 : compiler::CodeAssemblerLabel label0(&ca_);
446 168 : tmp181 = BaseBuiltinsFromDSLAssembler(state_).LoadElementNoHole16FixedDoubleArray(compiler::TNode<Context>{tmp179}, compiler::TNode<JSArray>{tmp170}, compiler::TNode<Smi>{tmp180}, &label0);
447 : ca_.Goto(&block23, tmp163, tmp164, tmp165, tmp166, tmp167, tmp168, tmp169, tmp170, tmp171, tmp172, tmp173, tmp174, tmp175, tmp176, tmp177, tmp178, tmp179, tmp180, tmp170, tmp180, tmp181);
448 56 : if (label0.is_used()) {
449 56 : ca_.Bind(&label0);
450 : ca_.Goto(&block24, tmp163, tmp164, tmp165, tmp166, tmp167, tmp168, tmp169, tmp170, tmp171, tmp172, tmp173, tmp174, tmp175, tmp176, tmp177, tmp178, tmp179, tmp180, tmp170, tmp180);
451 : }
452 : }
453 :
454 56 : if (block24.is_used()) {
455 : compiler::TNode<Context> tmp182;
456 : compiler::TNode<Object> tmp183;
457 : compiler::TNode<RawPtrT> tmp184;
458 : compiler::TNode<RawPtrT> tmp185;
459 : compiler::TNode<IntPtrT> tmp186;
460 : compiler::TNode<JSArray> tmp187;
461 : compiler::TNode<JSArray> tmp188;
462 : compiler::TNode<JSArray> tmp189;
463 : compiler::TNode<Map> tmp190;
464 : compiler::TNode<BoolT> tmp191;
465 : compiler::TNode<BoolT> tmp192;
466 : compiler::TNode<BoolT> tmp193;
467 : compiler::TNode<Smi> tmp194;
468 : compiler::TNode<Context> tmp195;
469 : compiler::TNode<Smi> tmp196;
470 : compiler::TNode<Smi> tmp197;
471 : compiler::TNode<Context> tmp198;
472 : compiler::TNode<Smi> tmp199;
473 : compiler::TNode<JSArray> tmp200;
474 : compiler::TNode<Smi> tmp201;
475 : ca_.Bind(&block24, &tmp182, &tmp183, &tmp184, &tmp185, &tmp186, &tmp187, &tmp188, &tmp189, &tmp190, &tmp191, &tmp192, &tmp193, &tmp194, &tmp195, &tmp196, &tmp197, &tmp198, &tmp199, &tmp200, &tmp201);
476 : ca_.Goto(&block18, tmp182, tmp183, tmp184, tmp185, tmp186, tmp187, tmp188, tmp189, tmp190, tmp191, tmp192, tmp193, tmp194, tmp195, tmp196);
477 : }
478 :
479 56 : if (block23.is_used()) {
480 : compiler::TNode<Context> tmp202;
481 : compiler::TNode<Object> tmp203;
482 : compiler::TNode<RawPtrT> tmp204;
483 : compiler::TNode<RawPtrT> tmp205;
484 : compiler::TNode<IntPtrT> tmp206;
485 : compiler::TNode<JSArray> tmp207;
486 : compiler::TNode<JSArray> tmp208;
487 : compiler::TNode<JSArray> tmp209;
488 : compiler::TNode<Map> tmp210;
489 : compiler::TNode<BoolT> tmp211;
490 : compiler::TNode<BoolT> tmp212;
491 : compiler::TNode<BoolT> tmp213;
492 : compiler::TNode<Smi> tmp214;
493 : compiler::TNode<Context> tmp215;
494 : compiler::TNode<Smi> tmp216;
495 : compiler::TNode<Smi> tmp217;
496 : compiler::TNode<Context> tmp218;
497 : compiler::TNode<Smi> tmp219;
498 : compiler::TNode<JSArray> tmp220;
499 : compiler::TNode<Smi> tmp221;
500 : compiler::TNode<Object> tmp222;
501 : ca_.Bind(&block23, &tmp202, &tmp203, &tmp204, &tmp205, &tmp206, &tmp207, &tmp208, &tmp209, &tmp210, &tmp211, &tmp212, &tmp213, &tmp214, &tmp215, &tmp216, &tmp217, &tmp218, &tmp219, &tmp220, &tmp221, &tmp222);
502 : ca_.Goto(&block19, tmp202, tmp203, tmp204, tmp205, tmp206, tmp207, tmp208, tmp209, tmp210, tmp211, tmp212, tmp213, tmp214, tmp215, tmp216, tmp217, tmp218, tmp219, tmp222);
503 : }
504 :
505 56 : if (block21.is_used()) {
506 : compiler::TNode<Context> tmp223;
507 : compiler::TNode<Object> tmp224;
508 : compiler::TNode<RawPtrT> tmp225;
509 : compiler::TNode<RawPtrT> tmp226;
510 : compiler::TNode<IntPtrT> tmp227;
511 : compiler::TNode<JSArray> tmp228;
512 : compiler::TNode<JSArray> tmp229;
513 : compiler::TNode<JSArray> tmp230;
514 : compiler::TNode<Map> tmp231;
515 : compiler::TNode<BoolT> tmp232;
516 : compiler::TNode<BoolT> tmp233;
517 : compiler::TNode<BoolT> tmp234;
518 : compiler::TNode<Smi> tmp235;
519 : compiler::TNode<Context> tmp236;
520 : compiler::TNode<Smi> tmp237;
521 : compiler::TNode<Smi> tmp238;
522 : compiler::TNode<Context> tmp239;
523 : compiler::TNode<Smi> tmp240;
524 : ca_.Bind(&block21, &tmp223, &tmp224, &tmp225, &tmp226, &tmp227, &tmp228, &tmp229, &tmp230, &tmp231, &tmp232, &tmp233, &tmp234, &tmp235, &tmp236, &tmp237, &tmp238, &tmp239, &tmp240);
525 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2183);
526 : compiler::TNode<Object> tmp241;
527 : USE(tmp241);
528 56 : compiler::CodeAssemblerLabel label0(&ca_);
529 168 : tmp241 = BaseBuiltinsFromDSLAssembler(state_).LoadElementNoHole10FixedArray(compiler::TNode<Context>{tmp239}, compiler::TNode<JSArray>{tmp230}, compiler::TNode<Smi>{tmp240}, &label0);
530 : ca_.Goto(&block25, tmp223, tmp224, tmp225, tmp226, tmp227, tmp228, tmp229, tmp230, tmp231, tmp232, tmp233, tmp234, tmp235, tmp236, tmp237, tmp238, tmp239, tmp240, tmp230, tmp240, tmp241);
531 56 : if (label0.is_used()) {
532 56 : ca_.Bind(&label0);
533 : ca_.Goto(&block26, tmp223, tmp224, tmp225, tmp226, tmp227, tmp228, tmp229, tmp230, tmp231, tmp232, tmp233, tmp234, tmp235, tmp236, tmp237, tmp238, tmp239, tmp240, tmp230, tmp240);
534 : }
535 : }
536 :
537 56 : if (block26.is_used()) {
538 : compiler::TNode<Context> tmp242;
539 : compiler::TNode<Object> tmp243;
540 : compiler::TNode<RawPtrT> tmp244;
541 : compiler::TNode<RawPtrT> tmp245;
542 : compiler::TNode<IntPtrT> tmp246;
543 : compiler::TNode<JSArray> tmp247;
544 : compiler::TNode<JSArray> tmp248;
545 : compiler::TNode<JSArray> tmp249;
546 : compiler::TNode<Map> tmp250;
547 : compiler::TNode<BoolT> tmp251;
548 : compiler::TNode<BoolT> tmp252;
549 : compiler::TNode<BoolT> tmp253;
550 : compiler::TNode<Smi> tmp254;
551 : compiler::TNode<Context> tmp255;
552 : compiler::TNode<Smi> tmp256;
553 : compiler::TNode<Smi> tmp257;
554 : compiler::TNode<Context> tmp258;
555 : compiler::TNode<Smi> tmp259;
556 : compiler::TNode<JSArray> tmp260;
557 : compiler::TNode<Smi> tmp261;
558 : ca_.Bind(&block26, &tmp242, &tmp243, &tmp244, &tmp245, &tmp246, &tmp247, &tmp248, &tmp249, &tmp250, &tmp251, &tmp252, &tmp253, &tmp254, &tmp255, &tmp256, &tmp257, &tmp258, &tmp259, &tmp260, &tmp261);
559 : ca_.Goto(&block18, tmp242, tmp243, tmp244, tmp245, tmp246, tmp247, tmp248, tmp249, tmp250, tmp251, tmp252, tmp253, tmp254, tmp255, tmp256);
560 : }
561 :
562 56 : if (block25.is_used()) {
563 : compiler::TNode<Context> tmp262;
564 : compiler::TNode<Object> tmp263;
565 : compiler::TNode<RawPtrT> tmp264;
566 : compiler::TNode<RawPtrT> tmp265;
567 : compiler::TNode<IntPtrT> tmp266;
568 : compiler::TNode<JSArray> tmp267;
569 : compiler::TNode<JSArray> tmp268;
570 : compiler::TNode<JSArray> tmp269;
571 : compiler::TNode<Map> tmp270;
572 : compiler::TNode<BoolT> tmp271;
573 : compiler::TNode<BoolT> tmp272;
574 : compiler::TNode<BoolT> tmp273;
575 : compiler::TNode<Smi> tmp274;
576 : compiler::TNode<Context> tmp275;
577 : compiler::TNode<Smi> tmp276;
578 : compiler::TNode<Smi> tmp277;
579 : compiler::TNode<Context> tmp278;
580 : compiler::TNode<Smi> tmp279;
581 : compiler::TNode<JSArray> tmp280;
582 : compiler::TNode<Smi> tmp281;
583 : compiler::TNode<Object> tmp282;
584 : ca_.Bind(&block25, &tmp262, &tmp263, &tmp264, &tmp265, &tmp266, &tmp267, &tmp268, &tmp269, &tmp270, &tmp271, &tmp272, &tmp273, &tmp274, &tmp275, &tmp276, &tmp277, &tmp278, &tmp279, &tmp280, &tmp281, &tmp282);
585 : ca_.Goto(&block19, tmp262, tmp263, tmp264, tmp265, tmp266, tmp267, tmp268, tmp269, tmp270, tmp271, tmp272, tmp273, tmp274, tmp275, tmp276, tmp277, tmp278, tmp279, tmp282);
586 : }
587 :
588 56 : if (block19.is_used()) {
589 : compiler::TNode<Context> tmp283;
590 : compiler::TNode<Object> tmp284;
591 : compiler::TNode<RawPtrT> tmp285;
592 : compiler::TNode<RawPtrT> tmp286;
593 : compiler::TNode<IntPtrT> tmp287;
594 : compiler::TNode<JSArray> tmp288;
595 : compiler::TNode<JSArray> tmp289;
596 : compiler::TNode<JSArray> tmp290;
597 : compiler::TNode<Map> tmp291;
598 : compiler::TNode<BoolT> tmp292;
599 : compiler::TNode<BoolT> tmp293;
600 : compiler::TNode<BoolT> tmp294;
601 : compiler::TNode<Smi> tmp295;
602 : compiler::TNode<Context> tmp296;
603 : compiler::TNode<Smi> tmp297;
604 : compiler::TNode<Smi> tmp298;
605 : compiler::TNode<Context> tmp299;
606 : compiler::TNode<Smi> tmp300;
607 : compiler::TNode<Object> tmp301;
608 : ca_.Bind(&block19, &tmp283, &tmp284, &tmp285, &tmp286, &tmp287, &tmp288, &tmp289, &tmp290, &tmp291, &tmp292, &tmp293, &tmp294, &tmp295, &tmp296, &tmp297, &tmp298, &tmp299, &tmp300, &tmp301);
609 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2190);
610 : ca_.Goto(&block16, tmp283, tmp284, tmp285, tmp286, tmp287, tmp288, tmp289, tmp290, tmp291, tmp292, tmp293, tmp294, tmp295, tmp296, tmp297, tmp301);
611 : }
612 :
613 56 : if (block18.is_used()) {
614 : compiler::TNode<Context> tmp302;
615 : compiler::TNode<Object> tmp303;
616 : compiler::TNode<RawPtrT> tmp304;
617 : compiler::TNode<RawPtrT> tmp305;
618 : compiler::TNode<IntPtrT> tmp306;
619 : compiler::TNode<JSArray> tmp307;
620 : compiler::TNode<JSArray> tmp308;
621 : compiler::TNode<JSArray> tmp309;
622 : compiler::TNode<Map> tmp310;
623 : compiler::TNode<BoolT> tmp311;
624 : compiler::TNode<BoolT> tmp312;
625 : compiler::TNode<BoolT> tmp313;
626 : compiler::TNode<Smi> tmp314;
627 : compiler::TNode<Context> tmp315;
628 : compiler::TNode<Smi> tmp316;
629 : ca_.Bind(&block18, &tmp302, &tmp303, &tmp304, &tmp305, &tmp306, &tmp307, &tmp308, &tmp309, &tmp310, &tmp311, &tmp312, &tmp313, &tmp314, &tmp315, &tmp316);
630 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2193);
631 : compiler::TNode<Oddball> tmp317;
632 : USE(tmp317);
633 168 : tmp317 = BaseBuiltinsFromDSLAssembler(state_).Undefined();
634 : ca_.Goto(&block16, tmp302, tmp303, tmp304, tmp305, tmp306, tmp307, tmp308, tmp309, tmp310, tmp311, tmp312, tmp313, tmp314, tmp315, tmp316, tmp317);
635 : }
636 :
637 56 : if (block16.is_used()) {
638 : compiler::TNode<Context> tmp318;
639 : compiler::TNode<Object> tmp319;
640 : compiler::TNode<RawPtrT> tmp320;
641 : compiler::TNode<RawPtrT> tmp321;
642 : compiler::TNode<IntPtrT> tmp322;
643 : compiler::TNode<JSArray> tmp323;
644 : compiler::TNode<JSArray> tmp324;
645 : compiler::TNode<JSArray> tmp325;
646 : compiler::TNode<Map> tmp326;
647 : compiler::TNode<BoolT> tmp327;
648 : compiler::TNode<BoolT> tmp328;
649 : compiler::TNode<BoolT> tmp329;
650 : compiler::TNode<Smi> tmp330;
651 : compiler::TNode<Context> tmp331;
652 : compiler::TNode<Smi> tmp332;
653 : compiler::TNode<Object> tmp333;
654 : ca_.Bind(&block16, &tmp318, &tmp319, &tmp320, &tmp321, &tmp322, &tmp323, &tmp324, &tmp325, &tmp326, &tmp327, &tmp328, &tmp329, &tmp330, &tmp331, &tmp332, &tmp333);
655 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 34);
656 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 35);
657 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2205);
658 112 : BaseBuiltinsFromDSLAssembler(state_).StoreFastJSArrayLength(compiler::TNode<JSArray>{tmp325}, compiler::TNode<Smi>{tmp330});
659 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 35);
660 : ca_.Goto(&block27, tmp318, tmp319, tmp320, tmp321, tmp322, tmp323, tmp324, tmp325, tmp326, tmp327, tmp328, tmp329, tmp330, tmp333, tmp330, tmp330);
661 : }
662 :
663 56 : if (block27.is_used()) {
664 : compiler::TNode<Context> tmp334;
665 : compiler::TNode<Object> tmp335;
666 : compiler::TNode<RawPtrT> tmp336;
667 : compiler::TNode<RawPtrT> tmp337;
668 : compiler::TNode<IntPtrT> tmp338;
669 : compiler::TNode<JSArray> tmp339;
670 : compiler::TNode<JSArray> tmp340;
671 : compiler::TNode<JSArray> tmp341;
672 : compiler::TNode<Map> tmp342;
673 : compiler::TNode<BoolT> tmp343;
674 : compiler::TNode<BoolT> tmp344;
675 : compiler::TNode<BoolT> tmp345;
676 : compiler::TNode<Smi> tmp346;
677 : compiler::TNode<Object> tmp347;
678 : compiler::TNode<Smi> tmp348;
679 : compiler::TNode<Smi> tmp349;
680 : ca_.Bind(&block27, &tmp334, &tmp335, &tmp336, &tmp337, &tmp338, &tmp339, &tmp340, &tmp341, &tmp342, &tmp343, &tmp344, &tmp345, &tmp346, &tmp347, &tmp348, &tmp349);
681 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 36);
682 : compiler::TNode<IntPtrT> tmp350;
683 : USE(tmp350);
684 168 : tmp350 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).Convert8ATintptr5ATSmi(compiler::TNode<Smi>{tmp346}));
685 : compiler::TNode<IntPtrT> tmp351;
686 : USE(tmp351);
687 168 : tmp351 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(0));
688 : compiler::TNode<IntPtrT> tmp352;
689 : USE(tmp352);
690 168 : tmp352 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(1));
691 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2227);
692 56 : ca_.Branch(tmp343, &block29, &block30, tmp334, tmp335, tmp336, tmp337, tmp338, tmp339, tmp340, tmp341, tmp342, tmp343, tmp344, tmp345, tmp346, tmp347, tmp350, tmp351, tmp352, tmp350);
693 : }
694 :
695 56 : if (block29.is_used()) {
696 : compiler::TNode<Context> tmp353;
697 : compiler::TNode<Object> tmp354;
698 : compiler::TNode<RawPtrT> tmp355;
699 : compiler::TNode<RawPtrT> tmp356;
700 : compiler::TNode<IntPtrT> tmp357;
701 : compiler::TNode<JSArray> tmp358;
702 : compiler::TNode<JSArray> tmp359;
703 : compiler::TNode<JSArray> tmp360;
704 : compiler::TNode<Map> tmp361;
705 : compiler::TNode<BoolT> tmp362;
706 : compiler::TNode<BoolT> tmp363;
707 : compiler::TNode<BoolT> tmp364;
708 : compiler::TNode<Smi> tmp365;
709 : compiler::TNode<Object> tmp366;
710 : compiler::TNode<IntPtrT> tmp367;
711 : compiler::TNode<IntPtrT> tmp368;
712 : compiler::TNode<IntPtrT> tmp369;
713 : compiler::TNode<IntPtrT> tmp370;
714 : ca_.Bind(&block29, &tmp353, &tmp354, &tmp355, &tmp356, &tmp357, &tmp358, &tmp359, &tmp360, &tmp361, &tmp362, &tmp363, &tmp364, &tmp365, &tmp366, &tmp367, &tmp368, &tmp369, &tmp370);
715 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2229);
716 56 : compiler::TNode<IntPtrT> tmp371 = ca_.IntPtrConstant(JSObject::kElementsOffset);
717 : USE(tmp371);
718 112 : compiler::TNode<FixedArrayBase>tmp372 = CodeStubAssembler(state_).LoadReference<FixedArrayBase>(CodeStubAssembler::Reference{tmp360, tmp371});
719 : compiler::TNode<FixedDoubleArray> tmp373;
720 : USE(tmp373);
721 56 : compiler::CodeAssemblerLabel label0(&ca_);
722 168 : tmp373 = BaseBuiltinsFromDSLAssembler(state_).Cast16FixedDoubleArray(compiler::TNode<HeapObject>{tmp372}, &label0);
723 : ca_.Goto(&block34, tmp353, tmp354, tmp355, tmp356, tmp357, tmp358, tmp359, tmp360, tmp361, tmp362, tmp363, tmp364, tmp365, tmp366, tmp367, tmp368, tmp369, tmp370, tmp372, tmp373);
724 56 : if (label0.is_used()) {
725 56 : ca_.Bind(&label0);
726 : ca_.Goto(&block35, tmp353, tmp354, tmp355, tmp356, tmp357, tmp358, tmp359, tmp360, tmp361, tmp362, tmp363, tmp364, tmp365, tmp366, tmp367, tmp368, tmp369, tmp370, tmp372);
727 : }
728 : }
729 :
730 56 : if (block35.is_used()) {
731 : compiler::TNode<Context> tmp374;
732 : compiler::TNode<Object> tmp375;
733 : compiler::TNode<RawPtrT> tmp376;
734 : compiler::TNode<RawPtrT> tmp377;
735 : compiler::TNode<IntPtrT> tmp378;
736 : compiler::TNode<JSArray> tmp379;
737 : compiler::TNode<JSArray> tmp380;
738 : compiler::TNode<JSArray> tmp381;
739 : compiler::TNode<Map> tmp382;
740 : compiler::TNode<BoolT> tmp383;
741 : compiler::TNode<BoolT> tmp384;
742 : compiler::TNode<BoolT> tmp385;
743 : compiler::TNode<Smi> tmp386;
744 : compiler::TNode<Object> tmp387;
745 : compiler::TNode<IntPtrT> tmp388;
746 : compiler::TNode<IntPtrT> tmp389;
747 : compiler::TNode<IntPtrT> tmp390;
748 : compiler::TNode<IntPtrT> tmp391;
749 : compiler::TNode<FixedArrayBase> tmp392;
750 : ca_.Bind(&block35, &tmp374, &tmp375, &tmp376, &tmp377, &tmp378, &tmp379, &tmp380, &tmp381, &tmp382, &tmp383, &tmp384, &tmp385, &tmp386, &tmp387, &tmp388, &tmp389, &tmp390, &tmp391, &tmp392);
751 : ca_.Goto(&block33, tmp374, tmp375, tmp376, tmp377, tmp378, tmp379, tmp380, tmp381, tmp382, tmp383, tmp384, tmp385, tmp386, tmp387, tmp388, tmp389, tmp390, tmp391);
752 : }
753 :
754 56 : if (block34.is_used()) {
755 : compiler::TNode<Context> tmp393;
756 : compiler::TNode<Object> tmp394;
757 : compiler::TNode<RawPtrT> tmp395;
758 : compiler::TNode<RawPtrT> tmp396;
759 : compiler::TNode<IntPtrT> tmp397;
760 : compiler::TNode<JSArray> tmp398;
761 : compiler::TNode<JSArray> tmp399;
762 : compiler::TNode<JSArray> tmp400;
763 : compiler::TNode<Map> tmp401;
764 : compiler::TNode<BoolT> tmp402;
765 : compiler::TNode<BoolT> tmp403;
766 : compiler::TNode<BoolT> tmp404;
767 : compiler::TNode<Smi> tmp405;
768 : compiler::TNode<Object> tmp406;
769 : compiler::TNode<IntPtrT> tmp407;
770 : compiler::TNode<IntPtrT> tmp408;
771 : compiler::TNode<IntPtrT> tmp409;
772 : compiler::TNode<IntPtrT> tmp410;
773 : compiler::TNode<FixedArrayBase> tmp411;
774 : compiler::TNode<FixedDoubleArray> tmp412;
775 : ca_.Bind(&block34, &tmp393, &tmp394, &tmp395, &tmp396, &tmp397, &tmp398, &tmp399, &tmp400, &tmp401, &tmp402, &tmp403, &tmp404, &tmp405, &tmp406, &tmp407, &tmp408, &tmp409, &tmp410, &tmp411, &tmp412);
776 : ca_.Goto(&block32, tmp393, tmp394, tmp395, tmp396, tmp397, tmp398, tmp399, tmp400, tmp401, tmp402, tmp403, tmp404, tmp405, tmp406, tmp407, tmp408, tmp409, tmp410, tmp412);
777 : }
778 :
779 56 : if (block33.is_used()) {
780 : compiler::TNode<Context> tmp413;
781 : compiler::TNode<Object> tmp414;
782 : compiler::TNode<RawPtrT> tmp415;
783 : compiler::TNode<RawPtrT> tmp416;
784 : compiler::TNode<IntPtrT> tmp417;
785 : compiler::TNode<JSArray> tmp418;
786 : compiler::TNode<JSArray> tmp419;
787 : compiler::TNode<JSArray> tmp420;
788 : compiler::TNode<Map> tmp421;
789 : compiler::TNode<BoolT> tmp422;
790 : compiler::TNode<BoolT> tmp423;
791 : compiler::TNode<BoolT> tmp424;
792 : compiler::TNode<Smi> tmp425;
793 : compiler::TNode<Object> tmp426;
794 : compiler::TNode<IntPtrT> tmp427;
795 : compiler::TNode<IntPtrT> tmp428;
796 : compiler::TNode<IntPtrT> tmp429;
797 : compiler::TNode<IntPtrT> tmp430;
798 : ca_.Bind(&block33, &tmp413, &tmp414, &tmp415, &tmp416, &tmp417, &tmp418, &tmp419, &tmp420, &tmp421, &tmp422, &tmp423, &tmp424, &tmp425, &tmp426, &tmp427, &tmp428, &tmp429, &tmp430);
799 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2230);
800 112 : CodeStubAssembler(state_).Unreachable();
801 : }
802 :
803 56 : if (block32.is_used()) {
804 : compiler::TNode<Context> tmp431;
805 : compiler::TNode<Object> tmp432;
806 : compiler::TNode<RawPtrT> tmp433;
807 : compiler::TNode<RawPtrT> tmp434;
808 : compiler::TNode<IntPtrT> tmp435;
809 : compiler::TNode<JSArray> tmp436;
810 : compiler::TNode<JSArray> tmp437;
811 : compiler::TNode<JSArray> tmp438;
812 : compiler::TNode<Map> tmp439;
813 : compiler::TNode<BoolT> tmp440;
814 : compiler::TNode<BoolT> tmp441;
815 : compiler::TNode<BoolT> tmp442;
816 : compiler::TNode<Smi> tmp443;
817 : compiler::TNode<Object> tmp444;
818 : compiler::TNode<IntPtrT> tmp445;
819 : compiler::TNode<IntPtrT> tmp446;
820 : compiler::TNode<IntPtrT> tmp447;
821 : compiler::TNode<IntPtrT> tmp448;
822 : compiler::TNode<FixedDoubleArray> tmp449;
823 : ca_.Bind(&block32, &tmp431, &tmp432, &tmp433, &tmp434, &tmp435, &tmp436, &tmp437, &tmp438, &tmp439, &tmp440, &tmp441, &tmp442, &tmp443, &tmp444, &tmp445, &tmp446, &tmp447, &tmp448, &tmp449);
824 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2228);
825 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2231);
826 168 : BaseBuiltinsFromDSLAssembler(state_).TorqueMoveElements(compiler::TNode<FixedDoubleArray>{tmp449}, compiler::TNode<IntPtrT>{tmp446}, compiler::TNode<IntPtrT>{tmp447}, compiler::TNode<IntPtrT>{tmp448});
827 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2227);
828 : ca_.Goto(&block31, tmp431, tmp432, tmp433, tmp434, tmp435, tmp436, tmp437, tmp438, tmp439, tmp440, tmp441, tmp442, tmp443, tmp444, tmp445, tmp446, tmp447, tmp448);
829 : }
830 :
831 56 : if (block30.is_used()) {
832 : compiler::TNode<Context> tmp450;
833 : compiler::TNode<Object> tmp451;
834 : compiler::TNode<RawPtrT> tmp452;
835 : compiler::TNode<RawPtrT> tmp453;
836 : compiler::TNode<IntPtrT> tmp454;
837 : compiler::TNode<JSArray> tmp455;
838 : compiler::TNode<JSArray> tmp456;
839 : compiler::TNode<JSArray> tmp457;
840 : compiler::TNode<Map> tmp458;
841 : compiler::TNode<BoolT> tmp459;
842 : compiler::TNode<BoolT> tmp460;
843 : compiler::TNode<BoolT> tmp461;
844 : compiler::TNode<Smi> tmp462;
845 : compiler::TNode<Object> tmp463;
846 : compiler::TNode<IntPtrT> tmp464;
847 : compiler::TNode<IntPtrT> tmp465;
848 : compiler::TNode<IntPtrT> tmp466;
849 : compiler::TNode<IntPtrT> tmp467;
850 : ca_.Bind(&block30, &tmp450, &tmp451, &tmp452, &tmp453, &tmp454, &tmp455, &tmp456, &tmp457, &tmp458, &tmp459, &tmp460, &tmp461, &tmp462, &tmp463, &tmp464, &tmp465, &tmp466, &tmp467);
851 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2233);
852 56 : compiler::TNode<IntPtrT> tmp468 = ca_.IntPtrConstant(JSObject::kElementsOffset);
853 : USE(tmp468);
854 112 : compiler::TNode<FixedArrayBase>tmp469 = CodeStubAssembler(state_).LoadReference<FixedArrayBase>(CodeStubAssembler::Reference{tmp457, tmp468});
855 : compiler::TNode<FixedArray> tmp470;
856 : USE(tmp470);
857 56 : compiler::CodeAssemblerLabel label0(&ca_);
858 168 : tmp470 = BaseBuiltinsFromDSLAssembler(state_).Cast10FixedArray(compiler::TNode<HeapObject>{tmp469}, &label0);
859 : ca_.Goto(&block38, tmp450, tmp451, tmp452, tmp453, tmp454, tmp455, tmp456, tmp457, tmp458, tmp459, tmp460, tmp461, tmp462, tmp463, tmp464, tmp465, tmp466, tmp467, tmp469, tmp470);
860 56 : if (label0.is_used()) {
861 56 : ca_.Bind(&label0);
862 : ca_.Goto(&block39, tmp450, tmp451, tmp452, tmp453, tmp454, tmp455, tmp456, tmp457, tmp458, tmp459, tmp460, tmp461, tmp462, tmp463, tmp464, tmp465, tmp466, tmp467, tmp469);
863 : }
864 : }
865 :
866 56 : if (block39.is_used()) {
867 : compiler::TNode<Context> tmp471;
868 : compiler::TNode<Object> tmp472;
869 : compiler::TNode<RawPtrT> tmp473;
870 : compiler::TNode<RawPtrT> tmp474;
871 : compiler::TNode<IntPtrT> tmp475;
872 : compiler::TNode<JSArray> tmp476;
873 : compiler::TNode<JSArray> tmp477;
874 : compiler::TNode<JSArray> tmp478;
875 : compiler::TNode<Map> tmp479;
876 : compiler::TNode<BoolT> tmp480;
877 : compiler::TNode<BoolT> tmp481;
878 : compiler::TNode<BoolT> tmp482;
879 : compiler::TNode<Smi> tmp483;
880 : compiler::TNode<Object> tmp484;
881 : compiler::TNode<IntPtrT> tmp485;
882 : compiler::TNode<IntPtrT> tmp486;
883 : compiler::TNode<IntPtrT> tmp487;
884 : compiler::TNode<IntPtrT> tmp488;
885 : compiler::TNode<FixedArrayBase> tmp489;
886 : ca_.Bind(&block39, &tmp471, &tmp472, &tmp473, &tmp474, &tmp475, &tmp476, &tmp477, &tmp478, &tmp479, &tmp480, &tmp481, &tmp482, &tmp483, &tmp484, &tmp485, &tmp486, &tmp487, &tmp488, &tmp489);
887 : ca_.Goto(&block37, tmp471, tmp472, tmp473, tmp474, tmp475, tmp476, tmp477, tmp478, tmp479, tmp480, tmp481, tmp482, tmp483, tmp484, tmp485, tmp486, tmp487, tmp488);
888 : }
889 :
890 56 : if (block38.is_used()) {
891 : compiler::TNode<Context> tmp490;
892 : compiler::TNode<Object> tmp491;
893 : compiler::TNode<RawPtrT> tmp492;
894 : compiler::TNode<RawPtrT> tmp493;
895 : compiler::TNode<IntPtrT> tmp494;
896 : compiler::TNode<JSArray> tmp495;
897 : compiler::TNode<JSArray> tmp496;
898 : compiler::TNode<JSArray> tmp497;
899 : compiler::TNode<Map> tmp498;
900 : compiler::TNode<BoolT> tmp499;
901 : compiler::TNode<BoolT> tmp500;
902 : compiler::TNode<BoolT> tmp501;
903 : compiler::TNode<Smi> tmp502;
904 : compiler::TNode<Object> tmp503;
905 : compiler::TNode<IntPtrT> tmp504;
906 : compiler::TNode<IntPtrT> tmp505;
907 : compiler::TNode<IntPtrT> tmp506;
908 : compiler::TNode<IntPtrT> tmp507;
909 : compiler::TNode<FixedArrayBase> tmp508;
910 : compiler::TNode<FixedArray> tmp509;
911 : ca_.Bind(&block38, &tmp490, &tmp491, &tmp492, &tmp493, &tmp494, &tmp495, &tmp496, &tmp497, &tmp498, &tmp499, &tmp500, &tmp501, &tmp502, &tmp503, &tmp504, &tmp505, &tmp506, &tmp507, &tmp508, &tmp509);
912 : ca_.Goto(&block36, tmp490, tmp491, tmp492, tmp493, tmp494, tmp495, tmp496, tmp497, tmp498, tmp499, tmp500, tmp501, tmp502, tmp503, tmp504, tmp505, tmp506, tmp507, tmp509);
913 : }
914 :
915 56 : if (block37.is_used()) {
916 : compiler::TNode<Context> tmp510;
917 : compiler::TNode<Object> tmp511;
918 : compiler::TNode<RawPtrT> tmp512;
919 : compiler::TNode<RawPtrT> tmp513;
920 : compiler::TNode<IntPtrT> tmp514;
921 : compiler::TNode<JSArray> tmp515;
922 : compiler::TNode<JSArray> tmp516;
923 : compiler::TNode<JSArray> tmp517;
924 : compiler::TNode<Map> tmp518;
925 : compiler::TNode<BoolT> tmp519;
926 : compiler::TNode<BoolT> tmp520;
927 : compiler::TNode<BoolT> tmp521;
928 : compiler::TNode<Smi> tmp522;
929 : compiler::TNode<Object> tmp523;
930 : compiler::TNode<IntPtrT> tmp524;
931 : compiler::TNode<IntPtrT> tmp525;
932 : compiler::TNode<IntPtrT> tmp526;
933 : compiler::TNode<IntPtrT> tmp527;
934 : ca_.Bind(&block37, &tmp510, &tmp511, &tmp512, &tmp513, &tmp514, &tmp515, &tmp516, &tmp517, &tmp518, &tmp519, &tmp520, &tmp521, &tmp522, &tmp523, &tmp524, &tmp525, &tmp526, &tmp527);
935 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2234);
936 112 : CodeStubAssembler(state_).Unreachable();
937 : }
938 :
939 56 : if (block36.is_used()) {
940 : compiler::TNode<Context> tmp528;
941 : compiler::TNode<Object> tmp529;
942 : compiler::TNode<RawPtrT> tmp530;
943 : compiler::TNode<RawPtrT> tmp531;
944 : compiler::TNode<IntPtrT> tmp532;
945 : compiler::TNode<JSArray> tmp533;
946 : compiler::TNode<JSArray> tmp534;
947 : compiler::TNode<JSArray> tmp535;
948 : compiler::TNode<Map> tmp536;
949 : compiler::TNode<BoolT> tmp537;
950 : compiler::TNode<BoolT> tmp538;
951 : compiler::TNode<BoolT> tmp539;
952 : compiler::TNode<Smi> tmp540;
953 : compiler::TNode<Object> tmp541;
954 : compiler::TNode<IntPtrT> tmp542;
955 : compiler::TNode<IntPtrT> tmp543;
956 : compiler::TNode<IntPtrT> tmp544;
957 : compiler::TNode<IntPtrT> tmp545;
958 : compiler::TNode<FixedArray> tmp546;
959 : ca_.Bind(&block36, &tmp528, &tmp529, &tmp530, &tmp531, &tmp532, &tmp533, &tmp534, &tmp535, &tmp536, &tmp537, &tmp538, &tmp539, &tmp540, &tmp541, &tmp542, &tmp543, &tmp544, &tmp545, &tmp546);
960 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2233);
961 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2235);
962 56 : ca_.Branch(tmp538, &block40, &block41, tmp528, tmp529, tmp530, tmp531, tmp532, tmp533, tmp534, tmp535, tmp536, tmp537, tmp538, tmp539, tmp540, tmp541, tmp542, tmp543, tmp544, tmp545, tmp546);
963 : }
964 :
965 56 : if (block40.is_used()) {
966 : compiler::TNode<Context> tmp547;
967 : compiler::TNode<Object> tmp548;
968 : compiler::TNode<RawPtrT> tmp549;
969 : compiler::TNode<RawPtrT> tmp550;
970 : compiler::TNode<IntPtrT> tmp551;
971 : compiler::TNode<JSArray> tmp552;
972 : compiler::TNode<JSArray> tmp553;
973 : compiler::TNode<JSArray> tmp554;
974 : compiler::TNode<Map> tmp555;
975 : compiler::TNode<BoolT> tmp556;
976 : compiler::TNode<BoolT> tmp557;
977 : compiler::TNode<BoolT> tmp558;
978 : compiler::TNode<Smi> tmp559;
979 : compiler::TNode<Object> tmp560;
980 : compiler::TNode<IntPtrT> tmp561;
981 : compiler::TNode<IntPtrT> tmp562;
982 : compiler::TNode<IntPtrT> tmp563;
983 : compiler::TNode<IntPtrT> tmp564;
984 : compiler::TNode<FixedArray> tmp565;
985 : ca_.Bind(&block40, &tmp547, &tmp548, &tmp549, &tmp550, &tmp551, &tmp552, &tmp553, &tmp554, &tmp555, &tmp556, &tmp557, &tmp558, &tmp559, &tmp560, &tmp561, &tmp562, &tmp563, &tmp564, &tmp565);
986 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2236);
987 168 : BaseBuiltinsFromDSLAssembler(state_).TorqueMoveElementsSmi(compiler::TNode<FixedArray>{tmp565}, compiler::TNode<IntPtrT>{tmp562}, compiler::TNode<IntPtrT>{tmp563}, compiler::TNode<IntPtrT>{tmp564});
988 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2235);
989 : ca_.Goto(&block42, tmp547, tmp548, tmp549, tmp550, tmp551, tmp552, tmp553, tmp554, tmp555, tmp556, tmp557, tmp558, tmp559, tmp560, tmp561, tmp562, tmp563, tmp564, tmp565);
990 : }
991 :
992 56 : if (block41.is_used()) {
993 : compiler::TNode<Context> tmp566;
994 : compiler::TNode<Object> tmp567;
995 : compiler::TNode<RawPtrT> tmp568;
996 : compiler::TNode<RawPtrT> tmp569;
997 : compiler::TNode<IntPtrT> tmp570;
998 : compiler::TNode<JSArray> tmp571;
999 : compiler::TNode<JSArray> tmp572;
1000 : compiler::TNode<JSArray> tmp573;
1001 : compiler::TNode<Map> tmp574;
1002 : compiler::TNode<BoolT> tmp575;
1003 : compiler::TNode<BoolT> tmp576;
1004 : compiler::TNode<BoolT> tmp577;
1005 : compiler::TNode<Smi> tmp578;
1006 : compiler::TNode<Object> tmp579;
1007 : compiler::TNode<IntPtrT> tmp580;
1008 : compiler::TNode<IntPtrT> tmp581;
1009 : compiler::TNode<IntPtrT> tmp582;
1010 : compiler::TNode<IntPtrT> tmp583;
1011 : compiler::TNode<FixedArray> tmp584;
1012 : ca_.Bind(&block41, &tmp566, &tmp567, &tmp568, &tmp569, &tmp570, &tmp571, &tmp572, &tmp573, &tmp574, &tmp575, &tmp576, &tmp577, &tmp578, &tmp579, &tmp580, &tmp581, &tmp582, &tmp583, &tmp584);
1013 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2238);
1014 168 : BaseBuiltinsFromDSLAssembler(state_).TorqueMoveElements(compiler::TNode<FixedArray>{tmp584}, compiler::TNode<IntPtrT>{tmp581}, compiler::TNode<IntPtrT>{tmp582}, compiler::TNode<IntPtrT>{tmp583});
1015 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2235);
1016 : ca_.Goto(&block42, tmp566, tmp567, tmp568, tmp569, tmp570, tmp571, tmp572, tmp573, tmp574, tmp575, tmp576, tmp577, tmp578, tmp579, tmp580, tmp581, tmp582, tmp583, tmp584);
1017 : }
1018 :
1019 56 : if (block42.is_used()) {
1020 : compiler::TNode<Context> tmp585;
1021 : compiler::TNode<Object> tmp586;
1022 : compiler::TNode<RawPtrT> tmp587;
1023 : compiler::TNode<RawPtrT> tmp588;
1024 : compiler::TNode<IntPtrT> tmp589;
1025 : compiler::TNode<JSArray> tmp590;
1026 : compiler::TNode<JSArray> tmp591;
1027 : compiler::TNode<JSArray> tmp592;
1028 : compiler::TNode<Map> tmp593;
1029 : compiler::TNode<BoolT> tmp594;
1030 : compiler::TNode<BoolT> tmp595;
1031 : compiler::TNode<BoolT> tmp596;
1032 : compiler::TNode<Smi> tmp597;
1033 : compiler::TNode<Object> tmp598;
1034 : compiler::TNode<IntPtrT> tmp599;
1035 : compiler::TNode<IntPtrT> tmp600;
1036 : compiler::TNode<IntPtrT> tmp601;
1037 : compiler::TNode<IntPtrT> tmp602;
1038 : compiler::TNode<FixedArray> tmp603;
1039 : ca_.Bind(&block42, &tmp585, &tmp586, &tmp587, &tmp588, &tmp589, &tmp590, &tmp591, &tmp592, &tmp593, &tmp594, &tmp595, &tmp596, &tmp597, &tmp598, &tmp599, &tmp600, &tmp601, &tmp602, &tmp603);
1040 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2232);
1041 56 : ca_.SetSourcePosition("../../src/builtins/base.tq", 2227);
1042 : ca_.Goto(&block31, tmp585, tmp586, tmp587, tmp588, tmp589, tmp590, tmp591, tmp592, tmp593, tmp594, tmp595, tmp596, tmp597, tmp598, tmp599, tmp600, tmp601, tmp602);
1043 : }
1044 :
1045 56 : if (block31.is_used()) {
1046 : compiler::TNode<Context> tmp604;
1047 : compiler::TNode<Object> tmp605;
1048 : compiler::TNode<RawPtrT> tmp606;
1049 : compiler::TNode<RawPtrT> tmp607;
1050 : compiler::TNode<IntPtrT> tmp608;
1051 : compiler::TNode<JSArray> tmp609;
1052 : compiler::TNode<JSArray> tmp610;
1053 : compiler::TNode<JSArray> tmp611;
1054 : compiler::TNode<Map> tmp612;
1055 : compiler::TNode<BoolT> tmp613;
1056 : compiler::TNode<BoolT> tmp614;
1057 : compiler::TNode<BoolT> tmp615;
1058 : compiler::TNode<Smi> tmp616;
1059 : compiler::TNode<Object> tmp617;
1060 : compiler::TNode<IntPtrT> tmp618;
1061 : compiler::TNode<IntPtrT> tmp619;
1062 : compiler::TNode<IntPtrT> tmp620;
1063 : compiler::TNode<IntPtrT> tmp621;
1064 : ca_.Bind(&block31, &tmp604, &tmp605, &tmp606, &tmp607, &tmp608, &tmp609, &tmp610, &tmp611, &tmp612, &tmp613, &tmp614, &tmp615, &tmp616, &tmp617, &tmp618, &tmp619, &tmp620, &tmp621);
1065 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 36);
1066 : ca_.Goto(&block28, tmp604, tmp605, tmp606, tmp607, tmp608, tmp609, tmp610, tmp611, tmp612, tmp613, tmp614, tmp615, tmp616, tmp617, tmp618, tmp619, tmp620, tmp621);
1067 : }
1068 :
1069 56 : if (block28.is_used()) {
1070 : compiler::TNode<Context> tmp622;
1071 : compiler::TNode<Object> tmp623;
1072 : compiler::TNode<RawPtrT> tmp624;
1073 : compiler::TNode<RawPtrT> tmp625;
1074 : compiler::TNode<IntPtrT> tmp626;
1075 : compiler::TNode<JSArray> tmp627;
1076 : compiler::TNode<JSArray> tmp628;
1077 : compiler::TNode<JSArray> tmp629;
1078 : compiler::TNode<Map> tmp630;
1079 : compiler::TNode<BoolT> tmp631;
1080 : compiler::TNode<BoolT> tmp632;
1081 : compiler::TNode<BoolT> tmp633;
1082 : compiler::TNode<Smi> tmp634;
1083 : compiler::TNode<Object> tmp635;
1084 : compiler::TNode<IntPtrT> tmp636;
1085 : compiler::TNode<IntPtrT> tmp637;
1086 : compiler::TNode<IntPtrT> tmp638;
1087 : compiler::TNode<IntPtrT> tmp639;
1088 : ca_.Bind(&block28, &tmp622, &tmp623, &tmp624, &tmp625, &tmp626, &tmp627, &tmp628, &tmp629, &tmp630, &tmp631, &tmp632, &tmp633, &tmp634, &tmp635, &tmp636, &tmp637, &tmp638, &tmp639);
1089 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 37);
1090 : ca_.Goto(&block2, tmp622, tmp623, tmp624, tmp625, tmp626, tmp635);
1091 : }
1092 :
1093 56 : if (block11.is_used()) {
1094 : compiler::TNode<Context> tmp640;
1095 : compiler::TNode<Object> tmp641;
1096 : compiler::TNode<RawPtrT> tmp642;
1097 : compiler::TNode<RawPtrT> tmp643;
1098 : compiler::TNode<IntPtrT> tmp644;
1099 : compiler::TNode<JSArray> tmp645;
1100 : compiler::TNode<JSArray> tmp646;
1101 : compiler::TNode<JSArray> tmp647;
1102 : compiler::TNode<Map> tmp648;
1103 : compiler::TNode<BoolT> tmp649;
1104 : compiler::TNode<BoolT> tmp650;
1105 : compiler::TNode<BoolT> tmp651;
1106 : ca_.Bind(&block11, &tmp640, &tmp641, &tmp642, &tmp643, &tmp644, &tmp645, &tmp646, &tmp647, &tmp648, &tmp649, &tmp650, &tmp651);
1107 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 41);
1108 : compiler::TNode<JSFunction> tmp652;
1109 : USE(tmp652);
1110 168 : tmp652 = ca_.UncheckedCast<JSFunction>(BaseBuiltinsFromDSLAssembler(state_).LoadTargetFromFrame());
1111 : compiler::TNode<Oddball> tmp653;
1112 : USE(tmp653);
1113 168 : tmp653 = BaseBuiltinsFromDSLAssembler(state_).Undefined();
1114 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 42);
1115 : compiler::TNode<Int32T> tmp654;
1116 : USE(tmp654);
1117 168 : tmp654 = ca_.UncheckedCast<Int32T>(BaseBuiltinsFromDSLAssembler(state_).Convert7ATint328ATintptr(compiler::TNode<IntPtrT>{tmp644}));
1118 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 40);
1119 112 : CodeStubAssembler(state_).TailCallBuiltin(Builtins::kArrayShift, tmp640, tmp652, tmp653, tmp654);
1120 : }
1121 :
1122 56 : if (block2.is_used()) {
1123 : compiler::TNode<Context> tmp655;
1124 : compiler::TNode<Object> tmp656;
1125 : compiler::TNode<RawPtrT> tmp657;
1126 : compiler::TNode<RawPtrT> tmp658;
1127 : compiler::TNode<IntPtrT> tmp659;
1128 : compiler::TNode<Object> tmp660;
1129 : ca_.Bind(&block2, &tmp655, &tmp656, &tmp657, &tmp658, &tmp659, &tmp660);
1130 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 8);
1131 : ca_.Goto(&block43, tmp655, tmp656, tmp657, tmp658, tmp659, tmp660);
1132 : }
1133 :
1134 56 : if (block1.is_used()) {
1135 : ca_.Bind(&block1);
1136 56 : ca_.Goto(label_Slow);
1137 : }
1138 :
1139 : compiler::TNode<Context> tmp661;
1140 : compiler::TNode<Object> tmp662;
1141 : compiler::TNode<RawPtrT> tmp663;
1142 : compiler::TNode<RawPtrT> tmp664;
1143 : compiler::TNode<IntPtrT> tmp665;
1144 : compiler::TNode<Object> tmp666;
1145 : ca_.Bind(&block43, &tmp661, &tmp662, &tmp663, &tmp664, &tmp665, &tmp666);
1146 112 : return compiler::TNode<Object>{tmp666};
1147 : }
1148 :
1149 56 : compiler::TNode<Object> ArrayShiftBuiltinsFromDSLAssembler::GenericArrayShift(compiler::TNode<Context> p_context, compiler::TNode<Object> p_receiver) {
1150 56 : compiler::CodeAssemblerParameterizedLabel<Context, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1151 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1152 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1153 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1154 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Number> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1155 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Number> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1156 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1157 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Number, Oddball> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1158 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Number, Oddball> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1159 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number, Number, Number, Oddball> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1160 : compiler::CodeAssemblerParameterizedLabel<Context, Object, JSReceiver, Number, Object, Number> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1161 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1162 : compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1163 : ca_.Goto(&block0, p_context, p_receiver);
1164 :
1165 56 : if (block0.is_used()) {
1166 : compiler::TNode<Context> tmp0;
1167 : compiler::TNode<Object> tmp1;
1168 : ca_.Bind(&block0, &tmp0, &tmp1);
1169 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 49);
1170 : compiler::TNode<JSReceiver> tmp2;
1171 : USE(tmp2);
1172 112 : tmp2 = ca_.UncheckedCast<JSReceiver>(CodeStubAssembler(state_).ToObject_Inline(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}));
1173 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 52);
1174 : compiler::TNode<Number> tmp3;
1175 : USE(tmp3);
1176 168 : tmp3 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).GetLengthProperty(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp2}));
1177 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 55);
1178 : compiler::TNode<Number> tmp4;
1179 : USE(tmp4);
1180 168 : tmp4 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(0));
1181 : compiler::TNode<BoolT> tmp5;
1182 : USE(tmp5);
1183 168 : tmp5 = ca_.UncheckedCast<BoolT>(BaseBuiltinsFromDSLAssembler(state_).IsNumberEqual(compiler::TNode<Number>{tmp3}, compiler::TNode<Number>{tmp4}));
1184 56 : ca_.Branch(tmp5, &block2, &block3, tmp0, tmp1, tmp2, tmp3);
1185 : }
1186 :
1187 56 : if (block2.is_used()) {
1188 : compiler::TNode<Context> tmp6;
1189 : compiler::TNode<Object> tmp7;
1190 : compiler::TNode<JSReceiver> tmp8;
1191 : compiler::TNode<Number> tmp9;
1192 : ca_.Bind(&block2, &tmp6, &tmp7, &tmp8, &tmp9);
1193 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 57);
1194 : compiler::TNode<String> tmp10;
1195 : USE(tmp10);
1196 168 : tmp10 = BaseBuiltinsFromDSLAssembler(state_).kLengthString();
1197 : compiler::TNode<Smi> tmp11;
1198 : USE(tmp11);
1199 168 : tmp11 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).Convert5ATSmi17ATconstexpr_int31(0));
1200 112 : CodeStubAssembler(state_).CallBuiltin(Builtins::kSetProperty, tmp6, tmp8, tmp10, tmp11);
1201 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 59);
1202 : compiler::TNode<Oddball> tmp13;
1203 : USE(tmp13);
1204 168 : tmp13 = BaseBuiltinsFromDSLAssembler(state_).Undefined();
1205 : ca_.Goto(&block1, tmp6, tmp7, tmp13);
1206 : }
1207 :
1208 56 : if (block3.is_used()) {
1209 : compiler::TNode<Context> tmp14;
1210 : compiler::TNode<Object> tmp15;
1211 : compiler::TNode<JSReceiver> tmp16;
1212 : compiler::TNode<Number> tmp17;
1213 : ca_.Bind(&block3, &tmp14, &tmp15, &tmp16, &tmp17);
1214 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 63);
1215 : compiler::TNode<Smi> tmp18;
1216 : USE(tmp18);
1217 168 : tmp18 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).Convert5ATSmi17ATconstexpr_int31(0));
1218 : compiler::TNode<Object> tmp19;
1219 : USE(tmp19);
1220 112 : tmp19 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetProperty(compiler::TNode<Context>{tmp14}, compiler::TNode<Object>{tmp16}, compiler::TNode<Object>{tmp18}));
1221 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 65);
1222 : compiler::TNode<Number> tmp20;
1223 : USE(tmp20);
1224 168 : tmp20 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(1));
1225 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 67);
1226 : ca_.Goto(&block6, tmp14, tmp15, tmp16, tmp17, tmp19, tmp20);
1227 : }
1228 :
1229 56 : if (block6.is_used()) {
1230 : compiler::TNode<Context> tmp21;
1231 : compiler::TNode<Object> tmp22;
1232 : compiler::TNode<JSReceiver> tmp23;
1233 : compiler::TNode<Number> tmp24;
1234 : compiler::TNode<Object> tmp25;
1235 : compiler::TNode<Number> tmp26;
1236 : ca_.Bind(&block6, &tmp21, &tmp22, &tmp23, &tmp24, &tmp25, &tmp26);
1237 56 : compiler::CodeAssemblerLabel label0(&ca_);
1238 56 : compiler::CodeAssemblerLabel label1(&ca_);
1239 112 : CodeStubAssembler(state_).BranchIfNumberLessThan(compiler::TNode<Number>{tmp26}, compiler::TNode<Number>{tmp24}, &label0, &label1);
1240 56 : if (label0.is_used()) {
1241 56 : ca_.Bind(&label0);
1242 : ca_.Goto(&block7, tmp21, tmp22, tmp23, tmp24, tmp25, tmp26, tmp26, tmp24);
1243 : }
1244 56 : if (label1.is_used()) {
1245 56 : ca_.Bind(&label1);
1246 : ca_.Goto(&block8, tmp21, tmp22, tmp23, tmp24, tmp25, tmp26, tmp26, tmp24);
1247 : }
1248 : }
1249 :
1250 56 : if (block7.is_used()) {
1251 : compiler::TNode<Context> tmp27;
1252 : compiler::TNode<Object> tmp28;
1253 : compiler::TNode<JSReceiver> tmp29;
1254 : compiler::TNode<Number> tmp30;
1255 : compiler::TNode<Object> tmp31;
1256 : compiler::TNode<Number> tmp32;
1257 : compiler::TNode<Number> tmp33;
1258 : compiler::TNode<Number> tmp34;
1259 : ca_.Bind(&block7, &tmp27, &tmp28, &tmp29, &tmp30, &tmp31, &tmp32, &tmp33, &tmp34);
1260 : ca_.Goto(&block4, tmp27, tmp28, tmp29, tmp30, tmp31, tmp32);
1261 : }
1262 :
1263 56 : if (block8.is_used()) {
1264 : compiler::TNode<Context> tmp35;
1265 : compiler::TNode<Object> tmp36;
1266 : compiler::TNode<JSReceiver> tmp37;
1267 : compiler::TNode<Number> tmp38;
1268 : compiler::TNode<Object> tmp39;
1269 : compiler::TNode<Number> tmp40;
1270 : compiler::TNode<Number> tmp41;
1271 : compiler::TNode<Number> tmp42;
1272 : ca_.Bind(&block8, &tmp35, &tmp36, &tmp37, &tmp38, &tmp39, &tmp40, &tmp41, &tmp42);
1273 : ca_.Goto(&block5, tmp35, tmp36, tmp37, tmp38, tmp39, tmp40);
1274 : }
1275 :
1276 56 : if (block4.is_used()) {
1277 : compiler::TNode<Context> tmp43;
1278 : compiler::TNode<Object> tmp44;
1279 : compiler::TNode<JSReceiver> tmp45;
1280 : compiler::TNode<Number> tmp46;
1281 : compiler::TNode<Object> tmp47;
1282 : compiler::TNode<Number> tmp48;
1283 : ca_.Bind(&block4, &tmp43, &tmp44, &tmp45, &tmp46, &tmp47, &tmp48);
1284 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 69);
1285 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 72);
1286 : compiler::TNode<Number> tmp49;
1287 : USE(tmp49);
1288 168 : tmp49 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(1));
1289 : compiler::TNode<Number> tmp50;
1290 : USE(tmp50);
1291 168 : tmp50 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberSub(compiler::TNode<Number>{tmp48}, compiler::TNode<Number>{tmp49}));
1292 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 75);
1293 : compiler::TNode<Oddball> tmp51;
1294 112 : tmp51 = TORQUE_CAST(CodeStubAssembler(state_).CallBuiltin(Builtins::kHasProperty, tmp43, tmp45, tmp48));
1295 : USE(tmp51);
1296 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 78);
1297 : compiler::TNode<Oddball> tmp52;
1298 : USE(tmp52);
1299 168 : tmp52 = BaseBuiltinsFromDSLAssembler(state_).True();
1300 : compiler::TNode<BoolT> tmp53;
1301 : USE(tmp53);
1302 112 : tmp53 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<HeapObject>{tmp51}, compiler::TNode<HeapObject>{tmp52}));
1303 56 : ca_.Branch(tmp53, &block9, &block10, tmp43, tmp44, tmp45, tmp46, tmp47, tmp48, tmp48, tmp50, tmp51);
1304 : }
1305 :
1306 56 : if (block9.is_used()) {
1307 : compiler::TNode<Context> tmp54;
1308 : compiler::TNode<Object> tmp55;
1309 : compiler::TNode<JSReceiver> tmp56;
1310 : compiler::TNode<Number> tmp57;
1311 : compiler::TNode<Object> tmp58;
1312 : compiler::TNode<Number> tmp59;
1313 : compiler::TNode<Number> tmp60;
1314 : compiler::TNode<Number> tmp61;
1315 : compiler::TNode<Oddball> tmp62;
1316 : ca_.Bind(&block9, &tmp54, &tmp55, &tmp56, &tmp57, &tmp58, &tmp59, &tmp60, &tmp61, &tmp62);
1317 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 80);
1318 : compiler::TNode<Object> tmp63;
1319 : USE(tmp63);
1320 112 : tmp63 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetProperty(compiler::TNode<Context>{tmp54}, compiler::TNode<Object>{tmp56}, compiler::TNode<Object>{tmp60}));
1321 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 83);
1322 112 : CodeStubAssembler(state_).CallBuiltin(Builtins::kSetProperty, tmp54, tmp56, tmp61, tmp63);
1323 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 78);
1324 : ca_.Goto(&block11, tmp54, tmp55, tmp56, tmp57, tmp58, tmp59, tmp60, tmp61, tmp62);
1325 : }
1326 :
1327 56 : if (block10.is_used()) {
1328 : compiler::TNode<Context> tmp65;
1329 : compiler::TNode<Object> tmp66;
1330 : compiler::TNode<JSReceiver> tmp67;
1331 : compiler::TNode<Number> tmp68;
1332 : compiler::TNode<Object> tmp69;
1333 : compiler::TNode<Number> tmp70;
1334 : compiler::TNode<Number> tmp71;
1335 : compiler::TNode<Number> tmp72;
1336 : compiler::TNode<Oddball> tmp73;
1337 : ca_.Bind(&block10, &tmp65, &tmp66, &tmp67, &tmp68, &tmp69, &tmp70, &tmp71, &tmp72, &tmp73);
1338 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 86);
1339 : compiler::TNode<Smi> tmp74;
1340 : USE(tmp74);
1341 168 : tmp74 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr14ATLanguageMode24ATconstexpr_LanguageMode(LanguageMode::kStrict));
1342 112 : CodeStubAssembler(state_).CallBuiltin(Builtins::kDeleteProperty, tmp65, tmp67, tmp72, tmp74);
1343 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 78);
1344 : ca_.Goto(&block11, tmp65, tmp66, tmp67, tmp68, tmp69, tmp70, tmp71, tmp72, tmp73);
1345 : }
1346 :
1347 56 : if (block11.is_used()) {
1348 : compiler::TNode<Context> tmp76;
1349 : compiler::TNode<Object> tmp77;
1350 : compiler::TNode<JSReceiver> tmp78;
1351 : compiler::TNode<Number> tmp79;
1352 : compiler::TNode<Object> tmp80;
1353 : compiler::TNode<Number> tmp81;
1354 : compiler::TNode<Number> tmp82;
1355 : compiler::TNode<Number> tmp83;
1356 : compiler::TNode<Oddball> tmp84;
1357 : ca_.Bind(&block11, &tmp76, &tmp77, &tmp78, &tmp79, &tmp80, &tmp81, &tmp82, &tmp83, &tmp84);
1358 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 90);
1359 : compiler::TNode<Number> tmp85;
1360 : USE(tmp85);
1361 168 : tmp85 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(1));
1362 : compiler::TNode<Number> tmp86;
1363 : USE(tmp86);
1364 168 : tmp86 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberAdd(compiler::TNode<Number>{tmp81}, compiler::TNode<Number>{tmp85}));
1365 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 67);
1366 : ca_.Goto(&block6, tmp76, tmp77, tmp78, tmp79, tmp80, tmp86);
1367 : }
1368 :
1369 56 : if (block5.is_used()) {
1370 : compiler::TNode<Context> tmp87;
1371 : compiler::TNode<Object> tmp88;
1372 : compiler::TNode<JSReceiver> tmp89;
1373 : compiler::TNode<Number> tmp90;
1374 : compiler::TNode<Object> tmp91;
1375 : compiler::TNode<Number> tmp92;
1376 : ca_.Bind(&block5, &tmp87, &tmp88, &tmp89, &tmp90, &tmp91, &tmp92);
1377 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 94);
1378 : compiler::TNode<Number> tmp93;
1379 : USE(tmp93);
1380 168 : tmp93 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(1));
1381 : compiler::TNode<Number> tmp94;
1382 : USE(tmp94);
1383 168 : tmp94 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberSub(compiler::TNode<Number>{tmp90}, compiler::TNode<Number>{tmp93}));
1384 : compiler::TNode<Smi> tmp95;
1385 : USE(tmp95);
1386 168 : tmp95 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr14ATLanguageMode24ATconstexpr_LanguageMode(LanguageMode::kStrict));
1387 112 : CodeStubAssembler(state_).CallBuiltin(Builtins::kDeleteProperty, tmp87, tmp89, tmp94, tmp95);
1388 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 97);
1389 : compiler::TNode<String> tmp97;
1390 : USE(tmp97);
1391 168 : tmp97 = BaseBuiltinsFromDSLAssembler(state_).kLengthString();
1392 : compiler::TNode<Number> tmp98;
1393 : USE(tmp98);
1394 168 : tmp98 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(1));
1395 : compiler::TNode<Number> tmp99;
1396 : USE(tmp99);
1397 168 : tmp99 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberSub(compiler::TNode<Number>{tmp90}, compiler::TNode<Number>{tmp98}));
1398 112 : CodeStubAssembler(state_).CallBuiltin(Builtins::kSetProperty, tmp87, tmp89, tmp97, tmp99);
1399 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 100);
1400 : ca_.Goto(&block1, tmp87, tmp88, tmp91);
1401 : }
1402 :
1403 56 : if (block1.is_used()) {
1404 : compiler::TNode<Context> tmp101;
1405 : compiler::TNode<Object> tmp102;
1406 : compiler::TNode<Object> tmp103;
1407 : ca_.Bind(&block1, &tmp101, &tmp102, &tmp103);
1408 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 46);
1409 : ca_.Goto(&block12, tmp101, tmp102, tmp103);
1410 : }
1411 :
1412 : compiler::TNode<Context> tmp104;
1413 : compiler::TNode<Object> tmp105;
1414 : compiler::TNode<Object> tmp106;
1415 : ca_.Bind(&block12, &tmp104, &tmp105, &tmp106);
1416 112 : return compiler::TNode<Object>{tmp106};
1417 : }
1418 :
1419 224 : TF_BUILTIN(ArrayPrototypeShift, CodeStubAssembler) {
1420 56 : compiler::CodeAssemblerState* state_ = state(); compiler::CodeAssembler ca_(state());
1421 : TNode<Context> parameter0 = UncheckedCast<Context>(Parameter(Descriptor::kContext));
1422 : USE(parameter0);
1423 : Node* argc = Parameter(Descriptor::kJSActualArgumentsCount);
1424 56 : TNode<IntPtrT> arguments_length(ChangeInt32ToIntPtr(argc));
1425 56 : TNode<RawPtrT> arguments_frame = UncheckedCast<RawPtrT>(LoadFramePointer());
1426 56 : BaseBuiltinsFromDSLAssembler::Arguments torque_arguments(GetFrameArguments(arguments_frame, arguments_length));
1427 : CodeStubArguments arguments(this, torque_arguments);
1428 56 : TNode<Object> parameter1 = arguments.GetReceiver();
1429 : USE(parameter1);
1430 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1431 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, RawPtrT, RawPtrT, IntPtrT> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1432 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, RawPtrT, RawPtrT, IntPtrT, Object> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1433 : compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
1434 : ca_.Goto(&block0, parameter0, parameter1, torque_arguments.frame, torque_arguments.base, torque_arguments.length);
1435 :
1436 56 : if (block0.is_used()) {
1437 : compiler::TNode<Context> tmp0;
1438 : compiler::TNode<Object> tmp1;
1439 : compiler::TNode<RawPtrT> tmp2;
1440 : compiler::TNode<RawPtrT> tmp3;
1441 : compiler::TNode<IntPtrT> tmp4;
1442 : ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3, &tmp4);
1443 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 107);
1444 : compiler::TNode<Object> tmp5;
1445 : USE(tmp5);
1446 56 : compiler::CodeAssemblerLabel label0(&ca_);
1447 168 : tmp5 = ArrayShiftBuiltinsFromDSLAssembler(state_).TryFastArrayShift(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}, BaseBuiltinsFromDSLAssembler::Arguments{compiler::TNode<RawPtrT>{tmp2}, compiler::TNode<RawPtrT>{tmp3}, compiler::TNode<IntPtrT>{tmp4}}, &label0);
1448 : ca_.Goto(&block3, tmp0, tmp1, tmp2, tmp3, tmp4, tmp1, tmp2, tmp3, tmp4, tmp5);
1449 56 : if (label0.is_used()) {
1450 56 : ca_.Bind(&label0);
1451 : ca_.Goto(&block4, tmp0, tmp1, tmp2, tmp3, tmp4, tmp1, tmp2, tmp3, tmp4);
1452 : }
1453 : }
1454 :
1455 56 : if (block4.is_used()) {
1456 : compiler::TNode<Context> tmp6;
1457 : compiler::TNode<Object> tmp7;
1458 : compiler::TNode<RawPtrT> tmp8;
1459 : compiler::TNode<RawPtrT> tmp9;
1460 : compiler::TNode<IntPtrT> tmp10;
1461 : compiler::TNode<Object> tmp11;
1462 : compiler::TNode<RawPtrT> tmp12;
1463 : compiler::TNode<RawPtrT> tmp13;
1464 : compiler::TNode<IntPtrT> tmp14;
1465 : ca_.Bind(&block4, &tmp6, &tmp7, &tmp8, &tmp9, &tmp10, &tmp11, &tmp12, &tmp13, &tmp14);
1466 : ca_.Goto(&block2, tmp6, tmp7, tmp8, tmp9, tmp10);
1467 : }
1468 :
1469 56 : if (block3.is_used()) {
1470 : compiler::TNode<Context> tmp15;
1471 : compiler::TNode<Object> tmp16;
1472 : compiler::TNode<RawPtrT> tmp17;
1473 : compiler::TNode<RawPtrT> tmp18;
1474 : compiler::TNode<IntPtrT> tmp19;
1475 : compiler::TNode<Object> tmp20;
1476 : compiler::TNode<RawPtrT> tmp21;
1477 : compiler::TNode<RawPtrT> tmp22;
1478 : compiler::TNode<IntPtrT> tmp23;
1479 : compiler::TNode<Object> tmp24;
1480 : ca_.Bind(&block3, &tmp15, &tmp16, &tmp17, &tmp18, &tmp19, &tmp20, &tmp21, &tmp22, &tmp23, &tmp24);
1481 56 : arguments.PopAndReturn(tmp24);
1482 : }
1483 :
1484 56 : if (block2.is_used()) {
1485 : compiler::TNode<Context> tmp25;
1486 : compiler::TNode<Object> tmp26;
1487 : compiler::TNode<RawPtrT> tmp27;
1488 : compiler::TNode<RawPtrT> tmp28;
1489 : compiler::TNode<IntPtrT> tmp29;
1490 : ca_.Bind(&block2, &tmp25, &tmp26, &tmp27, &tmp28, &tmp29);
1491 56 : ca_.SetSourcePosition("../../src/builtins/array-shift.tq", 110);
1492 : compiler::TNode<Object> tmp30;
1493 : USE(tmp30);
1494 112 : tmp30 = ca_.UncheckedCast<Object>(ArrayShiftBuiltinsFromDSLAssembler(state_).GenericArrayShift(compiler::TNode<Context>{tmp25}, compiler::TNode<Object>{tmp26}));
1495 56 : arguments.PopAndReturn(tmp30);
1496 : }
1497 56 : }
1498 :
1499 : } // namespace internal
1500 59480 : } // namespace v8
1501 :
|