Reviewers: akos.palfi.imgtec, balazs.kilvady, dusmil.imgtec,
Message:
PTAL.
Description:
MIPS: Use signaling NaN for holes in fixed double arrays.
Port 9eace97bbaab72962c0fda62e5f9011a10604d0d
BUG=
Please review this at https://codereview.chromium.org/867453002/
Base URL: https://chromium.googlesource.com/v8/v8.git@master
Affected files (+3, -4 lines):
M src/mips/macro-assembler-mips.cc
M src/mips64/macro-assembler-mips64.cc
M test/cctest/test-macro-assembler-mips.cc
Index: src/mips/macro-assembler-mips.cc
diff --git a/src/mips/macro-assembler-mips.cc
b/src/mips/macro-assembler-mips.cc
index
60791801279490f68e9613af74b196b10b67a34d..b43fb56084f67b8b79e670eead73fe01b677214d
100644
--- a/src/mips/macro-assembler-mips.cc
+++ b/src/mips/macro-assembler-mips.cc
@@ -3917,7 +3917,7 @@ void
MacroAssembler::StoreNumberToDoubleElements(Register value_reg,
// Check for nan: all NaN values have a value greater (signed) than
0x7ff00000
// in the exponent.
- li(scratch1, Operand(kNaNOrInfinityLowerBoundUpper32));
+ li(scratch1, Operand(kHoleNanUpper32 & HeapNumber::kExponentMask));
lw(exponent_reg, FieldMemOperand(value_reg,
HeapNumber::kExponentOffset));
Branch(&maybe_nan, ge, exponent_reg, Operand(scratch1));
Index: src/mips64/macro-assembler-mips64.cc
diff --git a/src/mips64/macro-assembler-mips64.cc
b/src/mips64/macro-assembler-mips64.cc
index
2761ca0f9366786b2bc811192600730ea490ca1a..903247394301f5efff2b8b0489b14d70a2c03ca6
100644
--- a/src/mips64/macro-assembler-mips64.cc
+++ b/src/mips64/macro-assembler-mips64.cc
@@ -3884,7 +3884,7 @@ void
MacroAssembler::StoreNumberToDoubleElements(Register value_reg,
// Check for nan: all NaN values have a value greater (signed) than
0x7ff00000
// in the exponent.
- li(scratch1, Operand(kNaNOrInfinityLowerBoundUpper32));
+ li(scratch1, Operand(kHoleNanUpper32 & HeapNumber::kExponentMask));
lw(exponent_reg, FieldMemOperand(value_reg,
HeapNumber::kExponentOffset));
Branch(&maybe_nan, ge, exponent_reg, Operand(scratch1));
Index: test/cctest/test-macro-assembler-mips.cc
diff --git a/test/cctest/test-macro-assembler-mips.cc
b/test/cctest/test-macro-assembler-mips.cc
index
6cb00e445634e313a5ec16af2f064eacce014060..3a97d2137f34fe64e95d3f8d0628f2c2de65946d
100644
--- a/test/cctest/test-macro-assembler-mips.cc
+++ b/test/cctest/test-macro-assembler-mips.cc
@@ -150,8 +150,7 @@ static void TestNaN(const char *code) {
double value = a->get_scalar(0);
CHECK(std::isnan(value) &&
bit_cast<uint64_t>(value) ==
- bit_cast<uint64_t>(
-
i::FixedDoubleArray::canonical_not_the_hole_nan_as_double()));
+ bit_cast<uint64_t>(std::numeric_limits<double>::quiet_NaN()));
}
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.