@@ -16547,11 +16547,12 @@ void CodeStubAssembler::StoreJSArrayBufferViewByteOffset(
1654716547
1654816548TNode<UintPtrT> CodeStubAssembler::LoadJSTypedArrayLength(
1654916549 TNode<JSTypedArray> typed_array) {
16550- TNode<UintPtrT> byte_length = LoadBoundedSizeFromObject(
16551- typed_array, JSTypedArray::kRawByteLengthOffset);
16552- TNode<IntPtrT> element_size =
16553- ElementsKindToElementByteSize(LoadElementsKind(typed_array));
16554- return Unsigned(IntPtrDiv(Signed(byte_length), element_size));
16550+ return LoadBoundedSizeFromObject(typed_array, JSTypedArray::kRawLengthOffset);
16551+ }
16552+
16553+ void CodeStubAssembler::StoreJSTypedArrayLength(TNode<JSTypedArray> typed_array,
16554+ TNode<UintPtrT> value) {
16555+ StoreBoundedSizeToObject(typed_array, JSTypedArray::kRawLengthOffset, value);
1655516556}
1655616557
1655716558TNode<UintPtrT> CodeStubAssembler::LoadJSTypedArrayLengthAndCheckDetached(
@@ -16589,7 +16590,7 @@ TNode<UintPtrT> CodeStubAssembler::LoadVariableLengthJSTypedArrayLength(
1658916590 TNode<UintPtrT> byte_length = LoadVariableLengthJSArrayBufferViewByteLength(
1659016591 array, buffer, detached_or_out_of_bounds);
1659116592 TNode<IntPtrT> element_size =
16592- ElementsKindToElementByteSize (LoadElementsKind(array));
16593+ RabGsabElementsKindToElementByteSize (LoadElementsKind(array));
1659316594 return Unsigned(IntPtrDiv(Signed(byte_length), element_size));
1659416595}
1659516596
@@ -16745,7 +16746,7 @@ TNode<UintPtrT> CodeStubAssembler::LoadVariableLengthJSTypedArrayByteLength(
1674516746 TNode<UintPtrT> length =
1674616747 LoadVariableLengthJSTypedArrayLength(array, buffer, &miss);
1674716748 TNode<IntPtrT> element_size =
16748- ElementsKindToElementByteSize (LoadElementsKind(array));
16749+ RabGsabElementsKindToElementByteSize (LoadElementsKind(array));
1674916750 // Conversion to signed is OK since length < JSArrayBuffer::kMaxByteLength.
1675016751 TNode<IntPtrT> byte_length = IntPtrMul(Signed(length), element_size);
1675116752 result = Unsigned(byte_length);
@@ -16759,44 +16760,25 @@ TNode<UintPtrT> CodeStubAssembler::LoadVariableLengthJSTypedArrayByteLength(
1675916760 return result.value();
1676016761}
1676116762
16762- TNode<IntPtrT> CodeStubAssembler::ElementsKindToElementByteSize (
16763+ TNode<IntPtrT> CodeStubAssembler::RabGsabElementsKindToElementByteSize (
1676316764 TNode<Int32T> elements_kind) {
1676416765 TVARIABLE(IntPtrT, result);
1676516766 Label elements_8(this), elements_16(this), elements_32(this),
1676616767 elements_64(this), not_found(this), end(this);
16767- int32_t elements_kinds[] = {UINT8_ELEMENTS,
16768- UINT8_CLAMPED_ELEMENTS,
16769- INT8_ELEMENTS,
16770- UINT16_ELEMENTS,
16771- INT16_ELEMENTS,
16772- FLOAT16_ELEMENTS,
16773- UINT32_ELEMENTS,
16774- INT32_ELEMENTS,
16775- FLOAT32_ELEMENTS,
16776- FLOAT64_ELEMENTS,
16777- BIGINT64_ELEMENTS,
16778- BIGUINT64_ELEMENTS,
16779- RAB_GSAB_UINT8_ELEMENTS,
16780- RAB_GSAB_UINT8_CLAMPED_ELEMENTS,
16781- RAB_GSAB_INT8_ELEMENTS,
16782- RAB_GSAB_UINT16_ELEMENTS,
16783- RAB_GSAB_INT16_ELEMENTS,
16784- RAB_GSAB_FLOAT16_ELEMENTS,
16785- RAB_GSAB_UINT32_ELEMENTS,
16786- RAB_GSAB_INT32_ELEMENTS,
16787- RAB_GSAB_FLOAT32_ELEMENTS,
16788- RAB_GSAB_FLOAT64_ELEMENTS,
16789- RAB_GSAB_BIGINT64_ELEMENTS,
16790- RAB_GSAB_BIGUINT64_ELEMENTS};
16791- Label* elements_kind_labels[] = {
16792- &elements_8, &elements_8, &elements_8, &elements_16, &elements_16,
16793- &elements_16, &elements_32, &elements_32, &elements_32, &elements_64,
16794- &elements_64, &elements_64, &elements_8, &elements_8, &elements_8,
16795- &elements_16, &elements_16, &elements_16, &elements_32, &elements_32,
16796- &elements_32, &elements_64, &elements_64, &elements_64};
16768+ int32_t elements_kinds[] = {
16769+ RAB_GSAB_UINT8_ELEMENTS, RAB_GSAB_UINT8_CLAMPED_ELEMENTS,
16770+ RAB_GSAB_INT8_ELEMENTS, RAB_GSAB_UINT16_ELEMENTS,
16771+ RAB_GSAB_INT16_ELEMENTS, RAB_GSAB_FLOAT16_ELEMENTS,
16772+ RAB_GSAB_UINT32_ELEMENTS, RAB_GSAB_INT32_ELEMENTS,
16773+ RAB_GSAB_FLOAT32_ELEMENTS, RAB_GSAB_FLOAT64_ELEMENTS,
16774+ RAB_GSAB_BIGINT64_ELEMENTS, RAB_GSAB_BIGUINT64_ELEMENTS};
16775+ Label* elements_kind_labels[] = {&elements_8, &elements_8, &elements_8,
16776+ &elements_16, &elements_16, &elements_16,
16777+ &elements_32, &elements_32, &elements_32,
16778+ &elements_64, &elements_64, &elements_64};
1679716779 const size_t kTypedElementsKindCount =
1679816780 LAST_RAB_GSAB_FIXED_TYPED_ARRAY_ELEMENTS_KIND -
16799- FIRST_FIXED_TYPED_ARRAY_ELEMENTS_KIND + 1;
16781+ FIRST_RAB_GSAB_FIXED_TYPED_ARRAY_ELEMENTS_KIND + 1;
1680016782 DCHECK_EQ(kTypedElementsKindCount, arraysize(elements_kinds));
1680116783 DCHECK_EQ(kTypedElementsKindCount, arraysize(elements_kind_labels));
1680216784 Switch(elements_kind, ¬_found, elements_kinds, elements_kind_labels,
0 commit comments