| Index: src/ic/ia32/ic-compiler-ia32.cc
|
| diff --git a/src/ic/ia32/ic-compiler-ia32.cc b/src/ic/ia32/ic-compiler-ia32.cc
|
| index 3dcc625945c048ef8ea8aa533c2aeb5c4cfe0d19..a52f04689aa52821adfa229d067b3b903f3ea768 100644
|
| --- a/src/ic/ia32/ic-compiler-ia32.cc
|
| +++ b/src/ic/ia32/ic-compiler-ia32.cc
|
| @@ -15,16 +15,20 @@ namespace internal {
|
|
|
| void PropertyICCompiler::GenerateRuntimeSetProperty(
|
| MacroAssembler* masm, LanguageMode language_mode) {
|
| - STATIC_ASSERT(StoreWithVectorDescriptor::kStackArgumentsCount == 3);
|
| - // Current stack layout:
|
| - // - esp[12] -- value
|
| - // - esp[8] -- slot
|
| - // - esp[4] -- vector
|
| - // - esp[0] -- return address
|
| -
|
| - __ mov(Operand(esp, 12), StoreDescriptor::ReceiverRegister());
|
| - __ mov(Operand(esp, 8), StoreDescriptor::NameRegister());
|
| - __ mov(Operand(esp, 4), StoreDescriptor::ValueRegister());
|
| + typedef StoreWithVectorDescriptor Descriptor;
|
| + STATIC_ASSERT(Descriptor::kStackArgumentsCount == 3);
|
| + // ----------- S t a t e -------------
|
| + // -- esp[12] : value
|
| + // -- esp[8] : slot
|
| + // -- esp[4] : vector
|
| + // -- esp[0] : return address
|
| + // -----------------------------------
|
| + __ LoadParameterFromStack<Descriptor>(Descriptor::ValueRegister(),
|
| + Descriptor::kValue);
|
| +
|
| + __ mov(Operand(esp, 12), Descriptor::ReceiverRegister());
|
| + __ mov(Operand(esp, 8), Descriptor::NameRegister());
|
| + __ mov(Operand(esp, 4), Descriptor::ValueRegister());
|
| __ pop(ebx);
|
| __ push(Immediate(Smi::FromInt(language_mode)));
|
| __ push(ebx); // return address
|
|
|