| Index: src/ic/ia32/handler-compiler-ia32.cc
|
| diff --git a/src/ic/ia32/handler-compiler-ia32.cc b/src/ic/ia32/handler-compiler-ia32.cc
|
| index b332f117b89336acb012ba75a41f1e2bf069ab35..04b9dc20490590d6e62432943812710680bda694 100644
|
| --- a/src/ic/ia32/handler-compiler-ia32.cc
|
| +++ b/src/ic/ia32/handler-compiler-ia32.cc
|
| @@ -59,15 +59,21 @@ void NamedLoadHandlerCompiler::GenerateLoadViaGetter(
|
| void PropertyHandlerCompiler::PushVectorAndSlot(Register vector,
|
| Register slot) {
|
| MacroAssembler* masm = this->masm();
|
| - __ push(vector);
|
| + STATIC_ASSERT(LoadWithVectorDescriptor::kSlot <
|
| + LoadWithVectorDescriptor::kVector);
|
| + STATIC_ASSERT(StoreWithVectorDescriptor::kSlot <
|
| + StoreWithVectorDescriptor::kVector);
|
| + STATIC_ASSERT(StoreTransitionDescriptor::kSlot <
|
| + StoreTransitionDescriptor::kVector);
|
| __ push(slot);
|
| + __ push(vector);
|
| }
|
|
|
|
|
| void PropertyHandlerCompiler::PopVectorAndSlot(Register vector, Register slot) {
|
| MacroAssembler* masm = this->masm();
|
| - __ pop(slot);
|
| __ pop(vector);
|
| + __ pop(slot);
|
| }
|
|
|
|
|
| @@ -77,6 +83,15 @@ void PropertyHandlerCompiler::DiscardVectorAndSlot() {
|
| __ add(esp, Immediate(2 * kPointerSize));
|
| }
|
|
|
| +void PropertyHandlerCompiler::PushReturnAddress(Register tmp) {
|
| + MacroAssembler* masm = this->masm();
|
| + __ push(tmp);
|
| +}
|
| +
|
| +void PropertyHandlerCompiler::PopReturnAddress(Register tmp) {
|
| + MacroAssembler* masm = this->masm();
|
| + __ pop(tmp);
|
| +}
|
|
|
| void PropertyHandlerCompiler::GenerateDictionaryNegativeLookup(
|
| MacroAssembler* masm, Label* miss_label, Register receiver,
|
| @@ -360,19 +375,6 @@ void NamedStoreHandlerCompiler::GenerateRestoreName(Handle<Name> name) {
|
| }
|
|
|
|
|
| -void NamedStoreHandlerCompiler::RearrangeVectorAndSlot(
|
| - Register current_map, Register destination_map) {
|
| - DCHECK(destination_map.is(StoreTransitionHelper::MapRegister()));
|
| - DCHECK(current_map.is(StoreTransitionHelper::VectorRegister()));
|
| - ExternalReference virtual_slot =
|
| - ExternalReference::virtual_slot_register(isolate());
|
| - __ mov(destination_map, current_map);
|
| - __ pop(current_map);
|
| - __ mov(Operand::StaticVariable(virtual_slot), current_map);
|
| - __ pop(current_map); // put vector in place.
|
| -}
|
| -
|
| -
|
| void NamedStoreHandlerCompiler::GenerateRestoreMap(Handle<Map> transition,
|
| Register map_reg,
|
| Register scratch,
|
|
|