LCOV - code coverage report
Current view: top level - out/Release/gen/torque-generated - builtins-array-from-dsl-gen.h (source / functions) Hit Total Coverage
Test: app.info Lines: 2 2 100.0 %
Date: 2019-02-19 Functions: 2 2 100.0 %

          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             : #include "src/utils.h"
       7             : #include "torque-generated/class-definitions-from-dsl.h"
       8             : 
       9             : namespace v8 {
      10             : namespace internal {
      11             : 
      12       12884 : class ArrayBuiltinsFromDSLAssembler {
      13             :  public:
      14       12884 :   explicit ArrayBuiltinsFromDSLAssembler(compiler::CodeAssemblerState* state) : state_(state), ca_(state) { USE(state_, ca_); }
      15             :   void EnsureWriteableFastElements(compiler::TNode<Context> p_context, compiler::TNode<JSArray> p_array);
      16             :   compiler::TNode<BoolT> IsJSArray(compiler::TNode<Context> p_context, compiler::TNode<Object> p_o);
      17             :   compiler::TNode<Object> LoadElementOrUndefined(compiler::TNode<FixedArray> p_a, compiler::TNode<Smi> p_i);
      18             :   compiler::TNode<Object> LoadElementOrUndefined(compiler::TNode<FixedDoubleArray> p_a, compiler::TNode<Smi> p_i);
      19             :   void StoreArrayHole(compiler::TNode<FixedDoubleArray> p_elements, compiler::TNode<Smi> p_k);
      20             :   void StoreArrayHole(compiler::TNode<FixedArray> p_elements, compiler::TNode<Smi> p_k);
      21             :   void CopyArrayElement(compiler::TNode<FixedArray> p_elements, compiler::TNode<FixedArray> p_newElements, compiler::TNode<Smi> p_from, compiler::TNode<Smi> p_to);
      22             :   void CopyArrayElement(compiler::TNode<FixedDoubleArray> p_elements, compiler::TNode<FixedDoubleArray> p_newElements, compiler::TNode<Smi> p_from, compiler::TNode<Smi> p_to);
      23             :   compiler::TNode<Object> FastArrayEvery(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);
      24             :   compiler::TNode<Object> FastArraySome(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);
      25             :   compiler::TNode<Smi> kGenericElementsAccessorId();
      26             :   compiler::TNode<Smi> kFastElementsAccessorId();
      27             :   compiler::TNode<Smi> kFailure();
      28             :   compiler::TNode<Smi> kSuccess();
      29             :   int31_t kMaxMergePending();
      30             :   int31_t kMinGallopWins();
      31             :   compiler::TNode<Smi> kSortStateTempSize();
      32             :   compiler::TNode<BuiltinPtr> UnsafeCast102FT9ATContext20UT5ATSmi10HeapObject20UT5ATSmi10HeapObject20UT5ATSmi10HeapObject22UT12ATHeapNumber5ATSmi(compiler::TNode<Context> p_context, compiler::TNode<Object> p_o);
      33             :   compiler::TNode<BuiltinPtr> UnsafeCast50FT9ATContext9SortState5ATSmi20UT5ATSmi10HeapObject(compiler::TNode<Context> p_context, compiler::TNode<Object> p_o);
      34             :   compiler::TNode<BuiltinPtr> UnsafeCast56FT9ATContext9SortState5ATSmi20UT5ATSmi10HeapObject5ATSmi(compiler::TNode<Context> p_context, compiler::TNode<Object> p_o);
      35             :   compiler::TNode<BuiltinPtr> UnsafeCast89FT9ATContext10JSReceiver20UT5ATSmi10HeapObject22UT12ATHeapNumber5ATSmi17UT7ATFalse6ATTrue(compiler::TNode<Context> p_context, compiler::TNode<Object> p_o);
      36             :   compiler::TNode<Smi> GetPendingRunsSize(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState);
      37             :   compiler::TNode<Smi> GetPendingRunBase(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_pendingRuns, compiler::TNode<Smi> p_run);
      38             :   void SetPendingRunBase(compiler::TNode<FixedArray> p_pendingRuns, compiler::TNode<Smi> p_run, compiler::TNode<Smi> p_value);
      39             :   compiler::TNode<Smi> GetPendingRunLength(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_pendingRuns, compiler::TNode<Smi> p_run);
      40             :   void SetPendingRunLength(compiler::TNode<FixedArray> p_pendingRuns, compiler::TNode<Smi> p_run, compiler::TNode<Smi> p_value);
      41             :   void PushRun(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<Smi> p_base, compiler::TNode<Smi> p_length);
      42             :   compiler::TNode<FixedArray> GetTempArray(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<Smi> p_requestedSize);
      43             :   void EnsureSuccess(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::CodeAssemblerLabel* label_Bailout);
      44             :   compiler::TNode<Smi> Failure(compiler::TNode<FixedArray> p_sortState);
      45             :   compiler::TNode<Object> CallLoad(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<BuiltinPtr> p_load, compiler::TNode<Smi> p_index, compiler::CodeAssemblerLabel* label_Bailout);
      46             :   void CallStore(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<BuiltinPtr> p_store, compiler::TNode<Smi> p_index, compiler::TNode<Object> p_value, compiler::CodeAssemblerLabel* label_Bailout);
      47             :   compiler::TNode<Smi> CountAndMakeRun(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<Smi> p_lowArg, compiler::TNode<Smi> p_high);
      48             :   void ReverseRange(compiler::TNode<FixedArray> p_array, compiler::TNode<Smi> p_from, compiler::TNode<Smi> p_to);
      49             :   void CopyElement(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<BuiltinPtr> p_load, compiler::TNode<BuiltinPtr> p_store, compiler::TNode<Smi> p_from, compiler::TNode<Smi> p_to, compiler::CodeAssemblerLabel* label_Bailout);
      50             :   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);
      51             :   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);
      52             :   compiler::TNode<Smi> ComputeMinRunLength(compiler::TNode<Smi> p_nArg);
      53             :   compiler::TNode<BoolT> RunInvariantEstablished(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_pendingRuns, compiler::TNode<Smi> p_n);
      54             :   void MergeCollapse(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::CodeAssemblerLabel* label_Bailout);
      55             :   void MergeForceCollapse(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::CodeAssemblerLabel* label_Bailout);
      56             :   void ArrayTimSortImpl(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<Smi> p_length, compiler::CodeAssemblerLabel* label_Bailout);
      57             :   void CopyReceiverElementsToWorkArray(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<Smi> p_length, compiler::CodeAssemblerLabel* label_Bailout);
      58             :   void CopyWorkArrayToReceiver(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_sortState, compiler::TNode<Smi> p_length, compiler::CodeAssemblerLabel* label_Bailout);
      59             :   struct _ThisStructSortState {
      60             :     compiler::TNode<JSReceiver> receiver;
      61             :     compiler::TNode<Map> initialReceiverMap;
      62             :     compiler::TNode<Number> initialReceiverLength;
      63             :     compiler::TNode<HeapObject> userCmpFn;
      64             :     compiler::TNode<BuiltinPtr> sortComparePtr;
      65             :     compiler::TNode<BuiltinPtr> loadFn;
      66             :     compiler::TNode<BuiltinPtr> storeFn;
      67             :     compiler::TNode<BuiltinPtr> canUseSameAccessorFn;
      68             :     compiler::TNode<Smi> bailoutStatus;
      69             :     compiler::TNode<Smi> minGallop;
      70             :     compiler::TNode<Smi> pendingRunsSize;
      71             :     compiler::TNode<FixedArray> pendingRuns;
      72             :     compiler::TNode<FixedArray> workArray;
      73             :     compiler::TNode<FixedArray> tempArray;
      74             :     compiler::TNode<Smi> accessor;
      75             : 
      76             :     std::tuple<compiler::TNode<JSReceiver>, compiler::TNode<Map>, compiler::TNode<Number>, compiler::TNode<HeapObject>, compiler::TNode<BuiltinPtr>, compiler::TNode<BuiltinPtr>, compiler::TNode<BuiltinPtr>, compiler::TNode<BuiltinPtr>, compiler::TNode<Smi>, compiler::TNode<Smi>, compiler::TNode<Smi>, compiler::TNode<FixedArray>, compiler::TNode<FixedArray>, compiler::TNode<FixedArray>, compiler::TNode<Smi>> Flatten() const {
      77             :       return std::tuple_cat(std::make_tuple(receiver), std::make_tuple(initialReceiverMap), std::make_tuple(initialReceiverLength), std::make_tuple(userCmpFn), std::make_tuple(sortComparePtr), std::make_tuple(loadFn), std::make_tuple(storeFn), std::make_tuple(canUseSameAccessorFn), std::make_tuple(bailoutStatus), std::make_tuple(minGallop), std::make_tuple(pendingRunsSize), std::make_tuple(pendingRuns), std::make_tuple(workArray), std::make_tuple(tempArray), std::make_tuple(accessor));
      78             :     }
      79             :   };
      80             :   compiler::TNode<JSReceiver> LoadSortStateReceiver(compiler::TNode<FixedArray> p_o);
      81             :   void StoreSortStateReceiver(compiler::TNode<FixedArray> p_o, compiler::TNode<JSReceiver> p_v);
      82             :   compiler::TNode<Map> LoadSortStateInitialReceiverMap(compiler::TNode<FixedArray> p_o);
      83             :   void StoreSortStateInitialReceiverMap(compiler::TNode<FixedArray> p_o, compiler::TNode<Map> p_v);
      84             :   compiler::TNode<Number> LoadSortStateInitialReceiverLength(compiler::TNode<FixedArray> p_o);
      85             :   void StoreSortStateInitialReceiverLength(compiler::TNode<FixedArray> p_o, compiler::TNode<Number> p_v);
      86             :   compiler::TNode<HeapObject> LoadSortStateUserCmpFn(compiler::TNode<FixedArray> p_o);
      87             :   void StoreSortStateUserCmpFn(compiler::TNode<FixedArray> p_o, compiler::TNode<HeapObject> p_v);
      88             :   compiler::TNode<BuiltinPtr> LoadSortStateSortComparePtr(compiler::TNode<FixedArray> p_o);
      89             :   void StoreSortStateSortComparePtr(compiler::TNode<FixedArray> p_o, compiler::TNode<BuiltinPtr> p_v);
      90             :   compiler::TNode<BuiltinPtr> LoadSortStateLoadFn(compiler::TNode<FixedArray> p_o);
      91             :   void StoreSortStateLoadFn(compiler::TNode<FixedArray> p_o, compiler::TNode<BuiltinPtr> p_v);
      92             :   compiler::TNode<BuiltinPtr> LoadSortStateStoreFn(compiler::TNode<FixedArray> p_o);
      93             :   void StoreSortStateStoreFn(compiler::TNode<FixedArray> p_o, compiler::TNode<BuiltinPtr> p_v);
      94             :   compiler::TNode<BuiltinPtr> LoadSortStateCanUseSameAccessorFn(compiler::TNode<FixedArray> p_o);
      95             :   void StoreSortStateCanUseSameAccessorFn(compiler::TNode<FixedArray> p_o, compiler::TNode<BuiltinPtr> p_v);
      96             :   compiler::TNode<Smi> LoadSortStateBailoutStatus(compiler::TNode<FixedArray> p_o);
      97             :   void StoreSortStateBailoutStatus(compiler::TNode<FixedArray> p_o, compiler::TNode<Smi> p_v);
      98             :   compiler::TNode<Smi> LoadSortStateMinGallop(compiler::TNode<FixedArray> p_o);
      99             :   void StoreSortStateMinGallop(compiler::TNode<FixedArray> p_o, compiler::TNode<Smi> p_v);
     100             :   compiler::TNode<Smi> LoadSortStatePendingRunsSize(compiler::TNode<FixedArray> p_o);
     101             :   void StoreSortStatePendingRunsSize(compiler::TNode<FixedArray> p_o, compiler::TNode<Smi> p_v);
     102             :   compiler::TNode<FixedArray> LoadSortStatePendingRuns(compiler::TNode<FixedArray> p_o);
     103             :   void StoreSortStatePendingRuns(compiler::TNode<FixedArray> p_o, compiler::TNode<FixedArray> p_v);
     104             :   compiler::TNode<FixedArray> LoadSortStateWorkArray(compiler::TNode<FixedArray> p_o);
     105             :   void StoreSortStateWorkArray(compiler::TNode<FixedArray> p_o, compiler::TNode<FixedArray> p_v);
     106             :   compiler::TNode<FixedArray> LoadSortStateTempArray(compiler::TNode<FixedArray> p_o);
     107             :   void StoreSortStateTempArray(compiler::TNode<FixedArray> p_o, compiler::TNode<FixedArray> p_v);
     108             :   compiler::TNode<Smi> LoadSortStateAccessor(compiler::TNode<FixedArray> p_o);
     109             :   void StoreSortStateAccessor(compiler::TNode<FixedArray> p_o, compiler::TNode<Smi> p_v);
     110             :   compiler::TNode<Number> _method_SortState_Compare(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_this, compiler::TNode<Object> p_x, compiler::TNode<Object> p_y);
     111             :   void _method_SortState_CheckAccessor(compiler::TNode<Context> p_context, compiler::TNode<FixedArray> p_this, compiler::CodeAssemblerLabel* label_Bailout);
     112             :   compiler::TNode<Oddball> EveryVisitAllElements10FixedArray(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);
     113             :   compiler::TNode<Oddball> EveryVisitAllElements16FixedDoubleArray(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);
     114             :   compiler::TNode<Oddball> SomeVisitAllElements10FixedArray(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);
     115             :   compiler::TNode<Oddball> SomeVisitAllElements16FixedDoubleArray(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);
     116             :  private:
     117             :   compiler::CodeAssemblerState* const state_;
     118             :   compiler::CodeAssembler ca_;}; 
     119             : 
     120             : }  // namespace internal
     121             : }  // namespace v8
     122             : 
     123             : #endif  // V8_TORQUE_ARRAY_FROM_DSL_BASE_H__

Generated by: LCOV version 1.10