Index: src/ia32/lithium-codegen-ia32.cc |
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc |
index 788348104110b5bfec90e9ed627c194171fe03b9..ab3850276891022b6823cb0f56a14c172f003898 100644 |
--- a/src/ia32/lithium-codegen-ia32.cc |
+++ b/src/ia32/lithium-codegen-ia32.cc |
@@ -2124,26 +2124,20 @@ void LCodeGen::DoLoadGlobalGeneric(LLoadGlobalGeneric* instr) { |
void LCodeGen::DoStoreGlobalCell(LStoreGlobalCell* instr) { |
- Register object = ToRegister(instr->TempAt(0)); |
- Register address = ToRegister(instr->TempAt(1)); |
- Register value = ToRegister(instr->InputAt(0)); |
- ASSERT(!value.is(object)); |
- Handle<JSGlobalPropertyCell> cell_handle(instr->hydrogen()->cell()); |
- |
- int offset = JSGlobalPropertyCell::kValueOffset; |
- __ mov(object, Immediate(cell_handle)); |
+ Register value = ToRegister(instr->value()); |
+ Handle<JSGlobalPropertyCell> cell_handle = instr->hydrogen()->cell(); |
// If the cell we are storing to contains the hole it could have |
// been deleted from the property dictionary. In that case, we need |
// to update the property details in the property dictionary to mark |
// it as no longer deleted. We deoptimize in that case. |
if (instr->hydrogen()->RequiresHoleCheck()) { |
- __ cmp(FieldOperand(object, offset), factory()->the_hole_value()); |
+ __ cmp(Operand::Cell(cell_handle), factory()->the_hole_value()); |
DeoptimizeIf(equal, instr->environment()); |
} |
// Store the value. |
- __ mov(FieldOperand(object, offset), value); |
+ __ mov(Operand::Cell(cell_handle), value); |
// Cells are always rescanned, so no write barrier here. |
} |