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:
parent
c00631b86e
commit
4beeee3eb3
@ -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());
|
||||
|
Loading…
Reference in New Issue
Block a user