Line data Source code
1 : #ifndef V8_TORQUE_ARRAY_FROM_DSL_BASE_H__
2 : #define V8_TORQUE_ARRAY_FROM_DSL_BASE_H__
3 :
4 : #include "src/compiler/code-assembler.h"
5 : #include "src/code-stub-assembler.h"
6 :
7 : namespace v8 {
8 : namespace internal {
9 :
10 56845 : class ArrayBuiltinsFromDSLAssembler {
11 : public:
12 56845 : explicit ArrayBuiltinsFromDSLAssembler(compiler::CodeAssemblerState* state) : state_(state), ca_(state) { USE(state_, ca_); }
13 : void EnsureWriteableFastElements(compiler::TNode<Context> p_context, compiler::TNode<JSArray> p_array);
14 : compiler::TNode<BoolT> IsJSArray(compiler::TNode<Context> p_context, compiler::TNode<Object> p_o);
15 : compiler::TNode<Object> LoadElementOrUndefined(compiler::TNode<FixedArray> p_a, compiler::TNode<Smi> p_i);
16 : compiler::TNode<Object> LoadElementOrUndefined(compiler::TNode<FixedArray> p_a, compiler::TNode<IntPtrT> p_i);
17 : compiler::TNode<Object> LoadElementOrUndefined(compiler::TNode<FixedArray> p_a, int31_t p_i);
18 : compiler::TNode<Object> LoadElementOrUndefined(compiler::TNode<FixedDoubleArray> p_a, compiler::TNode<Smi> p_i);
19 : compiler::TNode<Object> LoadElementOrUndefined(compiler::TNode<FixedDoubleArray> p_a, compiler::TNode<IntPtrT> p_i);
20 : compiler::TNode<Object> LoadElementOrUndefined(compiler::TNode<FixedDoubleArray> p_a, int31_t p_i);
21 : void StoreArrayHole(compiler::TNode<FixedDoubleArray> p_elements, compiler::TNode<Smi> p_k);
22 : void StoreArrayHole(compiler::TNode<FixedArray> p_elements, compiler::TNode<Smi> p_k);
23 : void CopyArrayElement(compiler::TNode<FixedArray> p_elements, compiler::TNode<FixedArray> p_newElements, compiler::TNode<Smi> p_from, compiler::TNode<Smi> p_to);
24 : void CopyArrayElement(compiler::TNode<FixedDoubleArray> p_elements, compiler::TNode<FixedDoubleArray> p_newElements, compiler::TNode<Smi> p_from, compiler::TNode<Smi> p_to);
25 : compiler::TNode<Number> ConvertToRelativeIndex(compiler::TNode<Number> p_index, compiler::TNode<Number> p_length);
26 : compiler::TNode<Object> FastArrayFilter(compiler::TNode<Context> p_context, compiler::TNode<JSReceiver> p_o, compiler::TNode<Number> p_len, compiler::TNode<JSReceiver> p_callbackfn, compiler::TNode<Object> p_thisArg, compiler::TNode<JSReceiver> p_array, compiler::CodeAssemblerLabel* label_Bailout, compiler::TypedCodeAssemblerVariable<Smi>* label_Bailout_parameter_0, compiler::TypedCodeAssemblerVariable<Smi>* label_Bailout_parameter_1);
27 : compiler::TNode<JSReceiver> FastFilterSpeciesCreate(compiler::TNode<Context> p_context, compiler::TNode<JSReceiver> p_receiver, compiler::CodeAssemblerLabel* label_Slow);
28 : compiler::TNode<Object> FastArrayForEach(compiler::TNode<Context> p_context, compiler::TNode<JSReceiver> p_o, compiler::TNode<Number> p_len, compiler::TNode<JSReceiver> p_callbackfn, compiler::TNode<Object> p_thisArg, compiler::CodeAssemblerLabel* label_Bailout, compiler::TypedCodeAssemblerVariable<Smi>* label_Bailout_parameter_0);
29 : void CannotUseSameArrayAccessor7JSArray(compiler::TNode<Context> p_context, compiler::TNode<BuiltinPtr> p_loadFn, compiler::TNode<JSReceiver> p_receiver, compiler::TNode<Map> p_originalMap, compiler::TNode<Number> p_originalLen, compiler::CodeAssemblerLabel* label_Cannot, compiler::CodeAssemblerLabel* label_Can);
30 : void CannotUseSameArrayAccessor14ATJSTypedArray(compiler::TNode<Context> p_context, compiler::TNode<BuiltinPtr> p_loadFn, compiler::TNode<JSReceiver> p_receiver, compiler::TNode<Map> p_initialMap, compiler::TNode<Number> p_initialLen, compiler::CodeAssemblerLabel* label_Cannot, compiler::CodeAssemblerLabel* label_Can);
31 : compiler::TNode<IntPtrT> AddStringLength(compiler::TNode<Context> p_context, compiler::TNode<IntPtrT> p_lenA, compiler::TNode<IntPtrT> p_lenB);
32 : struct Buffer {
33 : compiler::TNode<FixedArray> fixedArray;
34 : compiler::TNode<IntPtrT> index;
35 : compiler::TNode<IntPtrT> totalStringLength;
36 : compiler::TNode<BoolT> isOneByte;
37 :
38 : std::tuple<compiler::TNode<FixedArray>, compiler::TNode<IntPtrT>, compiler::TNode<IntPtrT>, compiler::TNode<BoolT>> Flatten() const {
39 : return std::tuple_cat(std::make_tuple(fixedArray), std::make_tuple(index), std::make_tuple(totalStringLength), std::make_tuple(isOneByte));
40 : }
41 : };
42 : ArrayBuiltinsFromDSLAssembler::Buffer BufferInit(compiler::TNode<UintPtrT> p_len, compiler::TNode<String> p_sep);
43 : ArrayBuiltinsFromDSLAssembler::Buffer BufferAdd(compiler::TNode<Context> p_context, ArrayBuiltinsFromDSLAssembler::Buffer p_initialBuffer, compiler::TNode<String> p_str, compiler::TNode<IntPtrT> p_nofSeparators, compiler::TNode<IntPtrT> p_separatorLength);
44 : ArrayBuiltinsFromDSLAssembler::Buffer BufferAddSeparators(compiler::TNode<Context> p_context, ArrayBuiltinsFromDSLAssembler::Buffer p_buffer, compiler::TNode<IntPtrT> p_nofSeparators, compiler::TNode<IntPtrT> p_separatorLength, compiler::TNode<BoolT> p_write);
45 : compiler::TNode<String> BufferJoin(compiler::TNode<Context> p_context, ArrayBuiltinsFromDSLAssembler::Buffer p_buffer, compiler::TNode<String> p_sep);
46 : compiler::TNode<Object> ArrayJoin7JSArray(compiler::TNode<Context> p_context, bool p_useToLocaleString, compiler::TNode<JSReceiver> p_receiver, compiler::TNode<String> p_sep, compiler::TNode<Number> p_lenNumber, compiler::TNode<Object> p_locales, compiler::TNode<Object> p_options);
47 : compiler::TNode<Object> ArrayJoin14ATJSTypedArray(compiler::TNode<Context> p_context, bool p_useToLocaleString, compiler::TNode<JSReceiver> p_receiver, compiler::TNode<String> p_sep, compiler::TNode<Number> p_lenNumber, compiler::TNode<Object> p_locales, compiler::TNode<Object> p_options);
48 : compiler::TNode<FixedArray> LoadJoinStack(compiler::TNode<Context> p_context, compiler::CodeAssemblerLabel* label_IfUninitialized);
49 : void SetJoinStack(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_stack);
50 : void JoinStackPushInline(compiler::TNode<Context> p_context, compiler::TNode<JSReceiver> p_receiver, compiler::CodeAssemblerLabel* label_ReceiverAdded, compiler::CodeAssemblerLabel* label_ReceiverNotAdded);
51 : void JoinStackPopInline(compiler::TNode<Context> p_context, compiler::TNode<JSReceiver> p_receiver);
52 : compiler::TNode<Object> LoadWithHoleCheck12ATFixedArray(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_index, compiler::CodeAssemblerLabel* label_IfHole);
53 : compiler::TNode<Object> LoadWithHoleCheck18ATFixedDoubleArray(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_index, compiler::CodeAssemblerLabel* label_IfHole);
54 : compiler::TNode<Number> GetFromIndex(compiler::TNode<Context> p_context, compiler::TNode<Number> p_length, CodeStubArguments* p_arguments);
55 : compiler::TNode<Object> TryFastArrayLastIndexOf(compiler::TNode<Context> p_context, compiler::TNode<JSReceiver> p_receiver, compiler::TNode<Object> p_searchElement, compiler::TNode<Number> p_from, compiler::CodeAssemblerLabel* label_Slow);
56 : compiler::TNode<Object> GenericArrayLastIndexOf(compiler::TNode<Context> p_context, compiler::TNode<JSReceiver> p_object, compiler::TNode<Object> p_searchElement, compiler::TNode<Number> p_from);
57 : compiler::TNode<Smi> LoadElement23ATFastPackedSmiElements5ATSmi(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_index);
58 : compiler::TNode<Object> LoadElement26ATFastPackedObjectElements20UT5ATSmi10HeapObject(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_index);
59 : compiler::TNode<Float64T> LoadElement26ATFastPackedDoubleElements9ATfloat64(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_index);
60 : void StoreElement23ATFastPackedSmiElements5ATSmi(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_index, compiler::TNode<Smi> p_value);
61 : void StoreElement26ATFastPackedObjectElements20UT5ATSmi10HeapObject(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_index, compiler::TNode<Object> p_value);
62 : void StoreElement26ATFastPackedDoubleElements9ATfloat64(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_index, compiler::TNode<Float64T> p_value);
63 : compiler::TNode<Object> GenericArrayReverse(compiler::TNode<Context> p_context, compiler::TNode<Object> p_receiver);
64 : void TryFastPackedArrayReverse(compiler::TNode<Context> p_context, compiler::TNode<Object> p_receiver, compiler::CodeAssemblerLabel* label_Slow);
65 : compiler::TNode<JSArray> HandleSimpleArgumentsSlice(compiler::TNode<Context> p_context, compiler::TNode<JSArgumentsObjectWithLength> p_args, compiler::TNode<Smi> p_start, compiler::TNode<Smi> p_count, compiler::CodeAssemblerLabel* label_Bailout);
66 : compiler::TNode<JSArray> HandleFastAliasedSloppyArgumentsSlice(compiler::TNode<Context> p_context, compiler::TNode<JSArgumentsObjectWithLength> p_args, compiler::TNode<Smi> p_start, compiler::TNode<Smi> p_count, compiler::CodeAssemblerLabel* label_Bailout);
67 : compiler::TNode<JSArray> HandleFastSlice(compiler::TNode<Context> p_context, compiler::TNode<Object> p_o, compiler::TNode<Number> p_startNumber, compiler::TNode<Number> p_countNumber, compiler::CodeAssemblerLabel* label_Bailout);
68 : compiler::TNode<FixedArray> Extract12ATFixedArray(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_first, compiler::TNode<Smi> p_count, compiler::TNode<Smi> p_capacity);
69 : compiler::TNode<FixedDoubleArray> Extract18ATFixedDoubleArray(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_first, compiler::TNode<Smi> p_count, compiler::TNode<Smi> p_capacity);
70 : compiler::TNode<Object> FastArraySplice(compiler::TNode<Context> p_context, CodeStubArguments* p_args, compiler::TNode<JSReceiver> p_o, compiler::TNode<Number> p_originalLengthNumber, compiler::TNode<Number> p_actualStartNumber, compiler::TNode<Smi> p_insertCount, compiler::TNode<Number> p_actualDeleteCountNumber, compiler::CodeAssemblerLabel* label_Bailout);
71 : compiler::TNode<Object> FillDeletedElementsArray(compiler::TNode<Context> p_context, compiler::TNode<JSReceiver> p_o, compiler::TNode<Number> p_actualStart, compiler::TNode<Number> p_actualDeleteCount, compiler::TNode<JSReceiver> p_a);
72 : void HandleForwardCase(compiler::TNode<Context> p_context, compiler::TNode<JSReceiver> p_o, compiler::TNode<Number> p_len, compiler::TNode<Number> p_itemCount, compiler::TNode<Number> p_actualStart, compiler::TNode<Number> p_actualDeleteCount);
73 : void HandleBackwardCase(compiler::TNode<Context> p_context, compiler::TNode<JSReceiver> p_o, compiler::TNode<Number> p_len, compiler::TNode<Number> p_itemCount, compiler::TNode<Number> p_actualStart, compiler::TNode<Number> p_actualDeleteCount);
74 : compiler::TNode<Object> SlowSplice(compiler::TNode<Context> p_context, CodeStubArguments* p_arguments, compiler::TNode<JSReceiver> p_o, compiler::TNode<Number> p_len, compiler::TNode<Number> p_actualStart, compiler::TNode<Smi> p_insertCount, compiler::TNode<Number> p_actualDeleteCount);
75 : void TryFastArrayUnshift(compiler::TNode<Context> p_context, compiler::TNode<Object> p_receiver, CodeStubArguments* p_arguments, compiler::CodeAssemblerLabel* label_Slow);
76 : compiler::TNode<Number> GenericArrayUnshift(compiler::TNode<Context> p_context, compiler::TNode<Object> p_receiver, CodeStubArguments* p_arguments);
77 : compiler::TNode<Smi> kGenericElementsAccessorId();
78 : compiler::TNode<Smi> kFastElementsAccessorId();
79 : int31_t kReceiverIdx();
80 : int31_t kInitialReceiverMapIdx();
81 : int31_t kInitialReceiverLengthIdx();
82 : int31_t kUserCmpFnIdx();
83 : int31_t kSortComparePtrIdx();
84 : int31_t kLoadFnIdx();
85 : int31_t kStoreFnIdx();
86 : int31_t kCanUseSameAccessorFnIdx();
87 : int31_t kBailoutStatusIdx();
88 : int31_t kMinGallopIdx();
89 : int31_t kPendingRunsSizeIdx();
90 : int31_t kPendingRunsIdx();
91 : int31_t kTempArraySizeIdx();
92 : int31_t kTempArrayIdx();
93 : int31_t kAccessorIdx();
94 : compiler::TNode<IntPtrT> kSortStateSize();
95 : compiler::TNode<Smi> kFailure();
96 : compiler::TNode<Smi> kSuccess();
97 : int31_t kMaxMergePending();
98 : int31_t kMinGallopWins();
99 : compiler::TNode<Smi> kSortStateTempSize();
100 : compiler::TNode<BuiltinPtr> UnsafeCast102FT9ATContext20UT5ATSmi10HeapObject20UT5ATSmi10HeapObject20UT5ATSmi10HeapObject22UT12ATHeapNumber5ATSmi(compiler::TNode<Context> p_context, compiler::TNode<Object> p_o);
101 : compiler::TNode<BuiltinPtr> UnsafeCast66FT9ATContext12ATFixedArray10HeapObject5ATSmi20UT5ATSmi10HeapObject(compiler::TNode<Context> p_context, compiler::TNode<Object> p_o);
102 : compiler::TNode<BuiltinPtr> UnsafeCast72FT9ATContext12ATFixedArray10HeapObject5ATSmi20UT5ATSmi10HeapObject5ATSmi(compiler::TNode<Context> p_context, compiler::TNode<Object> p_o);
103 : compiler::TNode<BuiltinPtr> UnsafeCast89FT9ATContext10JSReceiver20UT5ATSmi10HeapObject22UT12ATHeapNumber5ATSmi17UT7ATFalse6ATTrue(compiler::TNode<Context> p_context, compiler::TNode<Object> p_o);
104 : compiler::TNode<Number> CallCompareFn(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<Object> p_x, compiler::TNode<Object> p_y, compiler::CodeAssemblerLabel* label_Bailout);
105 : compiler::TNode<HeapObject> ReloadElements(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState);
106 : compiler::TNode<Number> GetInitialReceiverLength(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState);
107 : compiler::TNode<BuiltinPtr> GetLoadFn(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState);
108 : compiler::TNode<BuiltinPtr> GetStoreFn(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState);
109 : compiler::TNode<BuiltinPtr> GetCanUseSameAccessorFn(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState);
110 : compiler::TNode<JSReceiver> GetReceiver(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState);
111 : compiler::TNode<FixedArray> GetTempArray(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState);
112 : compiler::TNode<Smi> GetPendingRunsSize(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState);
113 : void SetPendingRunsSize(compiler::TNode<FixedArray> p_sortState, compiler::TNode<Smi> p_value);
114 : compiler::TNode<Smi> GetPendingRunBase(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_pendingRuns, compiler::TNode<Smi> p_run);
115 : void SetPendingRunBase(compiler::TNode<FixedArray> p_pendingRuns, compiler::TNode<Smi> p_run, compiler::TNode<Smi> p_value);
116 : compiler::TNode<Smi> GetPendingRunLength(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_pendingRuns, compiler::TNode<Smi> p_run);
117 : void SetPendingRunLength(compiler::TNode<FixedArray> p_pendingRuns, compiler::TNode<Smi> p_run, compiler::TNode<Smi> p_value);
118 : void PushRun(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<Smi> p_base, compiler::TNode<Smi> p_length);
119 : compiler::TNode<FixedArray> GetTempArray(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<Smi> p_requestedSize);
120 : void EnsureSuccess(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::CodeAssemblerLabel* label_Bailout);
121 : compiler::TNode<Smi> Failure(compiler::TNode<FixedArray> p_sortState);
122 : compiler::TNode<Object> CallLoad(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<BuiltinPtr> p_load, compiler::TNode<HeapObject> p_elements, compiler::TNode<Smi> p_index, compiler::CodeAssemblerLabel* label_Bailout);
123 : void CallStore(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<BuiltinPtr> p_store, compiler::TNode<HeapObject> p_elements, compiler::TNode<Smi> p_index, compiler::TNode<Object> p_value, compiler::CodeAssemblerLabel* label_Bailout);
124 : void CallCopyFromTempArray(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<HeapObject> p_dstElements, compiler::TNode<Smi> p_dstPos, compiler::TNode<FixedArray> p_tempArray, compiler::TNode<Smi> p_srcPos, compiler::TNode<Smi> p_length, compiler::CodeAssemblerLabel* label_Bailout);
125 : void CallCopyWithinSortArray(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<HeapObject> p_elements, compiler::TNode<Smi> p_srcPos, compiler::TNode<Smi> p_dstPos, compiler::TNode<Smi> p_length, compiler::CodeAssemblerLabel* label_Bailout);
126 : compiler::TNode<Smi> CallGallopRight(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<BuiltinPtr> p_load, compiler::TNode<Object> p_key, compiler::TNode<Smi> p_base, compiler::TNode<Smi> p_length, compiler::TNode<Smi> p_hint, compiler::TNode<Oddball> p_useTempArray, compiler::CodeAssemblerLabel* label_Bailout);
127 : compiler::TNode<Smi> CallGallopLeft(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<BuiltinPtr> p_load, compiler::TNode<Object> p_key, compiler::TNode<Smi> p_base, compiler::TNode<Smi> p_length, compiler::TNode<Smi> p_hint, compiler::TNode<Oddball> p_useTempArray, compiler::CodeAssemblerLabel* label_Bailout);
128 : void CallMergeAt(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<Smi> p_i, compiler::CodeAssemblerLabel* label_Bailout);
129 : void CopyToTempArray(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<BuiltinPtr> p_load, compiler::TNode<HeapObject> p_srcElements, compiler::TNode<Smi> p_srcPos, compiler::TNode<FixedArray> p_tempArray, compiler::TNode<Smi> p_dstPos, compiler::TNode<Smi> p_length, compiler::CodeAssemblerLabel* label_Bailout);
130 : compiler::TNode<Smi> CountAndMakeRun(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<Smi> p_lowArg, compiler::TNode<Smi> p_high, compiler::CodeAssemblerLabel* label_Bailout);
131 : void ReverseRange(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<BuiltinPtr> p_load, compiler::TNode<BuiltinPtr> p_store, compiler::TNode<HeapObject> p_elements, compiler::TNode<Smi> p_from, compiler::TNode<Smi> p_to, compiler::CodeAssemblerLabel* label_Bailout);
132 : compiler::TNode<HeapObject> LoadElementsOrTempArray(compiler::TNode<Context> p_context, compiler::TNode<Oddball> p_useTempArray, compiler::TNode<FixedArray> p_sortState);
133 : void CopyElement(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<BuiltinPtr> p_load, compiler::TNode<BuiltinPtr> p_store, compiler::TNode<HeapObject> p_elements, compiler::TNode<Smi> p_from, compiler::TNode<Smi> p_to, compiler::CodeAssemblerLabel* label_Bailout);
134 : void MergeLow(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<Smi> p_baseA, compiler::TNode<Smi> p_lengthAArg, compiler::TNode<Smi> p_baseB, compiler::TNode<Smi> p_lengthBArg, compiler::CodeAssemblerLabel* label_Bailout);
135 : void MergeHigh(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<Smi> p_baseA, compiler::TNode<Smi> p_lengthAArg, compiler::TNode<Smi> p_baseB, compiler::TNode<Smi> p_lengthBArg, compiler::CodeAssemblerLabel* label_Bailout);
136 : compiler::TNode<Smi> ComputeMinRunLength(compiler::TNode<Smi> p_nArg);
137 : compiler::TNode<BoolT> RunInvariantEstablished(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_pendingRuns, compiler::TNode<Smi> p_n);
138 : void MergeCollapse(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::CodeAssemblerLabel* label_Bailout);
139 : void MergeForceCollapse(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::CodeAssemblerLabel* label_Bailout);
140 : void InitializeSortState(compiler::TNode<FixedArray> p_sortState);
141 : void InitializeSortStateAccessor25ATGenericElementsAccessor(compiler::TNode<FixedArray> p_sortState);
142 : void ArrayTimSortImpl(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<Smi> p_length, compiler::CodeAssemblerLabel* label_Bailout);
143 : void FilterVisitAllElements12ATFixedArray(compiler::TNode<Context> p_context, ElementsKind p_kind, compiler::TNode<JSArray> p_o, compiler::TNode<Smi> p_len, compiler::TNode<JSReceiver> p_callbackfn, compiler::TNode<Object> p_thisArg, compiler::TNode<JSArray> p_a, compiler::CodeAssemblerLabel* label_Bailout, compiler::TypedCodeAssemblerVariable<Smi>* label_Bailout_parameter_0, compiler::TypedCodeAssemblerVariable<Smi>* label_Bailout_parameter_1);
144 : void FilterVisitAllElements18ATFixedDoubleArray(compiler::TNode<Context> p_context, ElementsKind p_kind, compiler::TNode<JSArray> p_o, compiler::TNode<Smi> p_len, compiler::TNode<JSReceiver> p_callbackfn, compiler::TNode<Object> p_thisArg, compiler::TNode<JSArray> p_a, compiler::CodeAssemblerLabel* label_Bailout, compiler::TypedCodeAssemblerVariable<Smi>* label_Bailout_parameter_0, compiler::TypedCodeAssemblerVariable<Smi>* label_Bailout_parameter_1);
145 : void VisitAllElements18ATFixedDoubleArray(compiler::TNode<Context> p_context, compiler::TNode<JSArray> p_o, compiler::TNode<Smi> p_len, compiler::TNode<JSReceiver> p_callbackfn, compiler::TNode<Object> p_thisArg, compiler::CodeAssemblerLabel* label_Bailout, compiler::TypedCodeAssemblerVariable<Smi>* label_Bailout_parameter_0);
146 : void VisitAllElements12ATFixedArray(compiler::TNode<Context> p_context, compiler::TNode<JSArray> p_o, compiler::TNode<Smi> p_len, compiler::TNode<JSReceiver> p_callbackfn, compiler::TNode<Object> p_thisArg, compiler::CodeAssemblerLabel* label_Bailout, compiler::TypedCodeAssemblerVariable<Smi>* label_Bailout_parameter_0);
147 : compiler::TNode<FixedArray> StoreAndGrowFixedArray8ATString(compiler::TNode<FixedArray> p_fixedArray, compiler::TNode<IntPtrT> p_index, compiler::TNode<String> p_element);
148 : compiler::TNode<FixedArray> StoreAndGrowFixedArray5ATSmi(compiler::TNode<FixedArray> p_fixedArray, compiler::TNode<IntPtrT> p_index, compiler::TNode<Smi> p_element);
149 : compiler::TNode<String> ArrayJoinImpl7JSArray(compiler::TNode<Context> p_context, compiler::TNode<JSReceiver> p_receiver, compiler::TNode<String> p_sep, compiler::TNode<Number> p_lengthNumber, bool p_useToLocaleString, compiler::TNode<Object> p_locales, compiler::TNode<Object> p_options, compiler::TNode<BuiltinPtr> p_initialLoadFn);
150 : compiler::TNode<String> ArrayJoinImpl14ATJSTypedArray(compiler::TNode<Context> p_context, compiler::TNode<JSReceiver> p_receiver, compiler::TNode<String> p_sep, compiler::TNode<Number> p_lengthNumber, bool p_useToLocaleString, compiler::TNode<Object> p_locales, compiler::TNode<Object> p_options, compiler::TNode<BuiltinPtr> p_initialLoadFn);
151 : compiler::TNode<FixedArray> StoreAndGrowFixedArray10JSReceiver(compiler::TNode<FixedArray> p_fixedArray, compiler::TNode<IntPtrT> p_index, compiler::TNode<JSReceiver> p_element);
152 : compiler::TNode<Object> CycleProtectedArrayJoin7JSArray(compiler::TNode<Context> p_context, bool p_useToLocaleString, compiler::TNode<JSReceiver> p_o, compiler::TNode<Number> p_len, compiler::TNode<Object> p_sepObj, compiler::TNode<Object> p_locales, compiler::TNode<Object> p_options);
153 : compiler::TNode<Object> CycleProtectedArrayJoin14ATJSTypedArray(compiler::TNode<Context> p_context, bool p_useToLocaleString, compiler::TNode<JSReceiver> p_o, compiler::TNode<Number> p_len, compiler::TNode<Object> p_sepObj, compiler::TNode<Object> p_locales, compiler::TNode<Object> p_options);
154 : compiler::TNode<Smi> FastArrayLastIndexOf12ATFixedArray(compiler::TNode<Context> p_context, compiler::TNode<JSArray> p_array, compiler::TNode<Smi> p_from, compiler::TNode<Object> p_searchElement);
155 : compiler::TNode<Smi> FastArrayLastIndexOf18ATFixedDoubleArray(compiler::TNode<Context> p_context, compiler::TNode<JSArray> p_array, compiler::TNode<Smi> p_from, compiler::TNode<Object> p_searchElement);
156 : void FastPackedArrayReverse23ATFastPackedSmiElements5ATSmi(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_length);
157 : void FastPackedArrayReverse26ATFastPackedObjectElements20UT5ATSmi10HeapObject(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_length);
158 : void FastPackedArrayReverse26ATFastPackedDoubleElements9ATfloat64(compiler::TNode<Context> p_context, compiler::TNode<FixedArrayBase> p_elements, compiler::TNode<Smi> p_length);
159 : void FastSplice12ATFixedArray20UT5ATSmi10HeapObject(compiler::TNode<Context> p_context, CodeStubArguments* p_args, compiler::TNode<JSArray> p_a, compiler::TNode<Smi> p_length, compiler::TNode<Smi> p_newLength, compiler::TNode<Smi> p_lengthDelta, compiler::TNode<Smi> p_actualStart, compiler::TNode<Smi> p_insertCount, compiler::TNode<Smi> p_actualDeleteCount, compiler::CodeAssemblerLabel* label_Bailout);
160 : void FastSplice18ATFixedDoubleArray22UT12ATHeapNumber5ATSmi(compiler::TNode<Context> p_context, CodeStubArguments* p_args, compiler::TNode<JSArray> p_a, compiler::TNode<Smi> p_length, compiler::TNode<Smi> p_newLength, compiler::TNode<Smi> p_lengthDelta, compiler::TNode<Smi> p_actualStart, compiler::TNode<Smi> p_insertCount, compiler::TNode<Smi> p_actualDeleteCount, compiler::CodeAssemblerLabel* label_Bailout);
161 : void InitializeSortStateAccessor20ATFastDoubleElements(compiler::TNode<FixedArray> p_sortState);
162 : void InitializeSortStateAccessor23ATFastPackedSmiElements(compiler::TNode<FixedArray> p_sortState);
163 : void InitializeSortStateAccessor25ATFastSmiOrObjectElements(compiler::TNode<FixedArray> p_sortState);
164 : void InitializeSortStateAccessor20ATDictionaryElements(compiler::TNode<FixedArray> p_sortState);
165 : void DoMoveElements12ATFixedArray(compiler::TNode<FixedArray> p_elements, compiler::TNode<Smi> p_dstIndex, compiler::TNode<Smi> p_srcIndex, compiler::TNode<Smi> p_count);
166 : void StoreHoles12ATFixedArray(compiler::TNode<FixedArray> p_elements, compiler::TNode<Smi> p_holeStartIndex, compiler::TNode<Smi> p_holeEndIndex);
167 : void DoCopyElements12ATFixedArray(compiler::TNode<FixedArray> p_dstElements, compiler::TNode<Smi> p_dstIndex, compiler::TNode<FixedArray> p_srcElements, compiler::TNode<Smi> p_srcIndex, compiler::TNode<Smi> p_count);
168 : void DoMoveElements18ATFixedDoubleArray(compiler::TNode<FixedDoubleArray> p_elements, compiler::TNode<Smi> p_dstIndex, compiler::TNode<Smi> p_srcIndex, compiler::TNode<Smi> p_count);
169 : void StoreHoles18ATFixedDoubleArray(compiler::TNode<FixedDoubleArray> p_elements, compiler::TNode<Smi> p_holeStartIndex, compiler::TNode<Smi> p_holeEndIndex);
170 : void DoCopyElements18ATFixedDoubleArray(compiler::TNode<FixedDoubleArray> p_dstElements, compiler::TNode<Smi> p_dstIndex, compiler::TNode<FixedDoubleArray> p_srcElements, compiler::TNode<Smi> p_srcIndex, compiler::TNode<Smi> p_count);
171 : private:
172 : compiler::CodeAssemblerState* const state_;
173 : compiler::CodeAssembler ca_;};
174 :
175 : } // namespace internal
176 : } // namespace v8
177 :
178 : #endif // V8_TORQUE_ARRAY_FROM_DSL_BASE_H__
|