Index: test/cctest/test-assembler-a64.cc |
diff --git a/test/cctest/test-assembler-a64.cc b/test/cctest/test-assembler-a64.cc |
index 3597927443b3f2e6147e05bf25e54f90cca4e9a9..677dfb1e4848fae03278deac7142d9d7302ddd78 100644 |
--- a/test/cctest/test-assembler-a64.cc |
+++ b/test/cctest/test-assembler-a64.cc |
@@ -9346,107 +9346,6 @@ TEST(call_no_relocation) { |
} |
-static void ECMA262ToInt32Helper(int32_t expected, double input) { |
- SETUP(); |
- START(); |
- |
- __ Fmov(d0, input); |
- |
- __ ECMA262ToInt32(x0, d0, x10, x11, MacroAssembler::INT32_IN_W); |
- __ ECMA262ToInt32(x1, d0, x10, x11, MacroAssembler::INT32_IN_X); |
- __ ECMA262ToInt32(x2, d0, x10, x11, MacroAssembler::SMI); |
- |
- // The upper bits of INT32_IN_W are undefined, so make sure we don't try to |
- // test them. |
- __ Mov(w0, w0); |
- |
- END(); |
- |
- RUN(); |
- |
- int64_t expected64 = expected; |
- |
- ASSERT_EQUAL_32(expected, w0); |
- ASSERT_EQUAL_64(expected64, x1); |
- ASSERT_EQUAL_64(expected64 << kSmiShift | kSmiTag, x2); |
- |
- TEARDOWN(); |
-} |
- |
- |
-TEST(ecma_262_to_int32) { |
- INIT_V8(); |
- // ==== exponent < 64 ==== |
- |
- ECMA262ToInt32Helper(0, 0.0); |
- ECMA262ToInt32Helper(0, -0.0); |
- ECMA262ToInt32Helper(1, 1.0); |
- ECMA262ToInt32Helper(-1, -1.0); |
- |
- // The largest representable value that is less than 1. |
- ECMA262ToInt32Helper(0, 0x001fffffffffffff * pow(2.0, -53)); |
- ECMA262ToInt32Helper(0, 0x001fffffffffffff * -pow(2.0, -53)); |
- ECMA262ToInt32Helper(0, std::numeric_limits<double>::denorm_min()); |
- ECMA262ToInt32Helper(0, -std::numeric_limits<double>::denorm_min()); |
- |
- // The largest conversion which doesn't require the integer modulo-2^32 step. |
- ECMA262ToInt32Helper(0x7fffffff, 0x7fffffff); |
- ECMA262ToInt32Helper(-0x80000000, -0x80000000); |
- |
- // The largest simple conversion, requiring module-2^32, but where the fcvt |
- // does not saturate when converting to int64_t. |
- ECMA262ToInt32Helper(0xfffffc00, 0x7ffffffffffffc00); |
- ECMA262ToInt32Helper(-0xfffffc00, 0x7ffffffffffffc00 * -1.0); |
- |
- // ==== 64 <= exponent < 84 ==== |
- |
- // The smallest conversion where the fcvt saturates. |
- ECMA262ToInt32Helper(0, 0x8000000000000000); |
- ECMA262ToInt32Helper(0, 0x8000000000000000 * -1.0); |
- |
- // The smallest conversion where the fcvt saturates, and where all the |
- // mantissa bits are '1' (to check the shift logic). |
- ECMA262ToInt32Helper(0xfffff800, 0xfffffffffffff800); |
- ECMA262ToInt32Helper(-0xfffff800, 0xfffffffffffff800 * -1.0); |
- |
- // The largest conversion which doesn't produce a zero result. |
- ECMA262ToInt32Helper(0x80000000, 0x001fffffffffffff * pow(2.0, 31)); |
- ECMA262ToInt32Helper(-0x80000000, 0x001fffffffffffff * -pow(2.0, 31)); |
- |
- // Some large conversions to check the shifting function. |
- ECMA262ToInt32Helper(0x6789abcd, 0x001123456789abcd); |
- ECMA262ToInt32Helper(0x12345678, 0x001123456789abcd * pow(2.0, -20)); |
- ECMA262ToInt32Helper(0x891a2b3c, 0x001123456789abcd * pow(2.0, -21)); |
- ECMA262ToInt32Helper(0x11234567, 0x001123456789abcd * pow(2.0, -24)); |
- ECMA262ToInt32Helper(-0x6789abcd, 0x001123456789abcd * -1.0); |
- ECMA262ToInt32Helper(-0x12345678, 0x001123456789abcd * -pow(2.0, -20)); |
- ECMA262ToInt32Helper(-0x891a2b3c, 0x001123456789abcd * -pow(2.0, -21)); |
- ECMA262ToInt32Helper(-0x11234567, 0x001123456789abcd * -pow(2.0, -24)); |
- |
- // ==== 84 <= exponent ==== |
- |
- // The smallest conversion which produces a zero result by shifting the |
- // mantissa out of the int32_t range. |
- ECMA262ToInt32Helper(0, pow(2.0, 32)); |
- ECMA262ToInt32Helper(0, -pow(2.0, 32)); |
- |
- // Some very large conversions. |
- ECMA262ToInt32Helper(0, 0x001fffffffffffff * pow(2.0, 32)); |
- ECMA262ToInt32Helper(0, 0x001fffffffffffff * -pow(2.0, 32)); |
- ECMA262ToInt32Helper(0, DBL_MAX); |
- ECMA262ToInt32Helper(0, -DBL_MAX); |
- |
- // ==== Special values. ==== |
- |
- ECMA262ToInt32Helper(0, std::numeric_limits<double>::infinity()); |
- ECMA262ToInt32Helper(0, -std::numeric_limits<double>::infinity()); |
- ECMA262ToInt32Helper(0, std::numeric_limits<double>::quiet_NaN()); |
- ECMA262ToInt32Helper(0, -std::numeric_limits<double>::quiet_NaN()); |
- ECMA262ToInt32Helper(0, std::numeric_limits<double>::signaling_NaN()); |
- ECMA262ToInt32Helper(0, -std::numeric_limits<double>::signaling_NaN()); |
-} |
- |
- |
static void AbsHelperX(int64_t value) { |
int64_t expected; |