Commit f557ce54 authored by Simon Zünd's avatar Simon Zünd Committed by Commit Bot

[cleanup] Replace hand-crafted accessors with generated ones

This CL introduces Torque classes with fields around TypedArrays so
CSA LoadObjectField accessors that are only used in Torque code
can be removed.

R=tebbi@chromium.org

Bug: v8:8562
Change-Id: Ie46dad5c25bd6ac03aacef8509e22f435896d127
Reviewed-on: https://chromium-review.googlesource.com/c/1451823Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
Cr-Commit-Position: refs/heads/master@{#59359}
parent 8f23860e
......@@ -213,11 +213,19 @@ extern operator '[]=' macro StoreContextElement(
extern operator '[]' macro LoadContextElement(Context, intptr): Object;
extern operator '[]' macro LoadContextElement(Context, Smi): Object;
type JSArrayBuffer extends JSObject generates 'TNode<JSArrayBuffer>';
type JSArrayBufferView extends JSObject
generates 'TNode<JSArrayBufferView>';
type JSTypedArray extends JSArrayBufferView
generates 'TNode<JSTypedArray>';
class JSArrayBuffer extends JSObject {
byte_length: uintptr;
backing_store: RawPtr;
}
class JSArrayBufferView extends JSObject {
buffer: JSArrayBuffer;
byte_offset: uintptr;
byte_length: uintptr;
}
class JSTypedArray extends JSArrayBufferView {}
type JSDataView extends JSArrayBufferView generates 'TNode<JSDataView>';
type InstanceType generates 'TNode<Int32T>' constexpr 'InstanceType';
......@@ -1202,16 +1210,8 @@ extern macro IsArraySpeciesProtectorCellInvalid(): bool;
extern macro IsTypedArraySpeciesProtectorCellInvalid(): bool;
extern macro IsPromiseSpeciesProtectorCellInvalid(): bool;
extern operator '.buffer' macro
TypedArrayBuiltinsAssembler::LoadTypedArrayBuffer(JSTypedArray): JSArrayBuffer;
extern operator '.data_ptr' macro TypedArrayBuiltinsAssembler::LoadDataPtr(
JSTypedArray): RawPtr;
extern operator '.byte_length' macro LoadByteLength(JSArrayBuffer): uintptr;
extern operator '.byte_length=' macro StoreByteLength(
JSTypedArray, uintptr): void;
extern operator '.byte_offset=' macro StoreByteOffset(
JSTypedArray, uintptr): void;
extern operator '.elements_kind' macro LoadMapElementsKind(Map): ElementsKind;
extern operator '.elements_kind' macro LoadElementsKind(JSTypedArray):
......
......@@ -66,11 +66,6 @@ class TypedArrayBuiltinsAssembler : public CodeStubAssembler {
// Returns information (byte size and map) about a TypedArray's elements.
ElementsInfo GetTypedArrayElementsInfo(TNode<JSTypedArray> typed_array);
TNode<JSArrayBuffer> LoadTypedArrayBuffer(TNode<JSTypedArray> typed_array) {
return LoadObjectField<JSArrayBuffer>(typed_array,
JSTypedArray::kBufferOffset);
}
TNode<JSFunction> GetDefaultConstructor(TNode<Context> context,
TNode<JSTypedArray> exemplar);
......
......@@ -5,14 +5,6 @@
#include 'src/builtins/builtins-data-view-gen.h'
namespace data_view {
extern operator '.buffer'
macro LoadJSArrayBufferViewBuffer(JSArrayBufferView): JSArrayBuffer;
extern operator '.byte_length'
macro LoadJSArrayBufferViewByteLength(JSArrayBufferView): uintptr;
extern operator '.byte_offset'
macro LoadJSArrayBufferViewByteOffset(JSArrayBufferView): uintptr;
extern operator '.backing_store'
macro LoadJSArrayBufferBackingStore(JSArrayBuffer): RawPtr;
macro MakeDataViewGetterNameString(kind: constexpr ElementsKind): String {
if constexpr (kind == UINT8_ELEMENTS) {
......
......@@ -13141,10 +13141,6 @@ TNode<RawPtrT> CodeStubAssembler::LoadJSArrayBufferBackingStore(
JSArrayBuffer::kBackingStoreOffset);
}
TNode<UintPtrT> CodeStubAssembler::LoadByteLength(TNode<JSArrayBuffer> buffer) {
return LoadObjectField<UintPtrT>(buffer, JSArrayBuffer::kByteLengthOffset);
}
TNode<JSArrayBuffer> CodeStubAssembler::LoadJSArrayBufferViewBuffer(
TNode<JSArrayBufferView> array_buffer_view) {
return LoadObjectField<JSArrayBuffer>(array_buffer_view,
......@@ -13168,18 +13164,6 @@ TNode<Smi> CodeStubAssembler::LoadJSTypedArrayLength(
return LoadObjectField<Smi>(typed_array, JSTypedArray::kLengthOffset);
}
void CodeStubAssembler::StoreByteOffset(TNode<JSTypedArray> typed_array,
TNode<UintPtrT> byte_offset) {
StoreObjectFieldNoWriteBarrier<UintPtrT>(
typed_array, JSTypedArray::kByteOffsetOffset, byte_offset);
}
void CodeStubAssembler::StoreByteLength(TNode<JSTypedArray> typed_array,
TNode<UintPtrT> byte_length) {
StoreObjectFieldNoWriteBarrier<UintPtrT>(
typed_array, JSTypedArray::kByteLengthOffset, byte_length);
}
CodeStubArguments::CodeStubArguments(
CodeStubAssembler* assembler, Node* argc, Node* fp,
CodeStubAssembler::ParameterMode param_mode, ReceiverMode receiver_mode)
......
......@@ -3048,7 +3048,6 @@ class V8_EXPORT_PRIVATE CodeStubAssembler
TNode<Uint32T> LoadJSArrayBufferBitField(TNode<JSArrayBuffer> array_buffer);
TNode<RawPtrT> LoadJSArrayBufferBackingStore(
TNode<JSArrayBuffer> array_buffer);
TNode<UintPtrT> LoadByteLength(TNode<JSArrayBuffer> buffer);
Node* IsDetachedBuffer(Node* buffer);
void ThrowIfArrayBufferIsDetached(SloppyTNode<Context> context,
TNode<JSArrayBuffer> array_buffer,
......@@ -3067,10 +3066,6 @@ class V8_EXPORT_PRIVATE CodeStubAssembler
// JSTypedArray helpers
TNode<Smi> LoadJSTypedArrayLength(TNode<JSTypedArray> typed_array);
void StoreByteOffset(TNode<JSTypedArray> typed_array,
TNode<UintPtrT> byte_offset);
void StoreByteLength(TNode<JSTypedArray> typed_array,
TNode<UintPtrT> byte_length);
TNode<IntPtrT> ElementOffsetFromIndex(Node* index, ElementsKind kind,
ParameterMode mode, int base_size = 0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment