LCOV - code coverage report
Current view: top level - out/Release/gen/torque-generated - builtins-string-repeat-from-dsl-gen.cc (source / functions) Hit Total Coverage
Test: app.info Lines: 117 117 100.0 %
Date: 2019-04-19 Functions: 6 6 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-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 : const char* StringRepeatBuiltinsFromDSLAssembler::kBuiltinName() {
      84          56 :   compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
      85             :     ca_.Goto(&block0);
      86             : 
      87             :     ca_.Bind(&block0);
      88          56 : return "String.prototype.repeat";
      89             : }
      90             : 
      91         224 : TF_BUILTIN(StringRepeat, CodeStubAssembler) {
      92          56 :   compiler::CodeAssemblerState* state_ = state();  compiler::CodeAssembler ca_(state());
      93             :   TNode<Context> parameter0 = UncheckedCast<Context>(Parameter(Descriptor::kContext));
      94             :   USE(parameter0);
      95             :   compiler::TNode<String> parameter1 = UncheckedCast<String>(Parameter(Descriptor::kString));
      96             :   USE(parameter1);
      97             :   compiler::TNode<Smi> parameter2 = UncheckedCast<Smi>(Parameter(Descriptor::kCount));
      98             :   USE(parameter2);
      99             :   compiler::CodeAssemblerParameterizedLabel<Context, String, Smi> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     100             :   compiler::CodeAssemblerParameterizedLabel<Context, String, Smi, String, String, IntPtrT> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     101             :   compiler::CodeAssemblerParameterizedLabel<Context, String, Smi, String, String, IntPtrT> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     102             :   compiler::CodeAssemblerParameterizedLabel<Context, String, Smi, String, String, IntPtrT> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     103             :   compiler::CodeAssemblerParameterizedLabel<Context, String, Smi, String, String, IntPtrT> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     104             :   compiler::CodeAssemblerParameterizedLabel<Context, String, Smi, String, String, IntPtrT> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     105             :   compiler::CodeAssemblerParameterizedLabel<Context, String, Smi, String, String, IntPtrT> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     106             :   compiler::CodeAssemblerParameterizedLabel<Context, String, Smi, String, String, IntPtrT> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     107             :     ca_.Goto(&block0, parameter0, parameter1, parameter2);
     108             : 
     109          56 :   if (block0.is_used()) {
     110             :     compiler::TNode<Context> tmp0;
     111             :     compiler::TNode<String> tmp1;
     112             :     compiler::TNode<Smi> tmp2;
     113             :     ca_.Bind(&block0, &tmp0, &tmp1, &tmp2);
     114          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 13);
     115             :     compiler::TNode<String> tmp3;
     116             :     USE(tmp3);
     117         112 :     tmp3 = BaseBuiltinsFromDSLAssembler(state_).kEmptyString();
     118          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 14);
     119          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 15);
     120             :     compiler::TNode<IntPtrT> tmp4;
     121             :     USE(tmp4);
     122         112 :     tmp4 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).Convert8ATintptr5ATSmi(compiler::TNode<Smi>{tmp2}));
     123          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 17);
     124             :     ca_.Goto(&block3, tmp0, tmp1, tmp2, tmp3, tmp1, tmp4);
     125             :   }
     126             : 
     127          56 :   if (block3.is_used()) {
     128             :     compiler::TNode<Context> tmp5;
     129             :     compiler::TNode<String> tmp6;
     130             :     compiler::TNode<Smi> tmp7;
     131             :     compiler::TNode<String> tmp8;
     132             :     compiler::TNode<String> tmp9;
     133             :     compiler::TNode<IntPtrT> tmp10;
     134             :     ca_.Bind(&block3, &tmp5, &tmp6, &tmp7, &tmp8, &tmp9, &tmp10);
     135             :     compiler::TNode<BoolT> tmp11;
     136             :     USE(tmp11);
     137         112 :     tmp11 = ca_.UncheckedCast<BoolT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr6ATbool16ATconstexpr_bool(true));
     138          56 :     ca_.Branch(tmp11, &block1, &block2, tmp5, tmp6, tmp7, tmp8, tmp9, tmp10);
     139             :   }
     140             : 
     141          56 :   if (block1.is_used()) {
     142             :     compiler::TNode<Context> tmp12;
     143             :     compiler::TNode<String> tmp13;
     144             :     compiler::TNode<Smi> tmp14;
     145             :     compiler::TNode<String> tmp15;
     146             :     compiler::TNode<String> tmp16;
     147             :     compiler::TNode<IntPtrT> tmp17;
     148             :     ca_.Bind(&block1, &tmp12, &tmp13, &tmp14, &tmp15, &tmp16, &tmp17);
     149          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 18);
     150             :     compiler::TNode<IntPtrT> tmp18;
     151             :     USE(tmp18);
     152         112 :     tmp18 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(1));
     153             :     compiler::TNode<IntPtrT> tmp19;
     154             :     USE(tmp19);
     155         112 :     tmp19 = ca_.UncheckedCast<IntPtrT>(CodeStubAssembler(state_).WordAnd(compiler::TNode<IntPtrT>{tmp17}, compiler::TNode<IntPtrT>{tmp18}));
     156             :     compiler::TNode<IntPtrT> tmp20;
     157             :     USE(tmp20);
     158         112 :     tmp20 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(1));
     159             :     compiler::TNode<BoolT> tmp21;
     160             :     USE(tmp21);
     161         112 :     tmp21 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<IntPtrT>{tmp19}, compiler::TNode<IntPtrT>{tmp20}));
     162          56 :     ca_.Branch(tmp21, &block4, &block5, tmp12, tmp13, tmp14, tmp15, tmp16, tmp17);
     163             :   }
     164             : 
     165          56 :   if (block4.is_used()) {
     166             :     compiler::TNode<Context> tmp22;
     167             :     compiler::TNode<String> tmp23;
     168             :     compiler::TNode<Smi> tmp24;
     169             :     compiler::TNode<String> tmp25;
     170             :     compiler::TNode<String> tmp26;
     171             :     compiler::TNode<IntPtrT> tmp27;
     172             :     ca_.Bind(&block4, &tmp22, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27);
     173             :     compiler::TNode<String> tmp28;
     174             :     USE(tmp28);
     175         112 :     tmp28 = ca_.UncheckedCast<String>(BaseBuiltinsFromDSLAssembler(state_).StringAdd(compiler::TNode<Context>{tmp22}, compiler::TNode<String>{tmp25}, compiler::TNode<String>{tmp26}));
     176             :     ca_.Goto(&block5, tmp22, tmp23, tmp24, tmp28, tmp26, tmp27);
     177             :   }
     178             : 
     179          56 :   if (block5.is_used()) {
     180             :     compiler::TNode<Context> tmp29;
     181             :     compiler::TNode<String> tmp30;
     182             :     compiler::TNode<Smi> tmp31;
     183             :     compiler::TNode<String> tmp32;
     184             :     compiler::TNode<String> tmp33;
     185             :     compiler::TNode<IntPtrT> tmp34;
     186             :     ca_.Bind(&block5, &tmp29, &tmp30, &tmp31, &tmp32, &tmp33, &tmp34);
     187          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 20);
     188             :     compiler::TNode<IntPtrT> tmp35;
     189             :     USE(tmp35);
     190         112 :     tmp35 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(1));
     191             :     compiler::TNode<IntPtrT> tmp36;
     192             :     USE(tmp36);
     193         112 :     tmp36 = ca_.UncheckedCast<IntPtrT>(CodeStubAssembler(state_).WordSar(compiler::TNode<IntPtrT>{tmp34}, compiler::TNode<IntPtrT>{tmp35}));
     194          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 21);
     195             :     compiler::TNode<IntPtrT> tmp37;
     196             :     USE(tmp37);
     197         112 :     tmp37 = ca_.UncheckedCast<IntPtrT>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATintptr17ATconstexpr_int31(0));
     198             :     compiler::TNode<BoolT> tmp38;
     199             :     USE(tmp38);
     200         112 :     tmp38 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).WordEqual(compiler::TNode<IntPtrT>{tmp36}, compiler::TNode<IntPtrT>{tmp37}));
     201          56 :     ca_.Branch(tmp38, &block6, &block7, tmp29, tmp30, tmp31, tmp32, tmp33, tmp36);
     202             :   }
     203             : 
     204          56 :   if (block6.is_used()) {
     205             :     compiler::TNode<Context> tmp39;
     206             :     compiler::TNode<String> tmp40;
     207             :     compiler::TNode<Smi> tmp41;
     208             :     compiler::TNode<String> tmp42;
     209             :     compiler::TNode<String> tmp43;
     210             :     compiler::TNode<IntPtrT> tmp44;
     211             :     ca_.Bind(&block6, &tmp39, &tmp40, &tmp41, &tmp42, &tmp43, &tmp44);
     212             :     ca_.Goto(&block2, tmp39, tmp40, tmp41, tmp42, tmp43, tmp44);
     213             :   }
     214             : 
     215          56 :   if (block7.is_used()) {
     216             :     compiler::TNode<Context> tmp45;
     217             :     compiler::TNode<String> tmp46;
     218             :     compiler::TNode<Smi> tmp47;
     219             :     compiler::TNode<String> tmp48;
     220             :     compiler::TNode<String> tmp49;
     221             :     compiler::TNode<IntPtrT> tmp50;
     222             :     ca_.Bind(&block7, &tmp45, &tmp46, &tmp47, &tmp48, &tmp49, &tmp50);
     223          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 23);
     224             :     compiler::TNode<String> tmp51;
     225             :     USE(tmp51);
     226         112 :     tmp51 = ca_.UncheckedCast<String>(BaseBuiltinsFromDSLAssembler(state_).StringAdd(compiler::TNode<Context>{tmp45}, compiler::TNode<String>{tmp49}, compiler::TNode<String>{tmp49}));
     227          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 17);
     228             :     ca_.Goto(&block3, tmp45, tmp46, tmp47, tmp48, tmp51, tmp50);
     229             :   }
     230             : 
     231          56 :   if (block2.is_used()) {
     232             :     compiler::TNode<Context> tmp52;
     233             :     compiler::TNode<String> tmp53;
     234             :     compiler::TNode<Smi> tmp54;
     235             :     compiler::TNode<String> tmp55;
     236             :     compiler::TNode<String> tmp56;
     237             :     compiler::TNode<IntPtrT> tmp57;
     238             :     ca_.Bind(&block2, &tmp52, &tmp53, &tmp54, &tmp55, &tmp56, &tmp57);
     239          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 26);
     240         112 :     CodeStubAssembler(state_).Return(tmp55);
     241             :   }
     242          56 : }
     243             : 
     244         224 : TF_BUILTIN(StringPrototypeRepeat, CodeStubAssembler) {
     245          56 :   compiler::CodeAssemblerState* state_ = state();  compiler::CodeAssembler ca_(state());
     246             :   TNode<Context> parameter0 = UncheckedCast<Context>(Parameter(Descriptor::kContext));
     247             :   USE(parameter0);
     248             :   compiler::TNode<Object> parameter1 = UncheckedCast<Object>(Parameter(Descriptor::kReceiver));
     249             :   USE(parameter1);
     250             :   compiler::TNode<Object> parameter2 = UncheckedCast<Object>(Parameter(Descriptor::kCount));
     251             :   USE(parameter2);
     252             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     253             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, String, Number, Number> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     254             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, String, Number, Number, Smi> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     255             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, String, Number, Smi> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     256             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, String, Number, Smi> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     257             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, String, Number, Smi> block15(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     258             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, String, Number, Smi> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     259             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, String, Number, Smi> block14(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     260             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, String, Number, Smi> block16(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     261             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, String, Number, Smi> block17(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     262             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, String, Number> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     263             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, String, Number, HeapNumber, Float64T> block20(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     264             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, String, Number, HeapNumber, Float64T> block18(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     265             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, String, Number, HeapNumber, Float64T> block19(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     266             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, String, Number, HeapNumber, Float64T> block21(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     267             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, String, Number, HeapNumber, Float64T> block22(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     268             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, String> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred);
     269             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, String> block4(&ca_, compiler::CodeAssemblerLabel::kDeferred);
     270             :   compiler::CodeAssemblerParameterizedLabel<Context, Object, Object, String> block2(&ca_, compiler::CodeAssemblerLabel::kDeferred);
     271             :     ca_.Goto(&block0, parameter0, parameter1, parameter2);
     272             : 
     273          56 :   if (block0.is_used()) {
     274             :     compiler::TNode<Context> tmp0;
     275             :     compiler::TNode<Object> tmp1;
     276             :     compiler::TNode<Object> tmp2;
     277             :     ca_.Bind(&block0, &tmp0, &tmp1, &tmp2);
     278          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 34);
     279             :     compiler::TNode<String> tmp3;
     280             :     USE(tmp3);
     281         224 :     tmp3 = ca_.UncheckedCast<String>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr6String18ATconstexpr_string(StringRepeatBuiltinsFromDSLAssembler(state_).kBuiltinName()));
     282             :     compiler::TNode<String> tmp4;
     283             :     USE(tmp4);
     284         112 :     tmp4 = ca_.UncheckedCast<String>(CodeStubAssembler(state_).ToThisString(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp1}, compiler::TNode<String>{tmp3}));
     285          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 38);
     286             :     compiler::TNode<Number> tmp5;
     287             :     USE(tmp5);
     288         224 :     tmp5 = ca_.UncheckedCast<Number>(CodeStubAssembler(state_).ToInteger_Inline(compiler::TNode<Context>{tmp0}, compiler::TNode<Object>{tmp2}, CodeStubAssembler::ToIntegerTruncationMode::kTruncateMinusZero));
     289          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 39);
     290             :     compiler::TNode<Smi> tmp6;
     291             :     USE(tmp6);
     292          56 :     compiler::CodeAssemblerLabel label0(&ca_);
     293         112 :     tmp6 = BaseBuiltinsFromDSLAssembler(state_).Cast5ATSmi(compiler::TNode<Object>{tmp5}, &label0);
     294             :     ca_.Goto(&block9, tmp0, tmp1, tmp2, tmp4, tmp5, tmp5, tmp6);
     295          56 :     if (label0.is_used()) {
     296          56 :       ca_.Bind(&label0);
     297             :       ca_.Goto(&block10, tmp0, tmp1, tmp2, tmp4, tmp5, tmp5);
     298             :     }
     299             :   }
     300             : 
     301          56 :   if (block10.is_used()) {
     302             :     compiler::TNode<Context> tmp7;
     303             :     compiler::TNode<Object> tmp8;
     304             :     compiler::TNode<Object> tmp9;
     305             :     compiler::TNode<String> tmp10;
     306             :     compiler::TNode<Number> tmp11;
     307             :     compiler::TNode<Number> tmp12;
     308             :     ca_.Bind(&block10, &tmp7, &tmp8, &tmp9, &tmp10, &tmp11, &tmp12);
     309             :     ca_.Goto(&block8, tmp7, tmp8, tmp9, tmp10, tmp11);
     310             :   }
     311             : 
     312          56 :   if (block9.is_used()) {
     313             :     compiler::TNode<Context> tmp13;
     314             :     compiler::TNode<Object> tmp14;
     315             :     compiler::TNode<Object> tmp15;
     316             :     compiler::TNode<String> tmp16;
     317             :     compiler::TNode<Number> tmp17;
     318             :     compiler::TNode<Number> tmp18;
     319             :     compiler::TNode<Smi> tmp19;
     320             :     ca_.Bind(&block9, &tmp13, &tmp14, &tmp15, &tmp16, &tmp17, &tmp18, &tmp19);
     321          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 41);
     322             :     compiler::TNode<Smi> tmp20;
     323             :     USE(tmp20);
     324         112 :     tmp20 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(0));
     325             :     compiler::TNode<BoolT> tmp21;
     326             :     USE(tmp21);
     327         112 :     tmp21 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiLessThan(compiler::TNode<Smi>{tmp19}, compiler::TNode<Smi>{tmp20}));
     328          56 :     ca_.Branch(tmp21, &block11, &block12, tmp13, tmp14, tmp15, tmp16, tmp17, tmp19);
     329             :   }
     330             : 
     331          56 :   if (block11.is_used()) {
     332             :     compiler::TNode<Context> tmp22;
     333             :     compiler::TNode<Object> tmp23;
     334             :     compiler::TNode<Object> tmp24;
     335             :     compiler::TNode<String> tmp25;
     336             :     compiler::TNode<Number> tmp26;
     337             :     compiler::TNode<Smi> tmp27;
     338             :     ca_.Bind(&block11, &tmp22, &tmp23, &tmp24, &tmp25, &tmp26, &tmp27);
     339             :     ca_.Goto(&block4, tmp22, tmp23, tmp24, tmp25);
     340             :   }
     341             : 
     342          56 :   if (block12.is_used()) {
     343             :     compiler::TNode<Context> tmp28;
     344             :     compiler::TNode<Object> tmp29;
     345             :     compiler::TNode<Object> tmp30;
     346             :     compiler::TNode<String> tmp31;
     347             :     compiler::TNode<Number> tmp32;
     348             :     compiler::TNode<Smi> tmp33;
     349             :     ca_.Bind(&block12, &tmp28, &tmp29, &tmp30, &tmp31, &tmp32, &tmp33);
     350          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 44);
     351             :     compiler::TNode<Smi> tmp34;
     352             :     USE(tmp34);
     353         112 :     tmp34 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(0));
     354             :     compiler::TNode<BoolT> tmp35;
     355             :     USE(tmp35);
     356         112 :     tmp35 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiEqual(compiler::TNode<Smi>{tmp33}, compiler::TNode<Smi>{tmp34}));
     357          56 :     ca_.Branch(tmp35, &block13, &block15, tmp28, tmp29, tmp30, tmp31, tmp32, tmp33);
     358             :   }
     359             : 
     360          56 :   if (block15.is_used()) {
     361             :     compiler::TNode<Context> tmp36;
     362             :     compiler::TNode<Object> tmp37;
     363             :     compiler::TNode<Object> tmp38;
     364             :     compiler::TNode<String> tmp39;
     365             :     compiler::TNode<Number> tmp40;
     366             :     compiler::TNode<Smi> tmp41;
     367             :     ca_.Bind(&block15, &tmp36, &tmp37, &tmp38, &tmp39, &tmp40, &tmp41);
     368             :     compiler::TNode<Uint32T> tmp42;
     369             :     USE(tmp42);
     370         168 :     tmp42 = ca_.UncheckedCast<Uint32T>(CodeStubAssembler(state_).LoadStringLengthAsWord32(compiler::TNode<String>{tmp39}));
     371             :     compiler::TNode<Uint32T> tmp43;
     372             :     USE(tmp43);
     373         112 :     tmp43 = ca_.UncheckedCast<Uint32T>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATuint3217ATconstexpr_int31(0));
     374             :     compiler::TNode<BoolT> tmp44;
     375             :     USE(tmp44);
     376         112 :     tmp44 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).Word32Equal(compiler::TNode<Uint32T>{tmp42}, compiler::TNode<Uint32T>{tmp43}));
     377          56 :     ca_.Branch(tmp44, &block13, &block14, tmp36, tmp37, tmp38, tmp39, tmp40, tmp41);
     378             :   }
     379             : 
     380          56 :   if (block13.is_used()) {
     381             :     compiler::TNode<Context> tmp45;
     382             :     compiler::TNode<Object> tmp46;
     383             :     compiler::TNode<Object> tmp47;
     384             :     compiler::TNode<String> tmp48;
     385             :     compiler::TNode<Number> tmp49;
     386             :     compiler::TNode<Smi> tmp50;
     387             :     ca_.Bind(&block13, &tmp45, &tmp46, &tmp47, &tmp48, &tmp49, &tmp50);
     388             :     ca_.Goto(&block6, tmp45, tmp46, tmp47, tmp48);
     389             :   }
     390             : 
     391          56 :   if (block14.is_used()) {
     392             :     compiler::TNode<Context> tmp51;
     393             :     compiler::TNode<Object> tmp52;
     394             :     compiler::TNode<Object> tmp53;
     395             :     compiler::TNode<String> tmp54;
     396             :     compiler::TNode<Number> tmp55;
     397             :     compiler::TNode<Smi> tmp56;
     398             :     ca_.Bind(&block14, &tmp51, &tmp52, &tmp53, &tmp54, &tmp55, &tmp56);
     399          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 46);
     400             :     compiler::TNode<Smi> tmp57;
     401             :     USE(tmp57);
     402         112 :     tmp57 = ca_.UncheckedCast<Smi>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr5ATSmi17ATconstexpr_int31(String::kMaxLength));
     403             :     compiler::TNode<BoolT> tmp58;
     404             :     USE(tmp58);
     405         112 :     tmp58 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).SmiGreaterThan(compiler::TNode<Smi>{tmp56}, compiler::TNode<Smi>{tmp57}));
     406          56 :     ca_.Branch(tmp58, &block16, &block17, tmp51, tmp52, tmp53, tmp54, tmp55, tmp56);
     407             :   }
     408             : 
     409          56 :   if (block16.is_used()) {
     410             :     compiler::TNode<Context> tmp59;
     411             :     compiler::TNode<Object> tmp60;
     412             :     compiler::TNode<Object> tmp61;
     413             :     compiler::TNode<String> tmp62;
     414             :     compiler::TNode<Number> tmp63;
     415             :     compiler::TNode<Smi> tmp64;
     416             :     ca_.Bind(&block16, &tmp59, &tmp60, &tmp61, &tmp62, &tmp63, &tmp64);
     417             :     ca_.Goto(&block2, tmp59, tmp60, tmp61, tmp62);
     418             :   }
     419             : 
     420          56 :   if (block17.is_used()) {
     421             :     compiler::TNode<Context> tmp65;
     422             :     compiler::TNode<Object> tmp66;
     423             :     compiler::TNode<Object> tmp67;
     424             :     compiler::TNode<String> tmp68;
     425             :     compiler::TNode<Number> tmp69;
     426             :     compiler::TNode<Smi> tmp70;
     427             :     ca_.Bind(&block17, &tmp65, &tmp66, &tmp67, &tmp68, &tmp69, &tmp70);
     428          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 50);
     429             :     compiler::TNode<String> tmp71;
     430         112 :     tmp71 = TORQUE_CAST(CodeStubAssembler(state_).CallBuiltin(Builtins::kStringRepeat, tmp65, tmp68, tmp70));
     431             :     USE(tmp71);
     432         112 :     CodeStubAssembler(state_).Return(tmp71);
     433             :   }
     434             : 
     435          56 :   if (block8.is_used()) {
     436             :     compiler::TNode<Context> tmp72;
     437             :     compiler::TNode<Object> tmp73;
     438             :     compiler::TNode<Object> tmp74;
     439             :     compiler::TNode<String> tmp75;
     440             :     compiler::TNode<Number> tmp76;
     441             :     ca_.Bind(&block8, &tmp72, &tmp73, &tmp74, &tmp75, &tmp76);
     442          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 52);
     443          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 54);
     444             :     compiler::TNode<Float64T> tmp77;
     445             :     USE(tmp77);
     446         112 :     tmp77 = ca_.UncheckedCast<Float64T>(BaseBuiltinsFromDSLAssembler(state_).LoadHeapNumberValue(compiler::TNode<HeapNumber>{ca_.UncheckedCast<HeapNumber>(tmp76)}));
     447          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 58);
     448             :     compiler::TNode<Float64T> tmp78;
     449             :     USE(tmp78);
     450         112 :     tmp78 = ca_.UncheckedCast<Float64T>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr9ATfloat6419ATconstexpr_float64(V8_INFINITY));
     451             :     compiler::TNode<BoolT> tmp79;
     452             :     USE(tmp79);
     453         112 :     tmp79 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).Float64Equal(compiler::TNode<Float64T>{tmp77}, compiler::TNode<Float64T>{tmp78}));
     454          56 :     ca_.Branch(tmp79, &block18, &block20, tmp72, tmp73, tmp74, tmp75, tmp76, ca_.UncheckedCast<HeapNumber>(tmp76), tmp77);
     455             :   }
     456             : 
     457          56 :   if (block20.is_used()) {
     458             :     compiler::TNode<Context> tmp80;
     459             :     compiler::TNode<Object> tmp81;
     460             :     compiler::TNode<Object> tmp82;
     461             :     compiler::TNode<String> tmp83;
     462             :     compiler::TNode<Number> tmp84;
     463             :     compiler::TNode<HeapNumber> tmp85;
     464             :     compiler::TNode<Float64T> tmp86;
     465             :     ca_.Bind(&block20, &tmp80, &tmp81, &tmp82, &tmp83, &tmp84, &tmp85, &tmp86);
     466             :     compiler::TNode<Float64T> tmp87;
     467             :     USE(tmp87);
     468         112 :     tmp87 = ca_.UncheckedCast<Float64T>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr9ATfloat6417ATconstexpr_int31(0.0));
     469             :     compiler::TNode<BoolT> tmp88;
     470             :     USE(tmp88);
     471         168 :     tmp88 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).Float64LessThan(compiler::TNode<Float64T>{tmp86}, compiler::TNode<Float64T>{tmp87}));
     472          56 :     ca_.Branch(tmp88, &block18, &block19, tmp80, tmp81, tmp82, tmp83, tmp84, tmp85, tmp86);
     473             :   }
     474             : 
     475          56 :   if (block18.is_used()) {
     476             :     compiler::TNode<Context> tmp89;
     477             :     compiler::TNode<Object> tmp90;
     478             :     compiler::TNode<Object> tmp91;
     479             :     compiler::TNode<String> tmp92;
     480             :     compiler::TNode<Number> tmp93;
     481             :     compiler::TNode<HeapNumber> tmp94;
     482             :     compiler::TNode<Float64T> tmp95;
     483             :     ca_.Bind(&block18, &tmp89, &tmp90, &tmp91, &tmp92, &tmp93, &tmp94, &tmp95);
     484             :     ca_.Goto(&block4, tmp89, tmp90, tmp91, tmp92);
     485             :   }
     486             : 
     487          56 :   if (block19.is_used()) {
     488             :     compiler::TNode<Context> tmp96;
     489             :     compiler::TNode<Object> tmp97;
     490             :     compiler::TNode<Object> tmp98;
     491             :     compiler::TNode<String> tmp99;
     492             :     compiler::TNode<Number> tmp100;
     493             :     compiler::TNode<HeapNumber> tmp101;
     494             :     compiler::TNode<Float64T> tmp102;
     495             :     ca_.Bind(&block19, &tmp96, &tmp97, &tmp98, &tmp99, &tmp100, &tmp101, &tmp102);
     496          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 61);
     497             :     compiler::TNode<Uint32T> tmp103;
     498             :     USE(tmp103);
     499         168 :     tmp103 = ca_.UncheckedCast<Uint32T>(CodeStubAssembler(state_).LoadStringLengthAsWord32(compiler::TNode<String>{tmp99}));
     500             :     compiler::TNode<Uint32T> tmp104;
     501             :     USE(tmp104);
     502         112 :     tmp104 = ca_.UncheckedCast<Uint32T>(BaseBuiltinsFromDSLAssembler(state_).FromConstexpr8ATuint3217ATconstexpr_int31(0));
     503             :     compiler::TNode<BoolT> tmp105;
     504             :     USE(tmp105);
     505         112 :     tmp105 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).Word32Equal(compiler::TNode<Uint32T>{tmp103}, compiler::TNode<Uint32T>{tmp104}));
     506          56 :     ca_.Branch(tmp105, &block21, &block22, tmp96, tmp97, tmp98, tmp99, tmp100, tmp101, tmp102);
     507             :   }
     508             : 
     509          56 :   if (block21.is_used()) {
     510             :     compiler::TNode<Context> tmp106;
     511             :     compiler::TNode<Object> tmp107;
     512             :     compiler::TNode<Object> tmp108;
     513             :     compiler::TNode<String> tmp109;
     514             :     compiler::TNode<Number> tmp110;
     515             :     compiler::TNode<HeapNumber> tmp111;
     516             :     compiler::TNode<Float64T> tmp112;
     517             :     ca_.Bind(&block21, &tmp106, &tmp107, &tmp108, &tmp109, &tmp110, &tmp111, &tmp112);
     518             :     ca_.Goto(&block6, tmp106, tmp107, tmp108, tmp109);
     519             :   }
     520             : 
     521          56 :   if (block22.is_used()) {
     522             :     compiler::TNode<Context> tmp113;
     523             :     compiler::TNode<Object> tmp114;
     524             :     compiler::TNode<Object> tmp115;
     525             :     compiler::TNode<String> tmp116;
     526             :     compiler::TNode<Number> tmp117;
     527             :     compiler::TNode<HeapNumber> tmp118;
     528             :     compiler::TNode<Float64T> tmp119;
     529             :     ca_.Bind(&block22, &tmp113, &tmp114, &tmp115, &tmp116, &tmp117, &tmp118, &tmp119);
     530          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 63);
     531             :     ca_.Goto(&block2, tmp113, tmp114, tmp115, tmp116);
     532             :   }
     533             : 
     534          56 :   if (block6.is_used()) {
     535             :     compiler::TNode<Context> tmp120;
     536             :     compiler::TNode<Object> tmp121;
     537             :     compiler::TNode<Object> tmp122;
     538             :     compiler::TNode<String> tmp123;
     539             :     ca_.Bind(&block6, &tmp120, &tmp121, &tmp122, &tmp123);
     540          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 68);
     541             :     compiler::TNode<String> tmp124;
     542             :     USE(tmp124);
     543         112 :     tmp124 = BaseBuiltinsFromDSLAssembler(state_).kEmptyString();
     544         112 :     CodeStubAssembler(state_).Return(tmp124);
     545             :   }
     546             : 
     547          56 :   if (block4.is_used()) {
     548             :     compiler::TNode<Context> tmp125;
     549             :     compiler::TNode<Object> tmp126;
     550             :     compiler::TNode<Object> tmp127;
     551             :     compiler::TNode<String> tmp128;
     552             :     ca_.Bind(&block4, &tmp125, &tmp126, &tmp127, &tmp128);
     553          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 71);
     554         112 :     CodeStubAssembler(state_).ThrowRangeError(compiler::TNode<Context>{tmp125}, MessageTemplate::kInvalidCountValue, compiler::TNode<Object>{tmp127});
     555             :   }
     556             : 
     557          56 :   if (block2.is_used()) {
     558             :     compiler::TNode<Context> tmp129;
     559             :     compiler::TNode<Object> tmp130;
     560             :     compiler::TNode<Object> tmp131;
     561             :     compiler::TNode<String> tmp132;
     562             :     ca_.Bind(&block2, &tmp129, &tmp130, &tmp131, &tmp132);
     563          56 :     ca_.SetSourcePosition("../../src/builtins/string-repeat.tq", 74);
     564         112 :     CodeStubAssembler(state_).CallRuntime(Runtime::kThrowInvalidStringLength, tmp129);
     565         112 :     CodeStubAssembler(state_).Unreachable();
     566             :   }
     567          56 : }
     568             : 
     569             : }  // namespace internal
     570       59480 : }  // namespace v8
     571             : 

Generated by: LCOV version 1.10