Index: src/x64/lithium-x64.cc |
diff --git a/src/x64/lithium-x64.cc b/src/x64/lithium-x64.cc |
index db7636f419b824272c39750b49e14eae46b80d24..3148f79ea8969642a5af2eb0cb024768a8434ee9 100644 |
--- a/src/x64/lithium-x64.cc |
+++ b/src/x64/lithium-x64.cc |
@@ -1696,8 +1696,11 @@ LInstruction* LChunkBuilder::DoLoadPixelArrayElement( |
LInstruction* LChunkBuilder::DoLoadKeyedGeneric(HLoadKeyedGeneric* instr) { |
- Abort("Unimplemented: %s", "DoLoadKeyedGeneric"); |
- return NULL; |
+ LOperand* object = UseFixed(instr->object(), rdx); |
+ LOperand* key = UseFixed(instr->key(), rax); |
+ |
+ LLoadKeyedGeneric* result = new LLoadKeyedGeneric(object, key); |
+ return MarkAsCall(DefineFixed(result, rax), instr); |
} |
@@ -1735,8 +1738,16 @@ LInstruction* LChunkBuilder::DoStorePixelArrayElement( |
LInstruction* LChunkBuilder::DoStoreKeyedGeneric(HStoreKeyedGeneric* instr) { |
- Abort("Unimplemented: %s", "DoStoreKeyedGeneric"); |
- return NULL; |
+ LOperand* object = UseFixed(instr->object(), rdx); |
+ LOperand* key = UseFixed(instr->key(), rcx); |
+ LOperand* value = UseFixed(instr->value(), rax); |
+ |
+ ASSERT(instr->object()->representation().IsTagged()); |
+ ASSERT(instr->key()->representation().IsTagged()); |
+ ASSERT(instr->value()->representation().IsTagged()); |
+ |
+ LStoreKeyedGeneric* result = new LStoreKeyedGeneric(object, key, value); |
+ return MarkAsCall(result, instr); |
} |
@@ -1761,8 +1772,11 @@ LInstruction* LChunkBuilder::DoStoreNamedField(HStoreNamedField* instr) { |
LInstruction* LChunkBuilder::DoStoreNamedGeneric(HStoreNamedGeneric* instr) { |
- Abort("Unimplemented: %s", "DoStoreNamedGeneric"); |
- return NULL; |
+ LOperand* object = UseFixed(instr->object(), rdx); |
+ LOperand* value = UseFixed(instr->value(), rax); |
+ |
+ LStoreNamedGeneric* result = new LStoreNamedGeneric(object, value); |
+ return MarkAsCall(result, instr); |
} |