From 8b40e373800f2a6cc5b43f0428095f97c82c29fe Mon Sep 17 00:00:00 2001 From: "plind44@gmail.com" Date: Fri, 7 Feb 2014 00:55:04 +0000 Subject: [PATCH] MIPS: Avoid embedding x86 NaN constant in MacroAssembler code when snapshot is created. BUG= TEST=test262/15.4.4.15-8-b-ii-4 R=plind44@gmail.com Review URL: https://codereview.chromium.org/156803003 Patch from Balazs Kilvady . git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19175 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/mips/macro-assembler-mips.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/mips/macro-assembler-mips.cc b/src/mips/macro-assembler-mips.cc index 07cc7f9..69a2a3d 100644 --- a/src/mips/macro-assembler-mips.cc +++ b/src/mips/macro-assembler-mips.cc @@ -3439,10 +3439,9 @@ void MacroAssembler::StoreNumberToDoubleElements(Register value_reg, Branch(&have_double_value, eq, mantissa_reg, Operand(zero_reg)); bind(&is_nan); // Load canonical NaN for storing into the double array. - uint64_t nan_int64 = BitCast( - FixedDoubleArray::canonical_not_the_hole_nan_as_double()); - li(mantissa_reg, Operand(static_cast(nan_int64))); - li(exponent_reg, Operand(static_cast(nan_int64 >> 32))); + LoadRoot(at, Heap::kNanValueRootIndex); + lw(mantissa_reg, FieldMemOperand(at, HeapNumber::kValueOffset)); + lw(exponent_reg, FieldMemOperand(at, HeapNumber::kValueOffset + 4)); jmp(&have_double_value); bind(&smi_value); -- 2.7.4