Chromium Code Reviews| Index: src/ia32/lithium-codegen-ia32.cc |
| diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc |
| index f43b0a72a15caee658d53d87c48632234f4e30ec..97fbb7a8c02113a82186d5ad74ccbcc648cbc026 100644 |
| --- a/src/ia32/lithium-codegen-ia32.cc |
| +++ b/src/ia32/lithium-codegen-ia32.cc |
| @@ -4054,10 +4054,12 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) { |
| void LCodeGen::DoStoreNamedGeneric(LStoreNamedGeneric* instr) { |
| ASSERT(ToRegister(instr->context()).is(esi)); |
| - ASSERT(ToRegister(instr->object()).is(edx)); |
| - ASSERT(ToRegister(instr->value()).is(eax)); |
| + ASSERT(ToRegister(instr->object()).is(StoreIC::ReceiverRegister())); |
| + ASSERT(ToRegister(instr->value()).is(StoreIC::ValueRegister())); |
| - __ mov(ecx, instr->name()); |
| + // TODO(mvstanton): name register (ecx) isn't allocated in lithium-ia32.cc. |
| + // Is this a problem? |
|
Jakob Kummerow
2014/07/10 13:42:05
Nope. We're calling out, so the entire instruction
|
| + __ mov(StoreIC::NameRegister(), instr->name()); |
| Handle<Code> ic = StoreIC::initialize_stub(isolate(), instr->strict_mode()); |
| CallCode(ic, RelocInfo::CODE_TARGET, instr); |
| } |
| @@ -4236,9 +4238,9 @@ void LCodeGen::DoStoreKeyed(LStoreKeyed* instr) { |
| void LCodeGen::DoStoreKeyedGeneric(LStoreKeyedGeneric* instr) { |
| ASSERT(ToRegister(instr->context()).is(esi)); |
| - ASSERT(ToRegister(instr->object()).is(edx)); |
| - ASSERT(ToRegister(instr->key()).is(ecx)); |
| - ASSERT(ToRegister(instr->value()).is(eax)); |
| + ASSERT(ToRegister(instr->object()).is(KeyedStoreIC::ReceiverRegister())); |
| + ASSERT(ToRegister(instr->key()).is(KeyedStoreIC::NameRegister())); |
| + ASSERT(ToRegister(instr->value()).is(KeyedStoreIC::ValueRegister())); |
| Handle<Code> ic = instr->strict_mode() == STRICT |
| ? isolate()->builtins()->KeyedStoreIC_Initialize_Strict() |