| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. Use of this | 1 // Copyright 2014 the V8 project authors. All rights reserved. Use of this |
| 2 // source code is governed by a BSD-style license that can be found in the | 2 // source code is governed by a BSD-style license that can be found in the |
| 3 // LICENSE file. | 3 // LICENSE file. |
| 4 | 4 |
| 5 // TODO(jochen): Remove this after the setting is turned on globally. | 5 // TODO(jochen): Remove this after the setting is turned on globally. |
| 6 #define V8_IMMINENT_DEPRECATION_WARNINGS | 6 #define V8_IMMINENT_DEPRECATION_WARNINGS |
| 7 | 7 |
| 8 #include <cmath> | 8 #include <cmath> |
| 9 #include <functional> | 9 #include <functional> |
| 10 #include <limits> | 10 #include <limits> |
| (...skipping 5328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5339 FOR_INT64_INPUTS(i) { | 5339 FOR_INT64_INPUTS(i) { |
| 5340 input = *i; | 5340 input = *i; |
| 5341 CHECK_EQ(11, m.Call()); | 5341 CHECK_EQ(11, m.Call()); |
| 5342 double expected = bit_cast<double>(input); | 5342 double expected = bit_cast<double>(input); |
| 5343 CHECK_EQ(bit_cast<int64_t>(expected), bit_cast<int64_t>(output)); | 5343 CHECK_EQ(bit_cast<int64_t>(expected), bit_cast<int64_t>(output)); |
| 5344 } | 5344 } |
| 5345 } | 5345 } |
| 5346 | 5346 |
| 5347 | 5347 |
| 5348 TEST(RunBitcastFloat64ToInt64) { | 5348 TEST(RunBitcastFloat64ToInt64) { |
| 5349 double input = 0; | 5349 BufferedRawMachineAssemblerTester<int64_t> m(kMachFloat64); |
| 5350 int64_t output = 0; | 5350 |
| 5351 RawMachineAssemblerTester<int32_t> m; | 5351 m.Return(m.BitcastFloat64ToInt64(m.Parameter(0))); |
| 5352 m.StoreToPointer( | 5352 FOR_FLOAT64_INPUTS(i) { CHECK_EQ(bit_cast<int64_t>(*i), m.Call(*i)); } |
| 5353 &output, kMachInt64, | 5353 } |
| 5354 m.BitcastFloat64ToInt64(m.LoadFromPointer(&input, kMachFloat64))); | 5354 |
| 5355 m.Return(m.Int32Constant(11)); | 5355 |
| 5356 FOR_FLOAT64_INPUTS(i) { | 5356 TEST(RunChangeFloat64ToInt64) { |
| 5357 input = *i; | 5357 BufferedRawMachineAssemblerTester<int64_t> m(kMachFloat64); |
| 5358 CHECK_EQ(11, m.Call()); | 5358 m.Return(m.ChangeFloat64ToInt64(m.Parameter(0))); |
| 5359 double expected = bit_cast<int64_t>(input); | 5359 |
| 5360 CHECK_EQ(expected, output); | 5360 FOR_INT64_INPUTS(i) { |
| 5361 double input = static_cast<double>(*i); |
| 5362 CHECK_EQ(static_cast<int64_t>(input), m.Call(input)); |
| 5361 } | 5363 } |
| 5362 } | 5364 } |
| 5363 | 5365 |
| 5364 | 5366 |
| 5365 TEST(RunRoundInt64ToFloat32) { | 5367 TEST(RunRoundInt64ToFloat32) { |
| 5366 BufferedRawMachineAssemblerTester<float> m(kMachInt64); | 5368 BufferedRawMachineAssemblerTester<float> m(kMachInt64); |
| 5367 m.Return(m.RoundInt64ToFloat32(m.Parameter(0))); | 5369 m.Return(m.RoundInt64ToFloat32(m.Parameter(0))); |
| 5368 FOR_INT64_INPUTS(i) { CHECK_EQ(static_cast<float>(*i), m.Call(*i)); } | 5370 FOR_INT64_INPUTS(i) { CHECK_EQ(static_cast<float>(*i), m.Call(*i)); } |
| 5369 } | 5371 } |
| 5370 | 5372 |
| (...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5633 Node* call = r.AddNode(r.common()->Call(desc), phi); | 5635 Node* call = r.AddNode(r.common()->Call(desc), phi); |
| 5634 r.Return(call); | 5636 r.Return(call); |
| 5635 | 5637 |
| 5636 CHECK_EQ(33, r.Call(1)); | 5638 CHECK_EQ(33, r.Call(1)); |
| 5637 CHECK_EQ(44, r.Call(0)); | 5639 CHECK_EQ(44, r.Call(0)); |
| 5638 } | 5640 } |
| 5639 | 5641 |
| 5640 } // namespace compiler | 5642 } // namespace compiler |
| 5641 } // namespace internal | 5643 } // namespace internal |
| 5642 } // namespace v8 | 5644 } // namespace v8 |
| OLD | NEW |