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