Index: src/arm64/lithium-arm64.cc |
diff --git a/src/arm64/lithium-arm64.cc b/src/arm64/lithium-arm64.cc |
index 2c12ce0f1387f2c75a5e7081d48b9d5ff12dc3b3..e1119c2c678e4941ebb47e344ab5979dd9939a3c 100644 |
--- a/src/arm64/lithium-arm64.cc |
+++ b/src/arm64/lithium-arm64.cc |
@@ -1731,7 +1731,7 @@ |
LOperand* elements = UseRegister(instr->elements()); |
LOperand* key = UseRegisterOrConstant(instr->key()); |
- if (!instr->is_fixed_typed_array()) { |
+ if (!instr->is_typed_elements()) { |
if (instr->representation().IsDouble()) { |
LOperand* temp = (!instr->key()->IsConstant() || |
instr->RequiresHoleCheck()) |
@@ -1765,7 +1765,8 @@ |
LOperand* temp = instr->key()->IsConstant() ? NULL : TempRegister(); |
LInstruction* result = DefineAsRegister( |
new(zone()) LLoadKeyedExternal(elements, key, temp)); |
- if (elements_kind == UINT32_ELEMENTS && |
+ if ((elements_kind == EXTERNAL_UINT32_ELEMENTS || |
+ elements_kind == UINT32_ELEMENTS) && |
!instr->CheckFlag(HInstruction::kUint32)) { |
result = AssignEnvironment(result); |
} |
@@ -2369,7 +2370,7 @@ |
LOperand* elements = NULL; |
LOperand* val = NULL; |
- if (!instr->is_fixed_typed_array() && |
+ if (!instr->is_typed_elements() && |
instr->value()->representation().IsTagged() && |
instr->NeedsWriteBarrier()) { |
// RecordWrite() will clobber all registers. |
@@ -2382,7 +2383,7 @@ |
temp = instr->key()->IsConstant() ? NULL : TempRegister(); |
} |
- if (instr->is_fixed_typed_array()) { |
+ if (instr->is_typed_elements()) { |
DCHECK((instr->value()->representation().IsInteger32() && |
!IsDoubleOrFloatElementsKind(instr->elements_kind())) || |
(instr->value()->representation().IsDouble() && |