| Index: src/ia32/lithium-ia32.h | 
| diff --git a/src/ia32/lithium-ia32.h b/src/ia32/lithium-ia32.h | 
| index f643dac9f6c40edd0042eee72761e40985803461..21fdd58841944042d6657b468b52f338ff4c7a71 100644 | 
| --- a/src/ia32/lithium-ia32.h | 
| +++ b/src/ia32/lithium-ia32.h | 
| @@ -123,6 +123,8 @@ class LCodeGen; | 
| V(LoadKeyedGeneric)                           \ | 
| V(LoadNamedField)                             \ | 
| V(LoadNamedGeneric)                           \ | 
| +  V(LoadPixelArrayElement)                      \ | 
| +  V(LoadPixelArrayExternalPointer)              \ | 
| V(ModI)                                       \ | 
| V(MulI)                                       \ | 
| V(NumberTagD)                                 \ | 
| @@ -132,6 +134,7 @@ class LCodeGen; | 
| V(OsrEntry)                                   \ | 
| V(OuterContext)                               \ | 
| V(Parameter)                                  \ | 
| +  V(PixelArrayLength)                           \ | 
| V(Power)                                      \ | 
| V(PushArgument)                               \ | 
| V(RegExpLiteral)                              \ | 
| @@ -999,6 +1002,17 @@ class LJSArrayLength: public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| +class LPixelArrayLength: public LTemplateInstruction<1, 1, 0> { | 
| + public: | 
| +  explicit LPixelArrayLength(LOperand* value) { | 
| +    inputs_[0] = value; | 
| +  } | 
| + | 
| +  DECLARE_CONCRETE_INSTRUCTION(PixelArrayLength, "pixel-array-length") | 
| +  DECLARE_HYDROGEN_ACCESSOR(PixelArrayLength) | 
| +}; | 
| + | 
| + | 
| class LFixedArrayLength: public LTemplateInstruction<1, 1, 0> { | 
| public: | 
| explicit LFixedArrayLength(LOperand* value) { | 
| @@ -1161,6 +1175,17 @@ class LLoadElements: public LTemplateInstruction<1, 1, 0> { | 
| }; | 
|  | 
|  | 
| +class LLoadPixelArrayExternalPointer: public LTemplateInstruction<1, 1, 0> { | 
| + public: | 
| +  explicit LLoadPixelArrayExternalPointer(LOperand* object) { | 
| +    inputs_[0] = object; | 
| +  } | 
| + | 
| +  DECLARE_CONCRETE_INSTRUCTION(LoadPixelArrayExternalPointer, | 
| +                               "load-pixel-array-external-pointer") | 
| +}; | 
| + | 
| + | 
| class LLoadKeyedFastElement: public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LLoadKeyedFastElement(LOperand* elements, LOperand* key) { | 
| @@ -1176,6 +1201,22 @@ class LLoadKeyedFastElement: public LTemplateInstruction<1, 2, 0> { | 
| }; | 
|  | 
|  | 
| +class LLoadPixelArrayElement: public LTemplateInstruction<1, 2, 0> { | 
| + public: | 
| +  LLoadPixelArrayElement(LOperand* external_pointer, LOperand* key) { | 
| +    inputs_[0] = external_pointer; | 
| +    inputs_[1] = key; | 
| +  } | 
| + | 
| +  DECLARE_CONCRETE_INSTRUCTION(LoadPixelArrayElement, | 
| +                               "load-pixel-array-element") | 
| +  DECLARE_HYDROGEN_ACCESSOR(LoadPixelArrayElement) | 
| + | 
| +  LOperand* external_pointer() { return inputs_[0]; } | 
| +  LOperand* key() { return inputs_[1]; } | 
| +}; | 
| + | 
| + | 
| class LLoadKeyedGeneric: public LTemplateInstruction<1, 2, 0> { | 
| public: | 
| LLoadKeyedGeneric(LOperand* obj, LOperand* key) { | 
|  |