Commit 8b40e373 authored by plind44@gmail.com's avatar plind44@gmail.com

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 <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19175 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 4a0d4109
...@@ -3439,10 +3439,9 @@ void MacroAssembler::StoreNumberToDoubleElements(Register value_reg, ...@@ -3439,10 +3439,9 @@ void MacroAssembler::StoreNumberToDoubleElements(Register value_reg,
Branch(&have_double_value, eq, mantissa_reg, Operand(zero_reg)); Branch(&have_double_value, eq, mantissa_reg, Operand(zero_reg));
bind(&is_nan); bind(&is_nan);
// Load canonical NaN for storing into the double array. // Load canonical NaN for storing into the double array.
uint64_t nan_int64 = BitCast<uint64_t>( LoadRoot(at, Heap::kNanValueRootIndex);
FixedDoubleArray::canonical_not_the_hole_nan_as_double()); lw(mantissa_reg, FieldMemOperand(at, HeapNumber::kValueOffset));
li(mantissa_reg, Operand(static_cast<uint32_t>(nan_int64))); lw(exponent_reg, FieldMemOperand(at, HeapNumber::kValueOffset + 4));
li(exponent_reg, Operand(static_cast<uint32_t>(nan_int64 >> 32)));
jmp(&have_double_value); jmp(&have_double_value);
bind(&smi_value); bind(&smi_value);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment