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() |