LCOV - code coverage report
Current view: top level - out/Release/gen/torque-generated - builtins-array-unshift-from-dsl-gen.cc (source / functions) Hit Total Coverage
Test: app.info Lines: 159 159 100.0 %
Date: 2019-04-17 Functions: 5 5 100.0 %

          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          56 : void ArrayUnshiftBuiltinsFromDSLAssembler::TryFastArrayUnshift(compiler::TNode<Context> p_context, compiler::TNode<Object> p_receiver, BaseBuiltinsFromDSLAssembler::Arguments p_arguments, compiler::CodeAssemblerLabel* label_Slow) {
      82          56 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      83             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      84             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Object, JSArray> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      85             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, Map> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      86             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, Map> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      87             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, Map, Map> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      88             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSArray, Map, Map> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      89             :   compiler::CodeAssemblerParameterizedLabel<> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      90             :     ca_.Goto(&block0, p_context, p_receiver, p_arguments.frame, p_arguments.base, p_arguments.length);
      91             : 
      92          56 :   if (block0.is_used()) {
      93             :     compiler::TNode<Context> tmp0;
      94             :     compiler::TNode<Object> tmp1;
      95             :     compiler::TNode<RawPtrT> tmp2;
      96             :     compiler::TNode<RawPtrT> tmp3;
      97             :     compiler::TNode<IntPtrT> tmp4;
      98             :     ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3, &tmp4);
      99          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 11);
     100             :     compiler::TNode<JSArray> tmp5;
     101             :     USE(tmp5);
     102          56 :     compiler::CodeAssemblerLabel label0(&ca_);
     103         168 :     tmp5 = BaseBuiltinsFromDSLAssembler(state_).Cast13ATFastJSArray(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}, &label0);
     104             :     ca_.Goto(&block2, tmp0, tmp1, tmp2, tmp3, tmp4, tmp1, tmp5);
     105          56 :     if (label0.is_used()) {
     106          56 :       ca_.Bind(&label0);
     107             :       ca_.Goto(&block3, tmp0, tmp1, tmp2, tmp3, tmp4, tmp1);
     108             :     }
     109             :   }
     110             : 
     111          56 :   if (block3.is_used()) {
     112             :     compiler::TNode<Context> tmp6;
     113             :     compiler::TNode<Object> tmp7;
     114             :     compiler::TNode<RawPtrT> tmp8;
     115             :     compiler::TNode<RawPtrT> tmp9;
     116             :     compiler::TNode<IntPtrT> tmp10;
     117             :     compiler::TNode<Object> tmp11;
     118             :     ca_.Bind(&block3, &tmp6, &tmp7, &tmp8, &tmp9, &tmp10, &tmp11);
     119             :     ca_.Goto(&block1);
     120             :   }
     121             : 
     122          56 :   if (block2.is_used()) {
     123             :     compiler::TNode<Context> tmp12;
     124             :     compiler::TNode<Object> tmp13;
     125             :     compiler::TNode<RawPtrT> tmp14;
     126             :     compiler::TNode<RawPtrT> tmp15;
     127             :     compiler::TNode<IntPtrT> tmp16;
     128             :     compiler::TNode<Object> tmp17;
     129             :     compiler::TNode<JSArray> tmp18;
     130             :     ca_.Bind(&block2, &tmp12, &tmp13, &tmp14, &tmp15, &tmp16, &tmp17, &tmp18);
     131          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 12);
     132         168 :     ArrayBuiltinsFromDSLAssembler(state_).EnsureWriteableFastElements(compiler::TNode<Context>{tmp12}, compiler::TNode<JSArray>{tmp18});
     133          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 14);
     134          56 :     compiler::TNode<IntPtrT> tmp19 = ca_.IntPtrConstant(HeapObject::kMapOffset);
     135             :     USE(tmp19);
     136         112 :     compiler::TNode<Map>tmp20 = CodeStubAssembler(state_).LoadReference<Map>(CodeStubAssembler::Reference{tmp18, tmp19});
     137          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 15);
     138             :     compiler::TNode<BoolT> tmp21;
     139             :     USE(tmp21);
     140         112 :     tmp21 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).IsExtensibleMap(compiler::TNode<Map>{tmp20}));
     141             :     compiler::TNode<BoolT> tmp22;
     142             :     USE(tmp22);
     143         112 :     tmp22 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).Word32BinaryNot(compiler::TNode<BoolT>{tmp21}));
     144          56 :     ca_.Branch(tmp22, &block4, &block5, tmp12, tmp13, tmp14, tmp15, tmp16, tmp18, tmp20);
     145             :   }
     146             : 
     147          56 :   if (block4.is_used()) {
     148             :     compiler::TNode<Context> tmp23;
     149             :     compiler::TNode<Object> tmp24;
     150             :     compiler::TNode<RawPtrT> tmp25;
     151             :     compiler::TNode<RawPtrT> tmp26;
     152             :     compiler::TNode<IntPtrT> tmp27;
     153             :     compiler::TNode<JSArray> tmp28;
     154             :     compiler::TNode<Map> tmp29;
     155             :     ca_.Bind(&block4, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27, &tmp28, &tmp29);
     156             :     ca_.Goto(&block1);
     157             :   }
     158             : 
     159          56 :   if (block5.is_used()) {
     160             :     compiler::TNode<Context> tmp30;
     161             :     compiler::TNode<Object> tmp31;
     162             :     compiler::TNode<RawPtrT> tmp32;
     163             :     compiler::TNode<RawPtrT> tmp33;
     164             :     compiler::TNode<IntPtrT> tmp34;
     165             :     compiler::TNode<JSArray> tmp35;
     166             :     compiler::TNode<Map> tmp36;
     167             :     ca_.Bind(&block5, &tmp30, &tmp31, &tmp32, &tmp33, &tmp34, &tmp35, &tmp36);
     168          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 16);
     169          56 :     compiler::CodeAssemblerLabel label0(&ca_);
     170         112 :     CodeStubAssembler(state_).EnsureArrayLengthWritable(compiler::TNode<Map>{tmp36}, &label0);
     171             :     ca_.Goto(&block6, tmp30, tmp31, tmp32, tmp33, tmp34, tmp35, tmp36, tmp36);
     172          56 :     if (label0.is_used()) {
     173          56 :       ca_.Bind(&label0);
     174             :       ca_.Goto(&block7, tmp30, tmp31, tmp32, tmp33, tmp34, tmp35, tmp36, tmp36);
     175             :     }
     176             :   }
     177             : 
     178          56 :   if (block7.is_used()) {
     179             :     compiler::TNode<Context> tmp37;
     180             :     compiler::TNode<Object> tmp38;
     181             :     compiler::TNode<RawPtrT> tmp39;
     182             :     compiler::TNode<RawPtrT> tmp40;
     183             :     compiler::TNode<IntPtrT> tmp41;
     184             :     compiler::TNode<JSArray> tmp42;
     185             :     compiler::TNode<Map> tmp43;
     186             :     compiler::TNode<Map> tmp44;
     187             :     ca_.Bind(&block7, &tmp37, &tmp38, &tmp39, &tmp40, &tmp41, &tmp42, &tmp43, &tmp44);
     188             :     ca_.Goto(&block1);
     189             :   }
     190             : 
     191          56 :   if (block6.is_used()) {
     192             :     compiler::TNode<Context> tmp45;
     193             :     compiler::TNode<Object> tmp46;
     194             :     compiler::TNode<RawPtrT> tmp47;
     195             :     compiler::TNode<RawPtrT> tmp48;
     196             :     compiler::TNode<IntPtrT> tmp49;
     197             :     compiler::TNode<JSArray> tmp50;
     198             :     compiler::TNode<Map> tmp51;
     199             :     compiler::TNode<Map> tmp52;
     200             :     ca_.Bind(&block6, &tmp45, &tmp46, &tmp47, &tmp48, &tmp49, &tmp50, &tmp51, &tmp52);
     201          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 19);
     202             :     compiler::TNode<JSFunction> tmp53;
     203             :     USE(tmp53);
     204         168 :     tmp53 = ca_.UncheckedCast<JSFunction>(BaseBuiltinsFromDSLAssembler(state_).LoadTargetFromFrame());
     205             :     compiler::TNode<Oddball> tmp54;
     206             :     USE(tmp54);
     207         168 :     tmp54 = BaseBuiltinsFromDSLAssembler(state_).Undefined();
     208          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 20);
     209             :     compiler::TNode<Int32T> tmp55;
     210             :     USE(tmp55);
     211         168 :     tmp55 = ca_.UncheckedCast<Int32T>(BaseBuiltinsFromDSLAssembler(state_).Convert7ATint328ATintptr(compiler::TNode<IntPtrT>{tmp49}));
     212          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 18);
     213         112 :    CodeStubAssembler(state_).TailCallBuiltin(Builtins::kArrayUnshift, tmp45, tmp53, tmp54, tmp55);
     214             :   }
     215             : 
     216          56 :   if (block1.is_used()) {
     217             :     ca_.Bind(&block1);
     218          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 8);
     219          56 :     ca_.Goto(label_Slow);
     220             :   }
     221          56 : }
     222             : 
     223          56 : compiler::TNode<Number> ArrayUnshiftBuiltinsFromDSLAssembler::GenericArrayUnshift(compiler::TNode<Context> p_context, compiler::TNode<Object> p_receiver, BaseBuiltinsFromDSLAssembler::Arguments p_arguments) {
     224          56 :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     225             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Smi> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     226             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Smi, Number> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     227             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Smi, Number> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     228             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Smi> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     229             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Smi> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     230             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Smi, Number> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     231             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Smi, Number, Number> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     232             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Smi, Number, Number> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     233             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Smi, Number> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     234             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Smi, Number, Number, Number, Oddball> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     235             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Smi, Number, Number, Number, Oddball> block14(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     236             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Smi, Number, Number, Number, Oddball> block15(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     237             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Smi, Number> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     238             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Smi, Number, Smi> block18(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     239             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Smi, Number, Smi> block16(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     240             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Smi, Number, Smi> block17(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     241             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, JSReceiver, Number, Smi> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     242             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Number> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     243             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Number> block19(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     244             :     ca_.Goto(&block0, p_context, p_receiver, p_arguments.frame, p_arguments.base, p_arguments.length);
     245             : 
     246          56 :   if (block0.is_used()) {
     247             :     compiler::TNode<Context> tmp0;
     248             :     compiler::TNode<Object> tmp1;
     249             :     compiler::TNode<RawPtrT> tmp2;
     250             :     compiler::TNode<RawPtrT> tmp3;
     251             :     compiler::TNode<IntPtrT> tmp4;
     252             :     ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3, &tmp4);
     253          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 26);
     254             :     compiler::TNode<JSReceiver> tmp5;
     255             :     USE(tmp5);
     256         112 :     tmp5 = ca_.UncheckedCast<JSReceiver>(CodeStubAssembler(state_).ToObject_Inline(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}));
     257          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 29);
     258             :     compiler::TNode<Number> tmp6;
     259             :     USE(tmp6);
     260         168 :     tmp6 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).GetLengthProperty(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp5}));
     261          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 32);
     262             :     compiler::TNode<Smi> tmp7;
     263             :     USE(tmp7);
     264         168 :     tmp7 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).Convert5ATSmi8ATintptr(compiler::TNode<IntPtrT>{tmp4}));
     265          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 35);
     266             :     compiler::TNode<Smi> tmp8;
     267             :     USE(tmp8);
     268         168 :     tmp8 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(0));
     269             :     compiler::TNode<BoolT> tmp9;
     270             :     USE(tmp9);
     271         112 :     tmp9 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiGreaterThan(compiler::TNode<Smi>{tmp7}, compiler::TNode<Smi>{tmp8}));
     272          56 :     ca_.Branch(tmp9, &block2, &block3, tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7);
     273             :   }
     274             : 
     275          56 :   if (block2.is_used()) {
     276             :     compiler::TNode<Context> tmp10;
     277             :     compiler::TNode<Object> tmp11;
     278             :     compiler::TNode<RawPtrT> tmp12;
     279             :     compiler::TNode<RawPtrT> tmp13;
     280             :     compiler::TNode<IntPtrT> tmp14;
     281             :     compiler::TNode<JSReceiver> tmp15;
     282             :     compiler::TNode<Number> tmp16;
     283             :     compiler::TNode<Smi> tmp17;
     284             :     ca_.Bind(&block2, &tmp10, &tmp11, &tmp12, &tmp13, &tmp14, &tmp15, &tmp16, &tmp17);
     285          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 37);
     286             :     compiler::TNode<Number> tmp18;
     287             :     USE(tmp18);
     288         168 :     tmp18 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberAdd(compiler::TNode<Number>{tmp16}, compiler::TNode<Number>{tmp17}));
     289             :     compiler::TNode<Number> tmp19;
     290             :     USE(tmp19);
     291         168 :     tmp19 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber19ATconstexpr_float64(kMaxSafeInteger));
     292          56 :     compiler::CodeAssemblerLabel label0(&ca_);
     293          56 :     compiler::CodeAssemblerLabel label1(&ca_);
     294         112 :     CodeStubAssembler(state_).BranchIfNumberGreaterThan(compiler::TNode<Number>{tmp18}, compiler::TNode<Number>{tmp19}, &label0, &label1);
     295          56 :     if (label0.is_used()) {
     296          56 :       ca_.Bind(&label0);
     297             :       ca_.Goto(&block6, tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16, tmp17, tmp18);
     298             :     }
     299          56 :     if (label1.is_used()) {
     300          56 :       ca_.Bind(&label1);
     301             :       ca_.Goto(&block7, tmp10, tmp11, tmp12, tmp13, tmp14, tmp15, tmp16, tmp17, tmp18);
     302             :     }
     303             :   }
     304             : 
     305          56 :   if (block6.is_used()) {
     306             :     compiler::TNode<Context> tmp20;
     307             :     compiler::TNode<Object> tmp21;
     308             :     compiler::TNode<RawPtrT> tmp22;
     309             :     compiler::TNode<RawPtrT> tmp23;
     310             :     compiler::TNode<IntPtrT> tmp24;
     311             :     compiler::TNode<JSReceiver> tmp25;
     312             :     compiler::TNode<Number> tmp26;
     313             :     compiler::TNode<Smi> tmp27;
     314             :     compiler::TNode<Number> tmp28;
     315             :     ca_.Bind(&block6, &tmp20, &tmp21, &tmp22, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27, &tmp28);
     316             :     ca_.Goto(&block4, tmp20, tmp21, tmp22, tmp23, tmp24, tmp25, tmp26, tmp27);
     317             :   }
     318             : 
     319          56 :   if (block7.is_used()) {
     320             :     compiler::TNode<Context> tmp29;
     321             :     compiler::TNode<Object> tmp30;
     322             :     compiler::TNode<RawPtrT> tmp31;
     323             :     compiler::TNode<RawPtrT> tmp32;
     324             :     compiler::TNode<IntPtrT> tmp33;
     325             :     compiler::TNode<JSReceiver> tmp34;
     326             :     compiler::TNode<Number> tmp35;
     327             :     compiler::TNode<Smi> tmp36;
     328             :     compiler::TNode<Number> tmp37;
     329             :     ca_.Bind(&block7, &tmp29, &tmp30, &tmp31, &tmp32, &tmp33, &tmp34, &tmp35, &tmp36, &tmp37);
     330             :     ca_.Goto(&block5, tmp29, tmp30, tmp31, tmp32, tmp33, tmp34, tmp35, tmp36);
     331             :   }
     332             : 
     333          56 :   if (block4.is_used()) {
     334             :     compiler::TNode<Context> tmp38;
     335             :     compiler::TNode<Object> tmp39;
     336             :     compiler::TNode<RawPtrT> tmp40;
     337             :     compiler::TNode<RawPtrT> tmp41;
     338             :     compiler::TNode<IntPtrT> tmp42;
     339             :     compiler::TNode<JSReceiver> tmp43;
     340             :     compiler::TNode<Number> tmp44;
     341             :     compiler::TNode<Smi> tmp45;
     342             :     ca_.Bind(&block4, &tmp38, &tmp39, &tmp40, &tmp41, &tmp42, &tmp43, &tmp44, &tmp45);
     343          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 38);
     344         112 :     CodeStubAssembler(state_).ThrowTypeError(compiler::TNode<Context>{tmp38}, MessageTemplate::kInvalidArrayLength);
     345             :   }
     346             : 
     347          56 :   if (block5.is_used()) {
     348             :     compiler::TNode<Context> tmp46;
     349             :     compiler::TNode<Object> tmp47;
     350             :     compiler::TNode<RawPtrT> tmp48;
     351             :     compiler::TNode<RawPtrT> tmp49;
     352             :     compiler::TNode<IntPtrT> tmp50;
     353             :     compiler::TNode<JSReceiver> tmp51;
     354             :     compiler::TNode<Number> tmp52;
     355             :     compiler::TNode<Smi> tmp53;
     356             :     ca_.Bind(&block5, &tmp46, &tmp47, &tmp48, &tmp49, &tmp50, &tmp51, &tmp52, &tmp53);
     357          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 42);
     358          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 45);
     359             :     ca_.Goto(&block10, tmp46, tmp47, tmp48, tmp49, tmp50, tmp51, tmp52, tmp53, tmp52);
     360             :   }
     361             : 
     362          56 :   if (block10.is_used()) {
     363             :     compiler::TNode<Context> tmp54;
     364             :     compiler::TNode<Object> tmp55;
     365             :     compiler::TNode<RawPtrT> tmp56;
     366             :     compiler::TNode<RawPtrT> tmp57;
     367             :     compiler::TNode<IntPtrT> tmp58;
     368             :     compiler::TNode<JSReceiver> tmp59;
     369             :     compiler::TNode<Number> tmp60;
     370             :     compiler::TNode<Smi> tmp61;
     371             :     compiler::TNode<Number> tmp62;
     372             :     ca_.Bind(&block10, &tmp54, &tmp55, &tmp56, &tmp57, &tmp58, &tmp59, &tmp60, &tmp61, &tmp62);
     373             :     compiler::TNode<Number> tmp63;
     374             :     USE(tmp63);
     375         168 :     tmp63 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(0));
     376          56 :     compiler::CodeAssemblerLabel label0(&ca_);
     377          56 :     compiler::CodeAssemblerLabel label1(&ca_);
     378         112 :     CodeStubAssembler(state_).BranchIfNumberGreaterThan(compiler::TNode<Number>{tmp62}, compiler::TNode<Number>{tmp63}, &label0, &label1);
     379          56 :     if (label0.is_used()) {
     380          56 :       ca_.Bind(&label0);
     381             :       ca_.Goto(&block11, tmp54, tmp55, tmp56, tmp57, tmp58, tmp59, tmp60, tmp61, tmp62, tmp62);
     382             :     }
     383          56 :     if (label1.is_used()) {
     384          56 :       ca_.Bind(&label1);
     385             :       ca_.Goto(&block12, tmp54, tmp55, tmp56, tmp57, tmp58, tmp59, tmp60, tmp61, tmp62, tmp62);
     386             :     }
     387             :   }
     388             : 
     389          56 :   if (block11.is_used()) {
     390             :     compiler::TNode<Context> tmp64;
     391             :     compiler::TNode<Object> tmp65;
     392             :     compiler::TNode<RawPtrT> tmp66;
     393             :     compiler::TNode<RawPtrT> tmp67;
     394             :     compiler::TNode<IntPtrT> tmp68;
     395             :     compiler::TNode<JSReceiver> tmp69;
     396             :     compiler::TNode<Number> tmp70;
     397             :     compiler::TNode<Smi> tmp71;
     398             :     compiler::TNode<Number> tmp72;
     399             :     compiler::TNode<Number> tmp73;
     400             :     ca_.Bind(&block11, &tmp64, &tmp65, &tmp66, &tmp67, &tmp68, &tmp69, &tmp70, &tmp71, &tmp72, &tmp73);
     401             :     ca_.Goto(&block8, tmp64, tmp65, tmp66, tmp67, tmp68, tmp69, tmp70, tmp71, tmp72);
     402             :   }
     403             : 
     404          56 :   if (block12.is_used()) {
     405             :     compiler::TNode<Context> tmp74;
     406             :     compiler::TNode<Object> tmp75;
     407             :     compiler::TNode<RawPtrT> tmp76;
     408             :     compiler::TNode<RawPtrT> tmp77;
     409             :     compiler::TNode<IntPtrT> tmp78;
     410             :     compiler::TNode<JSReceiver> tmp79;
     411             :     compiler::TNode<Number> tmp80;
     412             :     compiler::TNode<Smi> tmp81;
     413             :     compiler::TNode<Number> tmp82;
     414             :     compiler::TNode<Number> tmp83;
     415             :     ca_.Bind(&block12, &tmp74, &tmp75, &tmp76, &tmp77, &tmp78, &tmp79, &tmp80, &tmp81, &tmp82, &tmp83);
     416             :     ca_.Goto(&block9, tmp74, tmp75, tmp76, tmp77, tmp78, tmp79, tmp80, tmp81, tmp82);
     417             :   }
     418             : 
     419          56 :   if (block8.is_used()) {
     420             :     compiler::TNode<Context> tmp84;
     421             :     compiler::TNode<Object> tmp85;
     422             :     compiler::TNode<RawPtrT> tmp86;
     423             :     compiler::TNode<RawPtrT> tmp87;
     424             :     compiler::TNode<IntPtrT> tmp88;
     425             :     compiler::TNode<JSReceiver> tmp89;
     426             :     compiler::TNode<Number> tmp90;
     427             :     compiler::TNode<Smi> tmp91;
     428             :     compiler::TNode<Number> tmp92;
     429             :     ca_.Bind(&block8, &tmp84, &tmp85, &tmp86, &tmp87, &tmp88, &tmp89, &tmp90, &tmp91, &tmp92);
     430          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 47);
     431             :     compiler::TNode<Number> tmp93;
     432             :     USE(tmp93);
     433         168 :     tmp93 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(1));
     434             :     compiler::TNode<Number> tmp94;
     435             :     USE(tmp94);
     436         168 :     tmp94 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberSub(compiler::TNode<Number>{tmp92}, compiler::TNode<Number>{tmp93}));
     437          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 50);
     438             :     compiler::TNode<Number> tmp95;
     439             :     USE(tmp95);
     440         168 :     tmp95 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberAdd(compiler::TNode<Number>{tmp92}, compiler::TNode<Number>{tmp91}));
     441             :     compiler::TNode<Number> tmp96;
     442             :     USE(tmp96);
     443         168 :     tmp96 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(1));
     444             :     compiler::TNode<Number> tmp97;
     445             :     USE(tmp97);
     446         112 :     tmp97 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberSub(compiler::TNode<Number>{tmp95}, compiler::TNode<Number>{tmp96}));
     447          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 53);
     448             :     compiler::TNode<Oddball> tmp98;
     449         112 :     tmp98 = TORQUE_CAST(CodeStubAssembler(state_).CallBuiltin(Builtins::kHasProperty, tmp84, tmp89, tmp94));
     450             :     USE(tmp98);
     451          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 56);
     452             :     compiler::TNode<Oddball> tmp99;
     453             :     USE(tmp99);
     454         168 :     tmp99 = BaseBuiltinsFromDSLAssembler(state_).True();
     455             :     compiler::TNode<BoolT> tmp100;
     456             :     USE(tmp100);
     457         112 :     tmp100 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<HeapObject>{tmp98}, compiler::TNode<HeapObject>{tmp99}));
     458          56 :     ca_.Branch(tmp100, &block13, &block14, tmp84, tmp85, tmp86, tmp87, tmp88, tmp89, tmp90, tmp91, tmp92, tmp94, tmp97, tmp98);
     459             :   }
     460             : 
     461          56 :   if (block13.is_used()) {
     462             :     compiler::TNode<Context> tmp101;
     463             :     compiler::TNode<Object> tmp102;
     464             :     compiler::TNode<RawPtrT> tmp103;
     465             :     compiler::TNode<RawPtrT> tmp104;
     466             :     compiler::TNode<IntPtrT> tmp105;
     467             :     compiler::TNode<JSReceiver> tmp106;
     468             :     compiler::TNode<Number> tmp107;
     469             :     compiler::TNode<Smi> tmp108;
     470             :     compiler::TNode<Number> tmp109;
     471             :     compiler::TNode<Number> tmp110;
     472             :     compiler::TNode<Number> tmp111;
     473             :     compiler::TNode<Oddball> tmp112;
     474             :     ca_.Bind(&block13, &tmp101, &tmp102, &tmp103, &tmp104, &tmp105, &tmp106, &tmp107, &tmp108, &tmp109, &tmp110, &tmp111, &tmp112);
     475          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 58);
     476             :     compiler::TNode<Object> tmp113;
     477             :     USE(tmp113);
     478         112 :     tmp113 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetProperty(compiler::TNode<Context>{tmp101}, compiler::TNode<Object>{tmp106}, compiler::TNode<Object>{tmp110}));
     479          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 61);
     480         112 :     CodeStubAssembler(state_).CallBuiltin(Builtins::kSetProperty, tmp101, tmp106, tmp111, tmp113);
     481          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 56);
     482             :     ca_.Goto(&block15, tmp101, tmp102, tmp103, tmp104, tmp105, tmp106, tmp107, tmp108, tmp109, tmp110, tmp111, tmp112);
     483             :   }
     484             : 
     485          56 :   if (block14.is_used()) {
     486             :     compiler::TNode<Context> tmp115;
     487             :     compiler::TNode<Object> tmp116;
     488             :     compiler::TNode<RawPtrT> tmp117;
     489             :     compiler::TNode<RawPtrT> tmp118;
     490             :     compiler::TNode<IntPtrT> tmp119;
     491             :     compiler::TNode<JSReceiver> tmp120;
     492             :     compiler::TNode<Number> tmp121;
     493             :     compiler::TNode<Smi> tmp122;
     494             :     compiler::TNode<Number> tmp123;
     495             :     compiler::TNode<Number> tmp124;
     496             :     compiler::TNode<Number> tmp125;
     497             :     compiler::TNode<Oddball> tmp126;
     498             :     ca_.Bind(&block14, &tmp115, &tmp116, &tmp117, &tmp118, &tmp119, &tmp120, &tmp121, &tmp122, &tmp123, &tmp124, &tmp125, &tmp126);
     499          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 64);
     500             :     compiler::TNode<Smi> tmp127;
     501             :     USE(tmp127);
     502         168 :     tmp127 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr14ATLanguageMode24ATconstexpr_LanguageMode(LanguageMode::kStrict));
     503         112 :     CodeStubAssembler(state_).CallBuiltin(Builtins::kDeleteProperty, tmp115, tmp120, tmp125, tmp127);
     504          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 56);
     505             :     ca_.Goto(&block15, tmp115, tmp116, tmp117, tmp118, tmp119, tmp120, tmp121, tmp122, tmp123, tmp124, tmp125, tmp126);
     506             :   }
     507             : 
     508          56 :   if (block15.is_used()) {
     509             :     compiler::TNode<Context> tmp129;
     510             :     compiler::TNode<Object> tmp130;
     511             :     compiler::TNode<RawPtrT> tmp131;
     512             :     compiler::TNode<RawPtrT> tmp132;
     513             :     compiler::TNode<IntPtrT> tmp133;
     514             :     compiler::TNode<JSReceiver> tmp134;
     515             :     compiler::TNode<Number> tmp135;
     516             :     compiler::TNode<Smi> tmp136;
     517             :     compiler::TNode<Number> tmp137;
     518             :     compiler::TNode<Number> tmp138;
     519             :     compiler::TNode<Number> tmp139;
     520             :     compiler::TNode<Oddball> tmp140;
     521             :     ca_.Bind(&block15, &tmp129, &tmp130, &tmp131, &tmp132, &tmp133, &tmp134, &tmp135, &tmp136, &tmp137, &tmp138, &tmp139, &tmp140);
     522          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 68);
     523             :     compiler::TNode<Number> tmp141;
     524             :     USE(tmp141);
     525         168 :     tmp141 = ca_.UncheckedCast<Number>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr20UT5ATSmi10HeapNumber17ATconstexpr_int31(1));
     526             :     compiler::TNode<Number> tmp142;
     527             :     USE(tmp142);
     528         168 :     tmp142 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberSub(compiler::TNode<Number>{tmp137}, compiler::TNode<Number>{tmp141}));
     529          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 45);
     530             :     ca_.Goto(&block10, tmp129, tmp130, tmp131, tmp132, tmp133, tmp134, tmp135, tmp136, tmp142);
     531             :   }
     532             : 
     533          56 :   if (block9.is_used()) {
     534             :     compiler::TNode<Context> tmp143;
     535             :     compiler::TNode<Object> tmp144;
     536             :     compiler::TNode<RawPtrT> tmp145;
     537             :     compiler::TNode<RawPtrT> tmp146;
     538             :     compiler::TNode<IntPtrT> tmp147;
     539             :     compiler::TNode<JSReceiver> tmp148;
     540             :     compiler::TNode<Number> tmp149;
     541             :     compiler::TNode<Smi> tmp150;
     542             :     compiler::TNode<Number> tmp151;
     543             :     ca_.Bind(&block9, &tmp143, &tmp144, &tmp145, &tmp146, &tmp147, &tmp148, &tmp149, &tmp150, &tmp151);
     544          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 72);
     545             :     compiler::TNode<Smi> tmp152;
     546             :     USE(tmp152);
     547         168 :     tmp152 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(0));
     548          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 77);
     549             :     ca_.Goto(&block18, tmp143, tmp144, tmp145, tmp146, tmp147, tmp148, tmp149, tmp150, tmp151, tmp152);
     550             :   }
     551             : 
     552          56 :   if (block18.is_used()) {
     553             :     compiler::TNode<Context> tmp153;
     554             :     compiler::TNode<Object> tmp154;
     555             :     compiler::TNode<RawPtrT> tmp155;
     556             :     compiler::TNode<RawPtrT> tmp156;
     557             :     compiler::TNode<IntPtrT> tmp157;
     558             :     compiler::TNode<JSReceiver> tmp158;
     559             :     compiler::TNode<Number> tmp159;
     560             :     compiler::TNode<Smi> tmp160;
     561             :     compiler::TNode<Number> tmp161;
     562             :     compiler::TNode<Smi> tmp162;
     563             :     ca_.Bind(&block18, &tmp153, &tmp154, &tmp155, &tmp156, &tmp157, &tmp158, &tmp159, &tmp160, &tmp161, &tmp162);
     564             :     compiler::TNode<BoolT> tmp163;
     565             :     USE(tmp163);
     566         112 :     tmp163 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiLessThan(compiler::TNode<Smi>{tmp162}, compiler::TNode<Smi>{tmp160}));
     567          56 :     ca_.Branch(tmp163, &block16, &block17, tmp153, tmp154, tmp155, tmp156, tmp157, tmp158, tmp159, tmp160, tmp161, tmp162);
     568             :   }
     569             : 
     570          56 :   if (block16.is_used()) {
     571             :     compiler::TNode<Context> tmp164;
     572             :     compiler::TNode<Object> tmp165;
     573             :     compiler::TNode<RawPtrT> tmp166;
     574             :     compiler::TNode<RawPtrT> tmp167;
     575             :     compiler::TNode<IntPtrT> tmp168;
     576             :     compiler::TNode<JSReceiver> tmp169;
     577             :     compiler::TNode<Number> tmp170;
     578             :     compiler::TNode<Smi> tmp171;
     579             :     compiler::TNode<Number> tmp172;
     580             :     compiler::TNode<Smi> tmp173;
     581             :     ca_.Bind(&block16, &tmp164, &tmp165, &tmp166, &tmp167, &tmp168, &tmp169, &tmp170, &tmp171, &tmp172, &tmp173);
     582          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 79);
     583             :     compiler::TNode<IntPtrT> tmp174;
     584             :     USE(tmp174);
     585         168 :     tmp174 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).Convert8ATintptr5ATSmi(compiler::TNode<Smi>{tmp173}));
     586             :     compiler::TNode<Object> tmp175;
     587             :     USE(tmp175);
     588         112 :     tmp175 = ca_.UncheckedCast<Object>(CodeStubAssembler(state_).GetArgumentValue(BaseBuiltinsFromDSLAssembler::Arguments{compiler::TNode<RawPtrT>{tmp166}, compiler::TNode<RawPtrT>{tmp167}, compiler::TNode<IntPtrT>{tmp168}}, compiler::TNode<IntPtrT>{tmp174}));
     589         112 :     CodeStubAssembler(state_).CallBuiltin(Builtins::kSetProperty, tmp164, tmp169, tmp173, tmp175);
     590          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 82);
     591             :     compiler::TNode<Smi> tmp177;
     592             :     USE(tmp177);
     593         168 :     tmp177 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(1));
     594             :     compiler::TNode<Smi> tmp178;
     595             :     USE(tmp178);
     596         112 :     tmp178 = ca_.UncheckedCast<Smi>(CodeStubAssembler(state_).SmiAdd(compiler::TNode<Smi>{tmp173}, compiler::TNode<Smi>{tmp177}));
     597          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 77);
     598             :     ca_.Goto(&block18, tmp164, tmp165, tmp166, tmp167, tmp168, tmp169, tmp170, tmp171, tmp172, tmp178);
     599             :   }
     600             : 
     601          56 :   if (block17.is_used()) {
     602             :     compiler::TNode<Context> tmp179;
     603             :     compiler::TNode<Object> tmp180;
     604             :     compiler::TNode<RawPtrT> tmp181;
     605             :     compiler::TNode<RawPtrT> tmp182;
     606             :     compiler::TNode<IntPtrT> tmp183;
     607             :     compiler::TNode<JSReceiver> tmp184;
     608             :     compiler::TNode<Number> tmp185;
     609             :     compiler::TNode<Smi> tmp186;
     610             :     compiler::TNode<Number> tmp187;
     611             :     compiler::TNode<Smi> tmp188;
     612             :     ca_.Bind(&block17, &tmp179, &tmp180, &tmp181, &tmp182, &tmp183, &tmp184, &tmp185, &tmp186, &tmp187, &tmp188);
     613          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 35);
     614             :     ca_.Goto(&block3, tmp179, tmp180, tmp181, tmp182, tmp183, tmp184, tmp185, tmp186);
     615             :   }
     616             : 
     617          56 :   if (block3.is_used()) {
     618             :     compiler::TNode<Context> tmp189;
     619             :     compiler::TNode<Object> tmp190;
     620             :     compiler::TNode<RawPtrT> tmp191;
     621             :     compiler::TNode<RawPtrT> tmp192;
     622             :     compiler::TNode<IntPtrT> tmp193;
     623             :     compiler::TNode<JSReceiver> tmp194;
     624             :     compiler::TNode<Number> tmp195;
     625             :     compiler::TNode<Smi> tmp196;
     626             :     ca_.Bind(&block3, &tmp189, &tmp190, &tmp191, &tmp192, &tmp193, &tmp194, &tmp195, &tmp196);
     627          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 87);
     628             :     compiler::TNode<Number> tmp197;
     629             :     USE(tmp197);
     630         168 :     tmp197 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).NumberAdd(compiler::TNode<Number>{tmp195}, compiler::TNode<Number>{tmp196}));
     631          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 88);
     632             :     compiler::TNode<String> tmp198;
     633             :     USE(tmp198);
     634         168 :     tmp198 = BaseBuiltinsFromDSLAssembler(state_).kLengthString();
     635         112 :     CodeStubAssembler(state_).CallBuiltin(Builtins::kSetProperty, tmp189, tmp194, tmp198, tmp197);
     636          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 91);
     637             :     ca_.Goto(&block1, tmp189, tmp190, tmp191, tmp192, tmp193, tmp197);
     638             :   }
     639             : 
     640          56 :   if (block1.is_used()) {
     641             :     compiler::TNode<Context> tmp200;
     642             :     compiler::TNode<Object> tmp201;
     643             :     compiler::TNode<RawPtrT> tmp202;
     644             :     compiler::TNode<RawPtrT> tmp203;
     645             :     compiler::TNode<IntPtrT> tmp204;
     646             :     compiler::TNode<Number> tmp205;
     647             :     ca_.Bind(&block1, &tmp200, &tmp201, &tmp202, &tmp203, &tmp204, &tmp205);
     648          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 23);
     649             :     ca_.Goto(&block19, tmp200, tmp201, tmp202, tmp203, tmp204, tmp205);
     650             :   }
     651             : 
     652             :     compiler::TNode<Context> tmp206;
     653             :     compiler::TNode<Object> tmp207;
     654             :     compiler::TNode<RawPtrT> tmp208;
     655             :     compiler::TNode<RawPtrT> tmp209;
     656             :     compiler::TNode<IntPtrT> tmp210;
     657             :     compiler::TNode<Number> tmp211;
     658             :     ca_.Bind(&block19, &tmp206, &tmp207, &tmp208, &tmp209, &tmp210, &tmp211);
     659         112 :   return compiler::TNode<Number>{tmp211};
     660             : }
     661             : 
     662         224 : TF_BUILTIN(ArrayPrototypeUnshift, CodeStubAssembler) {
     663          56 :   compiler::CodeAssemblerState* state_ = state();  compiler::CodeAssembler ca_(state());
     664             :   TNode<Context> parameter0 = UncheckedCast<Context>(Parameter(Descriptor::kContext));
     665             :   USE(parameter0);
     666             :   Node* argc = Parameter(Descriptor::kJSActualArgumentsCount);
     667          56 :   TNode<IntPtrT> arguments_length(ChangeInt32ToIntPtr(argc));
     668          56 :   TNode<RawPtrT> arguments_frame = UncheckedCast<RawPtrT>(LoadFramePointer());
     669          56 :   BaseBuiltinsFromDSLAssembler::Arguments torque_arguments(GetFrameArguments(arguments_frame, arguments_length));
     670             :   CodeStubArguments arguments(this, torque_arguments);
     671          56 :   TNode<Object> parameter1 = arguments.GetReceiver();
     672             : USE(parameter1);
     673             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     674             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT, Context, Object, RawPtrT, RawPtrT, IntPtrT> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     675             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, RawPtrT, RawPtrT, IntPtrT> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     676             :     ca_.Goto(&block0, parameter0, parameter1, torque_arguments.frame, torque_arguments.base, torque_arguments.length);
     677             : 
     678          56 :   if (block0.is_used()) {
     679             :     compiler::TNode<Context> tmp0;
     680             :     compiler::TNode<Object> tmp1;
     681             :     compiler::TNode<RawPtrT> tmp2;
     682             :     compiler::TNode<RawPtrT> tmp3;
     683             :     compiler::TNode<IntPtrT> tmp4;
     684             :     ca_.Bind(&block0, &tmp0, &tmp1, &tmp2, &tmp3, &tmp4);
     685          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 98);
     686          56 :     compiler::CodeAssemblerLabel label0(&ca_);
     687         168 :     ArrayUnshiftBuiltinsFromDSLAssembler(state_).TryFastArrayUnshift(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}, BaseBuiltinsFromDSLAssembler::Arguments{compiler::TNode<RawPtrT>{tmp2}, compiler::TNode<RawPtrT>{tmp3}, compiler::TNode<IntPtrT>{tmp4}}, &label0);
     688          56 :     if (label0.is_used()) {
     689          56 :       ca_.Bind(&label0);
     690             :       ca_.Goto(&block3, tmp0, tmp1, tmp2, tmp3, tmp4, tmp0, tmp1, tmp2, tmp3, tmp4);
     691             :     }
     692             :   }
     693             : 
     694          56 :   if (block3.is_used()) {
     695             :     compiler::TNode<Context> tmp5;
     696             :     compiler::TNode<Object> tmp6;
     697             :     compiler::TNode<RawPtrT> tmp7;
     698             :     compiler::TNode<RawPtrT> tmp8;
     699             :     compiler::TNode<IntPtrT> tmp9;
     700             :     compiler::TNode<Context> tmp10;
     701             :     compiler::TNode<Object> tmp11;
     702             :     compiler::TNode<RawPtrT> tmp12;
     703             :     compiler::TNode<RawPtrT> tmp13;
     704             :     compiler::TNode<IntPtrT> tmp14;
     705             :     ca_.Bind(&block3, &tmp5, &tmp6, &tmp7, &tmp8, &tmp9, &tmp10, &tmp11, &tmp12, &tmp13, &tmp14);
     706             :     ca_.Goto(&block2, tmp5, tmp6, tmp7, tmp8, tmp9);
     707             :   }
     708             : 
     709          56 :   if (block2.is_used()) {
     710             :     compiler::TNode<Context> tmp15;
     711             :     compiler::TNode<Object> tmp16;
     712             :     compiler::TNode<RawPtrT> tmp17;
     713             :     compiler::TNode<RawPtrT> tmp18;
     714             :     compiler::TNode<IntPtrT> tmp19;
     715             :     ca_.Bind(&block2, &tmp15, &tmp16, &tmp17, &tmp18, &tmp19);
     716          56 :     ca_.SetSourcePosition("../../src/builtins/array-unshift.tq", 101);
     717             :     compiler::TNode<Number> tmp20;
     718             :     USE(tmp20);
     719         168 :     tmp20 = ca_.UncheckedCast<Number>(ArrayUnshiftBuiltinsFromDSLAssembler(state_).GenericArrayUnshift(compiler::TNode<Context>{tmp15}, compiler::TNode<Object>{tmp16}, BaseBuiltinsFromDSLAssembler::Arguments{compiler::TNode<RawPtrT>{tmp17}, compiler::TNode<RawPtrT>{tmp18}, compiler::TNode<IntPtrT>{tmp19}}));
     720          56 :     arguments.PopAndReturn(tmp20);
     721             :   }
     722          56 : }
     723             : 
     724             : }  // namespace internal
     725       59456 : }  // namespace v8
     726             : 

Generated by: LCOV version 1.10