Index: src/arm/stub-cache-arm.cc |
diff --git a/src/arm/stub-cache-arm.cc b/src/arm/stub-cache-arm.cc |
index c2665f8853a7044907a82642a06cce4225ff7c9b..2c60b28a5d0af293d5841c3e1755c56099776d8d 100644 |
--- a/src/arm/stub-cache-arm.cc |
+++ b/src/arm/stub-cache-arm.cc |
@@ -4399,11 +4399,18 @@ void KeyedStoreStubCompiler::GenerateStoreFastDoubleElement( |
} else { |
destination = FloatingPointHelper::kCoreRegisters; |
} |
- __ SmiUntag(value_reg, value_reg); |
+ |
+ Register untagged_value = receiver_reg; |
+ __ SmiUntag(untagged_value, value_reg); |
FloatingPointHelper::ConvertIntToDouble( |
- masm, value_reg, destination, |
- d0, mantissa_reg, exponent_reg, // These are: double_dst, dst1, dst2. |
- scratch4, s2); // These are: scratch2, single_scratch. |
+ masm, |
+ untagged_value, |
+ destination, |
+ d0, |
+ mantissa_reg, |
+ exponent_reg, |
+ scratch4, |
+ s2); |
if (destination == FloatingPointHelper::kVFPRegisters) { |
CpuFeatures::Scope scope(VFP3); |
__ vstr(d0, scratch, 0); |