Index: src/arm/lithium-arm.cc |
diff --git a/src/arm/lithium-arm.cc b/src/arm/lithium-arm.cc |
index e79465cb3a4689e20a8afb0a649da81bc9eb5230..d3eb31d31e3efddd8212faec752d55aeaa2d666f 100644 |
--- a/src/arm/lithium-arm.cc |
+++ b/src/arm/lithium-arm.cc |
@@ -1548,9 +1548,10 @@ LInstruction* LChunkBuilder::DoJSArrayLength(HJSArrayLength* instr) { |
} |
-LInstruction* LChunkBuilder::DoPixelArrayLength(HPixelArrayLength* instr) { |
+LInstruction* LChunkBuilder::DoExternalArrayLength( |
+ HExternalArrayLength* instr) { |
LOperand* array = UseRegisterAtStart(instr->value()); |
- return DefineAsRegister(new LPixelArrayLength(array)); |
+ return DefineAsRegister(new LExternalArrayLength(array)); |
} |
@@ -1774,10 +1775,10 @@ LInstruction* LChunkBuilder::DoLoadElements(HLoadElements* instr) { |
} |
-LInstruction* LChunkBuilder::DoLoadPixelArrayExternalPointer( |
- HLoadPixelArrayExternalPointer* instr) { |
+LInstruction* LChunkBuilder::DoLoadExternalArrayPointer( |
+ HLoadExternalArrayPointer* instr) { |
LOperand* input = UseRegisterAtStart(instr->value()); |
- return DefineAsRegister(new LLoadPixelArrayExternalPointer(input)); |
+ return DefineAsRegister(new LLoadExternalArrayPointer(input)); |
} |
@@ -1836,8 +1837,15 @@ LInstruction* LChunkBuilder::DoStoreKeyedFastElement( |
LInstruction* LChunkBuilder::DoStorePixelArrayElement( |
HStorePixelArrayElement* instr) { |
- Abort("DoStorePixelArrayElement not implemented"); |
- return NULL; |
+ ASSERT(instr->value()->representation().IsInteger32()); |
+ ASSERT(instr->external_pointer()->representation().IsExternal()); |
+ ASSERT(instr->key()->representation().IsInteger32()); |
+ |
+ LOperand* external_pointer = UseRegister(instr->external_pointer()); |
+ LOperand* value = UseTempRegister(instr->value()); // changed by clamp. |
+ LOperand* key = UseRegister(instr->key()); |
+ |
+ return new LStorePixelArrayElement(external_pointer, key, value); |
} |