Index: src/x64/lithium-codegen-x64.cc |
diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc |
index 9540bbc6283d75a464278209d03a9894e69a9d58..eb46d7b4cf2e113b9b255f63f8693b11b4e97b82 100644 |
--- a/src/x64/lithium-codegen-x64.cc |
+++ b/src/x64/lithium-codegen-x64.cc |
@@ -1926,7 +1926,11 @@ void LCodeGen::DoLoadPixelArrayElement(LLoadPixelArrayElement* instr) { |
void LCodeGen::DoLoadKeyedGeneric(LLoadKeyedGeneric* instr) { |
- Abort("Unimplemented: %s", "DoLoadKeyedGeneric"); |
+ ASSERT(ToRegister(instr->object()).is(rdx)); |
+ ASSERT(ToRegister(instr->key()).is(rax)); |
+ |
+ Handle<Code> ic(Builtins::builtin(Builtins::KeyedLoadIC_Initialize)); |
+ CallCode(ic, RelocInfo::CODE_TARGET, instr); |
} |
@@ -2215,7 +2219,12 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) { |
void LCodeGen::DoStoreNamedGeneric(LStoreNamedGeneric* instr) { |
- Abort("Unimplemented: %s", "DoStoreNamedGeneric"); |
+ ASSERT(ToRegister(instr->object()).is(rdx)); |
+ ASSERT(ToRegister(instr->value()).is(rax)); |
+ |
+ __ Move(rcx, instr->hydrogen()->name()); |
+ Handle<Code> ic(Builtins::builtin(Builtins::StoreIC_Initialize)); |
+ CallCode(ic, RelocInfo::CODE_TARGET, instr); |
} |
@@ -2279,7 +2288,12 @@ void LCodeGen::DoStoreKeyedFastElement(LStoreKeyedFastElement* instr) { |
void LCodeGen::DoStoreKeyedGeneric(LStoreKeyedGeneric* instr) { |
- Abort("Unimplemented: %s", "DoStoreKeyedGeneric"); |
+ ASSERT(ToRegister(instr->object()).is(rdx)); |
+ ASSERT(ToRegister(instr->key()).is(rcx)); |
+ ASSERT(ToRegister(instr->value()).is(rax)); |
+ |
+ Handle<Code> ic(Builtins::builtin(Builtins::KeyedStoreIC_Initialize)); |
+ CallCode(ic, RelocInfo::CODE_TARGET, instr); |
} |