Chromium Code Reviews| Index: src/arm/lithium-arm.cc |
| diff --git a/src/arm/lithium-arm.cc b/src/arm/lithium-arm.cc |
| index 8ec43184c5288db0576966b49651aebfde835ebf..c67a252c404001505e64ca1a872bd21902e64c7c 100644 |
| --- a/src/arm/lithium-arm.cc |
| +++ b/src/arm/lithium-arm.cc |
| @@ -1933,13 +1933,15 @@ LInstruction* LChunkBuilder::DoLoadKeyedFastElement( |
| LInstruction* LChunkBuilder::DoLoadKeyedSpecializedArrayElement( |
| HLoadKeyedSpecializedArrayElement* instr) { |
| - ExternalArrayType array_type = instr->array_type(); |
| + JSObject::ElementsKind elements_kind = instr->elements_kind(); |
| Representation representation(instr->representation()); |
| ASSERT( |
| - (representation.IsInteger32() && (array_type != kExternalFloatArray && |
| - array_type != kExternalDoubleArray)) || |
| - (representation.IsDouble() && (array_type == kExternalFloatArray || |
| - array_type == kExternalDoubleArray))); |
| + (representation.IsInteger32() && |
| + (elements_kind != JSObject::EXTERNAL_FLOAT_ELEMENTS) && |
| + (elements_kind != JSObject::EXTERNAL_DOUBLE_ELEMENTS)) || |
| + (representation.IsDouble() && |
| + ((elements_kind == JSObject::EXTERNAL_FLOAT_ELEMENTS) || |
| + (elements_kind == JSObject::EXTERNAL_DOUBLE_ELEMENTS)))); |
| ASSERT(instr->key()->representation().IsInteger32()); |
| LOperand* external_pointer = UseRegister(instr->external_pointer()); |
| LOperand* key = UseRegisterOrConstant(instr->key()); |
| @@ -1948,7 +1950,7 @@ LInstruction* LChunkBuilder::DoLoadKeyedSpecializedArrayElement( |
| LInstruction* load_instr = DefineAsRegister(result); |
| // An unsigned int array load might overflow and cause a deopt, make sure it |
| // has an environment. |
| - return (array_type == kExternalUnsignedIntArray) ? |
| + return (elements_kind == JSObject::EXTERNAL_UNSIGNED_INT_ELEMENTS) ? |
| AssignEnvironment(load_instr) : load_instr; |
| } |
| @@ -1985,18 +1987,21 @@ LInstruction* LChunkBuilder::DoStoreKeyedFastElement( |
| LInstruction* LChunkBuilder::DoStoreKeyedSpecializedArrayElement( |
| HStoreKeyedSpecializedArrayElement* instr) { |
| Representation representation(instr->value()->representation()); |
| - ExternalArrayType array_type = instr->array_type(); |
| + JSObject::ElementsKind elements_kind = instr->elements_kind(); |
| ASSERT( |
| - (representation.IsInteger32() && (array_type != kExternalFloatArray && |
| - array_type != kExternalDoubleArray)) || |
| - (representation.IsDouble() && (array_type == kExternalFloatArray || |
| - array_type == kExternalDoubleArray))); |
| + (representation.IsInteger32() && |
| + (elements_kind != JSObject::EXTERNAL_FLOAT_ELEMENTS) && |
| + (elements_kind != JSObject::EXTERNAL_DOUBLE_ELEMENTS)) || |
| + (representation.IsDouble() && |
| + ((elements_kind == JSObject::EXTERNAL_FLOAT_ELEMENTS) || |
| + (elements_kind == JSObject::EXTERNAL_DOUBLE_ELEMENTS)))); |
| ASSERT(instr->external_pointer()->representation().IsExternal()); |
| ASSERT(instr->key()->representation().IsInteger32()); |
| LOperand* external_pointer = UseRegister(instr->external_pointer()); |
| - bool val_is_temp_register = array_type == kExternalPixelArray || |
| - array_type == kExternalFloatArray; |
| + bool val_is_temp_register = elements_kind == |
|
Mads Ager (chromium)
2011/06/09 14:15:45
(elements_kind == A) || (elements_kind == B)
?
danno
2011/06/09 15:03:27
Done.
|
| + JSObject::EXTERNAL_PIXEL_ELEMENTS || |
| + JSObject::EXTERNAL_FLOAT_ELEMENTS; |
| LOperand* val = val_is_temp_register |
| ? UseTempRegister(instr->value()) |
| : UseRegister(instr->value()); |