%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
#include "src/ast/ast.h" #include "src/builtins/builtins-array-gen.h" #include "src/builtins/builtins-bigint-gen.h" #include "src/builtins/builtins-collections-gen.h" #include "src/builtins/builtins-constructor-gen.h" #include "src/builtins/builtins-data-view-gen.h" #include "src/builtins/builtins-iterator-gen.h" #include "src/builtins/builtins-promise-gen.h" #include "src/builtins/builtins-promise.h" #include "src/builtins/builtins-proxy-gen.h" #include "src/builtins/builtins-regexp-gen.h" #include "src/builtins/builtins-string-gen.h" #include "src/builtins/builtins-typed-array-gen.h" #include "src/builtins/builtins-utils-gen.h" #include "src/builtins/builtins-wasm-gen.h" #include "src/builtins/builtins.h" #include "src/codegen/code-factory.h" #include "src/debug/debug-wasm-objects.h" #include "src/heap/factory-inl.h" #include "src/ic/binary-op-assembler.h" #include "src/ic/handler-configuration-inl.h" #include "src/objects/arguments.h" #include "src/objects/bigint.h" #include "src/objects/elements-kind.h" #include "src/objects/free-space.h" #include "src/objects/js-break-iterator.h" #include "src/objects/js-collator.h" #include "src/objects/js-date-time-format.h" #include "src/objects/js-display-names.h" #include "src/objects/js-function.h" #include "src/objects/js-generator.h" #include "src/objects/js-list-format.h" #include "src/objects/js-locale.h" #include "src/objects/js-number-format.h" #include "src/objects/js-objects.h" #include "src/objects/js-plural-rules.h" #include "src/objects/js-promise.h" #include "src/objects/js-regexp-string-iterator.h" #include "src/objects/js-relative-time-format.h" #include "src/objects/js-segment-iterator.h" #include "src/objects/js-segmenter.h" #include "src/objects/js-segments.h" #include "src/objects/js-weak-refs.h" #include "src/objects/objects.h" #include "src/objects/ordered-hash-table.h" #include "src/objects/property-array.h" #include "src/objects/property-descriptor-object.h" #include "src/objects/source-text-module.h" #include "src/objects/stack-frame-info.h" #include "src/objects/swiss-hash-table-helpers.h" #include "src/objects/swiss-name-dictionary.h" #include "src/objects/synthetic-module.h" #include "src/objects/template-objects.h" #include "src/objects/torque-defined-classes.h" #include "src/torque/runtime-support.h" // Required Builtins: #include "torque-generated/src/objects/js-array-tq-csa.h" #include "torque-generated/src/builtins/array-slice-tq-csa.h" #include "torque-generated/src/builtins/base-tq-csa.h" #include "torque-generated/src/builtins/cast-tq-csa.h" #include "torque-generated/src/builtins/convert-tq-csa.h" #include "torque-generated/src/builtins/function-tq-csa.h" #include "torque-generated/src/builtins/torque-internal-tq-csa.h" #include "torque-generated/src/objects/contexts-tq-csa.h" #include "torque-generated/src/objects/fixed-array-tq-csa.h" #include "torque-generated/src/objects/js-array-tq-csa.h" #include "torque-generated/src/objects/string-tq-csa.h" namespace v8 { namespace internal { TNode<Uint32T> FromConstexpr_IterationKind_constexpr_kKeys_0(compiler::CodeAssemblerState* state_, IterationKind p_o) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<Uint32T> tmp0; TNode<Uint32T> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = ca_.Uint32Constant(CastToUnderlyingTypeIfEnum(p_o)); tmp1 = (TNode<Uint32T>{tmp0}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<Uint32T>{tmp1}; } TNode<Uint32T> FromConstexpr_IterationKind_constexpr_kValues_0(compiler::CodeAssemblerState* state_, IterationKind p_o) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<Uint32T> tmp0; TNode<Uint32T> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = ca_.Uint32Constant(CastToUnderlyingTypeIfEnum(p_o)); tmp1 = (TNode<Uint32T>{tmp0}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<Uint32T>{tmp1}; } TNode<Uint32T> FromConstexpr_IterationKind_constexpr_kEntries_0(compiler::CodeAssemblerState* state_, IterationKind p_o) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<Uint32T> tmp0; TNode<Uint32T> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = ca_.Uint32Constant(CastToUnderlyingTypeIfEnum(p_o)); tmp1 = (TNode<Uint32T>{tmp0}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<Uint32T>{tmp1}; } TNode<JSArrayIterator> Cast_JSArrayIterator_0(compiler::CodeAssemblerState* state_, TNode<HeapObject> p_obj, compiler::CodeAssemblerLabel* label_CastError) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<JSArrayIterator> tmp0; if (block0.is_used()) { ca_.Bind(&block0); compiler::CodeAssemblerLabel label1(&ca_); tmp0 = DownCastForTorqueClass_JSArrayIterator_0(state_, TNode<HeapObject>{p_obj}, &label1); ca_.Goto(&block3); if (label1.is_used()) { ca_.Bind(&label1); ca_.Goto(&block4); } } if (block4.is_used()) { ca_.Bind(&block4); ca_.Goto(label_CastError); } if (block3.is_used()) { ca_.Bind(&block3); ca_.Goto(&block5); } ca_.Bind(&block5); return TNode<JSArrayIterator>{tmp0}; } TNode<JSArrayIterator> CreateArrayIterator_0(compiler::CodeAssemblerState* state_, TNode<NativeContext> p_context, TNode<JSReceiver> p_array, IterationKind p_kind) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; TNode<Object> tmp1; TNode<IntPtrT> tmp2; TNode<Map> tmp3; TNode<FixedArray> tmp4; TNode<FixedArray> tmp5; TNode<Uint32T> tmp6; TNode<Smi> tmp7; TNode<BoolT> tmp8; TNode<IntPtrT> tmp9; TNode<HeapObject> tmp10; TNode<IntPtrT> tmp11; TNode<IntPtrT> tmp12; TNode<IntPtrT> tmp13; TNode<IntPtrT> tmp14; TNode<IntPtrT> tmp15; TNode<Number> tmp16; TNode<IntPtrT> tmp17; TNode<JSArrayIterator> tmp18; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = INITIAL_ARRAY_ITERATOR_MAP_INDEX_0(state_); std::tie(tmp1, tmp2) = NativeContextSlot_NativeContext_Map_0(state_, TNode<NativeContext>{p_context}, TNode<IntPtrT>{tmp0}).Flatten(); tmp3 = CodeStubAssembler(state_).LoadReference<Map>(CodeStubAssembler::Reference{tmp1, tmp2}); tmp4 = kEmptyFixedArray_0(state_); tmp5 = kEmptyFixedArray_0(state_); tmp6 = FromConstexpr_IterationKind_constexpr_IterationKind_0(state_, p_kind); tmp7 = SmiTag_IterationKind_0(state_, TNode<Uint32T>{tmp6}); tmp8 = FromConstexpr_bool_constexpr_bool_0(state_, false); tmp9 = FromConstexpr_intptr_constexpr_int31_0(state_, 48); tmp10 = AllocateFromNew_0(state_, TNode<IntPtrT>{tmp9}, TNode<Map>{tmp3}, TNode<BoolT>{tmp8}); tmp11 = FromConstexpr_intptr_constexpr_int31_0(state_, 0); CodeStubAssembler(state_).StoreReference<Map>(CodeStubAssembler::Reference{tmp10, tmp11}, tmp3); tmp12 = FromConstexpr_intptr_constexpr_int31_0(state_, 8); CodeStubAssembler(state_).StoreReference<Object>(CodeStubAssembler::Reference{tmp10, tmp12}, tmp4); tmp13 = FromConstexpr_intptr_constexpr_int31_0(state_, 16); CodeStubAssembler(state_).StoreReference<FixedArrayBase>(CodeStubAssembler::Reference{tmp10, tmp13}, tmp5); tmp14 = FromConstexpr_intptr_constexpr_int31_0(state_, 24); CodeStubAssembler(state_).StoreReference<JSReceiver>(CodeStubAssembler::Reference{tmp10, tmp14}, p_array); tmp15 = FromConstexpr_intptr_constexpr_int31_0(state_, 32); tmp16 = FromConstexpr_Number_constexpr_int31_0(state_, 0); CodeStubAssembler(state_).StoreReference<Number>(CodeStubAssembler::Reference{tmp10, tmp15}, tmp16); tmp17 = FromConstexpr_intptr_constexpr_int31_0(state_, 40); CodeStubAssembler(state_).StoreReference<Smi>(CodeStubAssembler::Reference{tmp10, tmp17}, tmp7); tmp18 = TORQUE_CAST(TNode<HeapObject>{tmp10}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<JSArrayIterator>{tmp18}; } TNode<JSArray> Cast_JSArray_0(compiler::CodeAssemblerState* state_, TNode<HeapObject> p_obj, compiler::CodeAssemblerLabel* label_CastError) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<JSArray> tmp0; if (block0.is_used()) { ca_.Bind(&block0); compiler::CodeAssemblerLabel label1(&ca_); tmp0 = DownCastForTorqueClass_JSArray_0(state_, TNode<HeapObject>{p_obj}, &label1); ca_.Goto(&block3); if (label1.is_used()) { ca_.Bind(&label1); ca_.Goto(&block4); } } if (block4.is_used()) { ca_.Bind(&block4); ca_.Goto(label_CastError); } if (block3.is_used()) { ca_.Bind(&block3); ca_.Goto(&block5); } ca_.Bind(&block5); return TNode<JSArray>{tmp0}; } TNode<JSArray> NewJSArray_0(compiler::CodeAssemblerState* state_, TNode<Context> p_context, TNode<Map> p_map, TNode<FixedArrayBase> p_elements) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<FixedArray> tmp0; TNode<IntPtrT> tmp1; TNode<Smi> tmp2; TNode<BoolT> tmp3; TNode<IntPtrT> tmp4; TNode<HeapObject> tmp5; TNode<IntPtrT> tmp6; TNode<IntPtrT> tmp7; TNode<IntPtrT> tmp8; TNode<IntPtrT> tmp9; TNode<JSArray> tmp10; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = kEmptyFixedArray_0(state_); tmp1 = FromConstexpr_intptr_constexpr_int31_0(state_, 8); tmp2 = CodeStubAssembler(state_).LoadReference<Smi>(CodeStubAssembler::Reference{p_elements, tmp1}); tmp3 = FromConstexpr_bool_constexpr_bool_0(state_, false); tmp4 = FromConstexpr_intptr_constexpr_int31_0(state_, 32); tmp5 = AllocateFromNew_0(state_, TNode<IntPtrT>{tmp4}, TNode<Map>{p_map}, TNode<BoolT>{tmp3}); tmp6 = FromConstexpr_intptr_constexpr_int31_0(state_, 0); CodeStubAssembler(state_).StoreReference<Map>(CodeStubAssembler::Reference{tmp5, tmp6}, p_map); tmp7 = FromConstexpr_intptr_constexpr_int31_0(state_, 8); CodeStubAssembler(state_).StoreReference<Object>(CodeStubAssembler::Reference{tmp5, tmp7}, tmp0); tmp8 = FromConstexpr_intptr_constexpr_int31_0(state_, 16); CodeStubAssembler(state_).StoreReference<FixedArrayBase>(CodeStubAssembler::Reference{tmp5, tmp8}, p_elements); tmp9 = FromConstexpr_intptr_constexpr_int31_0(state_, 24); CodeStubAssembler(state_).StoreReference<Number>(CodeStubAssembler::Reference{tmp5, tmp9}, tmp2); tmp10 = TORQUE_CAST(TNode<HeapObject>{tmp5}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<JSArray>{tmp10}; } TNode<JSArray> NewJSArray_1(compiler::CodeAssemblerState* state_, TNode<Context> p_context) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<Map> tmp0; TNode<FixedArray> tmp1; TNode<FixedArray> tmp2; TNode<BoolT> tmp3; TNode<IntPtrT> tmp4; TNode<HeapObject> tmp5; TNode<IntPtrT> tmp6; TNode<IntPtrT> tmp7; TNode<IntPtrT> tmp8; TNode<IntPtrT> tmp9; TNode<Number> tmp10; TNode<JSArray> tmp11; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = GetFastPackedSmiElementsJSArrayMap_0(state_, TNode<Context>{p_context}); tmp1 = kEmptyFixedArray_0(state_); tmp2 = kEmptyFixedArray_0(state_); tmp3 = FromConstexpr_bool_constexpr_bool_0(state_, false); tmp4 = FromConstexpr_intptr_constexpr_int31_0(state_, 32); tmp5 = AllocateFromNew_0(state_, TNode<IntPtrT>{tmp4}, TNode<Map>{tmp0}, TNode<BoolT>{tmp3}); tmp6 = FromConstexpr_intptr_constexpr_int31_0(state_, 0); CodeStubAssembler(state_).StoreReference<Map>(CodeStubAssembler::Reference{tmp5, tmp6}, tmp0); tmp7 = FromConstexpr_intptr_constexpr_int31_0(state_, 8); CodeStubAssembler(state_).StoreReference<Object>(CodeStubAssembler::Reference{tmp5, tmp7}, tmp1); tmp8 = FromConstexpr_intptr_constexpr_int31_0(state_, 16); CodeStubAssembler(state_).StoreReference<FixedArrayBase>(CodeStubAssembler::Reference{tmp5, tmp8}, tmp2); tmp9 = FromConstexpr_intptr_constexpr_int31_0(state_, 24); tmp10 = FromConstexpr_Number_constexpr_int31_0(state_, 0); CodeStubAssembler(state_).StoreReference<Number>(CodeStubAssembler::Reference{tmp5, tmp9}, tmp10); tmp11 = TORQUE_CAST(TNode<HeapObject>{tmp5}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<JSArray>{tmp11}; } TNode<Object> LoadElementNoHole_FixedArray_0(compiler::CodeAssemblerState* state_, TNode<Context> p_context, TNode<JSArray> p_a, TNode<Smi> p_index, compiler::CodeAssemblerLabel* label_IfHole) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block17(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block16(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block18(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; TNode<FixedArrayBase> tmp1; TNode<FixedArray> tmp2; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 16); tmp1 = CodeStubAssembler(state_).LoadReference<FixedArrayBase>(CodeStubAssembler::Reference{p_a, tmp0}); compiler::CodeAssemblerLabel label3(&ca_); tmp2 = Cast_FixedArray_0(state_, TNode<HeapObject>{tmp1}, &label3); ca_.Goto(&block5); if (label3.is_used()) { ca_.Bind(&label3); ca_.Goto(&block6); } } if (block6.is_used()) { ca_.Bind(&block6); CodeStubAssembler(state_).Unreachable(); } TNode<Object> tmp4; TNode<IntPtrT> tmp5; TNode<IntPtrT> tmp6; TNode<IntPtrT> tmp7; TNode<UintPtrT> tmp8; TNode<UintPtrT> tmp9; TNode<BoolT> tmp10; if (block5.is_used()) { ca_.Bind(&block5); std::tie(tmp4, tmp5, tmp6) = FieldSliceFixedArrayObjects_0(state_, TNode<FixedArray>{tmp2}).Flatten(); tmp7 = Convert_intptr_Smi_0(state_, TNode<Smi>{p_index}); tmp8 = Convert_uintptr_intptr_0(state_, TNode<IntPtrT>{tmp7}); tmp9 = Convert_uintptr_intptr_0(state_, TNode<IntPtrT>{tmp6}); tmp10 = CodeStubAssembler(state_).UintPtrLessThan(TNode<UintPtrT>{tmp8}, TNode<UintPtrT>{tmp9}); ca_.Branch(tmp10, &block11, std::vector<compiler::Node*>{}, &block12, std::vector<compiler::Node*>{}); } TNode<IntPtrT> tmp11; TNode<IntPtrT> tmp12; TNode<Object> tmp13; TNode<IntPtrT> tmp14; TNode<Object> tmp15; TNode<Object> tmp16; TNode<Oddball> tmp17; if (block11.is_used()) { ca_.Bind(&block11); tmp11 = TimesSizeOf_Object_0(state_, TNode<IntPtrT>{tmp7}); tmp12 = CodeStubAssembler(state_).IntPtrAdd(TNode<IntPtrT>{tmp5}, TNode<IntPtrT>{tmp11}); std::tie(tmp13, tmp14) = NewReference_Object_0(state_, TNode<Object>{tmp4}, TNode<IntPtrT>{tmp12}).Flatten(); tmp15 = CodeStubAssembler(state_).LoadReference<Object>(CodeStubAssembler::Reference{tmp13, tmp14}); tmp16 = UnsafeCast_JSReceiver_OR_Undefined_OR_Null_OR_False_OR_True_OR_Symbol_OR_String_OR_BigInt_OR_HeapNumber_OR_Smi_OR_TheHole_0(state_, TNode<Context>{p_context}, TNode<Object>{tmp15}); compiler::CodeAssemblerLabel label18(&ca_); tmp17 = Cast_TheHole_0(state_, TNode<Object>{tmp16}, &label18); ca_.Goto(&block16); if (label18.is_used()) { ca_.Bind(&label18); ca_.Goto(&block17); } } if (block12.is_used()) { ca_.Bind(&block12); CodeStubAssembler(state_).Unreachable(); } if (block17.is_used()) { ca_.Bind(&block17); ca_.Goto(&block18); } if (block16.is_used()) { ca_.Bind(&block16); ca_.Goto(label_IfHole); } ca_.Bind(&block18); return TNode<Object>{ca_.UncheckedCast<Object>(tmp16)}; } TNode<Object> LoadElementNoHole_FixedDoubleArray_0(compiler::CodeAssemblerState* state_, TNode<Context> p_context, TNode<JSArray> p_a, TNode<Smi> p_index, compiler::CodeAssemblerLabel* label_IfHole) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block15(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block16(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block17(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; TNode<FixedArrayBase> tmp1; TNode<FixedDoubleArray> tmp2; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 16); tmp1 = CodeStubAssembler(state_).LoadReference<FixedArrayBase>(CodeStubAssembler::Reference{p_a, tmp0}); compiler::CodeAssemblerLabel label3(&ca_); tmp2 = Cast_FixedDoubleArray_0(state_, TNode<HeapObject>{tmp1}, &label3); ca_.Goto(&block5); if (label3.is_used()) { ca_.Bind(&label3); ca_.Goto(&block6); } } if (block6.is_used()) { ca_.Bind(&block6); CodeStubAssembler(state_).Unreachable(); } TNode<Object> tmp4; TNode<IntPtrT> tmp5; TNode<IntPtrT> tmp6; TNode<IntPtrT> tmp7; TNode<UintPtrT> tmp8; TNode<UintPtrT> tmp9; TNode<BoolT> tmp10; if (block5.is_used()) { ca_.Bind(&block5); std::tie(tmp4, tmp5, tmp6) = FieldSliceFixedDoubleArrayFloats_0(state_, TNode<FixedDoubleArray>{tmp2}).Flatten(); tmp7 = Convert_intptr_Smi_0(state_, TNode<Smi>{p_index}); tmp8 = Convert_uintptr_intptr_0(state_, TNode<IntPtrT>{tmp7}); tmp9 = Convert_uintptr_intptr_0(state_, TNode<IntPtrT>{tmp6}); tmp10 = CodeStubAssembler(state_).UintPtrLessThan(TNode<UintPtrT>{tmp8}, TNode<UintPtrT>{tmp9}); ca_.Branch(tmp10, &block11, std::vector<compiler::Node*>{}, &block12, std::vector<compiler::Node*>{}); } TNode<IntPtrT> tmp11; TNode<IntPtrT> tmp12; TNode<Object> tmp13; TNode<IntPtrT> tmp14; TNode<BoolT> tmp15; TNode<Float64T> tmp16; if (block11.is_used()) { ca_.Bind(&block11); tmp11 = TimesSizeOf_float64_or_hole_0(state_, TNode<IntPtrT>{tmp7}); tmp12 = CodeStubAssembler(state_).IntPtrAdd(TNode<IntPtrT>{tmp5}, TNode<IntPtrT>{tmp11}); std::tie(tmp13, tmp14) = NewReference_float64_or_hole_0(state_, TNode<Object>{tmp4}, TNode<IntPtrT>{tmp12}).Flatten(); std::tie(tmp15, tmp16) = LoadFloat64OrHole_0(state_, TorqueStructReference_float64_or_hole_0{TNode<Object>{tmp13}, TNode<IntPtrT>{tmp14}, TorqueStructUnsafe_0{}}).Flatten(); ca_.Branch(tmp15, &block15, std::vector<compiler::Node*>{}, &block16, std::vector<compiler::Node*>{}); } if (block12.is_used()) { ca_.Bind(&block12); CodeStubAssembler(state_).Unreachable(); } if (block15.is_used()) { ca_.Bind(&block15); ca_.Goto(label_IfHole); } TNode<HeapNumber> tmp17; if (block16.is_used()) { ca_.Bind(&block16); tmp17 = CodeStubAssembler(state_).AllocateHeapNumberWithValue(TNode<Float64T>{tmp16}); ca_.Goto(&block17); } ca_.Bind(&block17); return TNode<Object>{tmp17}; } void TorqueMoveElementsSmi_0(compiler::CodeAssemblerState* state_, TNode<FixedArray> p_elements, TNode<IntPtrT> p_dstIndex, TNode<IntPtrT> p_srcIndex, TNode<IntPtrT> p_count) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); if (block0.is_used()) { ca_.Bind(&block0); CodeStubAssembler(state_).MoveElements(ElementsKind::HOLEY_SMI_ELEMENTS, TNode<FixedArrayBase>{p_elements}, TNode<IntPtrT>{p_dstIndex}, TNode<IntPtrT>{p_srcIndex}, TNode<IntPtrT>{p_count}); ca_.Goto(&block2); } ca_.Bind(&block2); } void TorqueMoveElements_0(compiler::CodeAssemblerState* state_, TNode<FixedArray> p_elements, TNode<IntPtrT> p_dstIndex, TNode<IntPtrT> p_srcIndex, TNode<IntPtrT> p_count) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); if (block0.is_used()) { ca_.Bind(&block0); CodeStubAssembler(state_).MoveElements(ElementsKind::HOLEY_ELEMENTS, TNode<FixedArrayBase>{p_elements}, TNode<IntPtrT>{p_dstIndex}, TNode<IntPtrT>{p_srcIndex}, TNode<IntPtrT>{p_count}); ca_.Goto(&block2); } ca_.Bind(&block2); } void TorqueMoveElements_1(compiler::CodeAssemblerState* state_, TNode<FixedDoubleArray> p_elements, TNode<IntPtrT> p_dstIndex, TNode<IntPtrT> p_srcIndex, TNode<IntPtrT> p_count) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); if (block0.is_used()) { ca_.Bind(&block0); CodeStubAssembler(state_).MoveElements(ElementsKind::HOLEY_DOUBLE_ELEMENTS, TNode<FixedArrayBase>{p_elements}, TNode<IntPtrT>{p_dstIndex}, TNode<IntPtrT>{p_srcIndex}, TNode<IntPtrT>{p_count}); ca_.Goto(&block2); } ca_.Bind(&block2); } void TorqueCopyElements_0(compiler::CodeAssemblerState* state_, TNode<FixedArray> p_dstElements, TNode<IntPtrT> p_dstIndex, TNode<FixedArray> p_srcElements, TNode<IntPtrT> p_srcIndex, TNode<IntPtrT> p_count) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); if (block0.is_used()) { ca_.Bind(&block0); CodeStubAssembler(state_).CopyElements(ElementsKind::HOLEY_ELEMENTS, TNode<FixedArrayBase>{p_dstElements}, TNode<IntPtrT>{p_dstIndex}, TNode<FixedArrayBase>{p_srcElements}, TNode<IntPtrT>{p_srcIndex}, TNode<IntPtrT>{p_count}); ca_.Goto(&block2); } ca_.Bind(&block2); } void TorqueCopyElements_1(compiler::CodeAssemblerState* state_, TNode<FixedDoubleArray> p_dstElements, TNode<IntPtrT> p_dstIndex, TNode<FixedDoubleArray> p_srcElements, TNode<IntPtrT> p_srcIndex, TNode<IntPtrT> p_count) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); if (block0.is_used()) { ca_.Bind(&block0); CodeStubAssembler(state_).CopyElements(ElementsKind::HOLEY_DOUBLE_ELEMENTS, TNode<FixedArrayBase>{p_dstElements}, TNode<IntPtrT>{p_dstIndex}, TNode<FixedArrayBase>{p_srcElements}, TNode<IntPtrT>{p_srcIndex}, TNode<IntPtrT>{p_count}); ca_.Goto(&block2); } ca_.Bind(&block2); } TorqueStructFastJSArrayWitness_0 NewFastJSArrayWitness_0(compiler::CodeAssemblerState* state_, TNode<JSArray> p_array) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; TNode<Map> tmp1; TNode<Int32T> tmp2; TNode<IntPtrT> tmp3; TNode<Map> tmp4; TNode<BoolT> tmp5; TNode<BoolT> tmp6; TNode<BoolT> tmp7; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 0); tmp1 = CodeStubAssembler(state_).LoadReference<Map>(CodeStubAssembler::Reference{p_array, tmp0}); tmp2 = CodeStubAssembler(state_).LoadMapElementsKind(TNode<Map>{tmp1}); tmp3 = FromConstexpr_intptr_constexpr_int31_0(state_, 0); tmp4 = CodeStubAssembler(state_).LoadReference<Map>(CodeStubAssembler::Reference{p_array, tmp3}); tmp5 = CodeStubAssembler(state_).IsDoubleElementsKind(TNode<Int32T>{tmp2}); tmp6 = CodeStubAssembler(state_).IsElementsKindLessThanOrEqual(TNode<Int32T>{tmp2}, ElementsKind::HOLEY_SMI_ELEMENTS); tmp7 = FromConstexpr_bool_constexpr_bool_0(state_, false); ca_.Goto(&block2); } ca_.Bind(&block2); return TorqueStructFastJSArrayWitness_0{TNode<JSArray>{p_array}, TNode<JSArray>{p_array}, TNode<Map>{tmp4}, TNode<BoolT>{tmp5}, TNode<BoolT>{tmp6}, TNode<BoolT>{tmp7}}; } TorqueStructFastJSArrayForReadWitness_0 NewFastJSArrayForReadWitness_0(compiler::CodeAssemblerState* state_, TNode<JSArray> p_array) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; TNode<Map> tmp1; TNode<Int32T> tmp2; TNode<IntPtrT> tmp3; TNode<Map> tmp4; TNode<BoolT> tmp5; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 0); tmp1 = CodeStubAssembler(state_).LoadReference<Map>(CodeStubAssembler::Reference{p_array, tmp0}); tmp2 = CodeStubAssembler(state_).LoadMapElementsKind(TNode<Map>{tmp1}); tmp3 = FromConstexpr_intptr_constexpr_int31_0(state_, 0); tmp4 = CodeStubAssembler(state_).LoadReference<Map>(CodeStubAssembler::Reference{p_array, tmp3}); tmp5 = CodeStubAssembler(state_).IsDoubleElementsKind(TNode<Int32T>{tmp2}); ca_.Goto(&block2); } ca_.Bind(&block2); return TorqueStructFastJSArrayForReadWitness_0{TNode<JSArray>{p_array}, TNode<JSArray>{p_array}, TNode<Map>{tmp4}, TNode<BoolT>{tmp5}}; } TNode<JSReceiver> LoadJSArrayIteratorIteratedObject_0(compiler::CodeAssemblerState* state_, TNode<JSArrayIterator> p_o) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; TNode<JSReceiver> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 24); tmp1 = CodeStubAssembler(state_).LoadReference<JSReceiver>(CodeStubAssembler::Reference{p_o, tmp0}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<JSReceiver>{tmp1}; } void StoreJSArrayIteratorIteratedObject_0(compiler::CodeAssemblerState* state_, TNode<JSArrayIterator> p_o, TNode<JSReceiver> p_v) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 24); CodeStubAssembler(state_).StoreReference<JSReceiver>(CodeStubAssembler::Reference{p_o, tmp0}, p_v); ca_.Goto(&block2); } ca_.Bind(&block2); } TNode<Number> LoadJSArrayIteratorNextIndex_0(compiler::CodeAssemblerState* state_, TNode<JSArrayIterator> p_o) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; TNode<Number> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 32); tmp1 = CodeStubAssembler(state_).LoadReference<Number>(CodeStubAssembler::Reference{p_o, tmp0}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<Number>{tmp1}; } void StoreJSArrayIteratorNextIndex_0(compiler::CodeAssemblerState* state_, TNode<JSArrayIterator> p_o, TNode<Number> p_v) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 32); CodeStubAssembler(state_).StoreReference<Number>(CodeStubAssembler::Reference{p_o, tmp0}, p_v); ca_.Goto(&block2); } ca_.Bind(&block2); } TNode<Smi> LoadJSArrayIteratorKind_0(compiler::CodeAssemblerState* state_, TNode<JSArrayIterator> p_o) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; TNode<Smi> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 40); tmp1 = CodeStubAssembler(state_).LoadReference<Smi>(CodeStubAssembler::Reference{p_o, tmp0}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<Smi>{tmp1}; } void StoreJSArrayIteratorKind_0(compiler::CodeAssemblerState* state_, TNode<JSArrayIterator> p_o, TNode<Smi> p_v) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 40); CodeStubAssembler(state_).StoreReference<Smi>(CodeStubAssembler::Reference{p_o, tmp0}, p_v); ca_.Goto(&block2); } ca_.Bind(&block2); } TNode<Number> LoadJSArrayLength_0(compiler::CodeAssemblerState* state_, TNode<JSArray> p_o) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; TNode<Number> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 24); tmp1 = CodeStubAssembler(state_).LoadReference<Number>(CodeStubAssembler::Reference{p_o, tmp0}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<Number>{tmp1}; } void StoreJSArrayLength_0(compiler::CodeAssemblerState* state_, TNode<JSArray> p_o, TNode<Number> p_v) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 24); CodeStubAssembler(state_).StoreReference<Number>(CodeStubAssembler::Reference{p_o, tmp0}, p_v); ca_.Goto(&block2); } ca_.Bind(&block2); } TNode<BoolT> Method_JSArray_IsEmpty_0(compiler::CodeAssemblerState* state_, TNode<JSArray> p_this) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; TNode<Number> tmp1; TNode<Number> tmp2; TNode<BoolT> tmp3; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 24); tmp1 = CodeStubAssembler(state_).LoadReference<Number>(CodeStubAssembler::Reference{p_this, tmp0}); tmp2 = FromConstexpr_Number_constexpr_int31_0(state_, 0); tmp3 = IsNumberEqual_0(state_, TNode<Number>{tmp1}, TNode<Number>{tmp2}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<BoolT>{tmp3}; } TNode<JSArrayIterator> DownCastForTorqueClass_JSArrayIterator_0(compiler::CodeAssemblerState* state_, TNode<HeapObject> p_o, compiler::CodeAssemblerLabel* label_CastError) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block14(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block15(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; TNode<Map> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 0); tmp1 = CodeStubAssembler(state_).LoadReference<Map>(CodeStubAssembler::Reference{p_o, tmp0}); if (((CodeStubAssembler(state_).ConstexprInt31Equal(static_cast<InstanceType>(1087), static_cast<InstanceType>(1087))))) { ca_.Goto(&block3); } else { ca_.Goto(&block4); } } if (block3.is_used()) { ca_.Bind(&block3); if ((CodeStubAssembler(state_).ClassHasMapConstant<JSArrayIterator>())) { ca_.Goto(&block6); } else { ca_.Goto(&block7); } } TNode<Map> tmp2; TNode<BoolT> tmp3; if (block6.is_used()) { ca_.Bind(&block6); tmp2 = CodeStubAssembler(state_).GetClassMapConstant<JSArrayIterator>(); tmp3 = CodeStubAssembler(state_).TaggedNotEqual(TNode<HeapObject>{tmp1}, TNode<HeapObject>{tmp2}); ca_.Branch(tmp3, &block9, std::vector<compiler::Node*>{}, &block10, std::vector<compiler::Node*>{}); } if (block9.is_used()) { ca_.Bind(&block9); ca_.Goto(&block1); } if (block10.is_used()) { ca_.Bind(&block10); ca_.Goto(&block8); } TNode<IntPtrT> tmp4; TNode<Uint16T> tmp5; TNode<Uint32T> tmp6; TNode<BoolT> tmp7; if (block7.is_used()) { ca_.Bind(&block7); tmp4 = FromConstexpr_intptr_constexpr_int31_0(state_, 12); tmp5 = CodeStubAssembler(state_).LoadReference<Uint16T>(CodeStubAssembler::Reference{tmp1, tmp4}); tmp6 = FromConstexpr_uint32_constexpr_uint32_0(state_, static_cast<InstanceType>(1087)); tmp7 = CodeStubAssembler(state_).Word32NotEqual(TNode<Uint32T>{tmp5}, TNode<Uint32T>{tmp6}); ca_.Branch(tmp7, &block11, std::vector<compiler::Node*>{}, &block12, std::vector<compiler::Node*>{}); } if (block11.is_used()) { ca_.Bind(&block11); ca_.Goto(&block1); } if (block12.is_used()) { ca_.Bind(&block12); ca_.Goto(&block8); } if (block8.is_used()) { ca_.Bind(&block8); ca_.Goto(&block5); } TNode<Int32T> tmp8; TNode<IntPtrT> tmp9; TNode<Uint16T> tmp10; TNode<Uint16T> tmp11; TNode<Int32T> tmp12; TNode<Uint16T> tmp13; TNode<Uint16T> tmp14; TNode<Int32T> tmp15; TNode<Int32T> tmp16; TNode<Uint32T> tmp17; TNode<Uint32T> tmp18; TNode<BoolT> tmp19; if (block4.is_used()) { ca_.Bind(&block4); tmp8 = FromConstexpr_int32_constexpr_int32_0(state_, (CodeStubAssembler(state_).ConstexprUint32Sub(static_cast<InstanceType>(1087), static_cast<InstanceType>(1087)))); tmp9 = FromConstexpr_intptr_constexpr_int31_0(state_, 12); tmp10 = CodeStubAssembler(state_).LoadReference<Uint16T>(CodeStubAssembler::Reference{tmp1, tmp9}); tmp11 = Convert_uint16_InstanceType_0(state_, TNode<Uint16T>{tmp10}); tmp12 = Convert_int32_uint16_0(state_, TNode<Uint16T>{tmp11}); tmp13 = FromConstexpr_InstanceType_constexpr_InstanceType_0(state_, static_cast<InstanceType>(1087)); tmp14 = Convert_uint16_InstanceType_0(state_, TNode<Uint16T>{tmp13}); tmp15 = Convert_int32_uint16_0(state_, TNode<Uint16T>{tmp14}); tmp16 = CodeStubAssembler(state_).Int32Sub(TNode<Int32T>{tmp12}, TNode<Int32T>{tmp15}); tmp17 = CodeStubAssembler(state_).Unsigned(TNode<Int32T>{tmp16}); tmp18 = CodeStubAssembler(state_).Unsigned(TNode<Int32T>{tmp8}); tmp19 = CodeStubAssembler(state_).Uint32GreaterThan(TNode<Uint32T>{tmp17}, TNode<Uint32T>{tmp18}); ca_.Branch(tmp19, &block13, std::vector<compiler::Node*>{}, &block14, std::vector<compiler::Node*>{}); } if (block13.is_used()) { ca_.Bind(&block13); ca_.Goto(&block1); } if (block14.is_used()) { ca_.Bind(&block14); ca_.Goto(&block5); } TNode<JSArrayIterator> tmp20; if (block5.is_used()) { ca_.Bind(&block5); tmp20 = TORQUE_CAST(TNode<HeapObject>{p_o}); ca_.Goto(&block15); } if (block1.is_used()) { ca_.Bind(&block1); ca_.Goto(label_CastError); } ca_.Bind(&block15); return TNode<JSArrayIterator>{tmp20}; } TNode<Smi> SmiTag_IterationKind_0(compiler::CodeAssemblerState* state_, TNode<Uint32T> p_value) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<Smi> tmp0; TNode<Smi> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = CodeStubAssembler(state_).SmiFromUint32(TNode<Uint32T>{p_value}); tmp1 = (TNode<Smi>{tmp0}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<Smi>{tmp1}; } TNode<JSArray> DownCastForTorqueClass_JSArray_0(compiler::CodeAssemblerState* state_, TNode<HeapObject> p_o, compiler::CodeAssemblerLabel* label_CastError) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block11(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block12(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block13(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block14(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block15(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; TNode<Map> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 0); tmp1 = CodeStubAssembler(state_).LoadReference<Map>(CodeStubAssembler::Reference{p_o, tmp0}); if (((CodeStubAssembler(state_).ConstexprInt31Equal(static_cast<InstanceType>(1085), static_cast<InstanceType>(1085))))) { ca_.Goto(&block3); } else { ca_.Goto(&block4); } } if (block3.is_used()) { ca_.Bind(&block3); if ((CodeStubAssembler(state_).ClassHasMapConstant<JSArray>())) { ca_.Goto(&block6); } else { ca_.Goto(&block7); } } TNode<Map> tmp2; TNode<BoolT> tmp3; if (block6.is_used()) { ca_.Bind(&block6); tmp2 = CodeStubAssembler(state_).GetClassMapConstant<JSArray>(); tmp3 = CodeStubAssembler(state_).TaggedNotEqual(TNode<HeapObject>{tmp1}, TNode<HeapObject>{tmp2}); ca_.Branch(tmp3, &block9, std::vector<compiler::Node*>{}, &block10, std::vector<compiler::Node*>{}); } if (block9.is_used()) { ca_.Bind(&block9); ca_.Goto(&block1); } if (block10.is_used()) { ca_.Bind(&block10); ca_.Goto(&block8); } TNode<IntPtrT> tmp4; TNode<Uint16T> tmp5; TNode<Uint32T> tmp6; TNode<BoolT> tmp7; if (block7.is_used()) { ca_.Bind(&block7); tmp4 = FromConstexpr_intptr_constexpr_int31_0(state_, 12); tmp5 = CodeStubAssembler(state_).LoadReference<Uint16T>(CodeStubAssembler::Reference{tmp1, tmp4}); tmp6 = FromConstexpr_uint32_constexpr_uint32_0(state_, static_cast<InstanceType>(1085)); tmp7 = CodeStubAssembler(state_).Word32NotEqual(TNode<Uint32T>{tmp5}, TNode<Uint32T>{tmp6}); ca_.Branch(tmp7, &block11, std::vector<compiler::Node*>{}, &block12, std::vector<compiler::Node*>{}); } if (block11.is_used()) { ca_.Bind(&block11); ca_.Goto(&block1); } if (block12.is_used()) { ca_.Bind(&block12); ca_.Goto(&block8); } if (block8.is_used()) { ca_.Bind(&block8); ca_.Goto(&block5); } TNode<Int32T> tmp8; TNode<IntPtrT> tmp9; TNode<Uint16T> tmp10; TNode<Uint16T> tmp11; TNode<Int32T> tmp12; TNode<Uint16T> tmp13; TNode<Uint16T> tmp14; TNode<Int32T> tmp15; TNode<Int32T> tmp16; TNode<Uint32T> tmp17; TNode<Uint32T> tmp18; TNode<BoolT> tmp19; if (block4.is_used()) { ca_.Bind(&block4); tmp8 = FromConstexpr_int32_constexpr_int32_0(state_, (CodeStubAssembler(state_).ConstexprUint32Sub(static_cast<InstanceType>(1085), static_cast<InstanceType>(1085)))); tmp9 = FromConstexpr_intptr_constexpr_int31_0(state_, 12); tmp10 = CodeStubAssembler(state_).LoadReference<Uint16T>(CodeStubAssembler::Reference{tmp1, tmp9}); tmp11 = Convert_uint16_InstanceType_0(state_, TNode<Uint16T>{tmp10}); tmp12 = Convert_int32_uint16_0(state_, TNode<Uint16T>{tmp11}); tmp13 = FromConstexpr_InstanceType_constexpr_InstanceType_0(state_, static_cast<InstanceType>(1085)); tmp14 = Convert_uint16_InstanceType_0(state_, TNode<Uint16T>{tmp13}); tmp15 = Convert_int32_uint16_0(state_, TNode<Uint16T>{tmp14}); tmp16 = CodeStubAssembler(state_).Int32Sub(TNode<Int32T>{tmp12}, TNode<Int32T>{tmp15}); tmp17 = CodeStubAssembler(state_).Unsigned(TNode<Int32T>{tmp16}); tmp18 = CodeStubAssembler(state_).Unsigned(TNode<Int32T>{tmp8}); tmp19 = CodeStubAssembler(state_).Uint32GreaterThan(TNode<Uint32T>{tmp17}, TNode<Uint32T>{tmp18}); ca_.Branch(tmp19, &block13, std::vector<compiler::Node*>{}, &block14, std::vector<compiler::Node*>{}); } if (block13.is_used()) { ca_.Bind(&block13); ca_.Goto(&block1); } if (block14.is_used()) { ca_.Bind(&block14); ca_.Goto(&block5); } TNode<JSArray> tmp20; if (block5.is_used()) { ca_.Bind(&block5); tmp20 = TORQUE_CAST(TNode<HeapObject>{p_o}); ca_.Goto(&block15); } if (block1.is_used()) { ca_.Bind(&block1); ca_.Goto(label_CastError); } ca_.Bind(&block15); return TNode<JSArray>{tmp20}; } } // namespace internal } // namespace v8