| Index: src/arm/lithium-codegen-arm.cc | 
| diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc | 
| index 17fb9fcc94d68cd164a5300ab4b7f49154790f6b..7c04cb6d622c92d0ed296f0dc765c2a70c54f1d5 100644 | 
| --- a/src/arm/lithium-codegen-arm.cc | 
| +++ b/src/arm/lithium-codegen-arm.cc | 
| @@ -2564,15 +2564,11 @@ void LCodeGen::DoLoadKeyedSpecializedArrayElement( | 
| Register key = ToRegister(instr->key()); | 
| ExternalArrayType array_type = instr->array_type(); | 
| if (array_type == kExternalFloatArray) { | 
| -    if (CpuFeatures::IsSupported(VFP3)) { | 
| -      CpuFeatures::Scope scope(VFP3); | 
| -      DwVfpRegister result(ToDoubleRegister(instr->result())); | 
| -      __ add(scratch0(), external_pointer, Operand(key, LSL, 2)); | 
| -      __ vldr(result, scratch0(), 0); | 
| -    } else { | 
| -      Register result(ToRegister(instr->result())); | 
| -      __ ldr(result, MemOperand(external_pointer, key, LSL, 2)); | 
| -    } | 
| +    CpuFeatures::Scope scope(VFP3); | 
| +    DwVfpRegister result(ToDoubleRegister(instr->result())); | 
| +    __ add(scratch0(), external_pointer, Operand(key, LSL, 2)); | 
| +    __ vldr(result.low(), scratch0(), 0); | 
| +    __ vcvt_f64_f32(result, result.low()); | 
| } else { | 
| Register result(ToRegister(instr->result())); | 
| switch (array_type) { | 
| @@ -3272,15 +3268,11 @@ void LCodeGen::DoStoreKeyedSpecializedArrayElement( | 
| Register key = ToRegister(instr->key()); | 
| ExternalArrayType array_type = instr->array_type(); | 
| if (array_type == kExternalFloatArray) { | 
| -    if (CpuFeatures::IsSupported(VFP3)) { | 
| -      CpuFeatures::Scope scope(VFP3); | 
| -      DwVfpRegister value(ToDoubleRegister(instr->value())); | 
| -      __ add(scratch0(), external_pointer, Operand(key, LSL, 2)); | 
| -      __ vstr(value, scratch0(), 0); | 
| -    } else { | 
| -      Register value(ToRegister(instr->value())); | 
| -      __ str(value, MemOperand(external_pointer, key, LSL, 2)); | 
| -    } | 
| +    CpuFeatures::Scope scope(VFP3); | 
| +    DwVfpRegister value(ToDoubleRegister(instr->value())); | 
| +    __ add(scratch0(), external_pointer, Operand(key, LSL, 2)); | 
| +    __ vcvt_f32_f64(double_scratch0().low(), value); | 
| +    __ vstr(double_scratch0().low(), scratch0(), 0); | 
| } else { | 
| Register value(ToRegister(instr->value())); | 
| switch (array_type) { | 
|  |