| Index: src/ic/x64/handler-compiler-x64.cc
|
| diff --git a/src/ic/x64/handler-compiler-x64.cc b/src/ic/x64/handler-compiler-x64.cc
|
| index 32dc6015828d4f5525579ef505baf33e1a7130a2..ced2b3f54bc56b3c1cb6f01762dfb3290973750b 100644
|
| --- a/src/ic/x64/handler-compiler-x64.cc
|
| +++ b/src/ic/x64/handler-compiler-x64.cc
|
| @@ -324,13 +324,25 @@ void NamedStoreHandlerCompiler::GenerateRestoreName(Label* label,
|
| }
|
|
|
|
|
| -void NamedStoreHandlerCompiler::GenerateRestoreNameAndMap(
|
| - Handle<Name> name, Handle<Map> transition) {
|
| +void NamedStoreHandlerCompiler::GenerateRestoreName(Handle<Name> name) {
|
| __ Move(this->name(), name);
|
| - __ Move(StoreTransitionDescriptor::MapRegister(), transition);
|
| }
|
|
|
|
|
| +void NamedStoreHandlerCompiler::GenerateRestoreMap(Handle<Map> transition,
|
| + Register scratch,
|
| + Label* miss) {
|
| + Handle<WeakCell> cell = Map::WeakCellForMap(transition);
|
| + Register map_reg = StoreTransitionDescriptor::MapRegister();
|
| + DCHECK(!map_reg.is(scratch));
|
| + __ LoadWeakValue(map_reg, cell, miss);
|
| + if (transition->CanBeDeprecated()) {
|
| + __ movl(scratch, FieldOperand(map_reg, Map::kBitField3Offset));
|
| + __ andl(scratch, Immediate(Map::Deprecated::kMask));
|
| + __ j(not_zero, miss);
|
| + }
|
| +}
|
| +
|
| void NamedStoreHandlerCompiler::GenerateConstantCheck(Object* constant,
|
| Register value_reg,
|
| Label* miss_label) {
|
|
|