| 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);
|
| }
|
|
|
|
|
|
|