Index: src/ia32/lithium-codegen-ia32.cc |
diff --git a/src/ia32/lithium-codegen-ia32.cc b/src/ia32/lithium-codegen-ia32.cc |
index 93f36568d4f27175350c90c4b59f6ad8895a90cf..0a6723170ca049f9e6176b301d9da7f984c2bac4 100644 |
--- a/src/ia32/lithium-codegen-ia32.cc |
+++ b/src/ia32/lithium-codegen-ia32.cc |
@@ -3421,8 +3421,7 @@ void LCodeGen::DoLoadKeyedExternalArray(LLoadKeyed* instr) { |
elements_kind, |
0, |
instr->additional_index())); |
- if (elements_kind == EXTERNAL_FLOAT_ELEMENTS || |
- elements_kind == FLOAT32_ELEMENTS) { |
+ if (elements_kind == EXTERNAL_FLOAT_ELEMENTS) { |
if (CpuFeatures::IsSupported(SSE2)) { |
CpuFeatureScope scope(masm(), SSE2); |
XMMRegister result(ToDoubleRegister(instr->result())); |
@@ -3431,8 +3430,7 @@ void LCodeGen::DoLoadKeyedExternalArray(LLoadKeyed* instr) { |
} else { |
X87Mov(ToX87Register(instr->result()), operand, kX87FloatOperand); |
} |
- } else if (elements_kind == EXTERNAL_DOUBLE_ELEMENTS || |
- elements_kind == FLOAT64_ELEMENTS) { |
+ } else if (elements_kind == EXTERNAL_DOUBLE_ELEMENTS) { |
if (CpuFeatures::IsSupported(SSE2)) { |
CpuFeatureScope scope(masm(), SSE2); |
__ movsd(ToDoubleRegister(instr->result()), operand); |
@@ -3443,29 +3441,22 @@ void LCodeGen::DoLoadKeyedExternalArray(LLoadKeyed* instr) { |
Register result(ToRegister(instr->result())); |
switch (elements_kind) { |
case EXTERNAL_BYTE_ELEMENTS: |
- case INT8_ELEMENTS: |
__ movsx_b(result, operand); |
break; |
case EXTERNAL_PIXEL_ELEMENTS: |
case EXTERNAL_UNSIGNED_BYTE_ELEMENTS: |
- case UINT8_ELEMENTS: |
- case UINT8_CLAMPED_ELEMENTS: |
__ movzx_b(result, operand); |
break; |
case EXTERNAL_SHORT_ELEMENTS: |
- case INT16_ELEMENTS: |
__ movsx_w(result, operand); |
break; |
case EXTERNAL_UNSIGNED_SHORT_ELEMENTS: |
- case UINT16_ELEMENTS: |
__ movzx_w(result, operand); |
break; |
case EXTERNAL_INT_ELEMENTS: |
- case INT32_ELEMENTS: |
__ mov(result, operand); |
break; |
case EXTERNAL_UNSIGNED_INT_ELEMENTS: |
- case UINT32_ELEMENTS: |
__ mov(result, operand); |
if (!instr->hydrogen()->CheckFlag(HInstruction::kUint32)) { |
__ test(result, Operand(result)); |
@@ -3474,8 +3465,6 @@ void LCodeGen::DoLoadKeyedExternalArray(LLoadKeyed* instr) { |
break; |
case EXTERNAL_FLOAT_ELEMENTS: |
case EXTERNAL_DOUBLE_ELEMENTS: |
- case FLOAT32_ELEMENTS: |
- case FLOAT64_ELEMENTS: |
case FAST_SMI_ELEMENTS: |
case FAST_ELEMENTS: |
case FAST_DOUBLE_ELEMENTS: |
@@ -3548,7 +3537,7 @@ void LCodeGen::DoLoadKeyedFixedArray(LLoadKeyed* instr) { |
void LCodeGen::DoLoadKeyed(LLoadKeyed* instr) { |
- if (instr->is_typed_elements()) { |
+ if (instr->is_external()) { |
DoLoadKeyedExternalArray(instr); |
} else if (instr->hydrogen()->representation().IsDouble()) { |
DoLoadKeyedFixedDoubleArray(instr); |
@@ -3567,9 +3556,6 @@ Operand LCodeGen::BuildFastArrayOperand( |
uint32_t additional_index) { |
Register elements_pointer_reg = ToRegister(elements_pointer); |
int element_shift_size = ElementsKindToShiftSize(elements_kind); |
- if (IsFixedTypedArrayElementsKind(elements_kind)) { |
- offset += FixedTypedArrayBase::kDataOffset - kHeapObjectTag; |
- } |
int shift_size = element_shift_size; |
if (key->IsConstantOperand()) { |
int constant_value = ToInteger32(LConstantOperand::cast(key)); |
@@ -4552,8 +4538,7 @@ void LCodeGen::DoStoreKeyedExternalArray(LStoreKeyed* instr) { |
elements_kind, |
0, |
instr->additional_index())); |
- if (elements_kind == EXTERNAL_FLOAT_ELEMENTS || |
- elements_kind == FLOAT32_ELEMENTS) { |
+ if (elements_kind == EXTERNAL_FLOAT_ELEMENTS) { |
if (CpuFeatures::IsSafeForSnapshot(SSE2)) { |
CpuFeatureScope scope(masm(), SSE2); |
XMMRegister xmm_scratch = double_scratch0(); |
@@ -4563,8 +4548,7 @@ void LCodeGen::DoStoreKeyedExternalArray(LStoreKeyed* instr) { |
__ fld(0); |
__ fstp_s(operand); |
} |
- } else if (elements_kind == EXTERNAL_DOUBLE_ELEMENTS || |
- elements_kind == FLOAT64_ELEMENTS) { |
+ } else if (elements_kind == EXTERNAL_DOUBLE_ELEMENTS) { |
if (CpuFeatures::IsSafeForSnapshot(SSE2)) { |
CpuFeatureScope scope(masm(), SSE2); |
__ movsd(operand, ToDoubleRegister(instr->value())); |
@@ -4577,27 +4561,18 @@ void LCodeGen::DoStoreKeyedExternalArray(LStoreKeyed* instr) { |
case EXTERNAL_PIXEL_ELEMENTS: |
case EXTERNAL_UNSIGNED_BYTE_ELEMENTS: |
case EXTERNAL_BYTE_ELEMENTS: |
- case UINT8_ELEMENTS: |
- case INT8_ELEMENTS: |
- case UINT8_CLAMPED_ELEMENTS: |
__ mov_b(operand, value); |
break; |
case EXTERNAL_SHORT_ELEMENTS: |
case EXTERNAL_UNSIGNED_SHORT_ELEMENTS: |
- case UINT16_ELEMENTS: |
- case INT16_ELEMENTS: |
__ mov_w(operand, value); |
break; |
case EXTERNAL_INT_ELEMENTS: |
case EXTERNAL_UNSIGNED_INT_ELEMENTS: |
- case UINT32_ELEMENTS: |
- case INT32_ELEMENTS: |
__ mov(operand, value); |
break; |
case EXTERNAL_FLOAT_ELEMENTS: |
case EXTERNAL_DOUBLE_ELEMENTS: |
- case FLOAT32_ELEMENTS: |
- case FLOAT64_ELEMENTS: |
case FAST_SMI_ELEMENTS: |
case FAST_ELEMENTS: |
case FAST_DOUBLE_ELEMENTS: |
@@ -4735,7 +4710,7 @@ void LCodeGen::DoStoreKeyedFixedArray(LStoreKeyed* instr) { |
void LCodeGen::DoStoreKeyed(LStoreKeyed* instr) { |
// By cases...external, fast-double, fast |
- if (instr->is_typed_elements()) { |
+ if (instr->is_external()) { |
DoStoreKeyedExternalArray(instr); |
} else if (instr->hydrogen()->value()->representation().IsDouble()) { |
DoStoreKeyedFixedDoubleArray(instr); |