| Index: src/x64/lithium-x64.cc
|
| diff --git a/src/x64/lithium-x64.cc b/src/x64/lithium-x64.cc
|
| index 98c8ee1a1fbdcfa528ac77b73988599b62f6b472..ea4be9f83c41df6afae51c02e16a78e00a4659a8 100644
|
| --- a/src/x64/lithium-x64.cc
|
| +++ b/src/x64/lithium-x64.cc
|
| @@ -1156,7 +1156,8 @@ LInstruction* LChunkBuilder::DoInstanceOf(HInstanceOf* instr) {
|
| LInstruction* LChunkBuilder::DoInstanceOfKnownGlobal(
|
| HInstanceOfKnownGlobal* instr) {
|
| LInstanceOfKnownGlobal* result =
|
| - new LInstanceOfKnownGlobal(UseFixed(instr->value(), rax));
|
| + new LInstanceOfKnownGlobal(UseFixed(instr->value(), rax),
|
| + FixedTemp(rdi));
|
| return MarkAsCall(DefineFixed(result, rax), instr);
|
| }
|
|
|
| @@ -1555,9 +1556,10 @@ LInstruction* LChunkBuilder::DoFixedArrayLength(HFixedArrayLength* 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));
|
| }
|
|
|
|
|
| @@ -1770,10 +1772,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));
|
| }
|
|
|
|
|
| @@ -1790,6 +1792,7 @@ LInstruction* LChunkBuilder::DoLoadKeyedFastElement(
|
|
|
| LInstruction* LChunkBuilder::DoLoadPixelArrayElement(
|
| HLoadPixelArrayElement* instr) {
|
| + Abort("Pixel array loads in generated code cause segfaults (danno)");
|
| ASSERT(instr->representation().IsInteger32());
|
| ASSERT(instr->key()->representation().IsInteger32());
|
| LOperand* external_pointer =
|
| @@ -1831,6 +1834,7 @@ LInstruction* LChunkBuilder::DoStoreKeyedFastElement(
|
|
|
| LInstruction* LChunkBuilder::DoStorePixelArrayElement(
|
| HStorePixelArrayElement* instr) {
|
| + Abort("Pixel array stores in generated code sometimes segfaults (danno)");
|
| ASSERT(instr->value()->representation().IsInteger32());
|
| ASSERT(instr->external_pointer()->representation().IsExternal());
|
| ASSERT(instr->key()->representation().IsInteger32());
|
|
|