diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2011-12-21 10:54:24 -0800 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2011-12-21 10:54:24 -0800 |
commit | 4eaf4ce26a0e66179d199997d9e0290867557702 (patch) | |
tree | aeaee42bc8f92e958abd90abc71eead5015bfbef /deps/v8/src/ia32 | |
parent | a82f5389d9673a48ab0facd6e77b2244dfe084c6 (diff) | |
download | node-new-4eaf4ce26a0e66179d199997d9e0290867557702.tar.gz |
Upgrade V8 to 3.8.2
Diffstat (limited to 'deps/v8/src/ia32')
-rw-r--r-- | deps/v8/src/ia32/lithium-codegen-ia32.cc | 14 | ||||
-rw-r--r-- | deps/v8/src/ia32/lithium-ia32.cc | 4 | ||||
-rw-r--r-- | deps/v8/src/ia32/lithium-ia32.h | 8 |
3 files changed, 9 insertions, 17 deletions
diff --git a/deps/v8/src/ia32/lithium-codegen-ia32.cc b/deps/v8/src/ia32/lithium-codegen-ia32.cc index 7883481041..ab38502768 100644 --- a/deps/v8/src/ia32/lithium-codegen-ia32.cc +++ b/deps/v8/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. } diff --git a/deps/v8/src/ia32/lithium-ia32.cc b/deps/v8/src/ia32/lithium-ia32.cc index f364439f10..c50378514a 100644 --- a/deps/v8/src/ia32/lithium-ia32.cc +++ b/deps/v8/src/ia32/lithium-ia32.cc @@ -1856,9 +1856,7 @@ LInstruction* LChunkBuilder::DoLoadGlobalGeneric(HLoadGlobalGeneric* instr) { LInstruction* LChunkBuilder::DoStoreGlobalCell(HStoreGlobalCell* instr) { LStoreGlobalCell* result = - new(zone()) LStoreGlobalCell(UseTempRegister(instr->value()), - TempRegister(), - TempRegister()); + new(zone()) LStoreGlobalCell(UseRegister(instr->value())); return instr->RequiresHoleCheck() ? AssignEnvironment(result) : result; } diff --git a/deps/v8/src/ia32/lithium-ia32.h b/deps/v8/src/ia32/lithium-ia32.h index 7e126ff03c..cc3762d7ab 100644 --- a/deps/v8/src/ia32/lithium-ia32.h +++ b/deps/v8/src/ia32/lithium-ia32.h @@ -1269,16 +1269,16 @@ class LLoadGlobalGeneric: public LTemplateInstruction<1, 2, 0> { }; -class LStoreGlobalCell: public LTemplateInstruction<0, 1, 2> { +class LStoreGlobalCell: public LTemplateInstruction<0, 1, 0> { public: - explicit LStoreGlobalCell(LOperand* value, LOperand* temp1, LOperand* temp2) { + explicit LStoreGlobalCell(LOperand* value) { inputs_[0] = value; - temps_[0] = temp1; - temps_[1] = temp2; } DECLARE_CONCRETE_INSTRUCTION(StoreGlobalCell, "store-global-cell") DECLARE_HYDROGEN_ACCESSOR(StoreGlobalCell) + + LOperand* value() { return inputs_[0]; } }; |