Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(369)

Unified Diff: src/code-stub-assembler.cc

Issue 2619823005: [ic][stubs] Move more IC-related methods from CSA to AccessorAssembler. (Closed)
Patch Set: Code reshuffling Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/code-stub-assembler.h ('k') | src/ic/accessor-assembler.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/code-stub-assembler.cc
diff --git a/src/code-stub-assembler.cc b/src/code-stub-assembler.cc
index 1fb8a2152ee587eb5176e6c46707fbf7f679efd5..bc078473116606620c6a4ce435c12d9a08254961 100644
--- a/src/code-stub-assembler.cc
+++ b/src/code-stub-assembler.cc
@@ -5507,104 +5507,6 @@ Node* CodeStubAssembler::TryToIntptr(Node* key, Label* miss) {
return var_intptr_key.value();
}
-void CodeStubAssembler::ExtendPropertiesBackingStore(Node* object) {
- Node* properties = LoadProperties(object);
- Node* length = LoadFixedArrayBaseLength(properties);
-
- ParameterMode mode = OptimalParameterMode();
- length = TaggedToParameter(length, mode);
-
- Node* delta = IntPtrOrSmiConstant(JSObject::kFieldsAdded, mode);
- Node* new_capacity = IntPtrOrSmiAdd(length, delta, mode);
-
- // Grow properties array.
- ElementsKind kind = FAST_ELEMENTS;
- DCHECK(kMaxNumberOfDescriptors + JSObject::kFieldsAdded <
- FixedArrayBase::GetMaxLengthForNewSpaceAllocation(kind));
- // The size of a new properties backing store is guaranteed to be small
- // enough that the new backing store will be allocated in new space.
- CSA_ASSERT(this,
- UintPtrOrSmiLessThan(
- new_capacity,
- IntPtrOrSmiConstant(
- kMaxNumberOfDescriptors + JSObject::kFieldsAdded, mode),
- mode));
-
- Node* new_properties = AllocateFixedArray(kind, new_capacity, mode);
-
- FillFixedArrayWithValue(kind, new_properties, length, new_capacity,
- Heap::kUndefinedValueRootIndex, mode);
-
- // |new_properties| is guaranteed to be in new space, so we can skip
- // the write barrier.
- CopyFixedArrayElements(kind, properties, new_properties, length,
- SKIP_WRITE_BARRIER, mode);
-
- StoreObjectField(object, JSObject::kPropertiesOffset, new_properties);
-}
-
-Node* CodeStubAssembler::PrepareValueForWrite(Node* value,
- Representation representation,
- Label* bailout) {
- if (representation.IsDouble()) {
- value = TryTaggedToFloat64(value, bailout);
- } else if (representation.IsHeapObject()) {
- // Field type is checked by the handler, here we only check if the value
- // is a heap object.
- GotoIf(TaggedIsSmi(value), bailout);
- } else if (representation.IsSmi()) {
- GotoUnless(TaggedIsSmi(value), bailout);
- } else {
- DCHECK(representation.IsTagged());
- }
- return value;
-}
-
-void CodeStubAssembler::StoreNamedField(Node* object, FieldIndex index,
- Representation representation,
- Node* value, bool transition_to_field) {
- DCHECK_EQ(index.is_double(), representation.IsDouble());
-
- StoreNamedField(object, IntPtrConstant(index.offset()), index.is_inobject(),
- representation, value, transition_to_field);
-}
-
-void CodeStubAssembler::StoreNamedField(Node* object, Node* offset,
- bool is_inobject,
- Representation representation,
- Node* value, bool transition_to_field) {
- bool store_value_as_double = representation.IsDouble();
- Node* property_storage = object;
- if (!is_inobject) {
- property_storage = LoadProperties(object);
- }
-
- if (representation.IsDouble()) {
- if (!FLAG_unbox_double_fields || !is_inobject) {
- if (transition_to_field) {
- Node* heap_number = AllocateHeapNumberWithValue(value, MUTABLE);
- // Store the new mutable heap number into the object.
- value = heap_number;
- store_value_as_double = false;
- } else {
- // Load the heap number.
- property_storage = LoadObjectField(property_storage, offset);
- // Store the double value into it.
- offset = IntPtrConstant(HeapNumber::kValueOffset);
- }
- }
- }
-
- if (store_value_as_double) {
- StoreObjectFieldNoWriteBarrier(property_storage, offset, value,
- MachineRepresentation::kFloat64);
- } else if (representation.IsSmi()) {
- StoreObjectFieldNoWriteBarrier(property_storage, offset, value);
- } else {
- StoreObjectField(property_storage, offset, value);
- }
-}
-
Node* CodeStubAssembler::EmitKeyedSloppyArguments(Node* receiver, Node* key,
Node* value, Label* bailout) {
// Mapped arguments are actual arguments. Unmapped arguments are values added
« no previous file with comments | « src/code-stub-assembler.h ('k') | src/ic/accessor-assembler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698