Index: src/ia32/lithium-ia32.cc |
diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc |
index e76a0bcd73834d80270d693fa34fce60ed67cfdd..0ad3819292b047037b2e43e64265babaf4b38d2d 100644 |
--- a/src/ia32/lithium-ia32.cc |
+++ b/src/ia32/lithium-ia32.cc |
@@ -1550,6 +1550,12 @@ LInstruction* LChunkBuilder::DoFixedArrayLength(HFixedArrayLength* instr) { |
} |
+LInstruction* LChunkBuilder::DoPixelArrayLength(HPixelArrayLength* instr) { |
+ LOperand* array = UseRegisterAtStart(instr->value()); |
+ return DefineAsRegister(new LPixelArrayLength(array)); |
+} |
+ |
+ |
LInstruction* LChunkBuilder::DoValueOf(HValueOf* instr) { |
LOperand* object = UseRegister(instr->value()); |
LValueOf* result = new LValueOf(object, TempRegister()); |
@@ -1763,7 +1769,14 @@ LInstruction* LChunkBuilder::DoLoadFunctionPrototype( |
LInstruction* LChunkBuilder::DoLoadElements(HLoadElements* instr) { |
LOperand* input = UseRegisterAtStart(instr->value()); |
- return DefineSameAsFirst(new LLoadElements(input)); |
+ return DefineAsRegister(new LLoadElements(input)); |
+} |
+ |
+ |
+LInstruction* LChunkBuilder::DoLoadPixelArrayExternalPointer( |
+ HLoadPixelArrayExternalPointer* instr) { |
+ LOperand* input = UseRegisterAtStart(instr->value()); |
+ return DefineAsRegister(new LLoadPixelArrayExternalPointer(input)); |
} |
@@ -1778,6 +1791,19 @@ LInstruction* LChunkBuilder::DoLoadKeyedFastElement( |
} |
+LInstruction* LChunkBuilder::DoLoadPixelArrayElement( |
+ HLoadPixelArrayElement* instr) { |
+ ASSERT(instr->representation().IsInteger32()); |
+ ASSERT(instr->key()->representation().IsInteger32()); |
+ LOperand* external_pointer = |
+ UseRegisterAtStart(instr->external_pointer()); |
+ LOperand* key = UseRegisterAtStart(instr->key()); |
+ LLoadPixelArrayElement* result = |
+ new LLoadPixelArrayElement(external_pointer, key); |
+ return DefineSameAsFirst(result); |
+} |
+ |
+ |
LInstruction* LChunkBuilder::DoLoadKeyedGeneric(HLoadKeyedGeneric* instr) { |
LOperand* context = UseFixed(instr->context(), esi); |
LOperand* object = UseFixed(instr->object(), edx); |