| Index: src/ppc/code-stubs-ppc.cc
|
| diff --git a/src/ppc/code-stubs-ppc.cc b/src/ppc/code-stubs-ppc.cc
|
| index 62cc5711b24bb2df54f693c2dbdf631c391038ec..d7ed0088ae9f557bf3e9b4f2a2f721919348169f 100644
|
| --- a/src/ppc/code-stubs-ppc.cc
|
| +++ b/src/ppc/code-stubs-ppc.cc
|
| @@ -5377,6 +5377,11 @@ void StoreGlobalViaContextStub::Generate(MacroAssembler* masm) {
|
| __ add(cell, context, cell);
|
| __ LoadP(cell, ContextOperand(cell));
|
|
|
| + // Check that cell value is not the_hole.
|
| + __ LoadP(cell_value, FieldMemOperand(cell, PropertyCell::kValueOffset));
|
| + __ CompareRoot(cell_value, Heap::kTheHoleValueRootIndex);
|
| + __ beq(&slow_case);
|
| +
|
| // Load PropertyDetails for the cell (actually only the cell_type and kind).
|
| __ LoadP(cell_details, FieldMemOperand(cell, PropertyCell::kDetailsOffset));
|
| __ SmiUntag(cell_details);
|
| @@ -5406,7 +5411,6 @@ void StoreGlobalViaContextStub::Generate(MacroAssembler* masm) {
|
| // Check if PropertyCell value matches the new value (relevant for Constant,
|
| // ConstantType and Undefined cells).
|
| Label not_same_value;
|
| - __ LoadP(cell_value, FieldMemOperand(cell, PropertyCell::kValueOffset));
|
| __ cmp(cell_value, value);
|
| __ bne(¬_same_value);
|
|
|
|
|