%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/arguments-tq-csa.h" #include "torque-generated/src/builtins/array-join-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/frame-arguments-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/arguments-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" #include "torque-generated/test/torque/test-torque-tq-csa.h" namespace v8 { namespace internal { TNode<JSArgumentsObject> Cast_JSArgumentsObject_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<JSArgumentsObject> tmp0; if (block0.is_used()) { ca_.Bind(&block0); compiler::CodeAssemblerLabel label1(&ca_); tmp0 = DownCastForTorqueClass_JSArgumentsObject_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<JSArgumentsObject>{tmp0}; } TNode<BoolT> IsJSArgumentsObjectWithLength_0(compiler::CodeAssemblerState* state_, TNode<Context> p_context, TNode<Object> 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<BoolT> tmp0; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = Is_JSArgumentsObjectWithLength_Object_0(state_, TNode<Context>{p_context}, TNode<Object>{p_o}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<BoolT>{tmp0}; } TNode<SloppyArgumentsElements> Cast_SloppyArgumentsElements_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<SloppyArgumentsElements> tmp0; if (block0.is_used()) { ca_.Bind(&block0); compiler::CodeAssemblerLabel label1(&ca_); tmp0 = DownCastForTorqueClass_SloppyArgumentsElements_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<SloppyArgumentsElements>{tmp0}; } TNode<AliasedArgumentsEntry> Cast_AliasedArgumentsEntry_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<AliasedArgumentsEntry> tmp0; if (block0.is_used()) { ca_.Bind(&block0); compiler::CodeAssemblerLabel label1(&ca_); tmp0 = DownCastForTorqueClass_AliasedArgumentsEntry_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<AliasedArgumentsEntry>{tmp0}; } TNode<JSArgumentsObject> NewJSStrictArgumentsObject_0(compiler::CodeAssemblerState* state_, TNode<Context> p_context, TNode<FixedArray> 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<Map> tmp0; TNode<FixedArray> tmp1; TNode<IntPtrT> tmp2; TNode<Smi> tmp3; TNode<BoolT> tmp4; TNode<IntPtrT> tmp5; TNode<HeapObject> tmp6; TNode<IntPtrT> tmp7; TNode<IntPtrT> tmp8; TNode<IntPtrT> tmp9; TNode<IntPtrT> tmp10; TNode<JSArgumentsObject> tmp11; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = GetStrictArgumentsMap_0(state_, TNode<Context>{p_context}); tmp1 = kEmptyFixedArray_0(state_); tmp2 = FromConstexpr_intptr_constexpr_int31_0(state_, 8); tmp3 = CodeStubAssembler(state_).LoadReference<Smi>(CodeStubAssembler::Reference{p_elements, tmp2}); tmp4 = FromConstexpr_bool_constexpr_bool_0(state_, false); tmp5 = FromConstexpr_intptr_constexpr_int31_0(state_, 32); tmp6 = AllocateFromNew_0(state_, TNode<IntPtrT>{tmp5}, TNode<Map>{tmp0}, TNode<BoolT>{tmp4}); tmp7 = FromConstexpr_intptr_constexpr_int31_0(state_, 0); CodeStubAssembler(state_).StoreReference<Map>(CodeStubAssembler::Reference{tmp6, tmp7}, tmp0); tmp8 = FromConstexpr_intptr_constexpr_int31_0(state_, 8); CodeStubAssembler(state_).StoreReference<Object>(CodeStubAssembler::Reference{tmp6, tmp8}, tmp1); tmp9 = FromConstexpr_intptr_constexpr_int31_0(state_, 16); CodeStubAssembler(state_).StoreReference<FixedArrayBase>(CodeStubAssembler::Reference{tmp6, tmp9}, p_elements); tmp10 = FromConstexpr_intptr_constexpr_int31_0(state_, 24); CodeStubAssembler(state_).StoreReference<Object>(CodeStubAssembler::Reference{tmp6, tmp10}, tmp3); tmp11 = TORQUE_CAST(TNode<HeapObject>{tmp6}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<JSArgumentsObject>{tmp11}; } TNode<JSArgumentsObject> NewJSSloppyArgumentsObject_0(compiler::CodeAssemblerState* state_, TNode<Context> p_context, TNode<FixedArrayBase> p_elements, TNode<JSFunction> p_callee) { 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<IntPtrT> tmp2; TNode<Smi> tmp3; TNode<BoolT> tmp4; TNode<IntPtrT> tmp5; TNode<HeapObject> tmp6; TNode<IntPtrT> tmp7; TNode<IntPtrT> tmp8; TNode<IntPtrT> tmp9; TNode<IntPtrT> tmp10; TNode<IntPtrT> tmp11; TNode<JSArgumentsObject> tmp12; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = GetSloppyArgumentsMap_0(state_, TNode<Context>{p_context}); tmp1 = kEmptyFixedArray_0(state_); tmp2 = FromConstexpr_intptr_constexpr_int31_0(state_, 8); tmp3 = CodeStubAssembler(state_).LoadReference<Smi>(CodeStubAssembler::Reference{p_elements, tmp2}); tmp4 = FromConstexpr_bool_constexpr_bool_0(state_, false); tmp5 = FromConstexpr_intptr_constexpr_int31_0(state_, 40); tmp6 = AllocateFromNew_0(state_, TNode<IntPtrT>{tmp5}, TNode<Map>{tmp0}, TNode<BoolT>{tmp4}); tmp7 = FromConstexpr_intptr_constexpr_int31_0(state_, 0); CodeStubAssembler(state_).StoreReference<Map>(CodeStubAssembler::Reference{tmp6, tmp7}, tmp0); tmp8 = FromConstexpr_intptr_constexpr_int31_0(state_, 8); CodeStubAssembler(state_).StoreReference<Object>(CodeStubAssembler::Reference{tmp6, tmp8}, tmp1); tmp9 = FromConstexpr_intptr_constexpr_int31_0(state_, 16); CodeStubAssembler(state_).StoreReference<FixedArrayBase>(CodeStubAssembler::Reference{tmp6, tmp9}, p_elements); tmp10 = FromConstexpr_intptr_constexpr_int31_0(state_, 24); CodeStubAssembler(state_).StoreReference<Object>(CodeStubAssembler::Reference{tmp6, tmp10}, tmp3); tmp11 = FromConstexpr_intptr_constexpr_int31_0(state_, 32); CodeStubAssembler(state_).StoreReference<Object>(CodeStubAssembler::Reference{tmp6, tmp11}, p_callee); tmp12 = TORQUE_CAST(TNode<HeapObject>{tmp6}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<JSArgumentsObject>{tmp12}; } TNode<JSArgumentsObject> NewJSFastAliasedArgumentsObject_0(compiler::CodeAssemblerState* state_, TNode<Context> p_context, TNode<FixedArrayBase> p_elements, TNode<Smi> p_length, TNode<JSFunction> p_callee) { 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<BoolT> tmp2; TNode<IntPtrT> tmp3; TNode<HeapObject> tmp4; TNode<IntPtrT> tmp5; TNode<IntPtrT> tmp6; TNode<IntPtrT> tmp7; TNode<IntPtrT> tmp8; TNode<IntPtrT> tmp9; TNode<JSArgumentsObject> tmp10; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = GetFastAliasedArgumentsMap_0(state_, TNode<Context>{p_context}); tmp1 = kEmptyFixedArray_0(state_); tmp2 = FromConstexpr_bool_constexpr_bool_0(state_, false); tmp3 = FromConstexpr_intptr_constexpr_int31_0(state_, 40); tmp4 = AllocateFromNew_0(state_, TNode<IntPtrT>{tmp3}, TNode<Map>{tmp0}, TNode<BoolT>{tmp2}); tmp5 = FromConstexpr_intptr_constexpr_int31_0(state_, 0); CodeStubAssembler(state_).StoreReference<Map>(CodeStubAssembler::Reference{tmp4, tmp5}, tmp0); tmp6 = FromConstexpr_intptr_constexpr_int31_0(state_, 8); CodeStubAssembler(state_).StoreReference<Object>(CodeStubAssembler::Reference{tmp4, tmp6}, tmp1); tmp7 = FromConstexpr_intptr_constexpr_int31_0(state_, 16); CodeStubAssembler(state_).StoreReference<FixedArrayBase>(CodeStubAssembler::Reference{tmp4, tmp7}, p_elements); tmp8 = FromConstexpr_intptr_constexpr_int31_0(state_, 24); CodeStubAssembler(state_).StoreReference<Object>(CodeStubAssembler::Reference{tmp4, tmp8}, p_length); tmp9 = FromConstexpr_intptr_constexpr_int31_0(state_, 32); CodeStubAssembler(state_).StoreReference<Object>(CodeStubAssembler::Reference{tmp4, tmp9}, p_callee); tmp10 = TORQUE_CAST(TNode<HeapObject>{tmp4}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<JSArgumentsObject>{tmp10}; } TorqueStructParameterMapIterator_0 NewParameterMapIterator_0(compiler::CodeAssemblerState* state_, TNode<Context> p_context, TNode<IntPtrT> p_formalParameterCount, TNode<IntPtrT> p_mappedCount) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<IntPtrT> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<ScopeInfo> tmp0; TNode<IntPtrT> tmp1; TNode<Smi> tmp2; TNode<IntPtrT> tmp3; TNode<BoolT> tmp4; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = Method_Context_GetScopeInfo_0(state_, TNode<Context>{p_context}); tmp1 = FromConstexpr_intptr_constexpr_int31_0(state_, 8); tmp2 = CodeStubAssembler(state_).LoadReference<Smi>(CodeStubAssembler::Reference{tmp0, tmp1}); tmp3 = FromConstexpr_intptr_constexpr_intptr_0(state_, Context::Field::MIN_CONTEXT_SLOTS); tmp4 = ca_.UncheckedCast<BoolT>(CodeStubAssembler(state_).DecodeWord32FromWord<base::BitField<bool, 58, 1, uintptr_t>>(ca_.UncheckedCast<WordT>(ca_.BitcastTaggedToWordForTagAndSmiBits(tmp2)))); ca_.Branch(tmp4, &block2, std::vector<compiler::Node*>{}, &block3, std::vector<compiler::Node*>{tmp3}); } TNode<IntPtrT> tmp5; TNode<IntPtrT> tmp6; if (block2.is_used()) { ca_.Bind(&block2); tmp5 = FromConstexpr_intptr_constexpr_int31_0(state_, 1); tmp6 = CodeStubAssembler(state_).IntPtrAdd(TNode<IntPtrT>{tmp3}, TNode<IntPtrT>{tmp5}); ca_.Goto(&block3, tmp6); } TNode<IntPtrT> phi_bb3_4; TNode<IntPtrT> tmp7; TNode<IntPtrT> tmp8; if (block3.is_used()) { ca_.Bind(&block3, &phi_bb3_4); tmp7 = CodeStubAssembler(state_).IntPtrAdd(TNode<IntPtrT>{phi_bb3_4}, TNode<IntPtrT>{p_formalParameterCount}); tmp8 = CodeStubAssembler(state_).IntPtrSub(TNode<IntPtrT>{tmp7}, TNode<IntPtrT>{p_mappedCount}); ca_.Goto(&block4); } ca_.Bind(&block4); return TorqueStructParameterMapIterator_0{TNode<IntPtrT>{tmp7}, TNode<IntPtrT>{tmp8}}; } TorqueStructParameterValueIterator_0 NewParameterValueIterator_0(compiler::CodeAssemblerState* state_, TNode<IntPtrT> p_mappedCount, TorqueStructArguments p_arguments) { 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); ca_.Goto(&block2); } ca_.Bind(&block2); return TorqueStructParameterValueIterator_0{TNode<IntPtrT>{p_mappedCount}, TorqueStructArguments{TNode<RawPtrT>{p_arguments.frame}, TNode<RawPtrT>{p_arguments.base}, TNode<IntPtrT>{p_arguments.length}}, TNode<IntPtrT>{p_mappedCount}}; } TNode<JSArray> NewAllArguments_0(compiler::CodeAssemblerState* state_, TNode<Context> p_context, TNode<RawPtrT> p_frame, TNode<IntPtrT> p_argumentCount) { 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<RawPtrT> tmp1; TNode<RawPtrT> tmp2; TNode<IntPtrT> tmp3; TNode<IntPtrT> tmp4; TNode<FixedArray> tmp5; TNode<JSArray> tmp6; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = GetFastPackedElementsJSArrayMap_0(state_, TNode<Context>{p_context}); std::tie(tmp1, tmp2, tmp3) = CodeStubAssembler(state_).GetFrameArguments(TNode<RawPtrT>{p_frame}, TNode<IntPtrT>{p_argumentCount}).Flatten(); tmp4 = FromConstexpr_intptr_constexpr_int31_0(state_, 0); tmp5 = NewFixedArray_ArgumentsIterator_0(state_, TNode<IntPtrT>{p_argumentCount}, TorqueStructArgumentsIterator_0{TorqueStructArguments{TNode<RawPtrT>{tmp1}, TNode<RawPtrT>{tmp2}, TNode<IntPtrT>{tmp3}}, TNode<IntPtrT>{tmp4}}); tmp6 = NewJSArray_0(state_, TNode<Context>{p_context}, TNode<Map>{tmp0}, TNode<FixedArrayBase>{tmp5}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<JSArray>{tmp6}; } TNode<FixedArray> NewRestArgumentsElements_0(compiler::CodeAssemblerState* state_, TNode<RawPtrT> p_frame, TNode<IntPtrT> p_formalParameterCount, TNode<IntPtrT> p_argumentCount) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<IntPtrT> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<BoolT> tmp0; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = CodeStubAssembler(state_).IntPtrGreaterThanOrEqual(TNode<IntPtrT>{p_formalParameterCount}, TNode<IntPtrT>{p_argumentCount}); ca_.Branch(tmp0, &block2, std::vector<compiler::Node*>{}, &block3, std::vector<compiler::Node*>{}); } TNode<IntPtrT> tmp1; if (block2.is_used()) { ca_.Bind(&block2); tmp1 = FromConstexpr_intptr_constexpr_int31_0(state_, 0); ca_.Goto(&block4, tmp1); } TNode<IntPtrT> tmp2; if (block3.is_used()) { ca_.Bind(&block3); tmp2 = CodeStubAssembler(state_).IntPtrSub(TNode<IntPtrT>{p_argumentCount}, TNode<IntPtrT>{p_formalParameterCount}); ca_.Goto(&block4, tmp2); } TNode<IntPtrT> phi_bb4_3; TNode<RawPtrT> tmp3; TNode<RawPtrT> tmp4; TNode<IntPtrT> tmp5; TNode<FixedArray> tmp6; if (block4.is_used()) { ca_.Bind(&block4, &phi_bb4_3); std::tie(tmp3, tmp4, tmp5) = CodeStubAssembler(state_).GetFrameArguments(TNode<RawPtrT>{p_frame}, TNode<IntPtrT>{p_argumentCount}).Flatten(); tmp6 = NewFixedArray_ArgumentsIterator_0(state_, TNode<IntPtrT>{phi_bb4_3}, TorqueStructArgumentsIterator_0{TorqueStructArguments{TNode<RawPtrT>{tmp3}, TNode<RawPtrT>{tmp4}, TNode<IntPtrT>{tmp5}}, TNode<IntPtrT>{p_formalParameterCount}}); ca_.Goto(&block6); } ca_.Bind(&block6); return TNode<FixedArray>{tmp6}; } TNode<JSArray> NewRestArguments_0(compiler::CodeAssemblerState* state_, TNode<Context> p_context, TorqueStructFrameWithArgumentsInfo_0 p_info) { 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<IntPtrT> tmp1; TNode<Map> tmp2; TNode<FixedArray> tmp3; TNode<JSArray> tmp4; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = Convert_intptr_bint_0(state_, TNode<BInt>{p_info.argument_count}); tmp1 = Convert_intptr_bint_0(state_, TNode<BInt>{p_info.formal_parameter_count}); tmp2 = GetFastPackedElementsJSArrayMap_0(state_, TNode<Context>{p_context}); tmp3 = NewRestArgumentsElements_0(state_, TNode<RawPtrT>{p_info.frame}, TNode<IntPtrT>{tmp1}, TNode<IntPtrT>{tmp0}); tmp4 = NewJSArray_0(state_, TNode<Context>{p_context}, TNode<Map>{tmp2}, TNode<FixedArrayBase>{tmp3}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<JSArray>{tmp4}; } TNode<FixedArray> NewStrictArgumentsElements_0(compiler::CodeAssemblerState* state_, TNode<RawPtrT> p_frame, TNode<IntPtrT> p_argumentCount) { 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<RawPtrT> tmp0; TNode<RawPtrT> tmp1; TNode<IntPtrT> tmp2; TNode<IntPtrT> tmp3; TNode<FixedArray> tmp4; if (block0.is_used()) { ca_.Bind(&block0); std::tie(tmp0, tmp1, tmp2) = CodeStubAssembler(state_).GetFrameArguments(TNode<RawPtrT>{p_frame}, TNode<IntPtrT>{p_argumentCount}).Flatten(); tmp3 = FromConstexpr_intptr_constexpr_int31_0(state_, 0); tmp4 = NewFixedArray_ArgumentsIterator_0(state_, TNode<IntPtrT>{p_argumentCount}, TorqueStructArgumentsIterator_0{TorqueStructArguments{TNode<RawPtrT>{tmp0}, TNode<RawPtrT>{tmp1}, TNode<IntPtrT>{tmp2}}, TNode<IntPtrT>{tmp3}}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<FixedArray>{tmp4}; } TNode<JSArgumentsObject> NewStrictArguments_0(compiler::CodeAssemblerState* state_, TNode<Context> p_context, TorqueStructFrameWithArgumentsInfo_0 p_info) { 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<FixedArray> tmp1; TNode<JSArgumentsObject> tmp2; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = Convert_intptr_bint_0(state_, TNode<BInt>{p_info.argument_count}); tmp1 = NewStrictArgumentsElements_0(state_, TNode<RawPtrT>{p_info.frame}, TNode<IntPtrT>{tmp0}); tmp2 = NewJSStrictArgumentsObject_0(state_, TNode<Context>{p_context}, TNode<FixedArray>{tmp1}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<JSArgumentsObject>{tmp2}; } TNode<FixedArray> NewSloppyArgumentsElements_0(compiler::CodeAssemblerState* state_, TNode<RawPtrT> p_frame, TNode<IntPtrT> p_formalParameterCount, TNode<IntPtrT> p_argumentCount) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<FixedArray> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<RawPtrT> tmp0; TNode<RawPtrT> tmp1; TNode<IntPtrT> tmp2; TNode<IntPtrT> tmp3; TNode<BoolT> tmp4; if (block0.is_used()) { ca_.Bind(&block0); std::tie(tmp0, tmp1, tmp2) = CodeStubAssembler(state_).GetFrameArguments(TNode<RawPtrT>{p_frame}, TNode<IntPtrT>{p_argumentCount}).Flatten(); tmp3 = FromConstexpr_intptr_constexpr_int31_0(state_, 0); tmp4 = CodeStubAssembler(state_).WordEqual(TNode<IntPtrT>{p_formalParameterCount}, TNode<IntPtrT>{tmp3}); ca_.Branch(tmp4, &block2, std::vector<compiler::Node*>{}, &block3, std::vector<compiler::Node*>{}); } TNode<IntPtrT> tmp5; TNode<FixedArray> tmp6; if (block2.is_used()) { ca_.Bind(&block2); tmp5 = FromConstexpr_intptr_constexpr_int31_0(state_, 0); tmp6 = NewFixedArray_ArgumentsIterator_0(state_, TNode<IntPtrT>{p_argumentCount}, TorqueStructArgumentsIterator_0{TorqueStructArguments{TNode<RawPtrT>{tmp0}, TNode<RawPtrT>{tmp1}, TNode<IntPtrT>{tmp2}}, TNode<IntPtrT>{tmp5}}); ca_.Goto(&block1, tmp6); } TNode<IntPtrT> tmp7; TNode<IntPtrT> tmp8; TNode<RawPtrT> tmp9; TNode<RawPtrT> tmp10; TNode<IntPtrT> tmp11; TNode<IntPtrT> tmp12; TNode<FixedArray> tmp13; if (block3.is_used()) { ca_.Bind(&block3); tmp7 = CodeStubAssembler(state_).IntPtrMin(TNode<IntPtrT>{p_formalParameterCount}, TNode<IntPtrT>{p_argumentCount}); std::tie(tmp8, tmp9, tmp10, tmp11, tmp12) = NewParameterValueIterator_0(state_, TNode<IntPtrT>{tmp7}, TorqueStructArguments{TNode<RawPtrT>{tmp0}, TNode<RawPtrT>{tmp1}, TNode<IntPtrT>{tmp2}}).Flatten(); tmp13 = NewFixedArray_ParameterValueIterator_0(state_, TNode<IntPtrT>{p_argumentCount}, TorqueStructParameterValueIterator_0{TNode<IntPtrT>{tmp8}, TorqueStructArguments{TNode<RawPtrT>{tmp9}, TNode<RawPtrT>{tmp10}, TNode<IntPtrT>{tmp11}}, TNode<IntPtrT>{tmp12}}); ca_.Goto(&block1, tmp13); } TNode<FixedArray> phi_bb1_3; if (block1.is_used()) { ca_.Bind(&block1, &phi_bb1_3); ca_.Goto(&block4); } ca_.Bind(&block4); return TNode<FixedArray>{phi_bb1_3}; } TNode<JSArgumentsObject> NewSloppyArguments_0(compiler::CodeAssemblerState* state_, TNode<Context> p_context, TorqueStructFrameWithArgumentsInfo_0 p_info, TNode<JSFunction> p_callee) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<JSArgumentsObject> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; TNode<IntPtrT> tmp1; TNode<FixedArray> tmp2; TNode<IntPtrT> tmp3; TNode<BoolT> tmp4; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = Convert_intptr_bint_0(state_, TNode<BInt>{p_info.argument_count}); tmp1 = Convert_intptr_bint_0(state_, TNode<BInt>{p_info.formal_parameter_count}); tmp2 = NewSloppyArgumentsElements_0(state_, TNode<RawPtrT>{p_info.frame}, TNode<IntPtrT>{tmp1}, TNode<IntPtrT>{tmp0}); tmp3 = FromConstexpr_intptr_constexpr_int31_0(state_, 0); tmp4 = CodeStubAssembler(state_).WordEqual(TNode<IntPtrT>{tmp1}, TNode<IntPtrT>{tmp3}); ca_.Branch(tmp4, &block2, std::vector<compiler::Node*>{}, &block3, std::vector<compiler::Node*>{}); } TNode<JSArgumentsObject> tmp5; if (block2.is_used()) { ca_.Bind(&block2); tmp5 = NewJSSloppyArgumentsObject_0(state_, TNode<Context>{p_context}, TNode<FixedArrayBase>{tmp2}, TNode<JSFunction>{p_callee}); ca_.Goto(&block1, tmp5); } TNode<IntPtrT> tmp6; TNode<IntPtrT> tmp7; TNode<IntPtrT> tmp8; TNode<Smi> tmp9; TNode<SloppyArgumentsElements> tmp10; TNode<Smi> tmp11; TNode<JSArgumentsObject> tmp12; if (block3.is_used()) { ca_.Bind(&block3); tmp6 = CodeStubAssembler(state_).IntPtrMin(TNode<IntPtrT>{tmp1}, TNode<IntPtrT>{tmp0}); std::tie(tmp7, tmp8) = NewParameterMapIterator_0(state_, TNode<Context>{p_context}, TNode<IntPtrT>{tmp1}, TNode<IntPtrT>{tmp6}).Flatten(); tmp9 = Convert_Smi_intptr_0(state_, TNode<IntPtrT>{tmp6}); tmp10 = NewSloppyArgumentsElements_ParameterMapIterator_0(state_, TNode<Smi>{tmp9}, TNode<Context>{p_context}, TNode<FixedArray>{tmp2}, TorqueStructParameterMapIterator_0{TNode<IntPtrT>{tmp7}, TNode<IntPtrT>{tmp8}}); tmp11 = Convert_Smi_intptr_0(state_, TNode<IntPtrT>{tmp0}); tmp12 = NewJSFastAliasedArgumentsObject_0(state_, TNode<Context>{p_context}, TNode<FixedArrayBase>{tmp10}, TNode<Smi>{tmp11}, TNode<JSFunction>{p_callee}); ca_.Goto(&block1, tmp12); } TNode<JSArgumentsObject> phi_bb1_5; if (block1.is_used()) { ca_.Bind(&block1, &phi_bb1_5); ca_.Goto(&block4); } ca_.Bind(&block4); return TNode<JSArgumentsObject>{phi_bb1_5}; } TNode<JSArray> EmitFastNewAllArguments_0(compiler::CodeAssemblerState* state_, TNode<Context> p_context, TNode<RawPtrT> p_frame, TNode<IntPtrT> p_argc) { 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<JSArray> tmp0; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = NewAllArguments_0(state_, TNode<Context>{p_context}, TNode<RawPtrT>{p_frame}, TNode<IntPtrT>{p_argc}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<JSArray>{tmp0}; } TNode<JSArray> EmitFastNewRestArguments_0(compiler::CodeAssemblerState* state_, TNode<Context> p_context, TNode<JSFunction> p__f) { 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<RawPtrT> tmp0; TNode<BInt> tmp1; TNode<BInt> tmp2; TNode<JSArray> tmp3; if (block0.is_used()) { ca_.Bind(&block0); std::tie(tmp0, tmp1, tmp2) = GetFrameWithArgumentsInfo_0(state_, TNode<Context>{p_context}).Flatten(); tmp3 = NewRestArguments_0(state_, TNode<Context>{p_context}, TorqueStructFrameWithArgumentsInfo_0{TNode<RawPtrT>{tmp0}, TNode<BInt>{tmp1}, TNode<BInt>{tmp2}}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<JSArray>{tmp3}; } TNode<JSArgumentsObject> EmitFastNewStrictArguments_0(compiler::CodeAssemblerState* state_, TNode<Context> p_context, TNode<JSFunction> p__f) { 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<RawPtrT> tmp0; TNode<BInt> tmp1; TNode<BInt> tmp2; TNode<JSArgumentsObject> tmp3; if (block0.is_used()) { ca_.Bind(&block0); std::tie(tmp0, tmp1, tmp2) = GetFrameWithArgumentsInfo_0(state_, TNode<Context>{p_context}).Flatten(); tmp3 = NewStrictArguments_0(state_, TNode<Context>{p_context}, TorqueStructFrameWithArgumentsInfo_0{TNode<RawPtrT>{tmp0}, TNode<BInt>{tmp1}, TNode<BInt>{tmp2}}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<JSArgumentsObject>{tmp3}; } TNode<JSArgumentsObject> EmitFastNewSloppyArguments_0(compiler::CodeAssemblerState* state_, TNode<Context> p_context, TNode<JSFunction> p_f) { 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<RawPtrT> tmp0; TNode<BInt> tmp1; TNode<BInt> tmp2; TNode<JSArgumentsObject> tmp3; if (block0.is_used()) { ca_.Bind(&block0); std::tie(tmp0, tmp1, tmp2) = GetFrameWithArgumentsInfo_0(state_, TNode<Context>{p_context}).Flatten(); tmp3 = NewSloppyArguments_0(state_, TNode<Context>{p_context}, TorqueStructFrameWithArgumentsInfo_0{TNode<RawPtrT>{tmp0}, TNode<BInt>{tmp1}, TNode<BInt>{tmp2}}, TNode<JSFunction>{p_f}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<JSArgumentsObject>{tmp3}; } TF_BUILTIN(NewSloppyArgumentsElements, CodeStubAssembler) { compiler::CodeAssemblerState* state_ = state(); compiler::CodeAssembler ca_(state()); TNode<RawPtrT> parameter0 = UncheckedParameter<RawPtrT>(Descriptor::kFrame); USE(parameter0); TNode<IntPtrT> parameter1 = UncheckedParameter<IntPtrT>(Descriptor::kFormalParameterCount); USE(parameter1); TNode<Smi> parameter2 = UncheckedParameter<Smi>(Descriptor::kArgumentCount); USE(parameter2); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; TNode<FixedArray> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = Convert_intptr_Smi_0(state_, TNode<Smi>{parameter2}); tmp1 = NewSloppyArgumentsElements_0(state_, TNode<RawPtrT>{parameter0}, TNode<IntPtrT>{parameter1}, TNode<IntPtrT>{tmp0}); CodeStubAssembler(state_).Return(tmp1); } } TF_BUILTIN(NewStrictArgumentsElements, CodeStubAssembler) { compiler::CodeAssemblerState* state_ = state(); compiler::CodeAssembler ca_(state()); TNode<RawPtrT> parameter0 = UncheckedParameter<RawPtrT>(Descriptor::kFrame); USE(parameter0); TNode<IntPtrT> parameter1 = UncheckedParameter<IntPtrT>(Descriptor::kFormalParameterCount); USE(parameter1); TNode<Smi> parameter2 = UncheckedParameter<Smi>(Descriptor::kArgumentCount); USE(parameter2); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; TNode<FixedArray> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = Convert_intptr_Smi_0(state_, TNode<Smi>{parameter2}); tmp1 = NewStrictArgumentsElements_0(state_, TNode<RawPtrT>{parameter0}, TNode<IntPtrT>{tmp0}); CodeStubAssembler(state_).Return(tmp1); } } TF_BUILTIN(NewRestArgumentsElements, CodeStubAssembler) { compiler::CodeAssemblerState* state_ = state(); compiler::CodeAssembler ca_(state()); TNode<RawPtrT> parameter0 = UncheckedParameter<RawPtrT>(Descriptor::kFrame); USE(parameter0); TNode<IntPtrT> parameter1 = UncheckedParameter<IntPtrT>(Descriptor::kFormalParameterCount); USE(parameter1); TNode<Smi> parameter2 = UncheckedParameter<Smi>(Descriptor::kArgumentCount); USE(parameter2); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; TNode<FixedArray> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = Convert_intptr_Smi_0(state_, TNode<Smi>{parameter2}); tmp1 = NewRestArgumentsElements_0(state_, TNode<RawPtrT>{parameter0}, TNode<IntPtrT>{parameter1}, TNode<IntPtrT>{tmp0}); CodeStubAssembler(state_).Return(tmp1); } } TF_BUILTIN(FastNewSloppyArguments, CodeStubAssembler) { compiler::CodeAssemblerState* state_ = state(); compiler::CodeAssembler ca_(state()); TNode<Context> parameter0 = UncheckedParameter<Context>(Descriptor::kContext); USE(parameter0); TNode<JSFunction> parameter1 = UncheckedParameter<JSFunction>(Descriptor::kF); USE(parameter1); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<JSArgumentsObject> tmp0; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = EmitFastNewSloppyArguments_0(state_, TNode<Context>{parameter0}, TNode<JSFunction>{parameter1}); CodeStubAssembler(state_).Return(tmp0); } } TF_BUILTIN(FastNewStrictArguments, CodeStubAssembler) { compiler::CodeAssemblerState* state_ = state(); compiler::CodeAssembler ca_(state()); TNode<Context> parameter0 = UncheckedParameter<Context>(Descriptor::kContext); USE(parameter0); TNode<JSFunction> parameter1 = UncheckedParameter<JSFunction>(Descriptor::kF); USE(parameter1); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<JSArgumentsObject> tmp0; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = EmitFastNewStrictArguments_0(state_, TNode<Context>{parameter0}, TNode<JSFunction>{parameter1}); CodeStubAssembler(state_).Return(tmp0); } } TF_BUILTIN(FastNewRestArguments, CodeStubAssembler) { compiler::CodeAssemblerState* state_ = state(); compiler::CodeAssembler ca_(state()); TNode<Context> parameter0 = UncheckedParameter<Context>(Descriptor::kContext); USE(parameter0); TNode<JSFunction> parameter1 = UncheckedParameter<JSFunction>(Descriptor::kF); USE(parameter1); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<JSArray> tmp0; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = EmitFastNewRestArguments_0(state_, TNode<Context>{parameter0}, TNode<JSFunction>{parameter1}); CodeStubAssembler(state_).Return(tmp0); } } TorqueStructReference_Object_0 AccessSloppyArgumentsCommon_0(compiler::CodeAssemblerState* state_, TNode<JSObject> p_receiver, TNode<Object> p_keyObject, compiler::CodeAssemblerLabel* label_Bailout) { 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<> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block15(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block16(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block21(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block20(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block26(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block27(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block8(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block32(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block31(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block33(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block34(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block41(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block42(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block35(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block36(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block48(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block49(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<Object, IntPtrT> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<Object, IntPtrT> block51(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<Smi> tmp0; if (block0.is_used()) { ca_.Bind(&block0); compiler::CodeAssemblerLabel label1(&ca_); tmp0 = Cast_Smi_0(state_, TNode<Object>{p_keyObject}, &label1); ca_.Goto(&block3); if (label1.is_used()) { ca_.Bind(&label1); ca_.Goto(&block4); } } if (block4.is_used()) { ca_.Bind(&block4); ca_.Goto(&block1); } TNode<IntPtrT> tmp2; TNode<FixedArrayBase> tmp3; TNode<SloppyArgumentsElements> tmp4; if (block3.is_used()) { ca_.Bind(&block3); tmp2 = FromConstexpr_intptr_constexpr_int31_0(state_, 16); tmp3 = CodeStubAssembler(state_).LoadReference<FixedArrayBase>(CodeStubAssembler::Reference{p_receiver, tmp2}); compiler::CodeAssemblerLabel label5(&ca_); tmp4 = Cast_SloppyArgumentsElements_0(state_, TNode<HeapObject>{tmp3}, &label5); ca_.Goto(&block5); if (label5.is_used()) { ca_.Bind(&label5); ca_.Goto(&block6); } } if (block6.is_used()) { ca_.Bind(&block6); ca_.Goto(&block1); } TNode<IntPtrT> tmp6; TNode<Smi> tmp7; TNode<BoolT> tmp8; if (block5.is_used()) { ca_.Bind(&block5); tmp6 = FromConstexpr_intptr_constexpr_int31_0(state_, 8); tmp7 = CodeStubAssembler(state_).LoadReference<Smi>(CodeStubAssembler::Reference{tmp4, tmp6}); tmp8 = OutOfBounds_Smi_Smi_0(state_, TNode<Smi>{tmp0}, TNode<Smi>{tmp7}); ca_.Branch(tmp8, &block9, std::vector<compiler::Node*>{}, &block10, std::vector<compiler::Node*>{}); } if (block9.is_used()) { ca_.Bind(&block9); ca_.Goto(&block8); } TNode<Object> tmp9; TNode<IntPtrT> tmp10; TNode<IntPtrT> tmp11; TNode<IntPtrT> tmp12; TNode<UintPtrT> tmp13; TNode<UintPtrT> tmp14; TNode<BoolT> tmp15; if (block10.is_used()) { ca_.Bind(&block10); std::tie(tmp9, tmp10, tmp11) = FieldSliceSloppyArgumentsElementsMappedEntries_0(state_, TNode<SloppyArgumentsElements>{tmp4}).Flatten(); tmp12 = Convert_intptr_Smi_0(state_, TNode<Smi>{tmp0}); tmp13 = Convert_uintptr_intptr_0(state_, TNode<IntPtrT>{tmp12}); tmp14 = Convert_uintptr_intptr_0(state_, TNode<IntPtrT>{tmp11}); tmp15 = CodeStubAssembler(state_).UintPtrLessThan(TNode<UintPtrT>{tmp13}, TNode<UintPtrT>{tmp14}); ca_.Branch(tmp15, &block15, std::vector<compiler::Node*>{}, &block16, std::vector<compiler::Node*>{}); } TNode<IntPtrT> tmp16; TNode<IntPtrT> tmp17; TNode<Object> tmp18; TNode<IntPtrT> tmp19; TNode<Object> tmp20; TNode<Smi> tmp21; if (block15.is_used()) { ca_.Bind(&block15); tmp16 = TimesSizeOf_Smi_OR_TheHole_0(state_, TNode<IntPtrT>{tmp12}); tmp17 = CodeStubAssembler(state_).IntPtrAdd(TNode<IntPtrT>{tmp10}, TNode<IntPtrT>{tmp16}); std::tie(tmp18, tmp19) = NewReference_Smi_OR_TheHole_0(state_, TNode<Object>{tmp9}, TNode<IntPtrT>{tmp17}).Flatten(); tmp20 = CodeStubAssembler(state_).LoadReference<Object>(CodeStubAssembler::Reference{tmp18, tmp19}); compiler::CodeAssemblerLabel label22(&ca_); tmp21 = Cast_Smi_0(state_, TNode<Object>{tmp20}, &label22); ca_.Goto(&block20); if (label22.is_used()) { ca_.Bind(&label22); ca_.Goto(&block21); } } if (block16.is_used()) { ca_.Bind(&block16); CodeStubAssembler(state_).Unreachable(); } if (block21.is_used()) { ca_.Bind(&block21); ca_.Goto(&block8); } TNode<IntPtrT> tmp23; TNode<Context> tmp24; TNode<Object> tmp25; TNode<IntPtrT> tmp26; TNode<IntPtrT> tmp27; TNode<IntPtrT> tmp28; TNode<UintPtrT> tmp29; TNode<UintPtrT> tmp30; TNode<BoolT> tmp31; if (block20.is_used()) { ca_.Bind(&block20); tmp23 = FromConstexpr_intptr_constexpr_int31_0(state_, 16); tmp24 = CodeStubAssembler(state_).LoadReference<Context>(CodeStubAssembler::Reference{tmp4, tmp23}); std::tie(tmp25, tmp26, tmp27) = FieldSliceContextElements_0(state_, TNode<Context>{tmp24}).Flatten(); tmp28 = Convert_intptr_Smi_0(state_, TNode<Smi>{tmp21}); tmp29 = Convert_uintptr_intptr_0(state_, TNode<IntPtrT>{tmp28}); tmp30 = Convert_uintptr_intptr_0(state_, TNode<IntPtrT>{tmp27}); tmp31 = CodeStubAssembler(state_).UintPtrLessThan(TNode<UintPtrT>{tmp29}, TNode<UintPtrT>{tmp30}); ca_.Branch(tmp31, &block26, std::vector<compiler::Node*>{}, &block27, std::vector<compiler::Node*>{}); } TNode<IntPtrT> tmp32; TNode<IntPtrT> tmp33; TNode<Object> tmp34; TNode<IntPtrT> tmp35; if (block26.is_used()) { ca_.Bind(&block26); tmp32 = TimesSizeOf_Object_0(state_, TNode<IntPtrT>{tmp28}); tmp33 = CodeStubAssembler(state_).IntPtrAdd(TNode<IntPtrT>{tmp26}, TNode<IntPtrT>{tmp32}); std::tie(tmp34, tmp35) = NewReference_Object_0(state_, TNode<Object>{tmp25}, TNode<IntPtrT>{tmp33}).Flatten(); ca_.Goto(&block2, tmp34, tmp35); } if (block27.is_used()) { ca_.Bind(&block27); CodeStubAssembler(state_).Unreachable(); } TNode<IntPtrT> tmp36; TNode<FixedArray> tmp37; TNode<NumberDictionary> tmp38; if (block8.is_used()) { ca_.Bind(&block8); tmp36 = FromConstexpr_intptr_constexpr_int31_0(state_, 24); tmp37 = CodeStubAssembler(state_).LoadReference<FixedArray>(CodeStubAssembler::Reference{tmp4, tmp36}); compiler::CodeAssemblerLabel label39(&ca_); tmp38 = Cast_NumberDictionary_0(state_, TNode<HeapObject>{tmp37}, &label39); ca_.Goto(&block31); if (label39.is_used()) { ca_.Bind(&label39); ca_.Goto(&block32); } } TNode<IntPtrT> tmp40; TNode<Smi> tmp41; TNode<BoolT> tmp42; if (block32.is_used()) { ca_.Bind(&block32); tmp40 = FromConstexpr_intptr_constexpr_int31_0(state_, 8); tmp41 = CodeStubAssembler(state_).LoadReference<Smi>(CodeStubAssembler::Reference{ca_.UncheckedCast<FixedArray>(tmp37), tmp40}); tmp42 = OutOfBounds_Smi_Smi_0(state_, TNode<Smi>{tmp0}, TNode<Smi>{tmp41}); ca_.Branch(tmp42, &block33, std::vector<compiler::Node*>{}, &block34, std::vector<compiler::Node*>{}); } if (block31.is_used()) { ca_.Bind(&block31); ca_.Goto(&block1); } if (block33.is_used()) { ca_.Bind(&block33); ca_.Goto(&block1); } TNode<Object> tmp43; TNode<IntPtrT> tmp44; TNode<IntPtrT> tmp45; TNode<IntPtrT> tmp46; TNode<UintPtrT> tmp47; TNode<UintPtrT> tmp48; TNode<BoolT> tmp49; if (block34.is_used()) { ca_.Bind(&block34); std::tie(tmp43, tmp44, tmp45) = FieldSliceFixedArrayObjects_0(state_, TNode<FixedArray>{ca_.UncheckedCast<FixedArray>(tmp37)}).Flatten(); tmp46 = Convert_intptr_Smi_0(state_, TNode<Smi>{tmp0}); tmp47 = Convert_uintptr_intptr_0(state_, TNode<IntPtrT>{tmp46}); tmp48 = Convert_uintptr_intptr_0(state_, TNode<IntPtrT>{tmp45}); tmp49 = CodeStubAssembler(state_).UintPtrLessThan(TNode<UintPtrT>{tmp47}, TNode<UintPtrT>{tmp48}); ca_.Branch(tmp49, &block41, std::vector<compiler::Node*>{}, &block42, std::vector<compiler::Node*>{}); } TNode<IntPtrT> tmp50; TNode<IntPtrT> tmp51; TNode<Object> tmp52; TNode<IntPtrT> tmp53; TNode<Object> tmp54; TNode<Oddball> tmp55; TNode<BoolT> tmp56; if (block41.is_used()) { ca_.Bind(&block41); tmp50 = TimesSizeOf_Object_0(state_, TNode<IntPtrT>{tmp46}); tmp51 = CodeStubAssembler(state_).IntPtrAdd(TNode<IntPtrT>{tmp44}, TNode<IntPtrT>{tmp50}); std::tie(tmp52, tmp53) = NewReference_Object_0(state_, TNode<Object>{tmp43}, TNode<IntPtrT>{tmp51}).Flatten(); tmp54 = CodeStubAssembler(state_).LoadReference<Object>(CodeStubAssembler::Reference{tmp52, tmp53}); tmp55 = TheHole_0(state_); tmp56 = CodeStubAssembler(state_).TaggedEqual(TNode<Object>{tmp54}, TNode<HeapObject>{tmp55}); ca_.Branch(tmp56, &block35, std::vector<compiler::Node*>{}, &block36, std::vector<compiler::Node*>{}); } if (block42.is_used()) { ca_.Bind(&block42); CodeStubAssembler(state_).Unreachable(); } if (block35.is_used()) { ca_.Bind(&block35); ca_.Goto(&block1); } TNode<Object> tmp57; TNode<IntPtrT> tmp58; TNode<IntPtrT> tmp59; TNode<IntPtrT> tmp60; TNode<UintPtrT> tmp61; TNode<UintPtrT> tmp62; TNode<BoolT> tmp63; if (block36.is_used()) { ca_.Bind(&block36); std::tie(tmp57, tmp58, tmp59) = FieldSliceFixedArrayObjects_0(state_, TNode<FixedArray>{ca_.UncheckedCast<FixedArray>(tmp37)}).Flatten(); tmp60 = Convert_intptr_Smi_0(state_, TNode<Smi>{tmp0}); tmp61 = Convert_uintptr_intptr_0(state_, TNode<IntPtrT>{tmp60}); tmp62 = Convert_uintptr_intptr_0(state_, TNode<IntPtrT>{tmp59}); tmp63 = CodeStubAssembler(state_).UintPtrLessThan(TNode<UintPtrT>{tmp61}, TNode<UintPtrT>{tmp62}); ca_.Branch(tmp63, &block48, std::vector<compiler::Node*>{}, &block49, std::vector<compiler::Node*>{}); } TNode<IntPtrT> tmp64; TNode<IntPtrT> tmp65; TNode<Object> tmp66; TNode<IntPtrT> tmp67; if (block48.is_used()) { ca_.Bind(&block48); tmp64 = TimesSizeOf_Object_0(state_, TNode<IntPtrT>{tmp60}); tmp65 = CodeStubAssembler(state_).IntPtrAdd(TNode<IntPtrT>{tmp58}, TNode<IntPtrT>{tmp64}); std::tie(tmp66, tmp67) = NewReference_Object_0(state_, TNode<Object>{tmp57}, TNode<IntPtrT>{tmp65}).Flatten(); ca_.Goto(&block2, tmp66, tmp67); } if (block49.is_used()) { ca_.Bind(&block49); CodeStubAssembler(state_).Unreachable(); } TNode<Object> phi_bb2_2; TNode<IntPtrT> phi_bb2_3; if (block2.is_used()) { ca_.Bind(&block2, &phi_bb2_2, &phi_bb2_3); ca_.Goto(&block51, phi_bb2_2, phi_bb2_3); } if (block1.is_used()) { ca_.Bind(&block1); ca_.Goto(label_Bailout); } TNode<Object> phi_bb51_2; TNode<IntPtrT> phi_bb51_3; ca_.Bind(&block51, &phi_bb51_2, &phi_bb51_3); return TorqueStructReference_Object_0{TNode<Object>{phi_bb51_2}, TNode<IntPtrT>{phi_bb51_3}, TorqueStructUnsafe_0{}}; } TNode<Object> SloppyArgumentsLoad_0(compiler::CodeAssemblerState* state_, TNode<JSObject> p_receiver, TNode<Object> p_keyObject, compiler::CodeAssemblerLabel* label_Bailout) { 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<> block15(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<Object> tmp0; TNode<IntPtrT> tmp1; if (block0.is_used()) { ca_.Bind(&block0); compiler::CodeAssemblerLabel label2(&ca_); std::tie(tmp0, tmp1) = AccessSloppyArgumentsCommon_0(state_, TNode<JSObject>{p_receiver}, TNode<Object>{p_keyObject}, &label2).Flatten(); ca_.Goto(&block3); if (label2.is_used()) { ca_.Bind(&label2); ca_.Goto(&block4); } } if (block4.is_used()) { ca_.Bind(&block4); ca_.Goto(label_Bailout); } TNode<Object> tmp3; TNode<Object> tmp4; if (block3.is_used()) { ca_.Bind(&block3); tmp3 = CodeStubAssembler(state_).LoadReference<Object>(CodeStubAssembler::Reference{tmp0, tmp1}); tmp4 = (TNode<Object>{tmp3}); ca_.Goto(&block15); } ca_.Bind(&block15); return TNode<Object>{tmp4}; } TNode<Object> SloppyArgumentsHas_0(compiler::CodeAssemblerState* state_, TNode<JSObject> p_receiver, TNode<Object> p_keyObject, compiler::CodeAssemblerLabel* label_Bailout) { 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<Object> tmp0; TNode<IntPtrT> tmp1; if (block0.is_used()) { ca_.Bind(&block0); compiler::CodeAssemblerLabel label2(&ca_); std::tie(tmp0, tmp1) = AccessSloppyArgumentsCommon_0(state_, TNode<JSObject>{p_receiver}, TNode<Object>{p_keyObject}, &label2).Flatten(); ca_.Goto(&block3); if (label2.is_used()) { ca_.Bind(&label2); ca_.Goto(&block4); } } if (block4.is_used()) { ca_.Bind(&block4); ca_.Goto(label_Bailout); } TNode<Oddball> tmp3; if (block3.is_used()) { ca_.Bind(&block3); tmp3 = True_0(state_); ca_.Goto(&block5); } ca_.Bind(&block5); return TNode<Object>{tmp3}; } TNode<Object> SloppyArgumentsStore_0(compiler::CodeAssemblerState* state_, TNode<JSObject> p_receiver, TNode<Object> p_keyObject, TNode<Object> p_value, compiler::CodeAssemblerLabel* label_Bailout) { 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<Object> tmp0; TNode<IntPtrT> tmp1; if (block0.is_used()) { ca_.Bind(&block0); compiler::CodeAssemblerLabel label2(&ca_); std::tie(tmp0, tmp1) = AccessSloppyArgumentsCommon_0(state_, TNode<JSObject>{p_receiver}, TNode<Object>{p_keyObject}, &label2).Flatten(); ca_.Goto(&block3); if (label2.is_used()) { ca_.Bind(&label2); ca_.Goto(&block4); } } if (block4.is_used()) { ca_.Bind(&block4); ca_.Goto(label_Bailout); } if (block3.is_used()) { ca_.Bind(&block3); CodeStubAssembler(state_).StoreReference<Object>(CodeStubAssembler::Reference{tmp0, tmp1}, p_value); ca_.Goto(&block5); } ca_.Bind(&block5); return TNode<Object>{p_value}; } TNode<Object> LoadJSStrictArgumentsObjectLength_0(compiler::CodeAssemblerState* state_, TNode<JSArgumentsObject> 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<Object> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 24); tmp1 = CodeStubAssembler(state_).LoadReference<Object>(CodeStubAssembler::Reference{p_o, tmp0}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<Object>{tmp1}; } void StoreJSStrictArgumentsObjectLength_0(compiler::CodeAssemblerState* state_, TNode<JSArgumentsObject> p_o, TNode<Object> 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<Object>(CodeStubAssembler::Reference{p_o, tmp0}, p_v); ca_.Goto(&block2); } ca_.Bind(&block2); } TNode<Object> LoadJSSloppyArgumentsObjectLength_0(compiler::CodeAssemblerState* state_, TNode<JSArgumentsObject> 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<Object> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 24); tmp1 = CodeStubAssembler(state_).LoadReference<Object>(CodeStubAssembler::Reference{p_o, tmp0}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<Object>{tmp1}; } void StoreJSSloppyArgumentsObjectLength_0(compiler::CodeAssemblerState* state_, TNode<JSArgumentsObject> p_o, TNode<Object> 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<Object>(CodeStubAssembler::Reference{p_o, tmp0}, p_v); ca_.Goto(&block2); } ca_.Bind(&block2); } TNode<Object> LoadJSSloppyArgumentsObjectCallee_0(compiler::CodeAssemblerState* state_, TNode<JSArgumentsObject> 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<Object> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 32); tmp1 = CodeStubAssembler(state_).LoadReference<Object>(CodeStubAssembler::Reference{p_o, tmp0}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<Object>{tmp1}; } void StoreJSSloppyArgumentsObjectCallee_0(compiler::CodeAssemblerState* state_, TNode<JSArgumentsObject> p_o, TNode<Object> 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<Object>(CodeStubAssembler::Reference{p_o, tmp0}, p_v); ca_.Goto(&block2); } ca_.Bind(&block2); } TNode<Context> LoadSloppyArgumentsElementsContext_0(compiler::CodeAssemblerState* state_, TNode<SloppyArgumentsElements> 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<Context> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 16); tmp1 = CodeStubAssembler(state_).LoadReference<Context>(CodeStubAssembler::Reference{p_o, tmp0}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<Context>{tmp1}; } void StoreSloppyArgumentsElementsContext_0(compiler::CodeAssemblerState* state_, TNode<SloppyArgumentsElements> p_o, TNode<Context> 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_, 16); CodeStubAssembler(state_).StoreReference<Context>(CodeStubAssembler::Reference{p_o, tmp0}, p_v); ca_.Goto(&block2); } ca_.Bind(&block2); } TNode<FixedArray> LoadSloppyArgumentsElementsArguments_0(compiler::CodeAssemblerState* state_, TNode<SloppyArgumentsElements> 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<FixedArray> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 24); tmp1 = CodeStubAssembler(state_).LoadReference<FixedArray>(CodeStubAssembler::Reference{p_o, tmp0}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<FixedArray>{tmp1}; } void StoreSloppyArgumentsElementsArguments_0(compiler::CodeAssemblerState* state_, TNode<SloppyArgumentsElements> p_o, TNode<FixedArray> 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<FixedArray>(CodeStubAssembler::Reference{p_o, tmp0}, p_v); ca_.Goto(&block2); } ca_.Bind(&block2); } TorqueStructSlice_Smi_OR_TheHole_MutableReference_Smi_OR_TheHole_0 FieldSliceSloppyArgumentsElementsMappedEntries_0(compiler::CodeAssemblerState* state_, TNode<SloppyArgumentsElements> 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; TNode<IntPtrT> tmp2; TNode<IntPtrT> tmp3; TNode<Object> tmp4; TNode<IntPtrT> tmp5; TNode<IntPtrT> tmp6; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 8); tmp1 = CodeStubAssembler(state_).LoadReference<Smi>(CodeStubAssembler::Reference{p_o, tmp0}); tmp2 = Convert_intptr_Smi_0(state_, TNode<Smi>{tmp1}); tmp3 = FromConstexpr_intptr_constexpr_int31_0(state_, 32); std::tie(tmp4, tmp5, tmp6) = NewMutableSlice_Smi_OR_TheHole_0(state_, TNode<Object>{p_o}, TNode<IntPtrT>{tmp3}, TNode<IntPtrT>{tmp2}).Flatten(); ca_.Goto(&block2); } ca_.Bind(&block2); return TorqueStructSlice_Smi_OR_TheHole_MutableReference_Smi_OR_TheHole_0{TNode<Object>{tmp4}, TNode<IntPtrT>{tmp5}, TNode<IntPtrT>{tmp6}, TorqueStructUnsafe_0{}}; } TNode<Object> LoadSloppyArgumentsElementsMappedEntries_0(compiler::CodeAssemblerState* state_, TNode<SloppyArgumentsElements> p_o, TNode<IntPtrT> p_i) { 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<> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<Object> tmp0; TNode<IntPtrT> tmp1; TNode<IntPtrT> tmp2; TNode<UintPtrT> tmp3; TNode<UintPtrT> tmp4; TNode<BoolT> tmp5; if (block0.is_used()) { ca_.Bind(&block0); std::tie(tmp0, tmp1, tmp2) = FieldSliceSloppyArgumentsElementsMappedEntries_0(state_, TNode<SloppyArgumentsElements>{p_o}).Flatten(); tmp3 = Convert_uintptr_intptr_0(state_, TNode<IntPtrT>{p_i}); tmp4 = Convert_uintptr_intptr_0(state_, TNode<IntPtrT>{tmp2}); tmp5 = CodeStubAssembler(state_).UintPtrLessThan(TNode<UintPtrT>{tmp3}, TNode<UintPtrT>{tmp4}); ca_.Branch(tmp5, &block6, std::vector<compiler::Node*>{}, &block7, std::vector<compiler::Node*>{}); } TNode<IntPtrT> tmp6; TNode<IntPtrT> tmp7; TNode<Object> tmp8; TNode<IntPtrT> tmp9; TNode<Object> tmp10; if (block6.is_used()) { ca_.Bind(&block6); tmp6 = TimesSizeOf_Smi_OR_TheHole_0(state_, TNode<IntPtrT>{p_i}); tmp7 = CodeStubAssembler(state_).IntPtrAdd(TNode<IntPtrT>{tmp1}, TNode<IntPtrT>{tmp6}); std::tie(tmp8, tmp9) = NewReference_Smi_OR_TheHole_0(state_, TNode<Object>{tmp0}, TNode<IntPtrT>{tmp7}).Flatten(); tmp10 = CodeStubAssembler(state_).LoadReference<Object>(CodeStubAssembler::Reference{tmp8, tmp9}); ca_.Goto(&block9); } if (block7.is_used()) { ca_.Bind(&block7); CodeStubAssembler(state_).Unreachable(); } ca_.Bind(&block9); return TNode<Object>{tmp10}; } void StoreSloppyArgumentsElementsMappedEntries_0(compiler::CodeAssemblerState* state_, TNode<SloppyArgumentsElements> p_o, TNode<IntPtrT> p_i, TNode<Object> p_v) { 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<> block7(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<Object> tmp0; TNode<IntPtrT> tmp1; TNode<IntPtrT> tmp2; TNode<UintPtrT> tmp3; TNode<UintPtrT> tmp4; TNode<BoolT> tmp5; if (block0.is_used()) { ca_.Bind(&block0); std::tie(tmp0, tmp1, tmp2) = FieldSliceSloppyArgumentsElementsMappedEntries_0(state_, TNode<SloppyArgumentsElements>{p_o}).Flatten(); tmp3 = Convert_uintptr_intptr_0(state_, TNode<IntPtrT>{p_i}); tmp4 = Convert_uintptr_intptr_0(state_, TNode<IntPtrT>{tmp2}); tmp5 = CodeStubAssembler(state_).UintPtrLessThan(TNode<UintPtrT>{tmp3}, TNode<UintPtrT>{tmp4}); ca_.Branch(tmp5, &block6, std::vector<compiler::Node*>{}, &block7, std::vector<compiler::Node*>{}); } TNode<IntPtrT> tmp6; TNode<IntPtrT> tmp7; TNode<Object> tmp8; TNode<IntPtrT> tmp9; if (block6.is_used()) { ca_.Bind(&block6); tmp6 = TimesSizeOf_Smi_OR_TheHole_0(state_, TNode<IntPtrT>{p_i}); tmp7 = CodeStubAssembler(state_).IntPtrAdd(TNode<IntPtrT>{tmp1}, TNode<IntPtrT>{tmp6}); std::tie(tmp8, tmp9) = NewReference_Smi_OR_TheHole_0(state_, TNode<Object>{tmp0}, TNode<IntPtrT>{tmp7}).Flatten(); CodeStubAssembler(state_).StoreReference<Object>(CodeStubAssembler::Reference{tmp8, tmp9}, p_v); ca_.Goto(&block9); } if (block7.is_used()) { ca_.Bind(&block7); CodeStubAssembler(state_).Unreachable(); } ca_.Bind(&block9); } TNode<Smi> LoadAliasedArgumentsEntryAliasedContextSlot_0(compiler::CodeAssemblerState* state_, TNode<AliasedArgumentsEntry> 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_, 8); tmp1 = CodeStubAssembler(state_).LoadReference<Smi>(CodeStubAssembler::Reference{p_o, tmp0}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<Smi>{tmp1}; } void StoreAliasedArgumentsEntryAliasedContextSlot_0(compiler::CodeAssemblerState* state_, TNode<AliasedArgumentsEntry> 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_, 8); CodeStubAssembler(state_).StoreReference<Smi>(CodeStubAssembler::Reference{p_o, tmp0}, p_v); ca_.Goto(&block2); } ca_.Bind(&block2); } TNode<JSArgumentsObject> DownCastForTorqueClass_JSArgumentsObject_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>(1055), static_cast<InstanceType>(1055))))) { ca_.Goto(&block3); } else { ca_.Goto(&block4); } } if (block3.is_used()) { ca_.Bind(&block3); if ((CodeStubAssembler(state_).ClassHasMapConstant<JSArgumentsObject>())) { ca_.Goto(&block6); } else { ca_.Goto(&block7); } } TNode<Map> tmp2; TNode<BoolT> tmp3; if (block6.is_used()) { ca_.Bind(&block6); tmp2 = CodeStubAssembler(state_).GetClassMapConstant<JSArgumentsObject>(); 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>(1055)); 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>(1055), static_cast<InstanceType>(1055)))); 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>(1055)); 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<JSArgumentsObject> 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<JSArgumentsObject>{tmp20}; } TNode<BoolT> Is_JSArgumentsObjectWithLength_Object_0(compiler::CodeAssemblerState* state_, TNode<Context> p_context, TNode<Object> p_o) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<BoolT> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<JSArgumentsObject> tmp0; if (block0.is_used()) { ca_.Bind(&block0); compiler::CodeAssemblerLabel label1(&ca_); tmp0 = Cast_JSArgumentsObjectWithLength_1(state_, TNode<Context>{p_context}, TNode<Object>{p_o}, &label1); ca_.Goto(&block4); if (label1.is_used()) { ca_.Bind(&label1); ca_.Goto(&block5); } } TNode<BoolT> tmp2; if (block5.is_used()) { ca_.Bind(&block5); tmp2 = FromConstexpr_bool_constexpr_bool_0(state_, false); ca_.Goto(&block1, tmp2); } TNode<BoolT> tmp3; if (block4.is_used()) { ca_.Bind(&block4); tmp3 = FromConstexpr_bool_constexpr_bool_0(state_, true); ca_.Goto(&block1, tmp3); } TNode<BoolT> phi_bb1_2; if (block1.is_used()) { ca_.Bind(&block1, &phi_bb1_2); ca_.Goto(&block6); } ca_.Bind(&block6); return TNode<BoolT>{phi_bb1_2}; } TNode<SloppyArgumentsElements> DownCastForTorqueClass_SloppyArgumentsElements_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>(136), static_cast<InstanceType>(136))))) { ca_.Goto(&block3); } else { ca_.Goto(&block4); } } if (block3.is_used()) { ca_.Bind(&block3); if ((CodeStubAssembler(state_).ClassHasMapConstant<SloppyArgumentsElements>())) { ca_.Goto(&block6); } else { ca_.Goto(&block7); } } TNode<Map> tmp2; TNode<BoolT> tmp3; if (block6.is_used()) { ca_.Bind(&block6); tmp2 = CodeStubAssembler(state_).GetClassMapConstant<SloppyArgumentsElements>(); 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>(136)); 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>(136), static_cast<InstanceType>(136)))); 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>(136)); 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<SloppyArgumentsElements> 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<SloppyArgumentsElements>{tmp20}; } TNode<AliasedArgumentsEntry> DownCastForTorqueClass_AliasedArgumentsEntry_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>(88), static_cast<InstanceType>(88))))) { ca_.Goto(&block3); } else { ca_.Goto(&block4); } } if (block3.is_used()) { ca_.Bind(&block3); if ((CodeStubAssembler(state_).ClassHasMapConstant<AliasedArgumentsEntry>())) { ca_.Goto(&block6); } else { ca_.Goto(&block7); } } TNode<Map> tmp2; TNode<BoolT> tmp3; if (block6.is_used()) { ca_.Bind(&block6); tmp2 = CodeStubAssembler(state_).GetClassMapConstant<AliasedArgumentsEntry>(); 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>(88)); 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>(88), static_cast<InstanceType>(88)))); 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>(88)); 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<AliasedArgumentsEntry> 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<AliasedArgumentsEntry>{tmp20}; } TNode<FixedArray> NewFixedArray_ParameterValueIterator_0(compiler::CodeAssemblerState* state_, TNode<IntPtrT> p_length, TorqueStructParameterValueIterator_0 p_it) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block2(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block4(&ca_, compiler::CodeAssemblerLabel::kDeferred); compiler::CodeAssemblerParameterizedLabel<> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<FixedArray> block1(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<FixedArray> block6(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; TNode<BoolT> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = FromConstexpr_intptr_constexpr_int31_0(state_, 0); tmp1 = CodeStubAssembler(state_).WordEqual(TNode<IntPtrT>{p_length}, TNode<IntPtrT>{tmp0}); ca_.Branch(tmp1, &block2, std::vector<compiler::Node*>{}, &block3, std::vector<compiler::Node*>{}); } TNode<FixedArray> tmp2; if (block2.is_used()) { ca_.Bind(&block2); tmp2 = kEmptyFixedArray_0(state_); ca_.Goto(&block1, tmp2); } TNode<IntPtrT> tmp3; TNode<BoolT> tmp4; if (block3.is_used()) { ca_.Bind(&block3); tmp3 = FromConstexpr_intptr_constexpr_int31_0(state_, FixedArray::kMaxLength); tmp4 = CodeStubAssembler(state_).IntPtrGreaterThan(TNode<IntPtrT>{p_length}, TNode<IntPtrT>{tmp3}); ca_.Branch(tmp4, &block4, std::vector<compiler::Node*>{}, &block5, std::vector<compiler::Node*>{}); } TNode<Smi> tmp5; if (block4.is_used()) { ca_.Bind(&block4); tmp5 = kNoContext_0(state_); CodeStubAssembler(state_).CallRuntime(Runtime::kFatalProcessOutOfMemoryInvalidArrayLength, tmp5); CodeStubAssembler(state_).Unreachable(); } TNode<Map> tmp6; TNode<Smi> tmp7; TNode<IntPtrT> tmp8; TNode<IntPtrT> tmp9; TNode<IntPtrT> tmp10; TNode<BoolT> tmp11; TNode<HeapObject> tmp12; TNode<IntPtrT> tmp13; TNode<IntPtrT> tmp14; TNode<IntPtrT> tmp15; TNode<FixedArray> tmp16; if (block5.is_used()) { ca_.Bind(&block5); tmp6 = kFixedArrayMap_0(state_); tmp7 = Convert_Smi_intptr_0(state_, TNode<IntPtrT>{p_length}); tmp8 = Convert_intptr_Smi_0(state_, TNode<Smi>{tmp7}); tmp9 = FromConstexpr_intptr_constexpr_int31_0(state_, 16); tmp10 = AddIndexedFieldSizeToObjectSize_0(state_, TNode<IntPtrT>{tmp9}, TNode<IntPtrT>{tmp8}, kTaggedSize); tmp11 = FromConstexpr_bool_constexpr_bool_0(state_, false); tmp12 = AllocateFromNew_0(state_, TNode<IntPtrT>{tmp10}, TNode<Map>{tmp6}, TNode<BoolT>{tmp11}); tmp13 = FromConstexpr_intptr_constexpr_int31_0(state_, 0); CodeStubAssembler(state_).StoreReference<Map>(CodeStubAssembler::Reference{tmp12, tmp13}, tmp6); tmp14 = FromConstexpr_intptr_constexpr_int31_0(state_, 8); CodeStubAssembler(state_).StoreReference<Smi>(CodeStubAssembler::Reference{tmp12, tmp14}, tmp7); tmp15 = FromConstexpr_intptr_constexpr_int31_0(state_, 16); InitializeFieldsFromIterator_Object_ParameterValueIterator_0(state_, TorqueStructSlice_Object_MutableReference_Object_0{TNode<Object>{tmp12}, TNode<IntPtrT>{tmp15}, TNode<IntPtrT>{tmp8}, TorqueStructUnsafe_0{}}, TorqueStructParameterValueIterator_0{TNode<IntPtrT>{p_it.mapped_count}, TorqueStructArguments{TNode<RawPtrT>{p_it.arguments.frame}, TNode<RawPtrT>{p_it.arguments.base}, TNode<IntPtrT>{p_it.arguments.length}}, TNode<IntPtrT>{p_it.current}}); tmp16 = TORQUE_CAST(TNode<HeapObject>{tmp12}); ca_.Goto(&block1, tmp16); } TNode<FixedArray> phi_bb1_6; if (block1.is_used()) { ca_.Bind(&block1, &phi_bb1_6); ca_.Goto(&block6, phi_bb1_6); } TNode<FixedArray> phi_bb6_6; ca_.Bind(&block6, &phi_bb6_6); return TNode<FixedArray>{phi_bb6_6}; } TNode<SloppyArgumentsElements> NewSloppyArgumentsElements_ParameterMapIterator_0(compiler::CodeAssemblerState* state_, TNode<Smi> p_length, TNode<Context> p_context, TNode<FixedArray> p_arguments, TorqueStructParameterMapIterator_0 p_it) { 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<IntPtrT> tmp1; TNode<IntPtrT> tmp2; TNode<IntPtrT> tmp3; TNode<BoolT> tmp4; TNode<HeapObject> tmp5; TNode<IntPtrT> tmp6; TNode<IntPtrT> tmp7; TNode<IntPtrT> tmp8; TNode<IntPtrT> tmp9; TNode<IntPtrT> tmp10; TNode<SloppyArgumentsElements> tmp11; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = CodeStubAssembler(state_).GetInstanceTypeMap(SLOPPY_ARGUMENTS_ELEMENTS_TYPE); tmp1 = Convert_intptr_Smi_0(state_, TNode<Smi>{p_length}); tmp2 = FromConstexpr_intptr_constexpr_int31_0(state_, 32); tmp3 = AddIndexedFieldSizeToObjectSize_0(state_, TNode<IntPtrT>{tmp2}, TNode<IntPtrT>{tmp1}, kTaggedSize); tmp4 = FromConstexpr_bool_constexpr_bool_0(state_, false); tmp5 = AllocateFromNew_0(state_, TNode<IntPtrT>{tmp3}, TNode<Map>{tmp0}, TNode<BoolT>{tmp4}); 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<Smi>(CodeStubAssembler::Reference{tmp5, tmp7}, p_length); tmp8 = FromConstexpr_intptr_constexpr_int31_0(state_, 16); CodeStubAssembler(state_).StoreReference<Context>(CodeStubAssembler::Reference{tmp5, tmp8}, p_context); tmp9 = FromConstexpr_intptr_constexpr_int31_0(state_, 24); CodeStubAssembler(state_).StoreReference<FixedArray>(CodeStubAssembler::Reference{tmp5, tmp9}, p_arguments); tmp10 = FromConstexpr_intptr_constexpr_int31_0(state_, 32); InitializeFieldsFromIterator_Smi_OR_TheHole_ParameterMapIterator_0(state_, TorqueStructSlice_Smi_OR_TheHole_MutableReference_Smi_OR_TheHole_0{TNode<Object>{tmp5}, TNode<IntPtrT>{tmp10}, TNode<IntPtrT>{tmp1}, TorqueStructUnsafe_0{}}, TorqueStructParameterMapIterator_0{TNode<IntPtrT>{p_it.currentIndex}, TNode<IntPtrT>{p_it.endInterationIndex}}); tmp11 = TORQUE_CAST(TNode<HeapObject>{tmp5}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<SloppyArgumentsElements>{tmp11}; } TNode<BoolT> OutOfBounds_Smi_Smi_0(compiler::CodeAssemblerState* state_, TNode<Smi> p_index, TNode<Smi> p_length) { 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<UintPtrT> tmp1; TNode<IntPtrT> tmp2; TNode<UintPtrT> tmp3; TNode<BoolT> tmp4; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = Convert_intptr_Smi_0(state_, TNode<Smi>{p_index}); tmp1 = Convert_uintptr_intptr_0(state_, TNode<IntPtrT>{tmp0}); tmp2 = Convert_intptr_Smi_0(state_, TNode<Smi>{p_length}); tmp3 = Convert_uintptr_intptr_0(state_, TNode<IntPtrT>{tmp2}); tmp4 = CodeStubAssembler(state_).UintPtrGreaterThanOrEqual(TNode<UintPtrT>{tmp1}, TNode<UintPtrT>{tmp3}); ca_.Goto(&block2); } ca_.Bind(&block2); return TNode<BoolT>{tmp4}; } TorqueStructSlice_Smi_OR_TheHole_MutableReference_Smi_OR_TheHole_0 NewMutableSlice_Smi_OR_TheHole_0(compiler::CodeAssemblerState* state_, TNode<Object> p_object, TNode<IntPtrT> p_offset, TNode<IntPtrT> p_length) { 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<Object> tmp0; TNode<IntPtrT> tmp1; TNode<IntPtrT> tmp2; if (block0.is_used()) { ca_.Bind(&block0); std::tie(tmp0, tmp1, tmp2) = (TorqueStructSlice_Smi_OR_TheHole_MutableReference_Smi_OR_TheHole_0{TNode<Object>{p_object}, TNode<IntPtrT>{p_offset}, TNode<IntPtrT>{p_length}, TorqueStructUnsafe_0{}}).Flatten(); ca_.Goto(&block2); } ca_.Bind(&block2); return TorqueStructSlice_Smi_OR_TheHole_MutableReference_Smi_OR_TheHole_0{TNode<Object>{tmp0}, TNode<IntPtrT>{tmp1}, TNode<IntPtrT>{tmp2}, TorqueStructUnsafe_0{}}; } void InitializeFieldsFromIterator_Smi_OR_TheHole_ParameterMapIterator_0(compiler::CodeAssemblerState* state_, TorqueStructSlice_Smi_OR_TheHole_MutableReference_Smi_OR_TheHole_0 p_target, TorqueStructParameterMapIterator_0 p_originIterator) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<IntPtrT, IntPtrT> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<IntPtrT, IntPtrT> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<IntPtrT, IntPtrT> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<IntPtrT, IntPtrT> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<IntPtrT> block16(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<IntPtrT> block17(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<IntPtrT, IntPtrT> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block18(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; TNode<IntPtrT> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = TimesSizeOf_Smi_OR_TheHole_0(state_, TNode<IntPtrT>{p_target.length}); tmp1 = CodeStubAssembler(state_).IntPtrAdd(TNode<IntPtrT>{p_target.offset}, TNode<IntPtrT>{tmp0}); ca_.Goto(&block5, p_target.offset, p_originIterator.currentIndex); } TNode<IntPtrT> phi_bb5_6; TNode<IntPtrT> phi_bb5_8; TNode<BoolT> tmp2; if (block5.is_used()) { ca_.Bind(&block5, &phi_bb5_6, &phi_bb5_8); tmp2 = FromConstexpr_bool_constexpr_bool_0(state_, true); ca_.Branch(tmp2, &block3, std::vector<compiler::Node*>{phi_bb5_6, phi_bb5_8}, &block4, std::vector<compiler::Node*>{phi_bb5_6, phi_bb5_8}); } TNode<IntPtrT> phi_bb3_6; TNode<IntPtrT> phi_bb3_8; TNode<BoolT> tmp3; if (block3.is_used()) { ca_.Bind(&block3, &phi_bb3_6, &phi_bb3_8); tmp3 = CodeStubAssembler(state_).WordEqual(TNode<IntPtrT>{phi_bb3_6}, TNode<IntPtrT>{tmp1}); ca_.Branch(tmp3, &block9, std::vector<compiler::Node*>{phi_bb3_6, phi_bb3_8}, &block10, std::vector<compiler::Node*>{phi_bb3_6, phi_bb3_8}); } TNode<IntPtrT> phi_bb9_6; TNode<IntPtrT> phi_bb9_8; if (block9.is_used()) { ca_.Bind(&block9, &phi_bb9_6, &phi_bb9_8); ca_.Goto(&block4, phi_bb9_6, phi_bb9_8); } TNode<IntPtrT> phi_bb10_6; TNode<IntPtrT> phi_bb10_8; TNode<Object> tmp4; TNode<IntPtrT> tmp5; TNode<IntPtrT> tmp6; TNode<IntPtrT> tmp7; TNode<BoolT> tmp8; if (block10.is_used()) { ca_.Bind(&block10, &phi_bb10_6, &phi_bb10_8); std::tie(tmp4, tmp5) = NewReference_Smi_OR_TheHole_0(state_, TNode<Object>{p_target.object}, TNode<IntPtrT>{phi_bb10_6}).Flatten(); tmp6 = FromConstexpr_intptr_constexpr_int31_0(state_, kTaggedSize); tmp7 = CodeStubAssembler(state_).IntPtrAdd(TNode<IntPtrT>{phi_bb10_6}, TNode<IntPtrT>{tmp6}); tmp8 = CodeStubAssembler(state_).WordEqual(TNode<IntPtrT>{phi_bb10_8}, TNode<IntPtrT>{p_originIterator.endInterationIndex}); ca_.Branch(tmp8, &block16, std::vector<compiler::Node*>{phi_bb10_8}, &block17, std::vector<compiler::Node*>{phi_bb10_8}); } TNode<IntPtrT> phi_bb16_8; if (block16.is_used()) { ca_.Bind(&block16, &phi_bb16_8); CodeStubAssembler(state_).Unreachable(); } TNode<IntPtrT> phi_bb17_8; TNode<IntPtrT> tmp9; TNode<IntPtrT> tmp10; TNode<Smi> tmp11; if (block17.is_used()) { ca_.Bind(&block17, &phi_bb17_8); tmp9 = FromConstexpr_intptr_constexpr_int31_0(state_, 1); tmp10 = CodeStubAssembler(state_).IntPtrSub(TNode<IntPtrT>{phi_bb17_8}, TNode<IntPtrT>{tmp9}); tmp11 = Convert_Smi_intptr_0(state_, TNode<IntPtrT>{tmp10}); CodeStubAssembler(state_).StoreReference<Object>(CodeStubAssembler::Reference{tmp4, tmp5}, tmp11); ca_.Goto(&block5, tmp7, tmp10); } TNode<IntPtrT> phi_bb4_6; TNode<IntPtrT> phi_bb4_8; if (block4.is_used()) { ca_.Bind(&block4, &phi_bb4_6, &phi_bb4_8); ca_.Goto(&block18); } ca_.Bind(&block18); } void InitializeFieldsFromIterator_Smi_OR_TheHole_ConstantIterator_TheHole_0(compiler::CodeAssemblerState* state_, TorqueStructSlice_Smi_OR_TheHole_MutableReference_Smi_OR_TheHole_0 p_target, TorqueStructConstantIterator_TheHole_0 p_originIterator) { compiler::CodeAssembler ca_(state_); compiler::CodeAssembler::SourcePositionScope pos_scope(&ca_); compiler::CodeAssemblerParameterizedLabel<> block0(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<IntPtrT> block5(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<IntPtrT> block3(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<IntPtrT> block9(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<IntPtrT> block10(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<IntPtrT> block4(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); compiler::CodeAssemblerParameterizedLabel<> block16(&ca_, compiler::CodeAssemblerLabel::kNonDeferred); ca_.Goto(&block0); TNode<IntPtrT> tmp0; TNode<IntPtrT> tmp1; if (block0.is_used()) { ca_.Bind(&block0); tmp0 = TimesSizeOf_Smi_OR_TheHole_0(state_, TNode<IntPtrT>{p_target.length}); tmp1 = CodeStubAssembler(state_).IntPtrAdd(TNode<IntPtrT>{p_target.offset}, TNode<IntPtrT>{tmp0}); ca_.Goto(&block5, p_target.offset); } TNode<IntPtrT> phi_bb5_5; TNode<BoolT> tmp2; if (block5.is_used()) { ca_.Bind(&block5, &phi_bb5_5); tmp2 = FromConstexpr_bool_constexpr_bool_0(state_, true); ca_.Branch(tmp2, &block3, std::vector<compiler::Node*>{phi_bb5_5}, &block4, std::vector<compiler::Node*>{phi_bb5_5}); } TNode<IntPtrT> phi_bb3_5; TNode<BoolT> tmp3; if (block3.is_used()) { ca_.Bind(&block3, &phi_bb3_5); tmp3 = CodeStubAssembler(state_).WordEqual(TNode<IntPtrT>{phi_bb3_5}, TNode<IntPtrT>{tmp1}); ca_.Branch(tmp3, &block9, std::vector<compiler::Node*>{phi_bb3_5}, &block10, std::vector<compiler::Node*>{phi_bb3_5}); } TNode<IntPtrT> phi_bb9_5; if (block9.is_used()) { ca_.Bind(&block9, &phi_bb9_5); ca_.Goto(&block4, phi_bb9_5); } TNode<IntPtrT> phi_bb10_5; TNode<Object> tmp4; TNode<IntPtrT> tmp5; TNode<IntPtrT> tmp6; TNode<IntPtrT> tmp7; if (block10.is_used()) { ca_.Bind(&block10, &phi_bb10_5); std::tie(tmp4, tmp5) = NewReference_Smi_OR_TheHole_0(state_, TNode<Object>{p_target.object}, TNode<IntPtrT>{phi_bb10_5}).Flatten(); tmp6 = FromConstexpr_intptr_constexpr_int31_0(state_, kTaggedSize); tmp7 = CodeStubAssembler(state_).IntPtrAdd(TNode<IntPtrT>{phi_bb10_5}, TNode<IntPtrT>{tmp6}); CodeStubAssembler(state_).StoreReference<Object>(CodeStubAssembler::Reference{tmp4, tmp5}, p_originIterator.value); ca_.Goto(&block5, tmp7); } TNode<IntPtrT> phi_bb4_5; if (block4.is_used()) { ca_.Bind(&block4, &phi_bb4_5); ca_.Goto(&block16); } ca_.Bind(&block16); } } // namespace internal } // namespace v8