| 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 1d019092c7b91812cda2ad26c38e9f86d2625d18..2aff4847e27a35239785753477c82a8cbb50835a 100644
|
| --- a/src/ic/ia32/handler-compiler-ia32.cc
|
| +++ b/src/ic/ia32/handler-compiler-ia32.cc
|
| @@ -362,18 +362,16 @@ void NamedStoreHandlerCompiler::GenerateRestoreName(Handle<Name> name) {
|
| }
|
|
|
|
|
| -void NamedStoreHandlerCompiler::GeneratePushMap(Register map_reg,
|
| - Register scratch) {
|
| - // current after GeneratePushMap
|
| - // -------------------------------------------------
|
| - // ret addr slot
|
| - // vector vector
|
| - // sp -> slot map
|
| - // sp -> ret addr
|
| - //
|
| - __ xchg(map_reg, Operand(esp, 0));
|
| - __ xchg(map_reg, Operand(esp, 2 * kPointerSize));
|
| - __ push(map_reg);
|
| +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.
|
| }
|
|
|
|
|
|
|