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

Unified Diff: src/ic/accessor-assembler.cc

Issue 2637073002: [ic] Decode offset from the handler word later in store IC dispatcher. (Closed)
Patch Set: 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 | « no previous file | src/ic/accessor-assembler-impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/ic/accessor-assembler.cc
diff --git a/src/ic/accessor-assembler.cc b/src/ic/accessor-assembler.cc
index 22ecec2bb1462880d49c473d098a8c2b08f4e417..43c269f9bf97d8b06818d21ce88f4ee57c9b856e 100644
--- a/src/ic/accessor-assembler.cc
+++ b/src/ic/accessor-assembler.cc
@@ -690,14 +690,13 @@ void AccessorAssemblerImpl::HandleStoreFieldAndReturn(
Node* prepared_value = PrepareValueForStore(
handler_word, holder, representation, transition, value, miss);
- Node* offset = DecodeWord<StoreHandler::FieldOffsetBits>(handler_word);
Label if_inobject(this), if_out_of_object(this);
Branch(IsSetWord<StoreHandler::IsInobjectBits>(handler_word), &if_inobject,
&if_out_of_object);
Bind(&if_inobject);
{
- StoreNamedField(holder, offset, true, representation, prepared_value,
+ StoreNamedField(handler_word, holder, true, representation, prepared_value,
transition_to_field);
if (transition_to_field) {
StoreMap(holder, transition);
@@ -719,7 +718,7 @@ void AccessorAssemblerImpl::HandleStoreFieldAndReturn(
Bind(&storage_extended);
}
- StoreNamedField(holder, offset, false, representation, prepared_value,
+ StoreNamedField(handler_word, holder, false, representation, prepared_value,
transition_to_field);
if (transition_to_field) {
StoreMap(holder, transition);
@@ -799,7 +798,7 @@ void AccessorAssemblerImpl::ExtendPropertiesBackingStore(Node* object) {
StoreObjectField(object, JSObject::kPropertiesOffset, new_properties);
}
-void AccessorAssemblerImpl::StoreNamedField(Node* object, Node* offset,
+void AccessorAssemblerImpl::StoreNamedField(Node* handler_word, Node* object,
bool is_inobject,
Representation representation,
Node* value,
@@ -810,6 +809,7 @@ void AccessorAssemblerImpl::StoreNamedField(Node* object, Node* offset,
property_storage = LoadProperties(object);
}
+ Node* offset = DecodeWord<StoreHandler::FieldOffsetBits>(handler_word);
if (representation.IsDouble()) {
if (!FLAG_unbox_double_fields || !is_inobject) {
if (transition_to_field) {
« no previous file with comments | « no previous file | src/ic/accessor-assembler-impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698