diff options
author | Michaël Zasso <targos@protonmail.com> | 2018-03-07 08:54:53 +0100 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2018-03-07 16:48:52 +0100 |
commit | 88786fecff336342a56e6f2e7ff3b286be716e47 (patch) | |
tree | 92e6ba5b8ac8dae1a058988d20c9d27bfa654390 /deps/v8/src/ic/keyed-store-generic.cc | |
parent | 4e86f9b5ab83cbabf43839385bf383e6a7ef7d19 (diff) | |
download | android-node-v8-88786fecff336342a56e6f2e7ff3b286be716e47.tar.gz android-node-v8-88786fecff336342a56e6f2e7ff3b286be716e47.tar.bz2 android-node-v8-88786fecff336342a56e6f2e7ff3b286be716e47.zip |
deps: update V8 to 6.5.254.31
PR-URL: https://github.com/nodejs/node/pull/18453
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Yang Guo <yangguo@chromium.org>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Diffstat (limited to 'deps/v8/src/ic/keyed-store-generic.cc')
-rw-r--r-- | deps/v8/src/ic/keyed-store-generic.cc | 44 |
1 files changed, 15 insertions, 29 deletions
diff --git a/deps/v8/src/ic/keyed-store-generic.cc b/deps/v8/src/ic/keyed-store-generic.cc index 4263dd8552..b9a11c2ec7 100644 --- a/deps/v8/src/ic/keyed-store-generic.cc +++ b/deps/v8/src/ic/keyed-store-generic.cc @@ -751,8 +751,8 @@ void KeyedStoreGenericAssembler::EmitGenericPropertyStore( Label stub_cache(this), fast_properties(this), dictionary_properties(this), accessor(this), readonly(this); Node* bitfield3 = LoadMapBitField3(receiver_map); - Branch(IsSetWord32<Map::DictionaryMap>(bitfield3), &dictionary_properties, - &fast_properties); + Branch(IsSetWord32<Map::IsDictionaryMapBit>(bitfield3), + &dictionary_properties, &fast_properties); BIND(&fast_properties); { @@ -795,38 +795,22 @@ void KeyedStoreGenericAssembler::EmitGenericPropertyStore( { Comment("lookup transition"); VARIABLE(var_handler, MachineRepresentation::kTagged); - Label tuple3(this), fixedarray(this), found_handler(this, &var_handler); + Label check_key(this), found_handler(this, &var_handler); Node* maybe_handler = LoadObjectField(receiver_map, Map::kTransitionsOrPrototypeInfoOffset); GotoIf(TaggedIsSmi(maybe_handler), notfound); - Node* handler_map = LoadMap(maybe_handler); - GotoIf(WordEqual(handler_map, Tuple3MapConstant()), &tuple3); - GotoIf(WordEqual(handler_map, FixedArrayMapConstant()), &fixedarray); + GotoIf(HasInstanceType(maybe_handler, STORE_HANDLER_TYPE), &check_key); // TODO(jkummerow): Consider implementing TransitionArray search. Goto(notfound); - VARIABLE(var_transition_cell, MachineRepresentation::kTagged); - Label check_key(this, &var_transition_cell); - BIND(&tuple3); - { - var_transition_cell.Bind( - LoadObjectField(maybe_handler, StoreHandler::kDataOffset)); - Goto(&check_key); - } - - BIND(&fixedarray); - { - var_transition_cell.Bind( - LoadFixedArrayElement(maybe_handler, StoreHandler::kDataIndex)); - Goto(&check_key); - } - BIND(&check_key); { - Node* transition = LoadWeakCellValue(var_transition_cell.value(), slow); + Node* transition_cell = + LoadObjectField(maybe_handler, StoreHandler::kData1Offset); + Node* transition = LoadWeakCellValue(transition_cell, slow); Node* transition_bitfield3 = LoadMapBitField3(transition); - GotoIf(IsSetWord32<Map::Deprecated>(transition_bitfield3), slow); + GotoIf(IsSetWord32<Map::IsDeprecatedBit>(transition_bitfield3), slow); Node* nof = DecodeWord32<Map::NumberOfOwnDescriptorsBits>(transition_bitfield3); Node* last_added = Int32Sub(nof, Int32Constant(1)); @@ -840,7 +824,8 @@ void KeyedStoreGenericAssembler::EmitGenericPropertyStore( BIND(&found_handler); { Comment("KeyedStoreGeneric found transition handler"); - HandleStoreICHandlerCase(p, var_handler.value(), notfound); + HandleStoreICHandlerCase(p, var_handler.value(), notfound, + ICMode::kNonGlobalIC); } } } @@ -882,16 +867,16 @@ void KeyedStoreGenericAssembler::EmitGenericPropertyStore( { CheckForAssociatedProtector(p->name, slow); Label extensible(this); - GotoIf(IsPrivateSymbol(p->name), &extensible); Node* bitfield2 = LoadMapBitField2(receiver_map); - Branch(IsSetWord32(bitfield2, 1 << Map::kIsExtensible), &extensible, - slow); + GotoIf(IsPrivateSymbol(p->name), &extensible); + Branch(IsSetWord32<Map::IsExtensibleBit>(bitfield2), &extensible, slow); BIND(&extensible); LookupPropertyOnPrototypeChain(receiver_map, p->name, &accessor, &var_accessor_pair, &var_accessor_holder, &readonly, slow); Label add_dictionary_property_slow(this); + InvalidateValidityCellIfPrototype(receiver_map, bitfield2); Add<NameDictionary>(properties, p->name, p->value, &add_dictionary_property_slow); Return(p->value); @@ -958,7 +943,8 @@ void KeyedStoreGenericAssembler::EmitGenericPropertyStore( BIND(&found_handler); { Comment("KeyedStoreGeneric found handler"); - HandleStoreICHandlerCase(p, var_handler.value(), &stub_cache_miss); + HandleStoreICHandlerCase(p, var_handler.value(), &stub_cache_miss, + ICMode::kNonGlobalIC); } BIND(&stub_cache_miss); { |