| Index: src/ia32/lithium-ia32.cc
|
| diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc
|
| index 0ad3819292b047037b2e43e64265babaf4b38d2d..e39b67112f6cb26af0edee0a8173ce32bfc83d82 100644
|
| --- a/src/ia32/lithium-ia32.cc
|
| +++ b/src/ia32/lithium-ia32.cc
|
| @@ -1833,6 +1833,23 @@ LInstruction* LChunkBuilder::DoStoreKeyedFastElement(
|
| }
|
|
|
|
|
| +LInstruction* LChunkBuilder::DoStorePixelArrayElement(
|
| + HStorePixelArrayElement* instr) {
|
| + ASSERT(instr->value()->representation().IsInteger32());
|
| + ASSERT(instr->external_pointer()->representation().IsExternal());
|
| + ASSERT(instr->key()->representation().IsInteger32());
|
| +
|
| + LOperand* external_pointer = UseRegister(instr->external_pointer());
|
| + LOperand* val = UseRegister(instr->value());
|
| + LOperand* key = UseRegister(instr->key());
|
| + // The generated code requires that the clamped value is in a byte
|
| + // register. eax is an arbitrary choice to satisfy this requirement.
|
| + LOperand* clamped = FixedTemp(eax);
|
| +
|
| + return new LStorePixelArrayElement(external_pointer, key, val, clamped);
|
| +}
|
| +
|
| +
|
| LInstruction* LChunkBuilder::DoStoreKeyedGeneric(HStoreKeyedGeneric* instr) {
|
| LOperand* context = UseFixed(instr->context(), esi);
|
| LOperand* object = UseFixed(instr->object(), edx);
|
|
|