Index: src/arm/codegen-arm.cc |
diff --git a/src/arm/codegen-arm.cc b/src/arm/codegen-arm.cc |
index 5c8b777005731daf3ac39869f8e334a14a076167..59b947a9c4bfefa7f42c5f2f831a79f6be2cf78d 100644 |
--- a/src/arm/codegen-arm.cc |
+++ b/src/arm/codegen-arm.cc |
@@ -5673,9 +5673,9 @@ void UnarySubStub::Generate(MacroAssembler* masm) { |
__ str(r2, FieldMemOperand(r0, HeapNumber::kExponentOffset)); |
} else { |
AllocateHeapNumber(masm, &slow, r1, r2, r3); |
- __ ldr(r2, FieldMemOperand(r0, HeapNumber::kMantissaOffset)); |
- __ str(r2, FieldMemOperand(r1, HeapNumber::kMantissaOffset)); |
+ __ ldr(r3, FieldMemOperand(r0, HeapNumber::kMantissaOffset)); |
__ ldr(r2, FieldMemOperand(r0, HeapNumber::kExponentOffset)); |
+ __ str(r3, FieldMemOperand(r1, HeapNumber::kMantissaOffset)); |
__ eor(r2, r2, Operand(HeapNumber::kSignMask)); // Flip sign. |
__ str(r2, FieldMemOperand(r1, HeapNumber::kExponentOffset)); |
__ mov(r0, Operand(r1)); |