Commit 4beeee3e authored by danno@chromium.org's avatar danno@chromium.org

Fix x64 array length operations in Crankshaft

x64-bit array length loads and bounds checks should be 32-bits

Review URL: http://codereview.chromium.org/6676009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent c00631b8
......@@ -1059,7 +1059,7 @@ void LCodeGen::DoFixedArrayLength(LFixedArrayLength* instr) {
void LCodeGen::DoExternalArrayLength(LExternalArrayLength* instr) {
Register result = ToRegister(instr->result());
Register array = ToRegister(instr->InputAt(0));
__ movq(result, FieldOperand(array, ExternalPixelArray::kLengthOffset));
__ movl(result, FieldOperand(array, ExternalPixelArray::kLengthOffset));
}
......
......@@ -1791,7 +1791,6 @@ 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 =
......@@ -1833,7 +1832,6 @@ 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());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment