| Index: src/ia32/lithium-ia32.cc
|
| diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc
|
| index a673c451206c76938b2045edfbea795a74c7abd9..199a80ae5b8119ac9634674fbe21d691129c225e 100644
|
| --- a/src/ia32/lithium-ia32.cc
|
| +++ b/src/ia32/lithium-ia32.cc
|
| @@ -1905,7 +1905,6 @@ LInstruction* LChunkBuilder::DoStoreKeyedSpecializedArrayElement(
|
| ASSERT(instr->key()->representation().IsInteger32());
|
|
|
| LOperand* external_pointer = UseRegister(instr->external_pointer());
|
| - LOperand* val = UseRegister(instr->value());
|
| LOperand* key = UseRegister(instr->key());
|
| LOperand* temp = NULL;
|
|
|
| @@ -1916,6 +1915,15 @@ LInstruction* LChunkBuilder::DoStoreKeyedSpecializedArrayElement(
|
| temp = FixedTemp(eax);
|
| }
|
|
|
| + LOperand* val = NULL;
|
| + if (array_type == kExternalByteArray ||
|
| + array_type == kExternalUnsignedByteArray) {
|
| + // We need a byte register in this case for the value.
|
| + val = UseFixed(instr->value(), eax);
|
| + } else {
|
| + val = UseRegister(instr->value());
|
| + }
|
| +
|
| return new LStoreKeyedSpecializedArrayElement(external_pointer,
|
| key,
|
| val,
|
|
|