| Index: src/code-stub-assembler.cc
|
| diff --git a/src/code-stub-assembler.cc b/src/code-stub-assembler.cc
|
| index 150f3b816008eafa3f738aed3d656fc61b2e936a..358d103997be66d855d0d8b861f7c71d71df7a92 100644
|
| --- a/src/code-stub-assembler.cc
|
| +++ b/src/code-stub-assembler.cc
|
| @@ -4638,11 +4638,7 @@ void CodeStubAssembler::InsertEntry<NameDictionary>(Node* dictionary,
|
| Node* enum_index) {
|
| // Store name and value.
|
| StoreFixedArrayElement(dictionary, index, name);
|
| - const int kNameToValueOffset =
|
| - (NameDictionary::kEntryValueIndex - NameDictionary::kEntryKeyIndex) *
|
| - kPointerSize;
|
| - StoreFixedArrayElement(dictionary, index, value, UPDATE_WRITE_BARRIER,
|
| - kNameToValueOffset);
|
| + StoreValueByKeyIndex<NameDictionary>(dictionary, index, value);
|
|
|
| // Prepare details of the new property.
|
| const int kInitialIndex = 0;
|
| @@ -4666,11 +4662,8 @@ void CodeStubAssembler::InsertEntry<NameDictionary>(Node* dictionary,
|
| Bind(¬_private);
|
|
|
| // Finally, store the details.
|
| - const int kNameToDetailsOffset =
|
| - (NameDictionary::kEntryDetailsIndex - NameDictionary::kEntryKeyIndex) *
|
| - kPointerSize;
|
| - StoreFixedArrayElement(dictionary, index, var_details.value(),
|
| - SKIP_WRITE_BARRIER, kNameToDetailsOffset);
|
| + StoreDetailsByKeyIndex<NameDictionary>(dictionary, index,
|
| + var_details.value());
|
| }
|
|
|
| template <>
|
| @@ -4729,7 +4722,7 @@ void CodeStubAssembler::DescriptorLookupLinear(Node* unique_name,
|
| Variable* var_name_index,
|
| Label* if_not_found) {
|
| Node* first_inclusive = IntPtrConstant(DescriptorArray::ToKeyIndex(0));
|
| - Node* factor = IntPtrConstant(DescriptorArray::kDescriptorSize);
|
| + Node* factor = IntPtrConstant(DescriptorArray::kEntrySize);
|
| Node* last_exclusive = IntPtrAdd(first_inclusive, IntPtrMul(nof, factor));
|
|
|
| BuildFastLoop(last_exclusive, first_inclusive,
|
| @@ -4740,7 +4733,7 @@ void CodeStubAssembler::DescriptorLookupLinear(Node* unique_name,
|
| var_name_index->Bind(name_index);
|
| GotoIf(WordEqual(candidate_name, unique_name), if_found);
|
| },
|
| - -DescriptorArray::kDescriptorSize, INTPTR_PARAMETERS,
|
| + -DescriptorArray::kEntrySize, INTPTR_PARAMETERS,
|
| IndexAdvanceMode::kPre);
|
| Goto(if_not_found);
|
| }
|
| @@ -4848,15 +4841,8 @@ void CodeStubAssembler::LoadPropertyFromFastObject(Node* object, Node* map,
|
| DCHECK_EQ(MachineRepresentation::kTagged, var_value->rep());
|
| Comment("[ LoadPropertyFromFastObject");
|
|
|
| - const int name_to_details_offset =
|
| - (DescriptorArray::kDescriptorDetails - DescriptorArray::kDescriptorKey) *
|
| - kPointerSize;
|
| - const int name_to_value_offset =
|
| - (DescriptorArray::kDescriptorValue - DescriptorArray::kDescriptorKey) *
|
| - kPointerSize;
|
| -
|
| - Node* details = LoadAndUntagToWord32FixedArrayElement(descriptors, name_index,
|
| - name_to_details_offset);
|
| + Node* details =
|
| + LoadDetailsByKeyIndex<DescriptorArray>(descriptors, name_index);
|
| var_details->Bind(details);
|
|
|
| Node* location = DecodeWord32<PropertyDetails::LocationField>(details);
|
| @@ -4939,9 +4925,8 @@ void CodeStubAssembler::LoadPropertyFromFastObject(Node* object, Node* map,
|
| }
|
| Bind(&if_in_descriptor);
|
| {
|
| - Node* value =
|
| - LoadFixedArrayElement(descriptors, name_index, name_to_value_offset);
|
| - var_value->Bind(value);
|
| + var_value->Bind(
|
| + LoadValueByKeyIndex<DescriptorArray>(descriptors, name_index));
|
| Goto(&done);
|
| }
|
| Bind(&done);
|
| @@ -4955,19 +4940,10 @@ void CodeStubAssembler::LoadPropertyFromNameDictionary(Node* dictionary,
|
| Variable* var_value) {
|
| Comment("LoadPropertyFromNameDictionary");
|
| CSA_ASSERT(this, IsDictionary(dictionary));
|
| - const int name_to_details_offset =
|
| - (NameDictionary::kEntryDetailsIndex - NameDictionary::kEntryKeyIndex) *
|
| - kPointerSize;
|
| - const int name_to_value_offset =
|
| - (NameDictionary::kEntryValueIndex - NameDictionary::kEntryKeyIndex) *
|
| - kPointerSize;
|
|
|
| - Node* details = LoadAndUntagToWord32FixedArrayElement(dictionary, name_index,
|
| - name_to_details_offset);
|
| -
|
| - var_details->Bind(details);
|
| - var_value->Bind(
|
| - LoadFixedArrayElement(dictionary, name_index, name_to_value_offset));
|
| + var_details->Bind(
|
| + LoadDetailsByKeyIndex<NameDictionary>(dictionary, name_index));
|
| + var_value->Bind(LoadValueByKeyIndex<NameDictionary>(dictionary, name_index));
|
|
|
| Comment("] LoadPropertyFromNameDictionary");
|
| }
|
| @@ -4980,12 +4956,8 @@ void CodeStubAssembler::LoadPropertyFromGlobalDictionary(Node* dictionary,
|
| Comment("[ LoadPropertyFromGlobalDictionary");
|
| CSA_ASSERT(this, IsDictionary(dictionary));
|
|
|
| - const int name_to_value_offset =
|
| - (GlobalDictionary::kEntryValueIndex - GlobalDictionary::kEntryKeyIndex) *
|
| - kPointerSize;
|
| -
|
| Node* property_cell =
|
| - LoadFixedArrayElement(dictionary, name_index, name_to_value_offset);
|
| + LoadValueByKeyIndex<GlobalDictionary>(dictionary, name_index);
|
|
|
| Node* value = LoadObjectField(property_cell, PropertyCell::kValueOffset);
|
| GotoIf(WordEqual(value, TheHoleConstant()), if_deleted);
|
|
|