OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_CCTEST_COMPILER_CODEGEN_TESTER_H_ | 5 #ifndef V8_CCTEST_COMPILER_CODEGEN_TESTER_H_ |
6 #define V8_CCTEST_COMPILER_CODEGEN_TESTER_H_ | 6 #define V8_CCTEST_COMPILER_CODEGEN_TESTER_H_ |
7 | 7 |
8 #include "src/compiler/instruction-selector.h" | 8 #include "src/compiler/instruction-selector.h" |
9 #include "src/compiler/pipeline.h" | 9 #include "src/compiler/pipeline.h" |
10 #include "src/compiler/raw-machine-assembler.h" | 10 #include "src/compiler/raw-machine-assembler.h" |
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
394 uint32_t call(uint32_t a0, uint32_t a1) { | 394 uint32_t call(uint32_t a0, uint32_t a1) { |
395 p0 = a0; | 395 p0 = a0; |
396 p1 = a1; | 396 p1 = a1; |
397 return static_cast<uint32_t>(T->Call()); | 397 return static_cast<uint32_t>(T->Call()); |
398 } | 398 } |
399 }; | 399 }; |
400 | 400 |
401 | 401 |
402 // A helper class for testing code sequences that take two float parameters and | 402 // A helper class for testing code sequences that take two float parameters and |
403 // return a float value. | 403 // return a float value. |
404 // TODO(titzer): figure out how to return floats correctly on ia32. | |
405 class Float32BinopTester : public BinopTester<float, USE_RESULT_BUFFER> { | 404 class Float32BinopTester : public BinopTester<float, USE_RESULT_BUFFER> { |
406 public: | 405 public: |
407 explicit Float32BinopTester(RawMachineAssemblerTester<int32_t>* tester) | 406 explicit Float32BinopTester(RawMachineAssemblerTester<int32_t>* tester) |
408 : BinopTester<float, USE_RESULT_BUFFER>(tester, MachineType::Float32()) {} | 407 : BinopTester<float, USE_RESULT_BUFFER>(tester, MachineType::Float32()) {} |
409 }; | 408 }; |
410 | 409 |
411 | 410 |
412 // A helper class for testing code sequences that take two double parameters and | 411 // A helper class for testing code sequences that take two double parameters and |
413 // return a double value. | 412 // return a double value. |
414 // TODO(titzer): figure out how to return doubles correctly on ia32. | |
415 class Float64BinopTester : public BinopTester<double, USE_RESULT_BUFFER> { | 413 class Float64BinopTester : public BinopTester<double, USE_RESULT_BUFFER> { |
416 public: | 414 public: |
417 explicit Float64BinopTester(RawMachineAssemblerTester<int32_t>* tester) | 415 explicit Float64BinopTester(RawMachineAssemblerTester<int32_t>* tester) |
418 : BinopTester<double, USE_RESULT_BUFFER>(tester, MachineType::Float64()) { | 416 : BinopTester<double, USE_RESULT_BUFFER>(tester, MachineType::Float64()) { |
419 } | 417 } |
420 }; | 418 }; |
421 | 419 |
422 | 420 |
423 // A helper class for testing code sequences that take two pointer parameters | 421 // A helper class for testing code sequences that take two pointer parameters |
424 // and return a pointer value. | 422 // and return a pointer value. |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
558 } else { | 556 } else { |
559 CHECK_EQ(x, y); | 557 CHECK_EQ(x, y); |
560 } | 558 } |
561 } | 559 } |
562 | 560 |
563 } // namespace compiler | 561 } // namespace compiler |
564 } // namespace internal | 562 } // namespace internal |
565 } // namespace v8 | 563 } // namespace v8 |
566 | 564 |
567 #endif // V8_CCTEST_COMPILER_CODEGEN_TESTER_H_ | 565 #endif // V8_CCTEST_COMPILER_CODEGEN_TESTER_H_ |
OLD | NEW |