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
This commit is contained in:
danno@chromium.org 2011-03-11 10:30:33 +00:00
parent c00631b86e
commit 4beeee3eb3
2 changed files with 1 additions and 3 deletions

View File

@ -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));
}

View File

@ -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());