diff options
author | Ujjwal Sharma <usharma1998@gmail.com> | 2019-03-15 18:35:06 +0530 |
---|---|---|
committer | Refael Ackermann <refack@gmail.com> | 2019-03-28 16:36:18 -0400 |
commit | f579e1194046c50f2e6bb54348d48c8e7d1a53cf (patch) | |
tree | 9125787c758358365f74f9fd9673c14f57e67870 /deps/v8/src/builtins/builtins-typed-array-gen.h | |
parent | 2c73868b0471fbd4038f500d076df056cbf697fe (diff) | |
download | node-new-f579e1194046c50f2e6bb54348d48c8e7d1a53cf.tar.gz |
deps: update V8 to 7.4.288.13
PR-URL: https://github.com/nodejs/node/pull/26685
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michaƫl Zasso <targos@protonmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Diffstat (limited to 'deps/v8/src/builtins/builtins-typed-array-gen.h')
-rw-r--r-- | deps/v8/src/builtins/builtins-typed-array-gen.h | 51 |
1 files changed, 24 insertions, 27 deletions
diff --git a/deps/v8/src/builtins/builtins-typed-array-gen.h b/deps/v8/src/builtins/builtins-typed-array-gen.h index a82b32c25c..ab0ee6016d 100644 --- a/deps/v8/src/builtins/builtins-typed-array-gen.h +++ b/deps/v8/src/builtins/builtins-typed-array-gen.h @@ -6,12 +6,15 @@ #define V8_BUILTINS_BUILTINS_TYPED_ARRAY_GEN_H_ #include "src/code-stub-assembler.h" +#include "torque-generated/builtins-typed-array-from-dsl-gen.h" namespace v8 { namespace internal { class TypedArrayBuiltinsAssembler : public CodeStubAssembler { public: + using ElementsInfo = + TypedArrayBuiltinsFromDSLAssembler::TypedArrayElementsInfo; explicit TypedArrayBuiltinsAssembler(compiler::CodeAssemblerState* state) : CodeStubAssembler(state) {} @@ -21,40 +24,31 @@ class TypedArrayBuiltinsAssembler : public CodeStubAssembler { TNode<JSTypedArray> exemplar, TArgs... args); - TNode<JSTypedArray> TypedArraySpeciesCreateByLength( - TNode<Context> context, TNode<JSTypedArray> exemplar, TNode<Smi> len, - const char* method_name); - void GenerateTypedArrayPrototypeIterationMethod(TNode<Context> context, TNode<Object> receiver, const char* method_name, IterationKind iteration_kind); - void ConstructByArrayBuffer(TNode<Context> context, - TNode<JSTypedArray> holder, - TNode<JSArrayBuffer> buffer, - TNode<Object> byte_offset, TNode<Object> length, - TNode<Smi> element_size); - void ConstructByTypedArray(TNode<Context> context, TNode<JSTypedArray> holder, - TNode<JSTypedArray> typed_array, - TNode<Smi> element_size); - void ConstructByIterable(TNode<Context> context, TNode<JSTypedArray> holder, - TNode<JSReceiver> iterable, - TNode<JSReceiver> iterator_fn, - TNode<Smi> element_size); - void SetupTypedArray(TNode<JSTypedArray> holder, TNode<Smi> length, TNode<UintPtrT> byte_offset, TNode<UintPtrT> byte_length); void AttachBuffer(TNode<JSTypedArray> holder, TNode<JSArrayBuffer> buffer, TNode<Map> map, TNode<Smi> length, - TNode<Number> byte_offset); + TNode<UintPtrT> byte_offset); + + TNode<JSArrayBuffer> AllocateEmptyOnHeapBuffer(TNode<Context> context, + TNode<JSTypedArray> holder, + TNode<UintPtrT> byte_length); + + TNode<FixedTypedArrayBase> AllocateOnHeapElements(TNode<Map> map, + TNode<IntPtrT> byte_length, + TNode<Number> length); TNode<Map> LoadMapForType(TNode<JSTypedArray> array); + TNode<BoolT> IsMockArrayBufferAllocatorFlag(); TNode<UintPtrT> CalculateExternalPointer(TNode<UintPtrT> backing_store, - TNode<Number> byte_offset); - Node* LoadDataPtr(Node* typed_array); - TNode<BoolT> ByteLengthIsValid(TNode<Number> byte_length); + TNode<UintPtrT> byte_offset); + TNode<RawPtrT> LoadDataPtr(TNode<JSTypedArray> typed_array); // Returns true if kind is either UINT8_ELEMENTS or UINT8_CLAMPED_ELEMENTS. TNode<Word32T> IsUint8ElementsKind(TNode<Word32T> kind); @@ -65,10 +59,8 @@ class TypedArrayBuiltinsAssembler : public CodeStubAssembler { // Returns the byte size of an element for a TypedArray elements kind. TNode<IntPtrT> GetTypedArrayElementSize(TNode<Word32T> elements_kind); - TNode<JSArrayBuffer> LoadTypedArrayBuffer(TNode<JSTypedArray> typed_array) { - return LoadObjectField<JSArrayBuffer>(typed_array, - JSTypedArray::kBufferOffset); - } + // Returns information (byte size and map) about a TypedArray's elements. + ElementsInfo GetTypedArrayElementsInfo(TNode<JSTypedArray> typed_array); TNode<JSFunction> GetDefaultConstructor(TNode<Context> context, TNode<JSTypedArray> exemplar); @@ -99,12 +91,15 @@ class TypedArrayBuiltinsAssembler : public CodeStubAssembler { TNode<JSTypedArray> target, TNode<IntPtrT> offset, Label* call_runtime, Label* if_source_too_large); - void CallCMemmove(TNode<IntPtrT> dest_ptr, TNode<IntPtrT> src_ptr, - TNode<IntPtrT> byte_length); + void CallCMemmove(TNode<RawPtrT> dest_ptr, TNode<RawPtrT> src_ptr, + TNode<UintPtrT> byte_length); void CallCMemcpy(TNode<RawPtrT> dest_ptr, TNode<RawPtrT> src_ptr, TNode<UintPtrT> byte_length); + void CallCMemset(TNode<RawPtrT> dest_ptr, TNode<IntPtrT> value, + TNode<UintPtrT> length); + void CallCCopyFastNumberJSArrayElementsToTypedArray( TNode<Context> context, TNode<JSArray> source, TNode<JSTypedArray> dest, TNode<IntPtrT> source_length, TNode<IntPtrT> offset); @@ -123,6 +118,8 @@ class TypedArrayBuiltinsAssembler : public CodeStubAssembler { void DispatchTypedArrayByElementsKind( TNode<Word32T> elements_kind, const TypedArraySwitchCase& case_function); + + TNode<BoolT> IsSharedArrayBuffer(TNode<JSArrayBuffer> buffer); }; } // namespace internal |