Chromium Code Reviews| Index: test/cctest/test-assembler-mips64.cc |
| diff --git a/test/cctest/test-assembler-mips64.cc b/test/cctest/test-assembler-mips64.cc |
| index 1fe7cfeb39e6f7b2ee2996923ac9cf172fb8381f..21458849b25810be3d3326b46bc8737517df46e5 100644 |
| --- a/test/cctest/test-assembler-mips64.cc |
| +++ b/test/cctest/test-assembler-mips64.cc |
| @@ -1904,11 +1904,13 @@ TEST(rint_s) { |
| TEST(mina_maxa) { |
| if (kArchVariant == kMips64r6) { |
| - const int tableLength = 12; |
| + const int tableLength = 15; |
|
paul.l...
2015/08/07 04:48:14
Same comment as in 32-bit versionL kTableLength, d
Djordje.Pesic
2015/08/07 06:31:42
Done. Also changed tableLength to kTableLength in
|
| CcTest::InitializeVM(); |
| Isolate* isolate = CcTest::i_isolate(); |
| HandleScope scope(isolate); |
| MacroAssembler assm(isolate, NULL, 0); |
| + const double dblNaN = std::numeric_limits<double>::quiet_NaN(); |
| + const float fltNaN = std::numeric_limits<float>::quiet_NaN(); |
| typedef struct test_float { |
| double a; |
| @@ -1923,52 +1925,36 @@ TEST(mina_maxa) { |
| TestFloat test; |
| double inputsa[tableLength] = { |
| - 5.3, 4.8, 6.1, |
| - 9.8, 9.8, 9.8, |
| - -10.0, -8.9, -9.8, |
| - -10.0, -8.9, -9.8 |
| + 5.3, 4.8, 6.1, 9.8, 9.8, 9.8, -10.0, -8.9, |
| + -9.8, -10.0, -8.9, -9.8, dblNaN, 3.0, dblNaN |
| }; |
| double inputsb[tableLength] = { |
| - 4.8, 5.3, 6.1, |
| - -10.0, -8.9, -9.8, |
| - 9.8, 9.8, 9.8, |
| - -9.8, -11.2, -9.8 |
| + 4.8, 5.3, 6.1, -10.0, -8.9, -9.8, 9.8, 9.8, |
| + 9.8, -9.8, -11.2, -9.8, 3.0, dblNaN, dblNaN |
| }; |
| double resd[tableLength] = { |
| - 4.8, 4.8, 6.1, |
| - 9.8, -8.9, 9.8, |
| - 9.8, -8.9, 9.8, |
| - -9.8, -8.9, -9.8 |
| + 4.8, 4.8, 6.1, 9.8, -8.9, -9.8, 9.8, -8.9, |
| + -9.8, -9.8, -8.9, -9.8, 3.0, 3.0, dblNaN |
| }; |
| double resd1[tableLength] = { |
| - 5.3, 5.3, 6.1, |
| - -10.0, 9.8, 9.8, |
| - -10.0, 9.8, 9.8, |
| - -10.0, -11.2, -9.8 |
| + 5.3, 5.3, 6.1, -10.0, 9.8, 9.8, -10.0, 9.8, |
| + 9.8, -10.0, -11.2, -9.8, 3.0, 3.0, dblNaN |
| }; |
| float inputsc[tableLength] = { |
| - 5.3, 4.8, 6.1, |
| - 9.8, 9.8, 9.8, |
| - -10.0, -8.9, -9.8, |
| - -10.0, -8.9, -9.8 |
| + 5.3, 4.8, 6.1, 9.8, 9.8, 9.8, -10.0, -8.9, |
| + -9.8, -10.0, -8.9, -9.8, fltNaN, 3.0, fltNaN |
| }; |
| float inputsd[tableLength] = { |
| - 4.8, 5.3, 6.1, |
| - -10.0, -8.9, -9.8, |
| - 9.8, 9.8, 9.8, |
| - -9.8, -11.2, -9.8 |
| + 4.8, 5.3, 6.1, -10.0, -8.9, -9.8, 9.8, 9.8, |
| + 9.8, -9.8, -11.2, -9.8, 3.0, fltNaN, fltNaN |
| }; |
| float resf[tableLength] = { |
| - 4.8, 4.8, 6.1, |
| - 9.8, -8.9, 9.8, |
| - 9.8, -8.9, 9.8, |
| - -9.8, -8.9, -9.8 |
| + 4.8, 4.8, 6.1, 9.8, -8.9, -9.8, 9.8, -8.9, |
| + -9.8, -9.8, -8.9, -9.8, 3.0, 3.0, fltNaN |
| }; |
| float resf1[tableLength] = { |
| - 5.3, 5.3, 6.1, |
| - -10.0, 9.8, 9.8, |
| - -10.0, 9.8, 9.8, |
| - -10.0, -11.2, -9.8 |
| + 5.3, 5.3, 6.1, -10.0, 9.8, 9.8, -10.0, 9.8, |
| + 9.8, -10.0, -11.2, -9.8, 3.0, 3.0, fltNaN |
| }; |
| __ ldc1(f2, MemOperand(a0, offsetof(TestFloat, a)) ); |
| @@ -1998,10 +1984,17 @@ TEST(mina_maxa) { |
| test.d = inputsd[i]; |
| (CALL_GENERATED_CODE(f, &test, 0, 0, 0, 0)); |
| - CHECK_EQ(test.resd, resd[i]); |
| - CHECK_EQ(test.resf, resf[i]); |
| - CHECK_EQ(test.resd1, resd1[i]); |
| - CHECK_EQ(test.resf1, resf1[i]); |
| + if (i < tableLength - 1) { |
| + CHECK_EQ(test.resd, resd[i]); |
| + CHECK_EQ(test.resf, resf[i]); |
| + CHECK_EQ(test.resd1, resd1[i]); |
| + CHECK_EQ(test.resf1, resf1[i]); |
| + } else { |
| + DCHECK(std::isnan(test.resd)); |
| + DCHECK(std::isnan(test.resf)); |
| + DCHECK(std::isnan(test.resd1)); |
| + DCHECK(std::isnan(test.resf1)); |
| + } |
| } |
| } |
| } |
| @@ -3517,6 +3510,8 @@ TEST(class_fmt) { |
| Object* dummy = CALL_GENERATED_CODE(f, &t, 0, 0, 0, 0); |
| USE(dummy); |
| // Expected double results. |
| + CHECK_EQ(bit_cast<int64_t>(t.dSignalingNan), 0x001); |
| + CHECK_EQ(bit_cast<int64_t>(t.dQuietNan), 0x002); |
| CHECK_EQ(bit_cast<int64_t>(t.dNegInf), 0x004); |
| CHECK_EQ(bit_cast<int64_t>(t.dNegNorm), 0x008); |
| CHECK_EQ(bit_cast<int64_t>(t.dNegSubnorm), 0x010); |
| @@ -3527,6 +3522,8 @@ TEST(class_fmt) { |
| CHECK_EQ(bit_cast<int64_t>(t.dPosZero), 0x200); |
| // Expected float results. |
| + CHECK_EQ(bit_cast<int32_t>(t.fSignalingNan), 0x001); |
| + CHECK_EQ(bit_cast<int32_t>(t.fQuietNan), 0x002); |
| CHECK_EQ(bit_cast<int32_t>(t.fNegInf), 0x004); |
| CHECK_EQ(bit_cast<int32_t>(t.fNegNorm), 0x008); |
| CHECK_EQ(bit_cast<int32_t>(t.fNegSubnorm), 0x010); |